-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathsetup.py
117 lines (105 loc) · 3.31 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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import os
from setuptools import setup
def rel(*xs):
return os.path.join(os.path.abspath(os.path.dirname(__file__)), *xs)
with open(rel("README.md")) as f:
long_description = f.read()
with open(rel("remoulade", "__init__.py")) as f:
version_marker = "__version__ = "
for line in f:
if line.startswith(version_marker):
_, version = line.split(version_marker)
version = version.strip().strip('"')
break
else:
raise RuntimeError("Version marker not found.")
dependencies = ["prometheus-client>=0.2", "pytz", "python-dateutil>=2.8.0", "typing-extensions>=3.8", "attrs>=19.2.0"]
extra_dependencies = {
"rabbitmq": ["amqpstorm>=2.6,<3"],
"redis": ["redis~=5.0"],
"server": ["flask>=1.1,~=2.3.3", "marshmallow>=3", "flask-apispec"],
"postgres": ["sqlalchemy>=1.4.29,<2", "psycopg2==2.9.5"],
"pydantic": ["pydantic>=2.0", "simplejson"],
}
extra_dependencies["all"] = list(set(sum(extra_dependencies.values(), [])))
extra_dependencies["dev"] = extra_dependencies["all"] + [
# Docs
"alabaster",
"sphinx==4.1.1",
"sphinxcontrib-napoleon",
"sphinxcontrib-versioning",
"sphinx-copybutton",
# Linting
"flake8",
"flake8-bugbear",
"flake8-quotes",
"isort",
"black~=23.12",
"mypy~=1.10.0",
"pyupgrade~=3.15.0",
"sqlalchemy[mypy]",
"types-redis",
"types-python-dateutil",
# Misc
"pre-commit",
"bumpversion",
"hiredis",
"twine",
# Testing
"pytest",
"pytest-benchmark[histogram]",
"pytest-cov",
"pytest-timeout",
"tox",
"freezegun",
]
setup(
name="remoulade",
version=version,
author="Wiremind",
author_email="dev@wiremind.io",
description="Background Processing for Python 3.",
long_description=long_description,
long_description_content_type="text/markdown",
packages=[
"remoulade",
"remoulade.brokers",
"remoulade.cancel",
"remoulade.cancel.backends",
"remoulade.middleware",
"remoulade.rate_limits",
"remoulade.rate_limits.backends",
"remoulade.results",
"remoulade.results.backends",
"remoulade.scheduler",
"remoulade.state",
"remoulade.state.backends",
"remoulade.cli",
"remoulade.helpers",
"remoulade.api",
],
package_data={"remoulade": ["py.typed"]},
include_package_data=True,
install_requires=dependencies,
python_requires=">=3.8",
extras_require=extra_dependencies,
entry_points={
"console_scripts": [
"remoulade = remoulade.__main__:main",
"remoulade-ls = remoulade.cli.remoulade_ls:main",
"remoulade-run = remoulade.cli.remoulade_run:main",
"remoulade-scheduler = remoulade.cli.remoulade_scheduler:main",
]
},
scripts=["bin/remoulade-gevent"],
classifiers=[
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: System :: Distributed Computing",
"License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
],
)