PYTHON-4373 Use requirements files for deps (#1605)
This commit is contained in:
parent
aa8322e1ce
commit
a421c662e6
@ -16,7 +16,7 @@ python:
|
|||||||
# Install pymongo itself.
|
# Install pymongo itself.
|
||||||
- method: pip
|
- method: pip
|
||||||
path: .
|
path: .
|
||||||
- requirements: doc/docs-requirements.txt
|
- requirements: requirements/docs.txt
|
||||||
|
|
||||||
build:
|
build:
|
||||||
os: ubuntu-22.04
|
os: ubuntu-22.04
|
||||||
|
|||||||
@ -2,6 +2,7 @@ include README.md
|
|||||||
include LICENSE
|
include LICENSE
|
||||||
include THIRD-PARTY-NOTICES
|
include THIRD-PARTY-NOTICES
|
||||||
include *.ini
|
include *.ini
|
||||||
|
include requirements.txt
|
||||||
exclude .coveragerc
|
exclude .coveragerc
|
||||||
exclude .git-blame-ignore-revs
|
exclude .git-blame-ignore-revs
|
||||||
exclude .pre-commit-config.yaml
|
exclude .pre-commit-config.yaml
|
||||||
@ -16,9 +17,9 @@ recursive-include doc *.js
|
|||||||
recursive-include doc *.png
|
recursive-include doc *.png
|
||||||
include doc/Makefile
|
include doc/Makefile
|
||||||
include doc/_templates/layout.html
|
include doc/_templates/layout.html
|
||||||
include doc/docs-requirements.txt
|
|
||||||
include doc/make.bat
|
include doc/make.bat
|
||||||
include doc/static/periodic-executor-refs.dot
|
include doc/static/periodic-executor-refs.dot
|
||||||
|
recursive-include requirements *.txt
|
||||||
recursive-include tools *.py
|
recursive-include tools *.py
|
||||||
include tools/README.rst
|
include tools/README.rst
|
||||||
include green_framework_test.py
|
include green_framework_test.py
|
||||||
|
|||||||
1
requirements.txt
Normal file
1
requirements.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
dnspython>=1.16.0,<3.0.0
|
||||||
1
requirements/aws.txt
Normal file
1
requirements/aws.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
pymongo-auth-aws>=1.1.0,<2.0.0
|
||||||
3
requirements/encryption.txt
Normal file
3
requirements/encryption.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
pymongo-auth-aws>=1.1.0,<2.0.0
|
||||||
|
pymongocrypt>=1.6.0,<2.0.0
|
||||||
|
certifi;os.name=='nt' or sys_platform=='darwin'
|
||||||
2
requirements/gssapi.txt
Normal file
2
requirements/gssapi.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pykerberos;os.name!='nt'
|
||||||
|
winkerberos>=0.5.0;os.name=='nt'
|
||||||
12
requirements/ocsp.txt
Normal file
12
requirements/ocsp.txt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# PyOpenSSL 17.0.0 introduced support for OCSP. 17.1.0 introduced
|
||||||
|
# a related feature we need. 17.2.0 fixes a bug
|
||||||
|
# in set_default_verify_paths we should really avoid.
|
||||||
|
# service_identity 18.1.0 introduced support for IP addr matching.
|
||||||
|
# Fallback to certifi on Windows if we can't load CA certs from the system
|
||||||
|
# store and just use certifi on macOS.
|
||||||
|
# https://www.pyopenssl.org/en/stable/api/ssl.html#OpenSSL.SSL.Context.set_default_verify_paths
|
||||||
|
certifi;os.name=='nt' or sys_platform=='darwin'
|
||||||
|
pyopenssl>=17.2.0
|
||||||
|
requests<3.0.0
|
||||||
|
cryptography>=2.5
|
||||||
|
service_identity>=18.1.0
|
||||||
1
requirements/snappy.txt
Normal file
1
requirements/snappy.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
python-snappy
|
||||||
1
requirements/test.txt
Normal file
1
requirements/test.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
pytest>=7
|
||||||
1
requirements/zstd.txt
Normal file
1
requirements/zstd.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
zstandard
|
||||||
45
setup.py
45
setup.py
@ -137,43 +137,26 @@ by this python implementation.\n
|
|||||||
ext_modules = []
|
ext_modules = []
|
||||||
|
|
||||||
|
|
||||||
dependencies = [
|
def parse_reqs_file(fname):
|
||||||
"dnspython>=1.16.0,<3.0.0",
|
with open(fname) as fid:
|
||||||
]
|
lines = [li.strip() for li in fid.readlines()]
|
||||||
|
return [li for li in lines if li and not li.startswith("#")]
|
||||||
|
|
||||||
|
|
||||||
|
dependencies = parse_reqs_file("requirements.txt")
|
||||||
|
|
||||||
extras_require = dict(
|
extras_require = dict(
|
||||||
aws=[
|
aws=parse_reqs_file("requirements/aws.txt"),
|
||||||
"pymongo-auth-aws>=1.1.0,<2.0.0",
|
encryption=parse_reqs_file("requirements/encryption.txt"),
|
||||||
],
|
gssapi=parse_reqs_file("requirements/gssapi.txt"),
|
||||||
encryption=[
|
ocsp=parse_reqs_file("requirements/ocsp.txt"),
|
||||||
"pymongo[aws]",
|
snappy=parse_reqs_file("requirements/snappy.txt"),
|
||||||
"pymongocrypt>=1.6.0,<2.0.0",
|
|
||||||
"certifi;os.name=='nt' or sys_platform=='darwin'",
|
|
||||||
],
|
|
||||||
gssapi=["pykerberos;os.name!='nt'", "winkerberos>=0.5.0;os.name=='nt'"],
|
|
||||||
# PyOpenSSL 17.0.0 introduced support for OCSP. 17.1.0 introduced
|
|
||||||
# a related feature we need. 17.2.0 fixes a bug
|
|
||||||
# in set_default_verify_paths we should really avoid.
|
|
||||||
# service_identity 18.1.0 introduced support for IP addr matching.
|
|
||||||
# Fallback to certifi on Windows if we can't load CA certs from the system
|
|
||||||
# store and just use certifi on macOS.
|
|
||||||
# https://www.pyopenssl.org/en/stable/api/ssl.html#OpenSSL.SSL.Context.set_default_verify_paths
|
|
||||||
ocsp=[
|
|
||||||
"certifi;os.name=='nt' or sys_platform=='darwin'",
|
|
||||||
"pyopenssl>=17.2.0",
|
|
||||||
"requests<3.0.0",
|
|
||||||
"cryptography>=2.5",
|
|
||||||
"service_identity>=18.1.0",
|
|
||||||
],
|
|
||||||
snappy=["python-snappy"],
|
|
||||||
# PYTHON-3423 Removed in 4.3 but kept here to avoid pip warnings.
|
# PYTHON-3423 Removed in 4.3 but kept here to avoid pip warnings.
|
||||||
srv=[],
|
srv=[],
|
||||||
tls=[],
|
tls=[],
|
||||||
# PYTHON-2133 Removed in 4.0 but kept here to avoid pip warnings.
|
# PYTHON-2133 Removed in 4.0 but kept here to avoid pip warnings.
|
||||||
zstd=[
|
zstd=parse_reqs_file("requirements/zstd.txt"),
|
||||||
"zstandard",
|
test=parse_reqs_file("requirements/test.txt"),
|
||||||
],
|
|
||||||
test=["pytest>=7"],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
|
|||||||
2
tox.ini
2
tox.ini
@ -144,7 +144,7 @@ commands =
|
|||||||
[testenv:doc]
|
[testenv:doc]
|
||||||
description = build sphinx docs
|
description = build sphinx docs
|
||||||
deps =
|
deps =
|
||||||
-rdoc/docs-requirements.txt
|
-rrequirements/docs.txt
|
||||||
commands =
|
commands =
|
||||||
sphinx-build -W -b html doc ./doc/_build/html
|
sphinx-build -W -b html doc ./doc/_build/html
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user