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
- list:
- module_dependencies:
- list:
Module
Module
- list:
- requirements_files:
- list:
RequirementsFile
- path: str
- repo:
Repo
(one ofPyPIRepo
,GitHubRepo
,LocalRepo
)PyPIRepo
- project_name: agentos
- default_version: 0.1.0
RequirementsFile
- list:
- package_dependencies:
- list:
- pip_packages:
- runtime: