setup.py (40 lines of code) (raw):

from os.path import dirname, join, exists from setuptools import setup, find_packages def open_and_read_if_exists(path: str): try: with open(join(dirname(__file__), path)) as f: return f.read() except: return "" requirements = [] for service in ["metadata_service", "migration_service", "ui_backend_service"]: requirements += open_and_read_if_exists( "services/{}/requirements.txt".format(service) ).splitlines() requirements_tests = open_and_read_if_exists("requirements.dev.txt").splitlines() long_description = open_and_read_if_exists("README.md") setup( name="metadata_service", version="2.5.0", license="Apache License 2.0", description="Metadata Service: backend service for Metaflow", long_description=long_description, author="Machine Learning Infrastructure Team at Netflix", author_email="help@metaflow.org", url="https://github.com/Netflix/metaflow-service", keywords=["metaflow", "machinelearning", "ml"], py_modules=["services.metadata_service"], packages=find_packages(exclude=("tests",)), entry_points=""" [console_scripts] metadata_service=services.metadata_service.server:main migration_service=services.migration_service.migration_server:main ui_backend_service=services.ui_backend_service.ui_server:main """, install_requires=requirements, tests_require=requirements + requirements_tests, extras_require={"test": requirements + requirements_tests}, classifiers=[ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Topic :: Software Development :: Build Tools", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3.11", ], )