diff --git a/test_infra/poetry.lock b/test_infra/poetry.lock index b6b04471d..3f7ca134d 100644 --- a/test_infra/poetry.lock +++ b/test_infra/poetry.lock @@ -1,155 +1,155 @@ -# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. [[package]] name = "attrs" -version = "23.2.0" +version = "25.3.0" description = "Classes Without Boilerplate" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, - {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, + {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, + {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, ] [package.extras] -cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[tests]", "pre-commit"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] -tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] -tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] name = "aws-cdk-asset-awscli-v1" -version = "2.2.202" +version = "2.2.231" description = "A library that contains the AWS CLI for use in Lambda Layers" optional = false -python-versions = "~=3.8" -files = [ - {file = "aws-cdk.asset-awscli-v1-2.2.202.tar.gz", hash = "sha256:3ef87d6530736b3a7b0f777fe3b4297994dd40c3ce9306d95f80f48fb18036e8"}, - {file = "aws_cdk.asset_awscli_v1-2.2.202-py3-none-any.whl", hash = "sha256:96205ea2e5e132ec52fabfff37ea25b9b859498f167d05b32564c949822cd331"}, -] - -[package.dependencies] -jsii = ">=1.93.0,<2.0.0" -publication = ">=0.0.3" -typeguard = ">=2.13.3,<2.14.0" - -[[package]] -name = "aws-cdk-asset-kubectl-v20" -version = "2.1.2" -description = "A library that contains kubectl for use in Lambda Layers" -optional = false -python-versions = "~=3.7" +python-versions = "~=3.9" files = [ - {file = "aws-cdk.asset-kubectl-v20-2.1.2.tar.gz", hash = "sha256:346283e43018a43e3b3ca571de3f44e85d49c038dc20851894cb8f9b2052b164"}, - {file = "aws_cdk.asset_kubectl_v20-2.1.2-py3-none-any.whl", hash = "sha256:7f0617ab6cb942b066bd7174bf3e1f377e57878c3e1cddc21d6b2d13c92d0cc1"}, + {file = "aws_cdk_asset_awscli_v1-2.2.231-py3-none-any.whl", hash = "sha256:06d6b1d9e52272c315b944320f7039b47c6a6058f063fa33ab0ec06fea17bfbe"}, + {file = "aws_cdk_asset_awscli_v1-2.2.231.tar.gz", hash = "sha256:859d99e0fcdc2f6ada44090ad9f921743da3ca3a6d9f39ab06836d4c8e0fbc23"}, ] [package.dependencies] -jsii = ">=1.70.0,<2.0.0" +jsii = ">=1.111.0,<2.0.0" publication = ">=0.0.3" -typeguard = ">=2.13.3,<2.14.0" +typeguard = ">=2.13.3,<4.3.0" [[package]] name = "aws-cdk-asset-node-proxy-agent-v6" -version = "2.0.1" +version = "2.1.0" description = "@aws-cdk/asset-node-proxy-agent-v6" optional = false -python-versions = "~=3.7" +python-versions = "~=3.8" files = [ - {file = "aws-cdk.asset-node-proxy-agent-v6-2.0.1.tar.gz", hash = "sha256:42cdbc1de2ed3f845e3eb883a72f58fc7e5554c2e0b6fcdb366c159778dce74d"}, - {file = "aws_cdk.asset_node_proxy_agent_v6-2.0.1-py3-none-any.whl", hash = "sha256:e442673d4f93137ab165b75386761b1d46eea25fc5015e5145ae3afa9da06b6e"}, + {file = "aws_cdk.asset_node_proxy_agent_v6-2.1.0-py3-none-any.whl", hash = "sha256:24a388b69a44d03bae6dbf864c4e25ba650d4b61c008b4568b94ffbb9a69e40e"}, + {file = "aws_cdk_asset_node_proxy_agent_v6-2.1.0.tar.gz", hash = "sha256:1f292c0631f86708ba4ee328b3a2b229f7e46ea1c79fbde567ee9eb119c2b0e2"}, ] [package.dependencies] -jsii = ">=1.86.1,<2.0.0" +jsii = ">=1.103.1,<2.0.0" publication = ">=0.0.3" -typeguard = ">=2.13.3,<2.14.0" +typeguard = ">=2.13.3,<5.0.0" [[package]] name = "aws-cdk-aws-glue-alpha" -version = "2.128.0a0" +version = "2.189.0a0" description = "The CDK Construct Library for AWS::Glue" optional = false -python-versions = "~=3.8" +python-versions = "~=3.9" files = [ - {file = "aws-cdk.aws-glue-alpha-2.128.0a0.tar.gz", hash = "sha256:81d7ffde3cacdf5e89e9dd0a4fdbebd015974f2a718fd23ed80128b22bc9de1f"}, - {file = "aws_cdk.aws_glue_alpha-2.128.0a0-py3-none-any.whl", hash = "sha256:5a0f425b2af6b6767e16deda9a79b866f7521d57ee77356ded30dcae4ba15666"}, + {file = "aws_cdk_aws_glue_alpha-2.189.0a0-py3-none-any.whl", hash = "sha256:9f7ba37a2e87c9c18db58221b8a40776fa4068ee886146f8605f6ac361352acd"}, + {file = "aws_cdk_aws_glue_alpha-2.189.0a0.tar.gz", hash = "sha256:2c8a26eadee1f96988534cddbee64dd9b389e022893b6f906855bc1bc8e24c8f"}, ] [package.dependencies] -aws-cdk-lib = ">=2.128.0,<3.0.0" +aws-cdk-lib = ">=2.189.0,<3.0.0" constructs = ">=10.0.0,<11.0.0" -jsii = ">=1.94.0,<2.0.0" +jsii = ">=1.110.0,<2.0.0" publication = ">=0.0.3" -typeguard = ">=2.13.3,<2.14.0" +typeguard = ">=2.13.3,<4.3.0" [[package]] name = "aws-cdk-aws-neptune-alpha" -version = "2.128.0a0" +version = "2.189.0a0" description = "The CDK Construct Library for AWS::Neptune" optional = false -python-versions = "~=3.8" +python-versions = "~=3.9" files = [ - {file = "aws-cdk.aws-neptune-alpha-2.128.0a0.tar.gz", hash = "sha256:60d17d0742ce89fc078e120538a90e5e8b9f2b0d590919c544445056f1026123"}, - {file = "aws_cdk.aws_neptune_alpha-2.128.0a0-py3-none-any.whl", hash = "sha256:1f72ba53c2d703c06378e0929003dd99f9648e3db2c42a302d23cea61a6d059a"}, + {file = "aws_cdk_aws_neptune_alpha-2.189.0a0-py3-none-any.whl", hash = "sha256:4e7128b0bf91ababa4d78c2fc6b7a7334ebe3c492df685c33a3e0c32a54c9b6b"}, + {file = "aws_cdk_aws_neptune_alpha-2.189.0a0.tar.gz", hash = "sha256:cbc15e20d10f71cdfdca30b7fab77ce0ac62cadebfbdd382a05652cc8c66416d"}, ] [package.dependencies] -aws-cdk-lib = ">=2.128.0,<3.0.0" +aws-cdk-lib = ">=2.189.0,<3.0.0" constructs = ">=10.0.0,<11.0.0" -jsii = ">=1.94.0,<2.0.0" +jsii = ">=1.110.0,<2.0.0" publication = ">=0.0.3" -typeguard = ">=2.13.3,<2.14.0" +typeguard = ">=2.13.3,<4.3.0" [[package]] name = "aws-cdk-aws-redshift-alpha" -version = "2.128.0a0" +version = "2.189.0a0" description = "The CDK Construct Library for AWS::Redshift" optional = false -python-versions = "~=3.8" +python-versions = "~=3.9" files = [ - {file = "aws-cdk.aws-redshift-alpha-2.128.0a0.tar.gz", hash = "sha256:9e3af49de672ffb6f04b37667ce66f6d6db5db957be939ad0e597ec69a556ee4"}, - {file = "aws_cdk.aws_redshift_alpha-2.128.0a0-py3-none-any.whl", hash = "sha256:0a8e75c297010b8dcaa70bf518f7f001282d857355f767cd3a1775e8d99e455e"}, + {file = "aws_cdk_aws_redshift_alpha-2.189.0a0-py3-none-any.whl", hash = "sha256:fec2c5611ca24e85fd0ce659db0e8a94b0f6093bb61b4a7088afc1473dd18144"}, + {file = "aws_cdk_aws_redshift_alpha-2.189.0a0.tar.gz", hash = "sha256:2504dfa32431241ff9edc751a6aafa10573c8505c78c4fa100646076492d787b"}, ] [package.dependencies] -aws-cdk-lib = ">=2.128.0,<3.0.0" +aws-cdk-lib = ">=2.189.0,<3.0.0" constructs = ">=10.0.0,<11.0.0" -jsii = ">=1.94.0,<2.0.0" +jsii = ">=1.110.0,<2.0.0" publication = ">=0.0.3" -typeguard = ">=2.13.3,<2.14.0" +typeguard = ">=2.13.3,<4.3.0" + +[[package]] +name = "aws-cdk-cloud-assembly-schema" +version = "41.2.0" +description = "Schema for the protocol between CDK framework and CDK CLI" +optional = false +python-versions = "~=3.8" +files = [ + {file = "aws_cdk.cloud_assembly_schema-41.2.0-py3-none-any.whl", hash = "sha256:779ca7e3edb02695e0a94a1f38e322b04fbe192cd7944553f80b681a21edd670"}, + {file = "aws_cdk_cloud_assembly_schema-41.2.0.tar.gz", hash = "sha256:7064ac13f6944fd53f8d8eace611d3c5d8db7014049d629f5c47ede8dc5f2e3b"}, +] + +[package.dependencies] +jsii = ">=1.108.0,<2.0.0" +publication = ">=0.0.3" +typeguard = ">=2.13.3,<4.3.0" [[package]] name = "aws-cdk-lib" -version = "2.128.0" +version = "2.189.0" description = "Version 2 of the AWS Cloud Development Kit library" optional = false -python-versions = "~=3.8" +python-versions = "~=3.9" files = [ - {file = "aws-cdk-lib-2.128.0.tar.gz", hash = "sha256:796459062daa0dbe0581925874db121d4c220295c6c35e73dedfe39e82ca301f"}, - {file = "aws_cdk_lib-2.128.0-py3-none-any.whl", hash = "sha256:49170b21cb738d30d67f7aa361b78ba3a8b711f8dd15523cbfe64710f9386553"}, + {file = "aws_cdk_lib-2.189.0-py3-none-any.whl", hash = "sha256:0c991e67a6b03ee23b9fbf98358e89d9e298fc3b3fafb1def2fb79fa38551b94"}, + {file = "aws_cdk_lib-2.189.0.tar.gz", hash = "sha256:10b5d5b07a9ef2bf831edb9d26c736ad87b186d3ae416c16e9cf1ca241d71c58"}, ] [package.dependencies] -"aws-cdk.asset-awscli-v1" = ">=2.2.202,<3.0.0" -"aws-cdk.asset-kubectl-v20" = ">=2.1.2,<3.0.0" -"aws-cdk.asset-node-proxy-agent-v6" = ">=2.0.1,<3.0.0" +"aws-cdk.asset-awscli-v1" = ">=2.2.229,<3.0.0" +"aws-cdk.asset-node-proxy-agent-v6" = ">=2.1.0,<3.0.0" +"aws-cdk.cloud-assembly-schema" = ">=41.0.0,<42.0.0" constructs = ">=10.0.0,<11.0.0" -jsii = ">=1.94.0,<2.0.0" +jsii = ">=1.110.0,<2.0.0" publication = ">=0.0.3" -typeguard = ">=2.13.3,<2.14.0" +typeguard = ">=2.13.3,<4.3.0" [[package]] name = "cattrs" -version = "23.2.3" +version = "24.1.3" description = "Composable complex class support for attrs and dataclasses." optional = false python-versions = ">=3.8" files = [ - {file = "cattrs-23.2.3-py3-none-any.whl", hash = "sha256:0341994d94971052e9ee70662542699a3162ea1e0c62f7ce1b4a57f563685108"}, - {file = "cattrs-23.2.3.tar.gz", hash = "sha256:a934090d95abaa9e911dac357e3a8699e0b4b14f8529bcc7d2b1ad9d51672b9f"}, + {file = "cattrs-24.1.3-py3-none-any.whl", hash = "sha256:adf957dddd26840f27ffbd060a6c4dd3b2192c5b7c2c0525ef1bd8131d8a83f5"}, + {file = "cattrs-24.1.3.tar.gz", hash = "sha256:981a6ef05875b5bb0c7fb68885546186d306f10f0f6718fe9b96c226e68821ff"}, ] [package.dependencies] @@ -161,6 +161,7 @@ typing-extensions = {version = ">=4.1.0,<4.6.3 || >4.6.3", markers = "python_ver bson = ["pymongo (>=4.4.0)"] cbor2 = ["cbor2 (>=5.4.6)"] msgpack = ["msgpack (>=1.0.5)"] +msgspec = ["msgspec (>=0.18.5)"] orjson = ["orjson (>=3.9.2)"] pyyaml = ["pyyaml (>=6.0)"] tomlkit = ["tomlkit (>=0.11.8)"] @@ -168,29 +169,29 @@ ujson = ["ujson (>=5.7.0)"] [[package]] name = "constructs" -version = "10.3.0" +version = "10.4.2" description = "A programming model for software-defined state" optional = false -python-versions = "~=3.7" +python-versions = "~=3.8" files = [ - {file = "constructs-10.3.0-py3-none-any.whl", hash = "sha256:2972f514837565ff5b09171cfba50c0159dfa75ee86a42921ea8c86f2941b3d2"}, - {file = "constructs-10.3.0.tar.gz", hash = "sha256:518551135ec236f9cc6b86500f4fbbe83b803ccdc6c2cb7684e0b7c4d234e7b1"}, + {file = "constructs-10.4.2-py3-none-any.whl", hash = "sha256:1f0f59b004edebfde0f826340698b8c34611f57848139b7954904c61645f13c1"}, + {file = "constructs-10.4.2.tar.gz", hash = "sha256:ce54724360fffe10bab27d8a081844eb81f5ace7d7c62c84b719c49f164d5307"}, ] [package.dependencies] -jsii = ">=1.90.0,<2.0.0" +jsii = ">=1.102.0,<2.0.0" publication = ">=0.0.3" typeguard = ">=2.13.3,<2.14.0" [[package]] name = "exceptiongroup" -version = "1.2.0" +version = "1.2.2" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, - {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, ] [package.extras] @@ -198,40 +199,44 @@ test = ["pytest (>=6)"] [[package]] name = "importlib-resources" -version = "6.1.1" +version = "6.5.2" description = "Read resources from Python packages" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "importlib_resources-6.1.1-py3-none-any.whl", hash = "sha256:e8bf90d8213b486f428c9c39714b920041cb02c184686a3dee24905aaa8105d6"}, - {file = "importlib_resources-6.1.1.tar.gz", hash = "sha256:3893a00122eafde6894c59914446a512f728a0c1a45f9bb9b63721b6bacf0b4a"}, + {file = "importlib_resources-6.5.2-py3-none-any.whl", hash = "sha256:789cfdc3ed28c78b67a06acb8126751ced69a3d5f79c095a98298cd8a760ccec"}, + {file = "importlib_resources-6.5.2.tar.gz", hash = "sha256:185f87adef5bcc288449d98fb4fba07cea78bc036455dd44c5fc4a2fe78fed2c"}, ] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff", "zipp (>=3.17)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"] +type = ["pytest-mypy"] [[package]] name = "jsii" -version = "1.94.0" +version = "1.111.0" description = "Python client for jsii runtime" optional = false -python-versions = "~=3.8" +python-versions = "~=3.9" files = [ - {file = "jsii-1.94.0-py3-none-any.whl", hash = "sha256:1105bae271ae47c27cf31c1565c5157306efed5ad9323c9a27336f962f465716"}, - {file = "jsii-1.94.0.tar.gz", hash = "sha256:175abc356603d98f18ab6f6aa74bfeae253e4e56340aef9dc40bbb1a6a59868b"}, + {file = "jsii-1.111.0-py3-none-any.whl", hash = "sha256:3084e31173e73d2eefee678c8ee31aa49428830509043057a421a4c0dde94434"}, + {file = "jsii-1.111.0.tar.gz", hash = "sha256:db523ab9b6575c84d6ed8779cdbdc739abd48a7cb0723b66beb84c1a9dc31c7c"}, ] [package.dependencies] -attrs = ">=21.2,<24.0" -cattrs = ">=1.8,<23.3" +attrs = ">=21.2,<26.0" +cattrs = ">=1.8,<24.2" importlib-resources = ">=5.2.0" publication = ">=0.0.3" python-dateutil = "*" -typeguard = ">=2.13.3,<2.14.0" +typeguard = ">=2.13.3,<4.5.0" typing-extensions = ">=3.8,<5.0" [[package]] @@ -247,13 +252,13 @@ files = [ [[package]] name = "python-dateutil" -version = "2.8.2" +version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] @@ -261,13 +266,13 @@ six = ">=1.5" [[package]] name = "six" -version = "1.16.0" +version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, ] [[package]] @@ -287,31 +292,35 @@ test = ["mypy", "pytest", "typing-extensions"] [[package]] name = "typing-extensions" -version = "4.9.0" +version = "4.13.2" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, - {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, + {file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"}, + {file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, ] [[package]] name = "zipp" -version = "3.19.1" +version = "3.21.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "zipp-3.19.1-py3-none-any.whl", hash = "sha256:2828e64edb5386ea6a52e7ba7cdb17bb30a73a858f5eb6eb93d8d36f5ea26091"}, - {file = "zipp-3.19.1.tar.gz", hash = "sha256:35427f6d5594f4acf82d25541438348c26736fa9b3afa2754bcd63cdb99d8e8f"}, + {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, + {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, ] [package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] [metadata] lock-version = "2.0" python-versions = ">=3.9, <4.0" -content-hash = "0fb2e6c60e8f359e003f78b77e121bdd0ea9e7489af7f9a98c39126b3c1a5b76" +content-hash = "212fb5d61d34a618bc0a3ae1ec3dd41056499f776424091f54978c0fa1b276b4" diff --git a/test_infra/pyproject.toml b/test_infra/pyproject.toml index 3887d6823..46ddbc04c 100644 --- a/test_infra/pyproject.toml +++ b/test_infra/pyproject.toml @@ -7,7 +7,7 @@ license = "Apache License 2.0" [tool.poetry.dependencies] python = ">=3.9, <4.0" -"aws-cdk-lib" = "^2.128.0" -"aws-cdk.aws-glue-alpha" = "^2.128.0a0" -"aws-cdk.aws-neptune-alpha" = "^2.128.0a0" -"aws-cdk.aws-redshift-alpha" = "^2.128.0a0" +"aws-cdk-lib" = "^2.188.0" +"aws-cdk.aws-glue-alpha" = "^2.188.0a0" +"aws-cdk.aws-neptune-alpha" = "^2.188.0a0" +"aws-cdk.aws-redshift-alpha" = "^2.188.0a0" diff --git a/test_infra/stacks/databases_stack.py b/test_infra/stacks/databases_stack.py index 91fcf1dd9..6a71d16cf 100644 --- a/test_infra/stacks/databases_stack.py +++ b/test_infra/stacks/databases_stack.py @@ -511,25 +511,25 @@ def _setup_mysql_serverless(self) -> None: port = 3306 database = "test" schema = "test" - aurora_mysql = rds.ServerlessCluster( + aurora_mysql = rds.DatabaseCluster( self, "aws-sdk-pandas-aurora-cluster-mysql-serverless", removal_policy=RemovalPolicy.DESTROY, - engine=rds.DatabaseClusterEngine.aurora_mysql( - version=rds.AuroraMysqlEngineVersion.VER_2_11_4, - ), + engine=rds.DatabaseClusterEngine.aurora_mysql(version=rds.AuroraMysqlEngineVersion.VER_3_08_1), cluster_identifier="mysql-serverless-cluster-sdk-pandas", default_database_name=database, credentials=rds.Credentials.from_password( username=self.db_username, password=self.db_password_secret, ), - scaling=rds.ServerlessScalingOptions( - auto_pause=Duration.minutes(5), - min_capacity=rds.AuroraCapacityUnit.ACU_1, - max_capacity=rds.AuroraCapacityUnit.ACU_1, + serverless_v2_min_capacity=0.5, # Minimum ACU + serverless_v2_max_capacity=1.0, # Maximum ACU + writer=rds.ClusterInstance.serverless_v2( + "writer", + scale_with_writer=True, + auto_minor_version_upgrade=True, ), - backup_retention=Duration.days(1), + backup=rds.BackupProps(retention=Duration.days(1), preferred_window="03:00-04:00"), vpc=self.vpc, subnet_group=self.rds_subnet_group, security_groups=[self.db_security_group], @@ -566,12 +566,12 @@ def _setup_postgresql_serverless(self) -> None: port = 5432 database = "test" schema = "test" - aurora_postgresql = rds.ServerlessCluster( + aurora_postgresql = rds.DatabaseCluster( self, "aws-sdk-pandas-aurora-cluster-postgresql-serverless", removal_policy=RemovalPolicy.DESTROY, engine=rds.DatabaseClusterEngine.aurora_postgres( - version=rds.AuroraPostgresEngineVersion.VER_13_8, + version=rds.AuroraPostgresEngineVersion.VER_16_2, ), cluster_identifier="postgresql-serverless-cluster-sdk-pandas", default_database_name=database, @@ -579,12 +579,14 @@ def _setup_postgresql_serverless(self) -> None: username=self.db_username, password=self.db_password_secret, ), - scaling=rds.ServerlessScalingOptions( - auto_pause=Duration.minutes(5), - min_capacity=rds.AuroraCapacityUnit.ACU_2, - max_capacity=rds.AuroraCapacityUnit.ACU_2, + serverless_v2_min_capacity=0.5, # Minimum ACU + serverless_v2_max_capacity=2.0, # Maximum ACU + writer=rds.ClusterInstance.serverless_v2( + "writer", + scale_with_writer=True, + auto_minor_version_upgrade=True, ), - backup_retention=Duration.days(1), + backup=rds.BackupProps(retention=Duration.days(1), preferred_window="03:00-04:00"), vpc=self.vpc, subnet_group=self.rds_subnet_group, security_groups=[self.db_security_group], diff --git a/tests/unit/test_data_api.py b/tests/unit/test_data_api.py index c3d335a7c..6464f2c0e 100644 --- a/tests/unit/test_data_api.py +++ b/tests/unit/test_data_api.py @@ -11,7 +11,7 @@ from awswrangler.data_api.rds import RdsDataApi from awswrangler.data_api.redshift import RedshiftDataApi -from .._utils import assert_pandas_equals, get_df, get_time_str_with_random_suffix, is_ray_modin +from .._utils import assert_pandas_equals, get_time_str_with_random_suffix pytestmark = pytest.mark.distributed @@ -169,7 +169,7 @@ def test_data_api_redshift_column_subset_select(redshift_connector: "RedshiftDat def test_data_api_mysql_columnless_query(mysql_serverless_connector: "RdsDataApi") -> None: - dataframe = wr.data_api.rds.read_sql_query("SELECT 1", con=mysql_serverless_connector) + dataframe = wr.data_api.rds.read_sql_query("SELECT 1", con=mysql_serverless_connector).rename(columns={"": "1"}) expected_dataframe = pd.DataFrame([[1]], columns=["1"]) assert_pandas_equals(dataframe, expected_dataframe) @@ -179,7 +179,7 @@ def test_data_api_mysql_basic_select( mysql_serverless_connector: "RdsDataApi", mysql_serverless_table: str, use_column_names: bool ) -> None: database = "test" - frame = pd.DataFrame([[42, "test", None], [23, "foo", "bar"]], columns=["id", "name", "missing"]) + frame = pd.DataFrame([[42, "test"]], columns=["id", "name"]) wr.data_api.rds.to_sql( df=frame, @@ -240,7 +240,7 @@ def test_data_api_mysql_to_sql_mode( mysql_serverless_connector: "RdsDataApi", mysql_serverless_table: str, mode: str ) -> None: database = "test" - frame = get_df() + frame = pd.DataFrame([[42, "test"]], columns=["id", "name"]) wr.data_api.rds.to_sql( df=frame, con=mysql_serverless_connector, @@ -248,7 +248,7 @@ def test_data_api_mysql_to_sql_mode( database=database, ) - frame2 = get_df() + frame2 = pd.DataFrame([[52, "test2"]], columns=["id", "name"]) wr.data_api.rds.to_sql( df=frame2, con=mysql_serverless_connector, @@ -268,18 +268,17 @@ def test_data_api_mysql_to_sql_mode( # Cast types out_frame = out_frame.astype(expected_frame.dtypes) - # Modin upcasts to float64 now - if is_ray_modin: - out_frame["float"] = out_frame["float"].astype("float32") - assert_pandas_equals(out_frame, expected_frame) def test_data_api_exception(mysql_serverless_connector: "RdsDataApi", mysql_serverless_table: str) -> None: - with pytest.raises(boto3.client("rds-data").exceptions.BadRequestException): + with pytest.raises(boto3.client("rds-data").exceptions.DatabaseErrorException): wr.data_api.rds.read_sql_query("CUPCAKE", con=mysql_serverless_connector) +@pytest.mark.xfail( + raises=boto3.client("rds-data").exceptions.DatabaseErrorException, reason="Must understand MYSQL 8.0 SQL Syntax." +) def test_data_api_mysql_ansi(mysql_serverless_connector: "RdsDataApi", mysql_serverless_table: str) -> None: database = "test" frame = pd.DataFrame([[42, "test"]], columns=["id", "name"])