forked from crate/crate-operator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
93 lines (84 loc) · 3 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
# CrateDB Kubernetes Operator
#
# Licensed to Crate.IO GmbH ("Crate") under one or more contributor
# license agreements. See the NOTICE file distributed with this work for
# additional information regarding copyright ownership. Crate licenses
# this file to you under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. You may
# obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# However, if you have executed another commercial license agreement
# with Crate these terms will supersede the license and you may use the
# software solely pursuant to the terms of the relevant commercial agreement.
import os
from pathlib import Path
from setuptools import find_namespace_packages, setup
def cwd() -> Path:
return Path(os.path.dirname(__file__))
def read(path: str) -> str:
filepath: Path = cwd() / path
with open(filepath.absolute(), "r", encoding="utf-8") as f:
return f.read()
setup(
name="crate-operator",
author="Crate.IO GmbH",
author_email="[email protected]",
description="CrateDB Kubernetes Operator",
license="Apache License 2.0",
long_description=read("README.rst"),
long_description_content_type="text/x-rst",
packages=find_namespace_packages(include=["crate.*"]),
include_package_data=True,
package_data={"crate.operator": ["data/*"]},
setup_requires=["setuptools>=70.3.0", "setuptools_scm>=8.1.0"],
install_requires=[
"aiopg==1.4.0",
"bitmath==1.3.3.1",
"kopf==1.35.6",
"kubernetes-asyncio==31.1.0",
"PyYAML<7.0",
"prometheus_client==0.20.0",
"aiohttp==3.10.5",
"wrapt==1.16.0",
],
extras_require={
"docs": [
"sphinx>=5,<7",
"sphinx-autodoc-typehints",
# Pinning this as 0.18 does not work
"docutils==0.17.1",
"Jinja2<3.1",
"alabaster==0.7.13",
],
"testing": [
"faker==18.3.1",
"pytest==8.3.2",
"pytest-aiohttp==1.0.5",
"pytest-asyncio==0.24.0",
"pytest-xdist==3.6.1", # enables parallel testing
"filelock==3.16.0", # used for locks when running in parallel mode
],
"develop": [
"black==22.3.0",
"flake8==3.8.4",
"isort==5.12.0",
"mypy==0.770",
],
},
python_requires=">=3.8",
classifiers=[
"Development Status :: 5 - Production/Stable",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
],
use_scm_version=True,
)