diff --git a/api/poetry.lock b/api/poetry.lock index 3dbfd378e..6b09819ae 100644 --- a/api/poetry.lock +++ b/api/poetry.lock @@ -101,33 +101,33 @@ yaml = ["PyYAML"] [[package]] name = "black" -version = "23.12.1" +version = "24.8.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-23.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0aaf6041986767a5e0ce663c7a2f0e9eaf21e6ff87a5f95cbf3675bfd4c41d2"}, - {file = "black-23.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c88b3711d12905b74206227109272673edce0cb29f27e1385f33b0163c414bba"}, - {file = "black-23.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a920b569dc6b3472513ba6ddea21f440d4b4c699494d2e972a1753cdc25df7b0"}, - {file = "black-23.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:3fa4be75ef2a6b96ea8d92b1587dd8cb3a35c7e3d51f0738ced0781c3aa3a5a3"}, - {file = "black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba"}, - {file = "black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b"}, - {file = "black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59"}, - {file = "black-23.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50"}, - {file = "black-23.12.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:25e57fd232a6d6ff3f4478a6fd0580838e47c93c83eaf1ccc92d4faf27112c4e"}, - {file = "black-23.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2d9e13db441c509a3763a7a3d9a49ccc1b4e974a47be4e08ade2a228876500ec"}, - {file = "black-23.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1bd9c210f8b109b1762ec9fd36592fdd528485aadb3f5849b2740ef17e674e"}, - {file = "black-23.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:ae76c22bde5cbb6bfd211ec343ded2163bba7883c7bc77f6b756a1049436fbb9"}, - {file = "black-23.12.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1fa88a0f74e50e4487477bc0bb900c6781dbddfdfa32691e780bf854c3b4a47f"}, - {file = "black-23.12.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a4d6a9668e45ad99d2f8ec70d5c8c04ef4f32f648ef39048d010b0689832ec6d"}, - {file = "black-23.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b18fb2ae6c4bb63eebe5be6bd869ba2f14fd0259bda7d18a46b764d8fb86298a"}, - {file = "black-23.12.1-cp38-cp38-win_amd64.whl", hash = "sha256:c04b6d9d20e9c13f43eee8ea87d44156b8505ca8a3c878773f68b4e4812a421e"}, - {file = "black-23.12.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3e1b38b3135fd4c025c28c55ddfc236b05af657828a8a6abe5deec419a0b7055"}, - {file = "black-23.12.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4f0031eaa7b921db76decd73636ef3a12c942ed367d8c3841a0739412b260a54"}, - {file = "black-23.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97e56155c6b737854e60a9ab1c598ff2533d57e7506d97af5481141671abf3ea"}, - {file = "black-23.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:dd15245c8b68fe2b6bd0f32c1556509d11bb33aec9b5d0866dd8e2ed3dba09c2"}, - {file = "black-23.12.1-py3-none-any.whl", hash = "sha256:78baad24af0f033958cad29731e27363183e140962595def56423e626f4bee3e"}, - {file = "black-23.12.1.tar.gz", hash = "sha256:4ce3ef14ebe8d9509188014d96af1c456a910d5b5cbf434a09fef7e024b3d0d5"}, + {file = "black-24.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:09cdeb74d494ec023ded657f7092ba518e8cf78fa8386155e4a03fdcc44679e6"}, + {file = "black-24.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:81c6742da39f33b08e791da38410f32e27d632260e599df7245cccee2064afeb"}, + {file = "black-24.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:707a1ca89221bc8a1a64fb5e15ef39cd755633daa672a9db7498d1c19de66a42"}, + {file = "black-24.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d6417535d99c37cee4091a2f24eb2b6d5ec42b144d50f1f2e436d9fe1916fe1a"}, + {file = "black-24.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fb6e2c0b86bbd43dee042e48059c9ad7830abd5c94b0bc518c0eeec57c3eddc1"}, + {file = "black-24.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:837fd281f1908d0076844bc2b801ad2d369c78c45cf800cad7b61686051041af"}, + {file = "black-24.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62e8730977f0b77998029da7971fa896ceefa2c4c4933fcd593fa599ecbf97a4"}, + {file = "black-24.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:72901b4913cbac8972ad911dc4098d5753704d1f3c56e44ae8dce99eecb0e3af"}, + {file = "black-24.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c046c1d1eeb7aea9335da62472481d3bbf3fd986e093cffd35f4385c94ae368"}, + {file = "black-24.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:649f6d84ccbae73ab767e206772cc2d7a393a001070a4c814a546afd0d423aed"}, + {file = "black-24.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b59b250fdba5f9a9cd9d0ece6e6d993d91ce877d121d161e4698af3eb9c1018"}, + {file = "black-24.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e55d30d44bed36593c3163b9bc63bf58b3b30e4611e4d88a0c3c239930ed5b2"}, + {file = "black-24.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:505289f17ceda596658ae81b61ebbe2d9b25aa78067035184ed0a9d855d18afd"}, + {file = "black-24.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b19c9ad992c7883ad84c9b22aaa73562a16b819c1d8db7a1a1a49fb7ec13c7d2"}, + {file = "black-24.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f13f7f386f86f8121d76599114bb8c17b69d962137fc70efe56137727c7047e"}, + {file = "black-24.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:f490dbd59680d809ca31efdae20e634f3fae27fba3ce0ba3208333b713bc3920"}, + {file = "black-24.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eab4dd44ce80dea27dc69db40dab62d4ca96112f87996bca68cd75639aeb2e4c"}, + {file = "black-24.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3c4285573d4897a7610054af5a890bde7c65cb466040c5f0c8b732812d7f0e5e"}, + {file = "black-24.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e84e33b37be070ba135176c123ae52a51f82306def9f7d063ee302ecab2cf47"}, + {file = "black-24.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:73bbf84ed136e45d451a260c6b73ed674652f90a2b3211d6a35e78054563a9bb"}, + {file = "black-24.8.0-py3-none-any.whl", hash = "sha256:972085c618ee94f402da1af548a4f218c754ea7e5dc70acb168bfaca4c2542ed"}, + {file = "black-24.8.0.tar.gz", hash = "sha256:2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f"}, ] [package.dependencies] @@ -610,13 +610,13 @@ doc = ["Sphinx", "sphinx-rtd-theme", "sphinxcontrib-spelling"] [[package]] name = "faker" -version = "19.13.0" +version = "28.4.1" description = "Faker is a Python package that generates fake data for you." optional = false python-versions = ">=3.8" files = [ - {file = "Faker-19.13.0-py3-none-any.whl", hash = "sha256:da880a76322db7a879c848a0771e129338e0a680a9f695fd9a3e7a6ac82b45e1"}, - {file = "Faker-19.13.0.tar.gz", hash = "sha256:14ccb0aec342d33aa3889a864a56e5b3c2d56bce1b89f9189f4fbc128b9afc1e"}, + {file = "Faker-28.4.1-py3-none-any.whl", hash = "sha256:e59c01d1e8b8e20a83255ab8232c143cb2af3b4f5ab6a3f5ce495f385ad8ab4c"}, + {file = "faker-28.4.1.tar.gz", hash = "sha256:4294d169255a045990720d6f3fa4134b764a4cdf46ef0d3c7553d2506f1adaa1"}, ] [package.dependencies] @@ -780,13 +780,13 @@ test = ["objgraph", "psutil"] [[package]] name = "gunicorn" -version = "22.0.0" +version = "23.0.0" description = "WSGI HTTP Server for UNIX" optional = false python-versions = ">=3.7" files = [ - {file = "gunicorn-22.0.0-py3-none-any.whl", hash = "sha256:350679f91b24062c86e386e198a15438d53a7a8207235a78ba1b53df4c4378d9"}, - {file = "gunicorn-22.0.0.tar.gz", hash = "sha256:4a0b436239ff76fb33f11c07a16482c521a7e09c1ce3cc293c2330afe01bec63"}, + {file = "gunicorn-23.0.0-py3-none-any.whl", hash = "sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d"}, + {file = "gunicorn-23.0.0.tar.gz", hash = "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec"}, ] [package.dependencies] @@ -1040,48 +1040,49 @@ files = [ [[package]] name = "moto" -version = "4.2.14" +version = "5.0.14" description = "" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "moto-4.2.14-py2.py3-none-any.whl", hash = "sha256:6d242dbbabe925bb385ddb6958449e5c827670b13b8e153ed63f91dbdb50372c"}, - {file = "moto-4.2.14.tar.gz", hash = "sha256:8f9263ca70b646f091edcc93e97cda864a542e6d16ed04066b1370ed217bd190"}, + {file = "moto-5.0.14-py2.py3-none-any.whl", hash = "sha256:c738ffe85d3844ef37b865951736c4faf2e0f3e4f05db87bdad97a6c01b88174"}, + {file = "moto-5.0.14.tar.gz", hash = "sha256:0f849243269fd03372426c302b18cb605302da32620d7f0266be6a40735b2acd"}, ] [package.dependencies] boto3 = ">=1.9.201" -botocore = ">=1.12.201" +botocore = ">=1.14.0" cryptography = ">=3.3.1" Jinja2 = ">=2.10.1" -py-partiql-parser = {version = "0.5.0", optional = true, markers = "extra == \"s3\""} +py-partiql-parser = {version = "0.5.6", optional = true, markers = "extra == \"s3\""} python-dateutil = ">=2.1,<3.0.0" PyYAML = {version = ">=5.1", optional = true, markers = "extra == \"s3\""} requests = ">=2.5" -responses = ">=0.13.0" +responses = ">=0.15.0" werkzeug = ">=0.5,<2.2.0 || >2.2.0,<2.2.1 || >2.2.1" xmltodict = "*" [package.extras] -all = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", "multipart", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.0)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] -apigateway = ["PyYAML (>=5.1)", "ecdsa (!=0.15)", "openapi-spec-validator (>=0.5.0)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"] -apigatewayv2 = ["PyYAML (>=5.1)"] +all = ["PyYAML (>=5.1)", "antlr4-python3-runtime", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "graphql-core", "joserfc (>=0.9.0)", "jsondiff (>=1.1.2)", "jsonpath-ng", "multipart", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.6)", "pyparsing (>=3.0.7)", "setuptools"] +apigateway = ["PyYAML (>=5.1)", "joserfc (>=0.9.0)", "openapi-spec-validator (>=0.5.0)"] +apigatewayv2 = ["PyYAML (>=5.1)", "openapi-spec-validator (>=0.5.0)"] appsync = ["graphql-core"] awslambda = ["docker (>=3.0.0)"] batch = ["docker (>=3.0.0)"] -cloudformation = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.0)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] -cognitoidp = ["ecdsa (!=0.15)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"] -dynamodb = ["docker (>=3.0.0)", "py-partiql-parser (==0.5.0)"] -dynamodbstreams = ["docker (>=3.0.0)", "py-partiql-parser (==0.5.0)"] -ec2 = ["sshpubkeys (>=3.1.0)"] +cloudformation = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "graphql-core", "joserfc (>=0.9.0)", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.6)", "pyparsing (>=3.0.7)", "setuptools"] +cognitoidp = ["joserfc (>=0.9.0)"] +dynamodb = ["docker (>=3.0.0)", "py-partiql-parser (==0.5.6)"] +dynamodbstreams = ["docker (>=3.0.0)", "py-partiql-parser (==0.5.6)"] +events = ["jsonpath-ng"] glue = ["pyparsing (>=3.0.7)"] iotdata = ["jsondiff (>=1.1.2)"] -proxy = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=2.5.1)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", "multipart", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.0)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] -resourcegroupstaggingapi = ["PyYAML (>=5.1)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.0)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)"] -s3 = ["PyYAML (>=5.1)", "py-partiql-parser (==0.5.0)"] -s3crc32c = ["PyYAML (>=5.1)", "crc32c", "py-partiql-parser (==0.5.0)"] -server = ["PyYAML (>=5.1)", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "ecdsa (!=0.15)", "flask (!=2.2.0,!=2.2.1)", "flask-cors", "graphql-core", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.0)", "pyparsing (>=3.0.7)", "python-jose[cryptography] (>=3.1.0,<4.0.0)", "setuptools", "sshpubkeys (>=3.1.0)"] +proxy = ["PyYAML (>=5.1)", "antlr4-python3-runtime", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=2.5.1)", "graphql-core", "joserfc (>=0.9.0)", "jsondiff (>=1.1.2)", "jsonpath-ng", "multipart", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.6)", "pyparsing (>=3.0.7)", "setuptools"] +resourcegroupstaggingapi = ["PyYAML (>=5.1)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "graphql-core", "joserfc (>=0.9.0)", "jsondiff (>=1.1.2)", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.6)", "pyparsing (>=3.0.7)"] +s3 = ["PyYAML (>=5.1)", "py-partiql-parser (==0.5.6)"] +s3crc32c = ["PyYAML (>=5.1)", "crc32c", "py-partiql-parser (==0.5.6)"] +server = ["PyYAML (>=5.1)", "antlr4-python3-runtime", "aws-xray-sdk (>=0.93,!=0.96)", "cfn-lint (>=0.40.0)", "docker (>=3.0.0)", "flask (!=2.2.0,!=2.2.1)", "flask-cors", "graphql-core", "joserfc (>=0.9.0)", "jsondiff (>=1.1.2)", "jsonpath-ng", "openapi-spec-validator (>=0.5.0)", "py-partiql-parser (==0.5.6)", "pyparsing (>=3.0.7)", "setuptools"] ssm = ["PyYAML (>=5.1)"] +stepfunctions = ["antlr4-python3-runtime", "jsonpath-ng"] xray = ["aws-xray-sdk (>=0.93,!=0.96)", "setuptools"] [[package]] @@ -1317,13 +1318,13 @@ files = [ [[package]] name = "py-partiql-parser" -version = "0.5.0" +version = "0.5.6" description = "Pure Python PartiQL Parser" optional = false python-versions = "*" files = [ - {file = "py-partiql-parser-0.5.0.tar.gz", hash = "sha256:427a662e87d51a0a50150fc8b75c9ebb4a52d49129684856c40c88b8c8e027e4"}, - {file = "py_partiql_parser-0.5.0-py3-none-any.whl", hash = "sha256:dc454c27526adf62deca5177ea997bf41fac4fd109c5d4c8d81f984de738ba8f"}, + {file = "py_partiql_parser-0.5.6-py2.py3-none-any.whl", hash = "sha256:622d7b0444becd08c1f4e9e73b31690f4b1c309ab6e5ed45bf607fe71319309f"}, + {file = "py_partiql_parser-0.5.6.tar.gz", hash = "sha256:6339f6bf85573a35686529fc3f491302e71dd091711dfe8df3be89a93767f97b"}, ] [package.extras] @@ -1483,17 +1484,22 @@ yaml = ["pyyaml (>=6.0.1)"] [[package]] name = "pydot" -version = "1.4.2" +version = "3.0.1" description = "Python interface to Graphviz's Dot" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "pydot-1.4.2-py2.py3-none-any.whl", hash = "sha256:66c98190c65b8d2e2382a441b4c0edfdb4f4c025ef9cb9874de478fb0793a451"}, - {file = "pydot-1.4.2.tar.gz", hash = "sha256:248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d"}, + {file = "pydot-3.0.1-py3-none-any.whl", hash = "sha256:43f1e878dc1ff7c1c2e3470a6999d4e9e97771c5c862440c2f0af0ba844c231f"}, + {file = "pydot-3.0.1.tar.gz", hash = "sha256:e18cf7f287c497d77b536a3d20a46284568fea390776dface6eabbdf1b1b5efc"}, ] [package.dependencies] -pyparsing = ">=2.1.4" +pyparsing = ">=3.0.9" + +[package.extras] +dev = ["chardet", "parameterized", "ruff"] +release = ["zest.releaser[recommended]"] +tests = ["chardet", "parameterized", "ruff", "tox", "unittest-parallel"] [[package]] name = "pygments" @@ -1525,37 +1531,23 @@ diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pytest" -version = "7.4.4" +version = "8.3.3" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, + {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, + {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, ] [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" +pluggy = ">=1.5,<2" [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pytest-lazy-fixture" -version = "0.6.3" -description = "It helps to use fixtures in pytest.mark.parametrize" -optional = false -python-versions = "*" -files = [ - {file = "pytest-lazy-fixture-0.6.3.tar.gz", hash = "sha256:0e7d0c7f74ba33e6e80905e9bfd81f9d15ef9a790de97993e34213deb5ad10ac"}, - {file = "pytest_lazy_fixture-0.6.3-py3-none-any.whl", hash = "sha256:e0b379f38299ff27a653f03eaa69b08a6fd4484e46fd1c9907d984b9f9daeda6"}, -] - -[package.dependencies] -pytest = ">=3.2.5" +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-watch" @@ -1791,19 +1783,23 @@ SQLAlchemy = ">=0.5" [[package]] name = "setuptools" -version = "68.2.2" +version = "75.1.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, - {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, + {file = "setuptools-75.1.0-py3-none-any.whl", hash = "sha256:35ab7fd3bcd95e6b7fd704e4a1539513edad446c097797f2985e0e4b960772f2"}, + {file = "setuptools-75.1.0.tar.gz", hash = "sha256:d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] +core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"] [[package]] name = "six" @@ -1818,24 +1814,28 @@ files = [ [[package]] name = "smart-open" -version = "6.4.0" +version = "7.0.4" description = "Utils for streaming large files (S3, HDFS, GCS, Azure Blob Storage, gzip, bz2...)" optional = false -python-versions = ">=3.6,<4.0" +python-versions = "<4.0,>=3.7" files = [ - {file = "smart_open-6.4.0-py3-none-any.whl", hash = "sha256:8d3ef7e6997e8e42dd55c74166ed21e6ac70664caa32dd940b26d54a8f6b4142"}, - {file = "smart_open-6.4.0.tar.gz", hash = "sha256:be3c92c246fbe80ebce8fbacb180494a481a77fcdcb7c1aadb2ea5b9c2bee8b9"}, + {file = "smart_open-7.0.4-py3-none-any.whl", hash = "sha256:4e98489932b3372595cddc075e6033194775165702887216b65eba760dfd8d47"}, + {file = "smart_open-7.0.4.tar.gz", hash = "sha256:62b65852bdd1d1d516839fcb1f6bc50cd0f16e05b4ec44b52f43d38bcb838524"}, ] +[package.dependencies] +wrapt = "*" + [package.extras] -all = ["azure-common", "azure-core", "azure-storage-blob", "boto3", "google-cloud-storage (>=2.6.0)", "paramiko", "requests"] +all = ["azure-common", "azure-core", "azure-storage-blob", "boto3", "google-cloud-storage (>=2.6.0)", "paramiko", "requests", "zstandard"] azure = ["azure-common", "azure-core", "azure-storage-blob"] gcs = ["google-cloud-storage (>=2.6.0)"] http = ["requests"] s3 = ["boto3"] ssh = ["paramiko"] -test = ["azure-common", "azure-core", "azure-storage-blob", "boto3", "google-cloud-storage (>=2.6.0)", "moto[server]", "paramiko", "pytest", "pytest-rerunfailures", "requests", "responses"] +test = ["azure-common", "azure-core", "azure-storage-blob", "boto3", "google-cloud-storage (>=2.6.0)", "moto[server]", "paramiko", "pytest", "pytest-rerunfailures", "requests", "responses", "zstandard"] webhdfs = ["requests"] +zst = ["zstandard"] [[package]] name = "sqlalchemy" @@ -2125,6 +2125,85 @@ MarkupSafe = ">=2.1.1" [package.extras] watchdog = ["watchdog (>=2.3)"] +[[package]] +name = "wrapt" +version = "1.16.0" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = ">=3.6" +files = [ + {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, + {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, + {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, + {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, + {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, + {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, + {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, + {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, + {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, + {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, + {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, + {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, + {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, + {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, + {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, + {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, + {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, + {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, +] + [[package]] name = "xmltodict" version = "0.13.0" @@ -2139,4 +2218,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "~3.12" -content-hash = "1728296230d4d18ffbc644a8b3be9ba5df6ca066b2d4b5c8c5a633c3d92af3ee" +content-hash = "4dff9e0a62ea17408ca330759f3ed1b3fa0ef23940fe6f718dd2831b877f2972" diff --git a/api/pyproject.toml b/api/pyproject.toml index 2383da176..2c572b3f5 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -15,33 +15,32 @@ python-dotenv = "^1.0.0" pydantic = "^2.4.2" botocore = "^1.31.62" boto3 = "^1.28.62" -smart-open = "^6.1.0" +smart-open = "^7.0.0" pytz = "^2023.3.post1" APIFlask = "^2.1.0" marshmallow-dataclass = { extras = ["enum", "union"], version = "^8.5.8" } marshmallow = "^3.20.1" -gunicorn = "^22.0.0" +gunicorn = "^23.0.0" psycopg = { extras = ["binary"], version = "^3.1.19" } pydantic-settings = "^2.0.3" flask-cors = "^5.0.0" opensearch-py = "^2.5.0" [tool.poetry.group.dev.dependencies] -black = "^23.9.1" +black = "^24.0.0" isort = "^5.12.0" mypy = "^1.8.0" -moto = { extras = ["s3"], version = "^4.0.2" } +moto = { extras = ["s3"], version = "^5.0.0" } types-pytz = "^2023.3.1.1" coverage = "^7.3.2" -Faker = "^19.8.0" +Faker = "^28.0.0" factory-boy = "^3.3.0" bandit = "^1.7.5" -pytest = "^7.4.2" +pytest = "^8.0.0" pytest-watch = "^4.2.0" -pytest-lazy-fixture = "^0.6.3" types-pyyaml = "^6.0.12.11" -setuptools = "^68.2.2" -pydot = "1.4.2" +setuptools = "^75.0.0" +pydot = "3.0.1" sadisplay = "0.4.9" ruff = "^0.4.0" debugpy = "^1.8.1" diff --git a/api/src/adapters/db/client.py b/api/src/adapters/db/client.py index 78b832619..ed59273f9 100644 --- a/api/src/adapters/db/client.py +++ b/api/src/adapters/db/client.py @@ -3,6 +3,7 @@ For usage information look at the package docstring in __init__.py """ + import abc import logging diff --git a/api/src/adapters/db/flask_db.py b/api/src/adapters/db/flask_db.py index 994279039..fa280c746 100644 --- a/api/src/adapters/db/flask_db.py +++ b/api/src/adapters/db/flask_db.py @@ -38,6 +38,7 @@ def health(): db_client = flask_db.get_db(current_app) # db_client.get_connection() or db_client.get_session() """ + from functools import wraps from typing import Callable, Concatenate, ParamSpec, TypeVar diff --git a/api/src/api/schemas/extension/field_validators.py b/api/src/api/schemas/extension/field_validators.py index 43f87a506..96e77352e 100644 --- a/api/src/api/schemas/extension/field_validators.py +++ b/api/src/api/schemas/extension/field_validators.py @@ -16,12 +16,10 @@ class Regexp(validators.Regexp): ) @typing.overload - def __call__(self, value: str) -> str: - ... + def __call__(self, value: str) -> str: ... @typing.overload - def __call__(self, value: bytes) -> bytes: - ... + def __call__(self, value: bytes) -> bytes: ... def __call__(self, value: str | bytes) -> str | bytes: if self.regex.match(value) is None: # type: ignore diff --git a/api/src/db/migrations/versions/2023_08_10_default_table_privileges.py b/api/src/db/migrations/versions/2023_08_10_default_table_privileges.py index 639e4e19f..4c2fce9af 100644 --- a/api/src/db/migrations/versions/2023_08_10_default_table_privileges.py +++ b/api/src/db/migrations/versions/2023_08_10_default_table_privileges.py @@ -5,6 +5,7 @@ Create Date: 2023-08-10 15:52:10.626153 """ + from alembic import op # revision identifiers, used by Alembic. diff --git a/api/src/db/migrations/versions/2023_10_18_basic_opportunity_table.py b/api/src/db/migrations/versions/2023_10_18_basic_opportunity_table.py index 00ea6bad8..aa1d50e73 100644 --- a/api/src/db/migrations/versions/2023_10_18_basic_opportunity_table.py +++ b/api/src/db/migrations/versions/2023_10_18_basic_opportunity_table.py @@ -5,6 +5,7 @@ Create Date: 2023-10-18 16:37:18.252136 """ + import sqlalchemy as sa from alembic import op diff --git a/api/src/db/migrations/versions/2023_11_27_rename_opportunity_table_prior_to_real_.py b/api/src/db/migrations/versions/2023_11_27_rename_opportunity_table_prior_to_real_.py index 89e8e0200..dce1f3767 100644 --- a/api/src/db/migrations/versions/2023_11_27_rename_opportunity_table_prior_to_real_.py +++ b/api/src/db/migrations/versions/2023_11_27_rename_opportunity_table_prior_to_real_.py @@ -5,6 +5,7 @@ Create Date: 2023-11-27 14:43:04.227044 """ + import sqlalchemy as sa from alembic import op from sqlalchemy.dialects import postgresql diff --git a/api/src/db/migrations/versions/2023_12_11_add_rest_of_opportunity_table.py b/api/src/db/migrations/versions/2023_12_11_add_rest_of_opportunity_table.py index 51a842c31..177c47b07 100644 --- a/api/src/db/migrations/versions/2023_12_11_add_rest_of_opportunity_table.py +++ b/api/src/db/migrations/versions/2023_12_11_add_rest_of_opportunity_table.py @@ -5,6 +5,7 @@ Create Date: 2023-12-11 13:13:33.446941 """ + import sqlalchemy as sa from alembic import op diff --git a/api/src/db/migrations/versions/2024_01_29_add_topportunity_table_for_transfer.py b/api/src/db/migrations/versions/2024_01_29_add_topportunity_table_for_transfer.py index 0968407c2..fd7ed66cc 100644 --- a/api/src/db/migrations/versions/2024_01_29_add_topportunity_table_for_transfer.py +++ b/api/src/db/migrations/versions/2024_01_29_add_topportunity_table_for_transfer.py @@ -5,6 +5,7 @@ Create Date: 2024-01-29 14:07:42.665723 """ + import sqlalchemy as sa from alembic import op diff --git a/api/src/db/migrations/versions/2024_02_02_add_opportunity_category_table.py b/api/src/db/migrations/versions/2024_02_02_add_opportunity_category_table.py index 4c030078f..b95d251a2 100644 --- a/api/src/db/migrations/versions/2024_02_02_add_opportunity_category_table.py +++ b/api/src/db/migrations/versions/2024_02_02_add_opportunity_category_table.py @@ -5,6 +5,7 @@ Create Date: 2024-02-02 11:36:33.241412 """ + import sqlalchemy as sa from alembic import op diff --git a/api/src/db/migrations/versions/2024_02_07_add_expanded_opportunity_models.py b/api/src/db/migrations/versions/2024_02_07_add_expanded_opportunity_models.py index b7d6daed4..60198e645 100644 --- a/api/src/db/migrations/versions/2024_02_07_add_expanded_opportunity_models.py +++ b/api/src/db/migrations/versions/2024_02_07_add_expanded_opportunity_models.py @@ -5,6 +5,7 @@ Create Date: 2024-02-07 12:16:16.564629 """ + import sqlalchemy as sa from alembic import op diff --git a/api/src/db/migrations/versions/2024_02_12_create_dms_exceptions_table.py b/api/src/db/migrations/versions/2024_02_12_create_dms_exceptions_table.py index cd3fef4ed..b6284c468 100644 --- a/api/src/db/migrations/versions/2024_02_12_create_dms_exceptions_table.py +++ b/api/src/db/migrations/versions/2024_02_12_create_dms_exceptions_table.py @@ -5,6 +5,7 @@ Create Date: 2024-02-12 15:58:54.880550 """ + from alembic import op # revision identifiers, used by Alembic. diff --git a/api/src/db/migrations/versions/2024_02_21_remove_dms_exceptions_table.py b/api/src/db/migrations/versions/2024_02_21_remove_dms_exceptions_table.py index 8944bd287..393b819c2 100644 --- a/api/src/db/migrations/versions/2024_02_21_remove_dms_exceptions_table.py +++ b/api/src/db/migrations/versions/2024_02_21_remove_dms_exceptions_table.py @@ -5,6 +5,7 @@ Create Date: 2024-02-21 13:44:50.932948 """ + from alembic import op # revision identifiers, used by Alembic. diff --git a/api/src/db/migrations/versions/2024_03_07_drop_tables_to_remake.py b/api/src/db/migrations/versions/2024_03_07_drop_tables_to_remake.py index 19dd02d7f..496781fdc 100644 --- a/api/src/db/migrations/versions/2024_03_07_drop_tables_to_remake.py +++ b/api/src/db/migrations/versions/2024_03_07_drop_tables_to_remake.py @@ -5,6 +5,7 @@ Create Date: 2024-03-07 10:20:15.639825 """ + import sqlalchemy as sa from alembic import op from sqlalchemy.dialects import postgresql diff --git a/api/src/db/migrations/versions/2024_03_07_updates_for_summary_tables.py b/api/src/db/migrations/versions/2024_03_07_updates_for_summary_tables.py index cdbcd34e6..3e6ec15d5 100644 --- a/api/src/db/migrations/versions/2024_03_07_updates_for_summary_tables.py +++ b/api/src/db/migrations/versions/2024_03_07_updates_for_summary_tables.py @@ -5,6 +5,7 @@ Create Date: 2024-03-07 10:44:08.694002 """ + import sqlalchemy as sa from alembic import op diff --git a/api/src/db/migrations/versions/2024_03_12_add_indexes_for_search.py b/api/src/db/migrations/versions/2024_03_12_add_indexes_for_search.py index a8a6c7f12..e2b8fd6fb 100644 --- a/api/src/db/migrations/versions/2024_03_12_add_indexes_for_search.py +++ b/api/src/db/migrations/versions/2024_03_12_add_indexes_for_search.py @@ -5,6 +5,7 @@ Create Date: 2024-03-12 13:22:57.718265 """ + from alembic import op # revision identifiers, used by Alembic. diff --git a/api/src/db/migrations/versions/2024_04_16_make_revision_number_nullable.py b/api/src/db/migrations/versions/2024_04_16_make_revision_number_nullable.py index 1fe9b31cd..189fa0230 100644 --- a/api/src/db/migrations/versions/2024_04_16_make_revision_number_nullable.py +++ b/api/src/db/migrations/versions/2024_04_16_make_revision_number_nullable.py @@ -5,6 +5,7 @@ Create Date: 2024-04-16 13:36:35.993325 """ + import sqlalchemy as sa from alembic import op diff --git a/api/src/db/migrations/versions/2024_04_19_fix_column_type_and_add_version_number.py b/api/src/db/migrations/versions/2024_04_19_fix_column_type_and_add_version_number.py index 45d0bf81b..042cb8ea6 100644 --- a/api/src/db/migrations/versions/2024_04_19_fix_column_type_and_add_version_number.py +++ b/api/src/db/migrations/versions/2024_04_19_fix_column_type_and_add_version_number.py @@ -5,6 +5,7 @@ Create Date: 2024-04-19 13:41:34.017203 """ + import sqlalchemy as sa from alembic import op diff --git a/api/src/db/migrations/versions/2024_04_24_add_staging_tables.py b/api/src/db/migrations/versions/2024_04_24_add_staging_tables.py index 30534bb76..fd06d81c7 100644 --- a/api/src/db/migrations/versions/2024_04_24_add_staging_tables.py +++ b/api/src/db/migrations/versions/2024_04_24_add_staging_tables.py @@ -5,6 +5,7 @@ Create Date: 2024-04-24 15:27:13.602523 """ + import sqlalchemy as sa from alembic import op diff --git a/api/src/db/migrations/versions/2024_05_01_add_created_at_updated_at_and_deleted_.py b/api/src/db/migrations/versions/2024_05_01_add_created_at_updated_at_and_deleted_.py index 288d8b382..6d6de18cb 100644 --- a/api/src/db/migrations/versions/2024_05_01_add_created_at_updated_at_and_deleted_.py +++ b/api/src/db/migrations/versions/2024_05_01_add_created_at_updated_at_and_deleted_.py @@ -5,6 +5,7 @@ Create Date: 2024-05-01 11:14:34.332661 """ + import sqlalchemy as sa from alembic import op diff --git a/api/src/db/migrations/versions/2024_05_02_add_unique_constraint_for_summary.py b/api/src/db/migrations/versions/2024_05_02_add_unique_constraint_for_summary.py index 8ed298dfb..41152f9b3 100644 --- a/api/src/db/migrations/versions/2024_05_02_add_unique_constraint_for_summary.py +++ b/api/src/db/migrations/versions/2024_05_02_add_unique_constraint_for_summary.py @@ -5,6 +5,7 @@ Create Date: 2024-05-02 10:11:35.832837 """ + from alembic import op # revision identifiers, used by Alembic. diff --git a/api/src/db/migrations/versions/2024_05_07_add_unique_constraint_link_table_legacy_.py b/api/src/db/migrations/versions/2024_05_07_add_unique_constraint_link_table_legacy_.py index 30310476f..7e80062d9 100644 --- a/api/src/db/migrations/versions/2024_05_07_add_unique_constraint_link_table_legacy_.py +++ b/api/src/db/migrations/versions/2024_05_07_add_unique_constraint_link_table_legacy_.py @@ -5,6 +5,7 @@ Create Date: 2024-05-07 14:41:19.401963 """ + from alembic import op # revision identifiers, used by Alembic. diff --git a/api/src/db/migrations/versions/2024_05_09_add_transformation_notes_to_staging_.py b/api/src/db/migrations/versions/2024_05_09_add_transformation_notes_to_staging_.py index fa364dd5d..84e1366b7 100644 --- a/api/src/db/migrations/versions/2024_05_09_add_transformation_notes_to_staging_.py +++ b/api/src/db/migrations/versions/2024_05_09_add_transformation_notes_to_staging_.py @@ -5,6 +5,7 @@ Create Date: 2024-05-09 15:06:48.010975 """ + import sqlalchemy as sa from alembic import op diff --git a/api/src/db/migrations/versions/2024_07_08_add_agency_related_tables.py b/api/src/db/migrations/versions/2024_07_08_add_agency_related_tables.py index 404c5ced1..bce4b780e 100644 --- a/api/src/db/migrations/versions/2024_07_08_add_agency_related_tables.py +++ b/api/src/db/migrations/versions/2024_07_08_add_agency_related_tables.py @@ -5,6 +5,7 @@ Create Date: 2024-07-08 12:43:45.240782 """ + import sqlalchemy as sa from alembic import op diff --git a/api/src/db/models/agency_models.py b/api/src/db/models/agency_models.py index 14075233d..c39f1a066 100644 --- a/api/src/db/models/agency_models.py +++ b/api/src/db/models/agency_models.py @@ -47,12 +47,14 @@ class Agency(ApiSchemaTable, TimestampMixin): assistance_listing_number: Mapped[str] - agency_submission_notification_setting: Mapped[ - AgencySubmissionNotificationSetting - ] = mapped_column( - "agency_submission_notification_setting_id", - LookupColumn(LkAgencySubmissionNotificationSetting), - ForeignKey(LkAgencySubmissionNotificationSetting.agency_submission_notification_setting_id), + agency_submission_notification_setting: Mapped[AgencySubmissionNotificationSetting] = ( + mapped_column( + "agency_submission_notification_setting_id", + LookupColumn(LkAgencySubmissionNotificationSetting), + ForeignKey( + LkAgencySubmissionNotificationSetting.agency_submission_notification_setting_id + ), + ) ) agency_contact_info_id: Mapped[BigInteger | None] = mapped_column( diff --git a/api/src/db/models/opportunity_models.py b/api/src/db/models/opportunity_models.py index c5a9a3e2c..020b6da11 100644 --- a/api/src/db/models/opportunity_models.py +++ b/api/src/db/models/opportunity_models.py @@ -165,10 +165,10 @@ class OpportunitySummary(ApiSchemaTable, TimestampMixin): updated_by: Mapped[str | None] created_by: Mapped[str | None] - link_funding_instruments: Mapped[ - list["LinkOpportunitySummaryFundingInstrument"] - ] = relationship( - back_populates="opportunity_summary", uselist=True, cascade="all, delete-orphan" + link_funding_instruments: Mapped[list["LinkOpportunitySummaryFundingInstrument"]] = ( + relationship( + back_populates="opportunity_summary", uselist=True, cascade="all, delete-orphan" + ) ) link_funding_categories: Mapped[list["LinkOpportunitySummaryFundingCategory"]] = relationship( back_populates="opportunity_summary", uselist=True, cascade="all, delete-orphan" diff --git a/api/src/logging/__init__.py b/api/src/logging/__init__.py index efe17b42c..21812f1de 100644 --- a/api/src/logging/__init__.py +++ b/api/src/logging/__init__.py @@ -24,7 +24,6 @@ logger.info("message") """ - import src.logging.config as config diff --git a/api/src/logging/flask_logger.py b/api/src/logging/flask_logger.py index f06ecd955..6bddcee90 100644 --- a/api/src/logging/flask_logger.py +++ b/api/src/logging/flask_logger.py @@ -16,6 +16,7 @@ flask_logger.init_app(logger, app) """ + import logging import time import uuid diff --git a/api/src/logging/formatters.py b/api/src/logging/formatters.py index ab810de95..d6159e58e 100644 --- a/api/src/logging/formatters.py +++ b/api/src/logging/formatters.py @@ -6,6 +6,7 @@ See https://docs.python.org/3/library/logging.html#formatter-objects """ + import json import logging from datetime import date, datetime diff --git a/api/src/task/opportunities/set_current_opportunities_task.py b/api/src/task/opportunities/set_current_opportunities_task.py index 797f76f32..66de4f01d 100644 --- a/api/src/task/opportunities/set_current_opportunities_task.py +++ b/api/src/task/opportunities/set_current_opportunities_task.py @@ -84,9 +84,11 @@ def _process_opportunity(self, opportunity: Opportunity) -> None: "existing_opportunity_status": opportunity.opportunity_status, } log_extra |= get_log_extra_for_summary( - opportunity.current_opportunity_summary.opportunity_summary - if opportunity.current_opportunity_summary - else None, + ( + opportunity.current_opportunity_summary.opportunity_summary + if opportunity.current_opportunity_summary + else None + ), "existing", ) logger.info("Processing opportunity %s", opportunity.opportunity_id, extra=log_extra) @@ -245,9 +247,9 @@ def is_opportunity_changed( def get_log_extra_for_summary(summary: OpportunitySummary | None, prefix: str) -> dict[str, Any]: return { f"{prefix}_opportunity_summary_id": summary.opportunity_summary_id if summary else None, - f"{prefix}_opportunity_summary_revision_number": summary.revision_number - if summary - else None, + f"{prefix}_opportunity_summary_revision_number": ( + summary.revision_number if summary else None + ), f"{prefix}_opportunity_summary_is_forecast": summary.is_forecast if summary else None, f"{prefix}_opportunity_summary_post_date": summary.post_date if summary else None, f"{prefix}_opportunity_summary_close_date": summary.close_date if summary else None, diff --git a/api/tests/conftest.py b/api/tests/conftest.py index 6887ff0e4..18ecb5c3e 100644 --- a/api/tests/conftest.py +++ b/api/tests/conftest.py @@ -240,7 +240,8 @@ def reset_aws_env_vars(monkeypatch): @pytest.fixture def mock_s3(reset_aws_env_vars): - with moto.mock_s3(): + # https://docs.getmoto.org/en/stable/docs/configuration/index.html#whitelist-services + with moto.mock_aws(config={"core": {"service_whitelist": ["s3"]}}): yield boto3.resource("s3") diff --git a/api/tests/lib/db_testing.py b/api/tests/lib/db_testing.py index 9b0b0973c..7d11edecf 100644 --- a/api/tests/lib/db_testing.py +++ b/api/tests/lib/db_testing.py @@ -1,4 +1,5 @@ """Helper functions for testing database code.""" + import contextlib import logging diff --git a/api/tests/src/db/models/factories.py b/api/tests/src/db/models/factories.py index 9e215a78f..7543ddc3b 100644 --- a/api/tests/src/db/models/factories.py +++ b/api/tests/src/db/models/factories.py @@ -7,6 +7,7 @@ The factories are based on the `factory_boy` library. See https://factoryboy.readthedocs.io/en/latest/ for more information. """ + import random from datetime import datetime from typing import Optional