Files
mongo/pyproject.toml
2023-09-05 16:19:06 +00:00

172 lines
5.2 KiB
TOML

[tool.poetry]
name = "mdb-python-deps"
version = "1.0.0"
description = "MongoDB python dependencies"
authors = ["MongoDB"]
readme = "README.md"
# These packages are included as a TODO if we want to run resmoke with pex
# Currently this does nothing
packages = [
{include = "buildscripts/resmoke.py"},
{include = "buildscripts/mongosymb.py"},
{include = "buildscripts/build_system_options.py"},
{include = "buildscripts/resmokelib"},
{include = "buildscripts/idl"},
{include = "buildscripts/util"}
]
[tool.poetry.dependencies]
python = ">=3.9,<4.0"
# OPTIONAL
# Libdeps depdencies
networkx = "*" # This is also used as a part of build_metrics so it is sort of required
flask = { version = "*", optional = true }
flask-cors = { version = "*", optional = true }
lxml = { version = "*", optional = true }
eventlet = { version = "*", optional = true }
gevent = { version = "*", optional = true }
progressbar2 = { version = "*", optional = true }
cxxfilt = { version = "*", optional = true }
pympler = { version = "*", optional = true }
[tool.poetry.group.aws.dependencies]
boto3 = "<=1.20.26"
botocore = "<=1.23.26"
[tool.poetry.group.build-metrics.dependencies]
jsonschema = "^4.17.3"
psutil = "^5.8.0"
memory-profiler = "^0.61.0"
puremagic = "^1.15"
tabulate = "^0.9.0"
[tool.poetry.group.compile.dependencies]
cheetah3 = "<=3.2.6.post1" # src/mongo/base/generate_error_codes.py
packaging = "<=21.3"
regex = "<=2021.11.10"
requirements_parser = "<=0.3.1"
setuptools = "58.1.0"
[tool.poetry.group.core.dependencies]
psutil = "5.8.0"
pymongo = "4.3.3"
PyYAML = "5.3.1"
types-PyYAML = "~6.0.12.10"
requests = "2.26.0"
typing-extensions = ">3.7.4"
[tool.poetry.group.export.dependencies]
pipx = "1.2.0"
# TODO: Add in pex as we move forward with this
# pex = "^2.1.137"
poetry = "*"
[tool.poetry.group.evergreen.dependencies]
click = "^7.1.2"
inject = "~4.3.1"
GitPython = "~3.1.7"
pydantic = "~1.8.2"
structlog = "~23.1.0"
[tool.poetry.group.external-auth.dependencies]
# These are the dependencies of ldaptor
passlib = "1.7.4"
pyOpenSSL = [
{ version = "19.0.0", markers = "platform_machine == 's390x' or platform_machine == 'ppc64le'" }, # Needed for pinned cryptography package - see SERVER-70845
{ version = "22.0.0", markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" },
]
pyparsing = "2.4.0"
service_identity = "18.1.0"
twisted = "21.2.0"
'zope.interface' = "5.0.0"
ldaptor = "19.0.0"
[tool.poetry.group.idl.dependencies]
unittest-xml-reporting = "3.0.4"
packaging = "21.3"
[tool.poetry.group.jira-client.dependencies]
jira = "<=3.1.1"
requests-oauth = "<=0.4.1"
PyJWT = "<=2.3.0" # https://github.com/pycontribs/jira/issues/247
# We are omitting pycrypto based on https://github.com/pycontribs/jira/pull/629
[tool.poetry.group.lint.dependencies]
# Note: These versions are checked by python modules in buildscripts/linter/
GitPython = "~3.1.7"
mypy = "~1.3.0"
pydocstyle = "6.3.0"
pylint = "2.17.4"
structlog = "~23.1.0"
yamllint = "1.32.0"
yapf = "0.26.0" # latest is 0.40.1, but that causes CI failures
types-setuptools = "57.4.12" # latest is 68.0.0.0, but that causes pip install requirements to fail
types-requests = "2.31.0.1"
tqdm = "*"
colorama = "0.4.6"
[tool.poetry.group.platform.dependencies]
pypiwin32 = {version = ">=223", markers = "platform_machine == 'win32'"}
pywin32 = {version = ">=225", markers = "platform_machine == 'win32'"}
cryptography = [
{ version = "2.3", markers = "platform_machine == 's390x' or platform_machine == 'ppc64le'" }, # Needed for oauthlib to use RSAAlgorithm # Version locked - see SERVER-36618
{ version = "36.0.2", markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" },
]
mongo-ninja-python = [
{ version = "1.11.1.5", markers = "sys_platform == 'linux'" },
]
ninja = [
{ version = ">=1.10.0", markers = "sys_platform != 'linux'" },
]
[tool.poetry.group.testing.dependencies]
curatorbin = "1.2.3"
PyKMIP = "0.10.0"
evergreen-py = "3.4.4"
jinja2 = "2.11.3"
MarkupSafe = "1.1.0" # See SERVER-57036, this is a transitive dependency of jinja2
mock = "4.0.3"
shrub-py = "1.1.4"
ocspresponder = "0.5.0"
flask = "1.1.1"
itsdangerous = "2.0.0"
ocspbuilder = "0.10.2"
Werkzeug = "2.0.3"
blackduck = "1.0.1"
PyGithub = "1.53"
urllib3 = "1.26.7"
distro = "1.5.0"
dnspython = "2.1.0"
proxy-protocol = "0.7.5"
pkce = "1.0.3"
oauthlib = "3.1.1"
requests-oauthlib = "1.3.0"
packaging = "21.3"
docker = "^6.1.2"
mongomock = "4.1.2"
pyjwt = "<=2.3.0"
selenium = "^4.9.1"
geckodriver-autoinstaller = "^0.1.0"
pigz-python = "*"
opentelemetry-api = "*"
opentelemetry-sdk = "*"
# TODO: EVG-20576
# Once the above is merged we can get rid of our dependency on grpc
opentelemetry-exporter-otlp-proto-grpc = [ { version = "*", markers = "platform_machine != 'darwin'" } ] # TODO: SERVER-80336 this should work on macosx
[tool.poetry.group.tooling-metrics.dependencies]
mongo-tooling-metrics = "1.0.8"
# This can be installed with "poetry install -E libdeps"
[tool.poetry.extras]
libdeps = ["flask", "flask-cors", "lxml", "eventlet", "gevent", "progressbar2", "cxxfilt", "pympler"]
# This entrypoint is included as a TODO if we want to run resmoke with pex
# Currently this does nothing
[tool.poetry.scripts]
resmoke = "buildscripts.resmoke:entrypoint"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"