mirror of https://github.com/mongodb/mongo
299 lines
8.8 KiB
TOML
299 lines
8.8 KiB
TOML
[project]
|
|
name = "mdb-python-deps"
|
|
version = "1.0.0"
|
|
requires-python = ">=3.10,<4.0"
|
|
description = "MongoDB python dependencies"
|
|
authors = [ { name = "MongoDB" } ]
|
|
package-mode = false
|
|
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" },
|
|
]
|
|
dependencies = [
|
|
"networkx", # This is also used as a part of build_metrics so it is sort of required
|
|
"pyright (==1.1.393)",
|
|
"flask",
|
|
"flask-cors",
|
|
"lxml",
|
|
"eventlet",
|
|
"gevent",
|
|
"progressbar2",
|
|
"cxxfilt",
|
|
"pympler",
|
|
"faker (==37.1.0)",
|
|
"pymongo (==4.12.0)",
|
|
]
|
|
|
|
[tool.poetry.dependencies]
|
|
python = ">=3.10,<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 = ">=4.0.2", 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 }
|
|
pyright = "1.1.393"
|
|
|
|
[tool.poetry.group.aws.dependencies]
|
|
boto3 = "^1.34.156"
|
|
botocore = "^1.34.156"
|
|
|
|
[tool.poetry.group.build-metrics.dependencies]
|
|
jsonschema = "^4.23.0"
|
|
psutil = "^6.0.0"
|
|
memory-profiler = "^0.61.0"
|
|
puremagic = "^1.26"
|
|
tabulate = "^0.9.0"
|
|
|
|
[tool.poetry.group.compile.dependencies]
|
|
ct3 = "3.4.0.post5" # Renamed from cheetah3
|
|
packaging = "^24.0"
|
|
regex = "^2024.11.6"
|
|
setuptools = "^58.1.0"
|
|
wheel = "0.45.0"
|
|
|
|
[tool.poetry.group.core.dependencies]
|
|
psutil = "^6.0.0"
|
|
pymongo = "4.12.0"
|
|
PyYAML = "^6.0.2"
|
|
types-PyYAML = "^6.0.12.20240808"
|
|
requests = "^2.32.3"
|
|
typing-extensions = "^4.12.2"
|
|
typer = "^0.12.3"
|
|
tenacity = "^9.0.0"
|
|
|
|
# specifically rapidyaml is broken on atlas distros with powercycle.
|
|
# current we exclude this when running poetry install in powercycle.
|
|
[tool.poetry.group.powercycle-incompatible.dependencies]
|
|
rapidyaml = {git = "https://github.com/mongodb-forks/rapidyaml.git@master", rev = "a5d485fd44719e1c03e059177fc1f695fc462b66", markers = "platform_system != 'Windows'"}
|
|
|
|
[tool.poetry.group.export.dependencies]
|
|
pipx = "1.6.0"
|
|
# TODO: Add in pex as we move forward with this
|
|
# pex = "^2.1.137"
|
|
poetry = "2.0.0"
|
|
|
|
[tool.poetry.group.evergreen.dependencies]
|
|
click = "^8.1.7"
|
|
inject = "^5.2.1"
|
|
GitPython = "^3.1.43"
|
|
pydantic = "*"
|
|
structlog = "^24.4.0"
|
|
|
|
[tool.poetry.group.external-auth.dependencies]
|
|
# These are the dependencies of ldaptor
|
|
passlib = "^1.7.4"
|
|
pyOpenSSL = "^25.0.0"
|
|
pyparsing = "^2.4.7"
|
|
service_identity = "^18.1.0"
|
|
twisted = "^24.3.0"
|
|
'zope.interface' = "^5.5.2"
|
|
ldaptor = "19.0.0"
|
|
|
|
[tool.poetry.group.idl.dependencies]
|
|
unittest-xml-reporting = "3.0.4" # Pinned because newer versions require lxml which fails to install
|
|
packaging = "^24.0"
|
|
|
|
[tool.poetry.group.jira-client.dependencies]
|
|
jira = "<=3.1.1"
|
|
requests-oauth = "<=0.4.1"
|
|
PyJWT = "^2.9.0"
|
|
# 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.11.1"
|
|
structlog = "^24.4.0"
|
|
yamllint = "^1.35.1"
|
|
types-setuptools = "57.4.12" # latest is 68.0.0.0, but that causes pip install requirements to fail
|
|
types-requests = "^2.32.0.20240712"
|
|
tqdm = "*"
|
|
colorama = "^0.4.6"
|
|
evergreen-lint = "^0.1.10"
|
|
ruff = "^0.6.7"
|
|
license-expression = "^30.4.4"
|
|
|
|
[tool.poetry.group.modules_poc.dependencies]
|
|
codeowners = { version = "^0.8.0", markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" }
|
|
progressbar2 = { version = "^4.4.2", markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" }
|
|
textual = {extras = ["syntax"], version = "^3.0.0", markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" }
|
|
tree-sitter = { version = "^0.24.0", markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" }
|
|
tree-sitter-cpp = { version = "^0.23.4", markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" }
|
|
pyzstd = { version = "^0.16.2", markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" }
|
|
cffi = "^2.0.0"
|
|
|
|
[tool.poetry.group.platform.dependencies]
|
|
pypiwin32 = { version = ">=223", markers = "sys_platform == 'win32'" }
|
|
pywin32 = { version = ">=225", markers = "sys_platform == 'win32'" }
|
|
cryptography = "^44.0.2"
|
|
|
|
[tool.poetry.group.testing.dependencies]
|
|
curatorbin = "^1.2.4"
|
|
PyKMIP = "0.10.0"
|
|
kafka-python = "^2.0.2"
|
|
avro-python3 = "^1.10.2"
|
|
evergreen-py = "^3.11.0"
|
|
mock = "^5.1.0"
|
|
shrub-py = "^3.1.4"
|
|
ocspresponder = "^0.5.0"
|
|
flask = "^2.3.3"
|
|
ocspbuilder = "^0.10.2"
|
|
ecdsa = "^0.19.0"
|
|
asn1crypto = "^1.5.1"
|
|
toml = ">=0.10.2,<0.11.0"
|
|
filelock = "^3.18.0"
|
|
numpy = { version = "2.2.6", markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" }
|
|
|
|
# Werkzeug is needed for ocsp tests in ocsp_mock.py
|
|
# version 3+ fails with "ImportError: cannot import name 'url_quote' from 'werkzeug.urls'"
|
|
Werkzeug = "<=2.3.7"
|
|
PyGithub = "^1.58"
|
|
urllib3 = "^2.2.2"
|
|
distro = "^1.9.0"
|
|
dnspython = "^2.6.1"
|
|
proxy-protocol = "^0.11.3"
|
|
pkce = "^1.0.3"
|
|
oauthlib = "^3.1.1"
|
|
requests-oauthlib = "^2.0.0"
|
|
packaging = "^24.0"
|
|
docker = "^7.1.0"
|
|
mongomock = "^4.1.2"
|
|
pyjwt = "^2.9.0"
|
|
selenium = "^4.23.1"
|
|
geckodriver-autoinstaller = "^0.1.0"
|
|
retry = "^0.9.2"
|
|
gdbmongo = "^0.16.0"
|
|
googleapis-common-protos = "^1.63.2"
|
|
google-api-python-client="^2.19.0"
|
|
google-auth-oauthlib="^1.2.1"
|
|
gcovr = "7.2"
|
|
opentelemetry-api = "*"
|
|
opentelemetry-sdk = "*"
|
|
opentelemetry-exporter-otlp-proto-common = "*"
|
|
opentelemetry-exporter-otlp-proto-grpc = { version = "*", markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" }
|
|
timeout-decorator = "0.5.0"
|
|
|
|
# This can be installed with "poetry install -E libdeps"
|
|
[project.optional-dependencies]
|
|
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
|
|
[project.scripts]
|
|
resmoke = "buildscripts.resmoke:entrypoint"
|
|
|
|
[tool.ruff]
|
|
extend-exclude = [
|
|
"src/third_party",
|
|
]
|
|
|
|
line-length = 100
|
|
target-version = "py310"
|
|
|
|
[tool.ruff.lint]
|
|
extend-select = [
|
|
"I", # isort
|
|
]
|
|
ignore = [
|
|
"E402", # module-import-not-at-top-of-file
|
|
"E721", # type-comparison
|
|
"E722", # bare-except
|
|
"E741", # ambiguous-variable-name
|
|
"F402", # import-shadowed-by-loop-var
|
|
"F403", # undefined-local-with-import-star
|
|
"F405", # undefined-local-with-import-star-usage
|
|
"F811", # redefined-while-unused
|
|
"F821", # undefined-name
|
|
"F822", # undefined-export
|
|
]
|
|
|
|
[tool.ruff.lint.isort]
|
|
known-first-party = ["buildscripts", "buildscripts/idl", "evergreen", "tools"]
|
|
|
|
[tool.pyright]
|
|
include = [
|
|
"buildscripts",
|
|
"src"
|
|
]
|
|
exclude = [
|
|
"**/third_party/**",
|
|
"**/external/**"
|
|
]
|
|
pythonVersion = "3.10"
|
|
|
|
# These should be set to "error" for basic functionality
|
|
reportInvalidTypeForm = "none"
|
|
reportMissingImports = "none"
|
|
reportUndefinedVariable = "none"
|
|
reportAbstractUsage = "none"
|
|
reportAssertTypeFailure = "none"
|
|
reportInconsistentOverload = "none"
|
|
reportInvalidTypeArguments = "none"
|
|
reportNoOverloadImplementation = "none"
|
|
reportOptionalCall = "none"
|
|
reportOptionalContextManager = "none"
|
|
reportRedeclaration = "none"
|
|
reportUnboundVariable = "none"
|
|
reportUnhashable = "none"
|
|
reportUnusedCoroutine = "none"
|
|
reportUnusedExcept = "none"
|
|
|
|
# These should be set to "warning" or "error" for standard checks
|
|
reportArgumentType = "none"
|
|
reportAssignmentType = "none"
|
|
reportAttributeAccessIssue = "none"
|
|
reportCallIssue = "none"
|
|
reportGeneralTypeIssues = "none"
|
|
reportIndexIssue = "none"
|
|
reportOperatorIssue = "none"
|
|
reportOptionalSubscript = "none"
|
|
reportOptionalMemberAccess = "none"
|
|
reportOptionalIterable = "none"
|
|
reportOptionalOperand = "none"
|
|
reportReturnType = "none"
|
|
reportTypedDictNotRequiredAccess = "none"
|
|
reportPrivateImportUsage = "none"
|
|
reportFunctionMemberAccess = "none"
|
|
reportIncompatibleMethodOverride = "none"
|
|
reportIncompatibleVariableOverride = "none"
|
|
reportOverlappingOverload = "none"
|
|
reportPossiblyUnboundVariable = "none"
|
|
|
|
# These are additional checks for strict mode
|
|
reportMissingTypeStubs = "none"
|
|
reportAssertAlwaysTrue = "none"
|
|
reportInvalidStringEscapeSequence = "none"
|
|
reportInvalidTypeVarUse = "none"
|
|
reportSelfClsParameterName = "none"
|
|
reportUnsupportedDunderAll = "none"
|
|
reportUnusedExpression = "none"
|
|
reportWildcardImportFromLibrary = "none"
|
|
reportConstantRedefinition = "none"
|
|
|
|
|
|
[build-system]
|
|
requires = ["poetry-core"]
|
|
build-backend = "poetry.core.masonry.api"
|