-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
setup.py
90 lines (84 loc) · 3.1 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
from pathlib import Path
import versioneer
from setuptools import find_packages, setup
def read_requirements(file):
requirements = []
if Path(file).exists():
requirements = open(file).read().strip().split("\n")
return requirements
client_requires = read_requirements("requirements-client.txt")
install_requires = read_requirements("requirements.txt")[1:] + client_requires
dev_requires = read_requirements("requirements-dev.txt")
otel_requires = read_requirements("requirements-otel.txt")
setup(
# Package metadata
name="prefect",
description="Workflow orchestration and management.",
author="Prefect Technologies, Inc.",
author_email="[email protected]",
url="https://www.prefect.io",
project_urls={
"Changelog": "https://github.com/PrefectHQ/prefect/releases",
"Documentation": "https://docs.prefect.io",
"Source": "https://github.com/PrefectHQ/prefect",
"Tracker": "https://github.com/PrefectHQ/prefect/issues",
},
long_description=open("README.md").read(),
long_description_content_type="text/markdown",
# Versioning
version=versioneer.get_version(),
cmdclass=versioneer.get_cmdclass(),
# Package setup
packages=find_packages(where="src"),
package_dir={"": "src"},
include_package_data=True,
# CLI
entry_points={
"console_scripts": ["prefect=prefect.cli:app"],
"mkdocs.plugins": [
"render_swagger = prefect.utilities.render_swagger:SwaggerPlugin",
],
},
# Requirements
python_requires=">=3.9",
install_requires=install_requires,
extras_require={
"dev": dev_requires,
"otel": otel_requires,
# Infrastructure extras
"aws": "prefect-aws>=0.5.0",
"azure": "prefect-azure>=0.4.0",
"gcp": "prefect-gcp>=0.6.0",
"docker": "prefect-docker>=0.6.0",
"kubernetes": "prefect-kubernetes>=0.4.0",
"shell": "prefect-shell>=0.3.0",
# Distributed task execution extras
"dask": "prefect-dask>=0.3.0",
"ray": "prefect-ray>=0.4.0",
# Version control extras
"bitbucket": "prefect-bitbucket>=0.3.0",
"github": "prefect-github>=0.3.0",
"gitlab": "prefect-gitlab>=0.3.0",
# Database extras
"databricks": "prefect-databricks>=0.3.0",
"dbt": "prefect-dbt>=0.6.0",
"snowflake": "prefect-snowflake>=0.28.0",
"sqlalchemy": "prefect-sqlalchemy>=0.5.0",
"redis": "prefect-redis>=0.2.0",
# Monitoring extras
"email": "prefect-email>=0.4.0",
"slack": "prefect-slack>=0.3.0",
},
classifiers=[
"Natural Language :: English",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Libraries",
],
)