agentos-project/agentos

Support `VirtualEnv`, `RequirementsFile`, `PythonRuntime`, `Package`, and `PyPIRepo`

Opened this issue · 0 comments

andyk commented

This issue depends on #278.

Now that #278 and #336 are done, we should be able to add new Component types that allow our DAG to accurately capture more of the types of dependencies involved in running a Python program, including the following:

  • VirtualEnv
  • PythonRuntime
  • RequirementsFile
  • Package
  • PypiRepo

And here is a registry-like nested list that gives you a sense of how these all might relate to each other (note that the nested list formatting gets maxed out so some of the inner-most indents aren't tabbed over far enough):

  • Command:
    • runtime:
      • PythonRuntime
        • version: str # e.g., 3.9.4
    • function_name: str
    • object_manager: # this attribute currently named 'component'
      • ObjectManager (ObjectManager is an abstract class w/ subtypes: Module, Class, Instance)
    • env:
      • VirtualEnv
        • pip_packages:
          • list:
            • PipPackage
              • package_dependencies:
                • list:
                  • PipPackage
                  • PipPackage
              • module_dependencies:
                • list:
                  • Module
                  • Module
              • requirements_files:
                • list:
                  • RequirementsFile
                    • path: str
                    • repo:
                    • Repo (one of PyPIRepo, GitHubRepo, LocalRepo)
                    • PyPIRepo
                    • project_name: agentos
                    • default_version: 0.1.0
                  • RequirementsFile