import os import sys from typing import Dict, Set import setuptools is_py37_or_newer = sys.version_info >= (3, 7) package_metadata: dict = {} with open("./src/datahub_airflow_plugin/__init__.py") as fp: exec(fp.read(), package_metadata) def get_long_description(): root = os.path.dirname(__file__) with open(os.path.join(root, "README.md")) as f: description = f.read() return description base_requirements = { # Compatability. "dataclasses>=0.6; python_version < '3.7'", "typing_extensions>=3.10.0.2", "mypy_extensions>=0.4.3", # Actual dependencies. "typing-inspect", "pydantic>=1.5.1", "apache-airflow >= 1.10.2", "acryl-datahub[airflow] >= 0.8.36", } mypy_stubs = { "types-dataclasses", "sqlalchemy-stubs", "types-pkg_resources", "types-six", "types-python-dateutil", "types-requests", "types-toml", "types-PyYAML", "types-freezegun", "types-cachetools", # versions 0.1.13 and 0.1.14 seem to have issues "types-click==0.1.12", "types-tabulate", # avrogen package requires this "types-pytz", } base_dev_requirements = { *base_requirements, *mypy_stubs, "black>=21.12b0", "coverage>=5.1", "flake8>=3.8.3", "flake8-tidy-imports>=4.3.0", "isort>=5.7.0", "mypy>=0.920", # pydantic 1.8.2 is incompatible with mypy 0.910. # See https://github.com/samuelcolvin/pydantic/pull/3175#issuecomment-995382910. "pydantic>=1.9.0", "pytest>=6.2.2", "pytest-asyncio>=0.16.0", "pytest-cov>=2.8.1", "pytest-docker>=0.10.3,<0.12", "tox", "deepdiff", "requests-mock", "freezegun", "jsonpickle", "build", "twine", "packaging", } base_dev_requirements_airflow_1 = base_dev_requirements.copy() dev_requirements = { *base_dev_requirements, } dev_requirements_airflow_1_base = { "apache-airflow==1.10.15", "apache-airflow-backport-providers-snowflake", } dev_requirements_airflow_1 = { *base_dev_requirements_airflow_1, *dev_requirements_airflow_1_base, } entry_points = { "airflow.plugins": "acryl-datahub-airflow-plugin = datahub_airflow_plugin.datahub_plugin:DatahubPlugin" } setuptools.setup( # Package metadata. name=package_metadata["__package_name__"], version=package_metadata["__version__"], url="https://datahubproject.io/", project_urls={ "Documentation": "https://datahubproject.io/docs/", "Source": "https://github.com/datahub-project/datahub", "Changelog": "https://github.com/datahub-project/datahub/releases", }, license="Apache License 2.0", description="Datahub Airflow plugin to capture executions and send to Datahub", long_description=get_long_description(), long_description_content_type="text/markdown", classifiers=[ "Development Status :: 5 - Production/Stable", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved", "License :: OSI Approved :: Apache Software License", "Operating System :: Unix", "Operating System :: POSIX :: Linux", "Environment :: Console", "Environment :: MacOS X", "Topic :: Software Development", ], # Package info. zip_safe=False, python_requires=">=3.6", package_dir={"": "src"}, packages=setuptools.find_namespace_packages(where="./src"), entry_points=entry_points, # Dependencies. install_requires=list(base_requirements), extras_require={ "dev": list(dev_requirements), "dev-airflow1-base": list(dev_requirements_airflow_1_base), "dev-airflow1": list(dev_requirements_airflow_1), }, )