2023-09-05 16:32:12 +02:00
[ 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 = [
2023-10-24 01:23:35 +02:00
{ include = "buildscripts/resmoke.py" } ,
{ include = "buildscripts/mongosymb.py" } ,
{ include = "buildscripts/build_system_options.py" } ,
{ include = "buildscripts/resmokelib" } ,
{ include = "buildscripts/idl" } ,
{ include = "buildscripts/util" } ,
2023-09-05 16:32:12 +02:00
]
[ tool . poetry . dependencies ]
2024-02-15 22:08:05 +01:00
python = ">=3.10,<4.0"
2023-09-05 16:32:12 +02:00
# OPTIONAL
# Libdeps depdencies
2023-10-24 01:23:35 +02:00
networkx = "*" # This is also used as a part of build_metrics so it is sort of required
2023-09-05 16:32:12 +02:00
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 }
2024-10-24 19:26:59 +02:00
pyright = "1.1.382"
2023-09-05 16:32:12 +02:00
[ tool . poetry . group . aws . dependencies ]
2024-08-12 17:16:01 +02:00
boto3 = "^1.34.156"
botocore = "^1.34.156"
2023-09-05 16:32:12 +02:00
[ tool . poetry . group . build-metrics . dependencies ]
2024-08-12 17:16:01 +02:00
jsonschema = "^4.23.0"
psutil = "^6.0.0"
2023-09-05 16:32:12 +02:00
memory-profiler = "^0.61.0"
2024-08-12 17:16:01 +02:00
puremagic = "^1.26"
2023-09-05 16:32:12 +02:00
tabulate = "^0.9.0"
[ tool . poetry . group . compile . dependencies ]
cheetah3 = "<=3.2.6.post1" # src/mongo/base/generate_error_codes.py
2024-08-12 17:16:01 +02:00
packaging = "^23.1"
regex = "^2021.11.10"
setuptools = "^58.1.0"
2024-07-26 22:41:32 +02:00
wheel = "0.37.0"
2023-09-05 16:32:12 +02:00
[ tool . poetry . group . core . dependencies ]
2024-08-12 17:16:01 +02:00
psutil = "^6.0.0"
2024-08-17 01:18:51 +02:00
pymongo = "4.3.3"
2023-09-05 16:32:12 +02:00
PyYAML = "5.3.1"
2024-08-12 17:16:01 +02:00
types-PyYAML = "^6.0.12.20240808"
requests = "^2.32.3"
typing-extensions = "^4.12.2"
2024-05-30 17:54:24 +02:00
typer = "^0.12.3"
2024-08-12 17:16:01 +02:00
tenacity = "^9.0.0"
2023-09-05 16:32:12 +02:00
[ tool . poetry . group . export . dependencies ]
2024-08-12 17:16:01 +02:00
pipx = "1.6.0"
2023-09-05 16:32:12 +02:00
# TODO: Add in pex as we move forward with this
# pex = "^2.1.137"
2024-07-26 22:41:32 +02:00
poetry = "1.8.3"
2023-09-05 16:32:12 +02:00
[ tool . poetry . group . evergreen . dependencies ]
2024-05-09 18:45:32 +02:00
click = "^8.1.7"
2024-08-12 17:16:01 +02:00
inject = "^5.2.1"
GitPython = "^3.1.43"
2023-10-24 01:23:35 +02:00
pydantic = "*"
2024-08-12 17:16:01 +02:00
structlog = "^24.4.0"
2023-09-05 16:32:12 +02:00
[ tool . poetry . group . external-auth . dependencies ]
# These are the dependencies of ldaptor
2024-08-12 17:16:01 +02:00
passlib = "^1.7.4"
2023-09-05 16:32:12 +02:00
pyOpenSSL = [
2023-10-24 01:23:35 +02:00
{ version = "19.0.0" , markers = "platform_machine == 's390x' or platform_machine == 'ppc64le'" } , # Needed for pinned cryptography package - see SERVER-70845
2024-08-31 00:38:23 +02:00
{ version = "22.0.0" , markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" } ,
2023-09-05 16:32:12 +02:00
]
2024-08-12 17:16:01 +02:00
pyparsing = "^2.4.7"
service_identity = "^18.1.0"
twisted = "^24.3.0"
'zope.interface' = "^5.5.2"
2023-09-05 16:32:12 +02:00
ldaptor = "19.0.0"
[ tool . poetry . group . idl . dependencies ]
2023-10-24 01:23:35 +02:00
unittest-xml-reporting = "3.0.4" # Pinned because newer versions require lxml which fails to install
2024-08-12 17:16:01 +02:00
packaging = "^23.1"
2023-09-05 16:32:12 +02:00
[ tool . poetry . group . jira-client . dependencies ]
jira = "<=3.1.1"
requests-oauth = "<=0.4.1"
2024-08-12 17:16:01 +02:00
PyJWT = "^2.9.0"
2023-09-05 16:32:12 +02:00
# 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/
2024-08-12 17:16:01 +02:00
GitPython = "^3.1.7"
mypy = "^1.11.1"
structlog = "^24.4.0"
yamllint = "^1.35.1"
2023-09-05 16:32:12 +02:00
types-setuptools = "57.4.12" # latest is 68.0.0.0, but that causes pip install requirements to fail
2024-08-12 17:16:01 +02:00
types-requests = "^2.32.0.20240712"
2023-09-05 16:32:12 +02:00
tqdm = "*"
2023-10-24 01:23:35 +02:00
colorama = "^0.4.6"
2024-09-10 22:05:59 +02:00
evergreen-lint = "^0.1.9"
2024-08-12 17:16:01 +02:00
ruff = "^0.5.6"
2023-09-05 16:32:12 +02:00
[ tool . poetry . group . platform . dependencies ]
2023-11-28 23:20:17 +01:00
pypiwin32 = { version = ">=223" , markers = "sys_platform == 'win32'" }
pywin32 = { version = ">=225" , markers = "sys_platform == 'win32'" }
2023-09-05 16:32:12 +02:00
cryptography = [
2023-10-24 01:23:35 +02:00
{ version = "2.3" , markers = "platform_machine == 's390x' or platform_machine == 'ppc64le'" } , # Needed for oauthlib to use RSAAlgorithm # Version locked - see SERVER-36618
2024-08-31 00:38:23 +02:00
{ version = "36.0.2" , markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" } ,
2023-09-05 16:32:12 +02:00
]
mongo-ninja-python = [
2023-12-13 18:08:58 +01:00
{ version = "1.11.1.7" , markers = "platform_machine != 's390x' and platform_machine != 'ppc64le'" } ,
2023-09-05 16:32:12 +02:00
]
2023-09-06 23:09:37 +02:00
ninja = [
2023-12-13 18:08:58 +01:00
{ version = ">=1.10.0" , markers = "platform_machine == 's390x' or platform_machine == 'ppc64le'" } ,
2023-09-06 23:09:37 +02:00
]
2023-09-05 16:32:12 +02:00
[ tool . poetry . group . testing . dependencies ]
2024-08-12 17:16:01 +02:00
curatorbin = "^1.2.4"
2023-09-05 16:32:12 +02:00
PyKMIP = "0.10.0"
2024-08-12 17:16:01 +02:00
evergreen-py = "^3.9.0"
jinja2 = "^3.1.4"
mock = "^5.1.0"
2024-10-17 19:11:09 +02:00
shrub-py = "^3.1.4"
2023-10-24 01:23:35 +02:00
ocspresponder = "^0.5.0"
2024-08-12 17:16:01 +02:00
flask = "^2.3.3"
2023-10-24 01:23:35 +02:00
ocspbuilder = "^0.10.2"
# 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"
2024-07-23 18:44:43 +02:00
PyGithub = "^1.58"
2024-08-12 17:16:01 +02:00
urllib3 = "^2.2.2"
distro = "^1.9.0"
dnspython = "^2.6.1"
proxy-protocol = "^0.11.3"
2023-10-24 01:23:35 +02:00
pkce = "^1.0.3"
oauthlib = "^3.1.1"
2024-08-12 17:16:01 +02:00
requests-oauthlib = "^2.0.0"
packaging = "^23.1"
2024-05-24 02:21:14 +02:00
docker = "^7.1.0"
2023-10-24 01:23:35 +02:00
mongomock = "^4.1.2"
2024-08-12 17:16:01 +02:00
pyjwt = "^2.9.0"
selenium = "^4.23.1"
2023-09-05 16:32:12 +02:00
geckodriver-autoinstaller = "^0.1.0"
2023-09-27 01:36:37 +02:00
retry = "^0.9.2"
2024-08-12 17:16:01 +02:00
gdbmongo = "^0.15.0"
googleapis-common-protos = "^1.63.2"
2024-10-22 09:35:06 +02:00
gcovr = "7.2"
2023-09-05 16:32:12 +02:00
opentelemetry-api = "*"
opentelemetry-sdk = "*"
2023-11-15 03:02:44 +01:00
opentelemetry-exporter-otlp-proto-common = "*"
2023-09-05 16:32:12 +02:00
[ tool . poetry . group . tooling-metrics . dependencies ]
mongo-tooling-metrics = "1.0.8"
# This can be installed with "poetry install -E libdeps"
[ tool . poetry . extras ]
2023-10-24 01:23:35 +02:00
libdeps = [
"flask" ,
"flask-cors" ,
"lxml" ,
"eventlet" ,
"gevent" ,
"progressbar2" ,
"cxxfilt" ,
"pympler" ,
]
2023-09-05 16:32:12 +02:00
# 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"
2024-05-14 21:44:42 +02:00
[ tool . ruff ]
2024-05-16 15:17:26 +02:00
extend-exclude = [
2024-05-14 21:44:42 +02:00
"site_scons/third_party" ,
"src/third_party" ,
]
2024-05-21 22:32:18 +02:00
extend-include = [
"SConstruct" ,
"*/SConscript"
]
2024-05-14 21:44:42 +02:00
2024-05-17 00:00:17 +02:00
line-length = 100
target-version = "py310"
2024-05-16 15:17:26 +02:00
[ tool . ruff . lint ]
2024-10-10 19:59:18 +02:00
select = [ "I" ]
2024-05-16 15:17:26 +02:00
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
]
2024-10-24 19:26:59 +02:00
[ 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"
2023-09-05 16:32:12 +02:00
[ build-system ]
requires = [ "poetry-core" ]
build-backend = "poetry.core.masonry.api"