mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2025-12-17 22:14:28 +01:00
Inspired by #1102 * Migrate AutoGPT agent to poetry Co-authored-by: rickythefox <richard@ginzburg.se> * Rewrite automatic dependency check (check_requirements.py) for poetry * Sort dependencies * Add instructions for poetry to README
39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
import contextlib
|
|
import os
|
|
import sys
|
|
from importlib.metadata import version
|
|
|
|
try:
|
|
import poetry.factory
|
|
except ModuleNotFoundError:
|
|
os.system(f"{sys.executable} -m pip install 'poetry>=1.6.1,<2.0.0'")
|
|
|
|
from poetry.factory import Factory
|
|
from poetry.core.constraints.version.version import Version
|
|
|
|
|
|
def main():
|
|
poetry_project = Factory().create_poetry()
|
|
# repository = poetry_project.locker.locked_repository()
|
|
# dependencies = repository.packages
|
|
dependency_group = poetry_project.package.dependency_group("main")
|
|
|
|
missing_packages = []
|
|
for dep in dependency_group.dependencies:
|
|
# Try to verify that the installed version is suitable
|
|
with contextlib.suppress(ModuleNotFoundError):
|
|
installed_version = version(dep.name) # if this fails -> not installed
|
|
if dep.constraint.allows(Version.parse(installed_version)):
|
|
continue
|
|
# If the above verification fails, mark the package as missing
|
|
missing_packages.append(str(dep))
|
|
|
|
if missing_packages:
|
|
print("Missing packages:")
|
|
print(", ".join(missing_packages))
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|