diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml
index e8c99cde..43f3859a 100644
--- a/.github/workflows/integration_tests.yml
+++ b/.github/workflows/integration_tests.yml
@@ -17,7 +17,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- python-version: [ "3.8", "3.11" ]
+ python-version: [ "3.11", "3.12", "3.13" ]
environment: [ "mysql", "pg" ]
steps:
@@ -71,7 +71,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- python-version: [ "3.8", "3.11" ]
+ python-version: [ "3.11", "3.12", "3.13" ]
environment: ["mysql", "pg"]
steps:
diff --git a/.github/workflows/integration_tests_codebuild.yml b/.github/workflows/integration_tests_codebuild.yml
index c0deac51..473599d8 100644
--- a/.github/workflows/integration_tests_codebuild.yml
+++ b/.github/workflows/integration_tests_codebuild.yml
@@ -13,7 +13,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- python-version: [ "3.8", "3.11" ]
+ python-version: [ "3.11", "3.12", "3.13" ]
environment: [ "mysql", "pg" ]
runs-on: ubuntu-latest
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 89659835..4d6aba9f 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -32,7 +32,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: ["3.8", "3.9", "3.10", "3.11"]
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
poetry-version: ["1.8.2"]
steps:
diff --git a/README.md b/README.md
index 89615730..99277fc4 100644
--- a/README.md
+++ b/README.md
@@ -205,7 +205,7 @@ For all other questions, please use [GitHub discussions](https://github.com/awsl
1. Set up your environment by following the directions in the [Development Guide](./docs/development-guide/DevelopmentGuide.md).
2. To contribute, first make a fork of this project.
-3. Make any changes on your fork. Make sure you are aware of the requirements for the project (e.g. do not require Python 3.7 if we are supporting Python 3.8 - 3.11 (inclusive)).
+3. Make any changes on your fork. Make sure you are aware of the requirements for the project (e.g. do not require Python 3.7 if we are supporting Python 3.10 - 3.13 (inclusive)).
4. Create a pull request from your fork.
5. Pull requests need to be approved and merged by maintainers into the main branch.
diff --git a/docs/GettingStarted.md b/docs/GettingStarted.md
index 1e372f8d..a8ce390b 100644
--- a/docs/GettingStarted.md
+++ b/docs/GettingStarted.md
@@ -4,7 +4,7 @@
Before using the AWS Advanced Python Driver, you must install:
-- Python 3.8 - 3.11 (inclusive).
+- Python 3.10 - 3.13 (inclusive).
- The AWS Advanced Python Driver.
- Your choice of underlying Python driver.
- To use the wrapper with Aurora with PostgreSQL compatibility, install [Psycopg](https://github.com/psycopg/psycopg).
diff --git a/docs/development-guide/DevelopmentGuide.md b/docs/development-guide/DevelopmentGuide.md
index 391b3237..ef5b6b7f 100644
--- a/docs/development-guide/DevelopmentGuide.md
+++ b/docs/development-guide/DevelopmentGuide.md
@@ -1,7 +1,7 @@
# Development Guide
### Setup
-Make sure you have Python 3.8 - 3.11 (inclusive) installed, along with your choice of underlying Python driver (see [minimum requirements](../GettingStarted.md#minimum-requirements)).
+Make sure you have Python 3.10 - 3.13 (inclusive) installed, along with your choice of underlying Python driver (see [minimum requirements](../GettingStarted.md#minimum-requirements)).
Clone the AWS Advanced Python Driver repository:
diff --git a/poetry.lock b/poetry.lock
index 5653d237..7ee33e84 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,17 +1,4 @@
-# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand.
-
-[[package]]
-name = "astor"
-version = "0.8.1"
-description = "Read/rewrite/write Python ASTs"
-optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
-groups = ["dev"]
-markers = "python_version < \"3.9\""
-files = [
- {file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"},
- {file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"},
-]
+# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand.
[[package]]
name = "aws-xray-sdk"
@@ -29,36 +16,6 @@ files = [
botocore = ">=1.11.3"
wrapt = "*"
-[[package]]
-name = "backports-zoneinfo"
-version = "0.2.1"
-description = "Backport of the standard library zoneinfo module"
-optional = false
-python-versions = ">=3.6"
-groups = ["dev", "test"]
-markers = "python_version < \"3.9\""
-files = [
- {file = "backports.zoneinfo-0.2.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:da6013fd84a690242c310d77ddb8441a559e9cb3d3d59ebac9aca1a57b2e18bc"},
- {file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:89a48c0d158a3cc3f654da4c2de1ceba85263fafb861b98b59040a5086259722"},
- {file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:1c5742112073a563c81f786e77514969acb58649bcdf6cdf0b4ed31a348d4546"},
- {file = "backports.zoneinfo-0.2.1-cp36-cp36m-win32.whl", hash = "sha256:e8236383a20872c0cdf5a62b554b27538db7fa1bbec52429d8d106effbaeca08"},
- {file = "backports.zoneinfo-0.2.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8439c030a11780786a2002261569bdf362264f605dfa4d65090b64b05c9f79a7"},
- {file = "backports.zoneinfo-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:f04e857b59d9d1ccc39ce2da1021d196e47234873820cbeaad210724b1ee28ac"},
- {file = "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:17746bd546106fa389c51dbea67c8b7c8f0d14b5526a579ca6ccf5ed72c526cf"},
- {file = "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5c144945a7752ca544b4b78c8c41544cdfaf9786f25fe5ffb10e838e19a27570"},
- {file = "backports.zoneinfo-0.2.1-cp37-cp37m-win32.whl", hash = "sha256:e55b384612d93be96506932a786bbcde5a2db7a9e6a4bb4bffe8b733f5b9036b"},
- {file = "backports.zoneinfo-0.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a76b38c52400b762e48131494ba26be363491ac4f9a04c1b7e92483d169f6582"},
- {file = "backports.zoneinfo-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:8961c0f32cd0336fb8e8ead11a1f8cd99ec07145ec2931122faaac1c8f7fd987"},
- {file = "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e81b76cace8eda1fca50e345242ba977f9be6ae3945af8d46326d776b4cf78d1"},
- {file = "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7b0a64cda4145548fed9efc10322770f929b944ce5cee6c0dfe0c87bf4c0c8c9"},
- {file = "backports.zoneinfo-0.2.1-cp38-cp38-win32.whl", hash = "sha256:1b13e654a55cd45672cb54ed12148cd33628f672548f373963b0bff67b217328"},
- {file = "backports.zoneinfo-0.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:4a0f800587060bf8880f954dbef70de6c11bbe59c673c3d818921f042f9954a6"},
- {file = "backports.zoneinfo-0.2.1.tar.gz", hash = "sha256:fadbfe37f74051d024037f223b8e001611eac868b5c5b06144ef4d8b799862f2"},
-]
-
-[package.extras]
-tzdata = ["tzdata"]
-
[[package]]
name = "beautifulsoup4"
version = "4.12.3"
@@ -116,10 +73,7 @@ files = [
[package.dependencies]
jmespath = ">=0.7.1,<2.0.0"
python-dateutil = ">=2.1,<3.0.0"
-urllib3 = [
- {version = ">=1.25.4,<1.27", markers = "python_version < \"3.10\""},
- {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""},
-]
+urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""}
[package.extras]
crt = ["awscrt (==0.23.8)"]
@@ -483,7 +437,6 @@ files = [
]
[package.dependencies]
-astor = {version = "*", markers = "python_version < \"3.9\""}
classify-imports = "*"
flake8 = "*"
@@ -921,45 +874,46 @@ files = [
[[package]]
name = "mysql-connector-python"
-version = "9.0.0"
-description = "MySQL driver written in Python"
+version = "9.5.0"
+description = "A self-contained Python driver for communicating with MySQL servers, using an API that is compliant with the Python Database API Specification v2.0 (PEP 249)."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.10"
groups = ["dev", "test"]
files = [
- {file = "mysql-connector-python-9.0.0.tar.gz", hash = "sha256:8a404db37864acca43fd76222d1fbc7ff8d17d4ce02d803289c2141c2693ce9e"},
- {file = "mysql_connector_python-9.0.0-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:72bfd0213364c2bea0244f6432ababb2f204cff43f4f886c65dca2be11f536ee"},
- {file = "mysql_connector_python-9.0.0-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:052058cf3dc0bf183ab522132f3b18a614a26f3e392ae886efcdab38d4f4fc42"},
- {file = "mysql_connector_python-9.0.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:f41cb8da8bb487ed60329ac31789c50621f0e6d2c26abc7d4ae2383838fb1b93"},
- {file = "mysql_connector_python-9.0.0-cp310-cp310-manylinux_2_17_x86_64.whl", hash = "sha256:67fc2b2e67a63963c633fc884f285a8de5a626967a3cc5f5d48ac3e8d15b122d"},
- {file = "mysql_connector_python-9.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:933c3e39d30cc6f9ff636d27d18aa3f1341b23d803ade4b57a76f91c26d14066"},
- {file = "mysql_connector_python-9.0.0-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:7af7f68198f2aca3a520e1201fe2b329331e0ca19a481f3b3451cb0746f56c01"},
- {file = "mysql_connector_python-9.0.0-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:38c229d76cd1dea8465357855f2b2842b7a9b201f17dea13b0eab7d3b9d6ad74"},
- {file = "mysql_connector_python-9.0.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:c01aad36f0c34ca3f642018be37fd0d55c546f088837cba88f1a1aff408c63dd"},
- {file = "mysql_connector_python-9.0.0-cp311-cp311-manylinux_2_17_x86_64.whl", hash = "sha256:853c5916d188ef2c357a474e15ac81cafae6085e599ceb9b2b0bcb9104118e63"},
- {file = "mysql_connector_python-9.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:134b71e439e2eafaee4c550365221ae2890dd54fb76227c64a87a94a07fe79b4"},
- {file = "mysql_connector_python-9.0.0-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:9199d6ecc81576602990178f0c2fb71737c53a598c8a2f51e1097a53fcfaee40"},
- {file = "mysql_connector_python-9.0.0-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:b267a6c000b7f98e6436a9acefa5582a9662e503b0632a2562e3093a677f6845"},
- {file = "mysql_connector_python-9.0.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:ac92b2f2a9307ac0c4aafdfcf7ecf01ec92dfebd9140f8c95353adfbf5822cd4"},
- {file = "mysql_connector_python-9.0.0-cp312-cp312-manylinux_2_17_x86_64.whl", hash = "sha256:ced1fa55e653d28f66c4f3569ed524d4d92098119dcd80c2fa026872a30eba55"},
- {file = "mysql_connector_python-9.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:ca8349fe56ce39498d9b5ca8eabba744774e94d85775259f26a43a03e8825429"},
- {file = "mysql_connector_python-9.0.0-cp38-cp38-macosx_13_0_x86_64.whl", hash = "sha256:a48534b881c176557ddc78527c8c75b4c9402511e972670ad33c5e49d31eddfe"},
- {file = "mysql_connector_python-9.0.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:e90a7b96ce2c6a60f6e2609b0c83f45bd55e144cc7c2a9714e344938827da363"},
- {file = "mysql_connector_python-9.0.0-cp38-cp38-manylinux_2_17_x86_64.whl", hash = "sha256:2a8f451c4d700802fdfe515890c14974766c322213df2ceed3b27752929dc70f"},
- {file = "mysql_connector_python-9.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:2dcf05355315e5c7c81e9eca34395d78f29c4da3662e869e42dd7b16380f92ce"},
- {file = "mysql_connector_python-9.0.0-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:823190e7f2a9b4bcc574ab6bb72a33802933e1a8c171594faad90162d2d27758"},
- {file = "mysql_connector_python-9.0.0-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:b8639d8aa381a7d19b92ca1a32448f09baaf80787e50187d1f7d072191430768"},
- {file = "mysql_connector_python-9.0.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:a688ea65b2ea771b9b69dc409377240a7cab7c1aafef46cd75219d5a94ba49e0"},
- {file = "mysql_connector_python-9.0.0-cp39-cp39-manylinux_2_17_x86_64.whl", hash = "sha256:6d92c58f71c691f86ad35bb2f3e13d7a9cc1c84ce0b04c146e5980e450faeff1"},
- {file = "mysql_connector_python-9.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:eacc353dcf6f39665d4ca3311ded5ddae0f5a117f03107991d4185ffa59fd890"},
- {file = "mysql_connector_python-9.0.0-py2.py3-none-any.whl", hash = "sha256:016d81bb1499dee8b77c82464244e98f10d3671ceefb4023adc559267d1fad50"},
+ {file = "mysql_connector_python-9.5.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:77d14c9fde90726de22443e8c5ba0912a4ebb632cc1ade52a349dacbac47b140"},
+ {file = "mysql_connector_python-9.5.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:4d603b55de310b9689bb3cb5e57fe97e98756e36d62f8f308f132f2c724f62b8"},
+ {file = "mysql_connector_python-9.5.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:48ffa71ba748afaae5c45ed9a085a72604368ce611fe81c3fdc146ef60181d51"},
+ {file = "mysql_connector_python-9.5.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:77c71df48293d3c08713ff7087cf483804c8abf41a4bb4aefea7317b752c8e9a"},
+ {file = "mysql_connector_python-9.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:4f8d2d9d586c34dc9508a44d19cf30ccafabbbd12d7f8ab58da3af118636843c"},
+ {file = "mysql_connector_python-9.5.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:653e70cd10cf2d18dd828fae58dff5f0f7a5cf7e48e244f2093314dddf84a4b9"},
+ {file = "mysql_connector_python-9.5.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:5add93f60b3922be71ea31b89bc8a452b876adbb49262561bd559860dae96b3f"},
+ {file = "mysql_connector_python-9.5.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:20950a5e44896c03e3dc93ceb3a5e9b48c9acae18665ca6e13249b3fe5b96811"},
+ {file = "mysql_connector_python-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:7fdd3205b9242c284019310fa84437f3357b13f598e3f9b5d80d337d4a6406b8"},
+ {file = "mysql_connector_python-9.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:c021d8b0830958b28712c70c53b206b4cf4766948dae201ea7ca588a186605e0"},
+ {file = "mysql_connector_python-9.5.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a72c2ef9d50b84f3c567c31b3bf30901af740686baa2a4abead5f202e0b7ea61"},
+ {file = "mysql_connector_python-9.5.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:bd9ba5a946cfd3b3b2688a75135357e862834b0321ed936fd968049be290872b"},
+ {file = "mysql_connector_python-9.5.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:5ef7accbdf8b5f6ec60d2a1550654b7e27e63bf6f7b04020d5fb4191fb02bc4d"},
+ {file = "mysql_connector_python-9.5.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:a6e0a4a0274d15e3d4c892ab93f58f46431222117dba20608178dfb2cc4d5fd8"},
+ {file = "mysql_connector_python-9.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:b6c69cb37600b7e22f476150034e2afbd53342a175e20aea887f8158fc5e3ff6"},
+ {file = "mysql_connector_python-9.5.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:1f5f7346b0d5edb2e994c1bd77b3f5eed88b0ca368ad6788d1012c7e56d7bf68"},
+ {file = "mysql_connector_python-9.5.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:07bf52591b4215cb4318b4617c327a6d84c31978c11e3255f01a627bcda2618e"},
+ {file = "mysql_connector_python-9.5.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:8972c1f960b30d487f34f9125ec112ea2b3200bd02c53e5e32ee7a43be6d64c1"},
+ {file = "mysql_connector_python-9.5.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:f6d32d7aa514d2f6f8709ba1e018314f82ab2acea2e6af30d04c1906fe9171b9"},
+ {file = "mysql_connector_python-9.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:edd47048eb65c196b28aa9d2c0c6a017d8ca084a9a7041cd317301c829eb5a05"},
+ {file = "mysql_connector_python-9.5.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:6effda35df1a96d9a096f04468d40f2324ea36b34d0e9632e81daae8be97b308"},
+ {file = "mysql_connector_python-9.5.0-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:fd057bd042464eedbf5337d1ceea7f2a4ab075a1cf6d1d62ffd5184966a656dd"},
+ {file = "mysql_connector_python-9.5.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:2797dd7bbefb1d1669d984cfb284ea6b34401bbd9c1b3bf84e646d0bd3a82197"},
+ {file = "mysql_connector_python-9.5.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:a5fff063ed48281b7374a4da6b9ef4293d390c153f79b1589ee547ea08c92310"},
+ {file = "mysql_connector_python-9.5.0-cp314-cp314-win_amd64.whl", hash = "sha256:56104693478fd447886c470a6d0558ded0fe2577df44c18232a6af6a2bbdd3e9"},
+ {file = "mysql_connector_python-9.5.0-py2.py3-none-any.whl", hash = "sha256:ace137b88eb6fdafa1e5b2e03ac76ce1b8b1844b3a4af1192a02ae7c1a45bdee"},
+ {file = "mysql_connector_python-9.5.0.tar.gz", hash = "sha256:92fb924285a86d8c146ebd63d94f9eaefa548da7813bc46271508fdc6cc1d596"},
]
[package.extras]
dns-srv = ["dnspython (==2.6.1)"]
-fido2 = ["fido2 (==1.1.2)"]
-gssapi = ["gssapi (>=1.6.9,<=1.8.2)"]
-telemetry = ["opentelemetry-api (==1.18.0)", "opentelemetry-exporter-otlp-proto-http (==1.18.0)", "opentelemetry-sdk (==1.18.0)"]
+gssapi = ["gssapi (==1.8.3)"]
+telemetry = ["opentelemetry-api (==1.33.1)", "opentelemetry-exporter-otlp-proto-http (==1.33.1)", "opentelemetry-sdk (==1.33.1)"]
+webauthn = ["fido2 (==1.1.2)"]
[[package]]
name = "opentelemetry-api"
@@ -1194,99 +1148,91 @@ files = [
[[package]]
name = "psycopg"
-version = "3.2.13"
+version = "3.3.1"
description = "PostgreSQL database adapter for Python"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.10"
groups = ["dev", "test"]
files = [
- {file = "psycopg-3.2.13-py3-none-any.whl", hash = "sha256:a481374514f2da627157f767a9336705ebefe93ea7a0522a6cbacba165da179a"},
- {file = "psycopg-3.2.13.tar.gz", hash = "sha256:309adaeda61d44556046ec9a83a93f42bbe5310120b1995f3af49ab6d9f13c1d"},
+ {file = "psycopg-3.3.1-py3-none-any.whl", hash = "sha256:e44d8eae209752efe46318f36dd0fdf5863e928009338d736843bb1084f6435c"},
+ {file = "psycopg-3.3.1.tar.gz", hash = "sha256:ccfa30b75874eef809c0fbbb176554a2640cc1735a612accc2e2396a92442fc6"},
]
[package.dependencies]
-"backports.zoneinfo" = {version = ">=0.2.0", markers = "python_version < \"3.9\""}
typing-extensions = {version = ">=4.6", markers = "python_version < \"3.13\""}
tzdata = {version = "*", markers = "sys_platform == \"win32\""}
[package.extras]
-binary = ["psycopg-binary (==3.2.13) ; implementation_name != \"pypy\""]
-c = ["psycopg-c (==3.2.13) ; implementation_name != \"pypy\""]
-dev = ["ast-comments (>=1.1.2)", "black (>=24.1.0)", "codespell (>=2.2)", "dnspython (>=2.1)", "flake8 (>=4.0)", "isort-psycopg", "isort[colors] (>=6.0)", "mypy (>=1.14)", "pre-commit (>=4.0.1)", "types-setuptools (>=57.4)", "types-shapely (>=2.0)", "wheel (>=0.37)"]
+binary = ["psycopg-binary (==3.3.1) ; implementation_name != \"pypy\""]
+c = ["psycopg-c (==3.3.1) ; implementation_name != \"pypy\""]
+dev = ["ast-comments (>=1.1.2)", "black (>=24.1.0)", "codespell (>=2.2)", "cython-lint (>=0.16)", "dnspython (>=2.1)", "flake8 (>=4.0)", "isort-psycopg", "isort[colors] (>=6.0)", "mypy (>=1.19.0)", "pre-commit (>=4.0.1)", "types-setuptools (>=57.4)", "types-shapely (>=2.0)", "wheel (>=0.37)"]
docs = ["Sphinx (>=5.0)", "furo (==2022.6.21)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.12)"]
pool = ["psycopg-pool"]
-test = ["anyio (>=4.0)", "mypy (>=1.14)", "pproxy (>=2.7)", "pytest (>=6.2.5)", "pytest-cov (>=3.0)", "pytest-randomly (>=3.5)"]
+test = ["anyio (>=4.0)", "mypy (>=1.19.0) ; implementation_name != \"pypy\"", "pproxy (>=2.7)", "pytest (>=6.2.5)", "pytest-cov (>=3.0)", "pytest-randomly (>=3.5)"]
[[package]]
name = "psycopg-binary"
-version = "3.2.13"
+version = "3.3.1"
description = "PostgreSQL database adapter for Python -- C optimisation distribution"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.10"
groups = ["dev", "test"]
files = [
- {file = "psycopg_binary-3.2.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9e25eb65494955c0dabdcd7097b004cbd70b982cf3cbc7186c2e854f788677a9"},
- {file = "psycopg_binary-3.2.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:732b25c2d932ca0655ea2588563eae831dc0842c93c69be4754a5b0e9760b38d"},
- {file = "psycopg_binary-3.2.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7350d9cc4e35529c4548ddda34a1c17f28d3f3a8f792c25cd67e8a04952ed415"},
- {file = "psycopg_binary-3.2.13-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:090c22795969ee1ace17322b1718769694607d942cef084c6fb4493adfa57da0"},
- {file = "psycopg_binary-3.2.13-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9ac329532f36342ff99fc1aefdbb531563bec03c7bc3ae934c8347a7a61339df"},
- {file = "psycopg_binary-3.2.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1db11a7e618d58cfb937c409c7d279a84cbb31d32a7efc63f1e5f426f3613793"},
- {file = "psycopg_binary-3.2.13-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5f5081b2cbb0358bb3625109d41b57411bf9d9c29762a867e38c06d974b245ee"},
- {file = "psycopg_binary-3.2.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5d466ac3a3738647ff2405397946870dc363e33282ced151e7ea74f622947c06"},
- {file = "psycopg_binary-3.2.13-cp310-cp310-win_amd64.whl", hash = "sha256:087acf2b24787ae206718136c1f51bc90cda68b02c3819b0556f418e3565f2c3"},
- {file = "psycopg_binary-3.2.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9cfe87749d010dfd34534ba8c71aa0674db9a3fce65232c98989f77c742c9ce7"},
- {file = "psycopg_binary-3.2.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8db77fac1dfe3f69c982db92a51fd78e1354fa8f523a6781a636123e5c7ffcde"},
- {file = "psycopg_binary-3.2.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cbbac4cd5b0e14b91ad8244268ca3fc2f527d1a337b489af57d7669c9d2e1a24"},
- {file = "psycopg_binary-3.2.13-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:a146f0a59a7e3ca92996f8133b1d5e5922e668f7c656b4a9201e702f4cf25896"},
- {file = "psycopg_binary-3.2.13-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:27150515de5f709e4142429db6fd36a1d01f0b8b17d915b5f7bb095364465398"},
- {file = "psycopg_binary-3.2.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9942255705255367d94368941e3a913b0daf74b47d191471dbe4dc0de9fbc769"},
- {file = "psycopg_binary-3.2.13-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:75ebc8335f48c339ec24f4c371595f6b7043147fe6d18e619c8564428ab8adaf"},
- {file = "psycopg_binary-3.2.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6fe2982a73b2ea473c9e2b91a35a21af3b03313bed188eccbcde4972483ac60a"},
- {file = "psycopg_binary-3.2.13-cp311-cp311-win_amd64.whl", hash = "sha256:6a50db4661fae78779d3cc38a0a68cabc997ca9d485ec27443b109ef8ac1672a"},
- {file = "psycopg_binary-3.2.13-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:223fc610a80bbc4355ad3c9952d468a18bb5cd7065846a8c275f100d80cd4004"},
- {file = "psycopg_binary-3.2.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b67f06a68d68b4621b6a411f9e583df876977afa06b1ba270b1b347d40aa93fc"},
- {file = "psycopg_binary-3.2.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:082579f2ae41bdabe20c82810810f3e290ac2206cccf0cb41cf36b3218f53b3c"},
- {file = "psycopg_binary-3.2.13-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:ff7df7bd8ec2c805f3a4896b8ade971139af0f9f8cf45d05014ac71fe54887be"},
- {file = "psycopg_binary-3.2.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8f1189dc78553ef4b2e55d9e116fc74870191bc6a9a5f4442412a703c4cc6c3b"},
- {file = "psycopg_binary-3.2.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0ef8ed4a4e0f7bf5e941782478a43c14b2b585b031e2266dd3afb87be2775d95"},
- {file = "psycopg_binary-3.2.13-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:de06fc9707a49f7c081b5c950974dd6de3dc33d681f7524f0b396471f5a4a480"},
- {file = "psycopg_binary-3.2.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:917ad1cd6e6ef8a9df2f28d7b29c7148f089be46ac56fe838f986c0227652d14"},
- {file = "psycopg_binary-3.2.13-cp312-cp312-win_amd64.whl", hash = "sha256:b53b0d9499805b307017070492189e349256e0946f62c815e442baa01f2ea6c5"},
- {file = "psycopg_binary-3.2.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dbae6ab1966e2b61d97e47220556c330c4608bb4cfb3a124aa0595c39995c068"},
- {file = "psycopg_binary-3.2.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fae933e4564386199fc54845d85413eedb49760e0bcd2b621fde2dd1825b99b3"},
- {file = "psycopg_binary-3.2.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:13e2f8894d410678529ff9f1211f96c5a93ff142f992b302682b42d924428b61"},
- {file = "psycopg_binary-3.2.13-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f26f7009375cf1e92180e5c517c52da1054f7e690dde90e0ed00fa8b5736bcd4"},
- {file = "psycopg_binary-3.2.13-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ea2fdbcc9142933a47c66970e0df8b363e3bd1ea4c5ce376f2f3d94a9aeec847"},
- {file = "psycopg_binary-3.2.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac92d6bc1d4a41c7459953a9aa727b9966e937e94c9e072527317fd2a67d488b"},
- {file = "psycopg_binary-3.2.13-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:8b843c00478739e95c46d6d3472b13123b634685f107831a9bfc41503a06ecbd"},
- {file = "psycopg_binary-3.2.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2f63868cc96bc18486cebec24445affbdd7f7debf28fac466ea935a8b5a4753b"},
- {file = "psycopg_binary-3.2.13-cp313-cp313-win_amd64.whl", hash = "sha256:594dfbca3326e997ae738d3d339004e8416b1f7390f52ce8dc2d692393e8fa96"},
- {file = "psycopg_binary-3.2.13-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:502a778c3e07c6b3aabfa56ee230e8c264d2debfab42d11535513a01bdfff0d6"},
- {file = "psycopg_binary-3.2.13-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7561a71d764d6f74d66e8b7d844b0f27fa33de508f65c17b1d56a94c73644776"},
- {file = "psycopg_binary-3.2.13-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9caf14745a1930b4e03fe4072cd7154eaf6e1241d20c42130ed784408a26b24b"},
- {file = "psycopg_binary-3.2.13-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:4a6cafabdc0bfa37e11c6f365020fd5916b62d6296df581f4dceaa43a2ce680c"},
- {file = "psycopg_binary-3.2.13-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c96cb5a27e68acac6d74b64fca38592a692de9c4b7827339190698d58027aa45"},
- {file = "psycopg_binary-3.2.13-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:596176ae3dfbf56fc61108870bfe17c7205d33ac28d524909feb5335201daa0a"},
- {file = "psycopg_binary-3.2.13-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:cc3a0408435dfbb77eeca5e8050df4b19a6e9b7e5e5583edf524c4a83d6293b2"},
- {file = "psycopg_binary-3.2.13-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:65df0d459ffba14082d8ca4bb2f6ffbb2f8d02968f7d34a747e1031934b76b23"},
- {file = "psycopg_binary-3.2.13-cp314-cp314-win_amd64.whl", hash = "sha256:5c77f156c7316529ed371b5f95a51139e531328ee39c37493a2afcbc1f79d5de"},
- {file = "psycopg_binary-3.2.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:84c32892b75a3c7a1111b0ae17d567e161bec7f51b6419bfee6919973f57a811"},
- {file = "psycopg_binary-3.2.13-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1c9e7ddbb1fe0c99ebe73e4658722d6e6fb7058dacac0fbe98653cf01a7a6871"},
- {file = "psycopg_binary-3.2.13-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:ef324695327681c756e206fbd0aa9bbc50fd05f45c74bc97c640c13ba36cc108"},
- {file = "psycopg_binary-3.2.13-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:00ac1f1832c11ebf7ce3e30cd9cd9ec4d32b7d4aabe02e5cc6dca1b6ecff215d"},
- {file = "psycopg_binary-3.2.13-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:38cadba35c8e3d0a43a916457c9b91c510be7253576d052d9549fd3c49c55782"},
- {file = "psycopg_binary-3.2.13-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:5056e701ec81e792f6acd362276585ac0c24456519b5e2fe552f298a04d2cd0c"},
- {file = "psycopg_binary-3.2.13-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:fbc7c46da9b0db8126f8ebcdcc966c0a14e87c187af7978b47f6971bfbb9cc2c"},
- {file = "psycopg_binary-3.2.13-cp38-cp38-win_amd64.whl", hash = "sha256:9b98ed605a394107ea624c3792896cef29b833d2e193facfd85ba72fc4e2f85b"},
- {file = "psycopg_binary-3.2.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6d8d1b709509d0f8cb857acf740b5eccd5bd2fb208a5b20e895f250519a32459"},
- {file = "psycopg_binary-3.2.13-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2d45bc5f4335498d32a26c8f8c0bf9ce8c973c19e78a9ee77c031300fb361300"},
- {file = "psycopg_binary-3.2.13-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f062d725898bf6fc5cfc6349a0d08ee09f129deb14d7fcd5c30f9f1b349f39dc"},
- {file = "psycopg_binary-3.2.13-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:915647b5bbbcde2bd464dc293eec4f74710fa71edc4f85aa6f6c8494a179dc9e"},
- {file = "psycopg_binary-3.2.13-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d3aec6e2f1cf4deb1b9a3ac287c0591479f3bd851d0a911d628f8c2c71c14f4a"},
- {file = "psycopg_binary-3.2.13-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a56a8b1794cbf27ca04012ac2890d58cfc82b3b310c1dac4fa78fbf6f57e7440"},
- {file = "psycopg_binary-3.2.13-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:4150a5e72f863be442d153829724109d83a76871d9bc801d6bb5b9c84b5b19b9"},
- {file = "psycopg_binary-3.2.13-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:028b49eb465f5d263d250cfd4f168fdabb306d0bbd97fd66a8a1fd7b696a953c"},
- {file = "psycopg_binary-3.2.13-cp39-cp39-win_amd64.whl", hash = "sha256:532ea34f673148d637be65a96251832252e278540b39fbd683ef37e58ec361c1"},
+ {file = "psycopg_binary-3.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7cf1fc1e69ffcdc67ac08d234194a8038b4491f3a0cc9ecee021408a7e0c2842"},
+ {file = "psycopg_binary-3.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8c67466aec41049e51016bd3fc15d193b5e9ba7f1d3baddff72fa54d86710dc3"},
+ {file = "psycopg_binary-3.3.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:bbc7652c716b90fea53fde61eb402c631d6bd0c93d92262193459d69a3c01526"},
+ {file = "psycopg_binary-3.3.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3d780ba9cd1a34899c1500acc16147fb759a93659c04fc3a145ee09784a56eaa"},
+ {file = "psycopg_binary-3.3.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:75351e092a7bd06353a3e3f3003059d4ebd80879447c3f404b82b0d78762c1cf"},
+ {file = "psycopg_binary-3.3.1-cp310-cp310-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dd66aa2ccf4f7f1889d8f0af0d3084088dc8285a0d7c8566bc3a430b487633f7"},
+ {file = "psycopg_binary-3.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:76b94c7fc9e7afe65039e7f7e9abc15f33fa356abad9a93f2ded56e64eb1a08b"},
+ {file = "psycopg_binary-3.3.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a80fd10b1f62a1300f79c6338209e9ab12a7c1817de664a1388d8b084464cdc6"},
+ {file = "psycopg_binary-3.3.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:f6848350fcba57f6da32ea06e4c693e85dbbc1cdb039c9710f46625e906e3779"},
+ {file = "psycopg_binary-3.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cb4ad6a386b2b2d5b70537c0d7d01ac38ac3629b144194ec3d52005029e224f9"},
+ {file = "psycopg_binary-3.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:8efe87ae2aee3da3fe7c54670db9ad94e667d9bde31a9e8b726349bc32708826"},
+ {file = "psycopg_binary-3.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:855e8f8b9650adac91eeea494f62f3f089496331d4514ec14d2f745b7e19fd45"},
+ {file = "psycopg_binary-3.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5a83618f45a8972a6aeab05e894dd48be36b5e181ae7d0d5491ff53e63c079b3"},
+ {file = "psycopg_binary-3.3.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:8e3b63507b8b00ebbc35f78fbd1c00202da7cfa2091c28cd0679db2af1a378c3"},
+ {file = "psycopg_binary-3.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:defb3272cd3f0cddd7e3ac83c68e644d2facbad2660020a7ce10bf0e36a44b9b"},
+ {file = "psycopg_binary-3.3.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9e7efa31c2fd868d3b5ffce9db357c479e4248600b4a871f86b9468749a7e6d5"},
+ {file = "psycopg_binary-3.3.1-cp311-cp311-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:32e47361607f606290274dd4c00013b3faaf692c73c6af20fbd6c7148d956340"},
+ {file = "psycopg_binary-3.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:62e8f62437831bdae33b11597c94bde2119c86d433f39bb7dfee6ef20962d84b"},
+ {file = "psycopg_binary-3.3.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:da60f9141c3c0657fb39ad06794730df77ae25de128320f2af17886a3c8ad392"},
+ {file = "psycopg_binary-3.3.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:fca6d127fe48703ef9d2f392e4b8998677a197d088f3c0a8b370c1fd51d03aa0"},
+ {file = "psycopg_binary-3.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0d8340c59fa1aec1ad121b082443e4871d62c58b958cc089986860fd2d965c73"},
+ {file = "psycopg_binary-3.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:c65e5cbc0f3a97e4ee83547124e6df766faa211c0ed50f8dba3ae0cf39b0f566"},
+ {file = "psycopg_binary-3.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f0afb5653614ad4a9a2fa0fa8c593508a18bd319afc26b20a33b883f263bf90"},
+ {file = "psycopg_binary-3.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b84ed483a4d0271be201005c7567161fc6bc884f7ebc08ed9f82083b3a0d1f9e"},
+ {file = "psycopg_binary-3.3.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:3323652b73305e23cc9b5f4e332b25f00c8cb16f47ef84ee4430b7df38273707"},
+ {file = "psycopg_binary-3.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c64ed9a49e606c764510a1d98270cc42a38527776aa98baf6e8c4e20c5341b96"},
+ {file = "psycopg_binary-3.3.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b81eee7d7f5fa9a85778fb854d979ba16f48cec584c17c51117ba94ad9d6a667"},
+ {file = "psycopg_binary-3.3.1-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8d0b967eada1831f6e8b652f6868c9fbdf80e397c1f096226fe0d545112f907d"},
+ {file = "psycopg_binary-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b2c86492e9b41d942bc263e5b961498bd404444b0547e1e2456e8f919599ad14"},
+ {file = "psycopg_binary-3.3.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5468dcdb2717dc764d1e1d9a391b714d28717bc8613e2e5481f261718e4e72c5"},
+ {file = "psycopg_binary-3.3.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:e3aa33e5553d12b91e23b928e869587289c6c26de58b3b14f70bed06eb767c58"},
+ {file = "psycopg_binary-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bbd26acb1ba8416a16256bfd87de9a1427fb2e04f8d79eae3fb64a112ede06f1"},
+ {file = "psycopg_binary-3.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:ce74da70444348135f9b5b9b67121eb9816ef483159bf54083765792c948f249"},
+ {file = "psycopg_binary-3.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fda22ce8530236381ff79a674ebc319f1a224f2e39a44158774e55e1488f89b9"},
+ {file = "psycopg_binary-3.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d2fc5fa6c45c406e43c8cc2787055d487b3ae597d2139125191b37fa04835f01"},
+ {file = "psycopg_binary-3.3.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:4d97e4d27cc7ee6938faf7dc9919c452581b4795bd97f3f48582846f24ab81ed"},
+ {file = "psycopg_binary-3.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f4fb5a3cf4373a8b06c2feb8f29ff4c69968ba443687dedec9f79ce22ef339ae"},
+ {file = "psycopg_binary-3.3.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4de5298b81423648ae751c789a6adb7f9396bd4de7f402db8f469901d676ebe4"},
+ {file = "psycopg_binary-3.3.1-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a41139976b8546b78ccd776b9f63665c247e209ae384fa6908ea401e9df2c385"},
+ {file = "psycopg_binary-3.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8ea017e58fa7fd8df1d9058ff0248e28f29312bf150a00114fc0ace8a800bfa"},
+ {file = "psycopg_binary-3.3.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:447e31350ea6816af03f39e6fc5ccccf18e34dc223a7d82734621048bb3fb9af"},
+ {file = "psycopg_binary-3.3.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:1f97f1814b046c8103b0a46a8c36c28399489716eba70ed38fbae30a27866e2c"},
+ {file = "psycopg_binary-3.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3986f783ff656a0392b81b7ac1e0f88a276a38276a5c93c0b89d4862e309d618"},
+ {file = "psycopg_binary-3.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:63e7c689a4249a1303da35df0b813e7cb3b9e2e5eae492a47482ee1a41dc66b2"},
+ {file = "psycopg_binary-3.3.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:7f7464571c2f4936810cdd7aed9108d3d80c6ea3d668a6e23fe8e9a4f4942d09"},
+ {file = "psycopg_binary-3.3.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4889aa16b2bfd4796a8648087262680d332fe9c6926fd7fd3d85c4f5eb483f01"},
+ {file = "psycopg_binary-3.3.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:87a01fc62483b4cb5c343194d78ef9d7588624ad260fa82b31bf3c08e285a95f"},
+ {file = "psycopg_binary-3.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:64b93d8456e17545c53bd23f601488fc508b68c4128133bc97762a00e61e8ab2"},
+ {file = "psycopg_binary-3.3.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f6b7bc0d230932aed188b9cc44b6fc6d43e2ec1585903d09a2d15095731ee07"},
+ {file = "psycopg_binary-3.3.1-cp314-cp314-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5d4e3d94c2475fefcb7b93b507fe8fa5c8c61f993c9bece0ffd05906f1dbb47d"},
+ {file = "psycopg_binary-3.3.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7e0998da49b193d35641be04068f061965428a4b5e776065691b7f8c1bbc472e"},
+ {file = "psycopg_binary-3.3.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:cbf1c2fb03b7114808aa251ff6401cad0fa85e78dbecf45d711510797708b256"},
+ {file = "psycopg_binary-3.3.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:18c87c715dda836dcdf1f71c6b71a3d10194f07faf8358d2d42bc637d70137cf"},
+ {file = "psycopg_binary-3.3.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ec0a04b95faf5c6c0af24917883b282f23dc588f0ee565efdd1146ed8129d258"},
+ {file = "psycopg_binary-3.3.1-cp314-cp314-win_amd64.whl", hash = "sha256:c0bcb5a5ec01ccc34f884470473b2b9d1730513b7fb7175f741224af6af14182"},
]
[[package]]
@@ -2153,24 +2099,6 @@ files = [
{file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"},
]
-[[package]]
-name = "urllib3"
-version = "1.26.20"
-description = "HTTP library with thread-safe connection pooling, file post, and more."
-optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
-groups = ["main", "test"]
-markers = "python_version < \"3.10\""
-files = [
- {file = "urllib3-1.26.20-py2.py3-none-any.whl", hash = "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e"},
- {file = "urllib3-1.26.20.tar.gz", hash = "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32"},
-]
-
-[package.extras]
-brotli = ["brotli (==1.0.9) ; os_name != \"nt\" and python_version < \"3\" and platform_python_implementation == \"CPython\"", "brotli (>=1.0.9) ; python_version >= \"3\" and platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; (os_name != \"nt\" or python_version >= \"3\") and platform_python_implementation != \"CPython\"", "brotlipy (>=0.6.0) ; os_name == \"nt\" and python_version < \"3\""]
-secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress ; python_version == \"2.7\"", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"]
-socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
-
[[package]]
name = "urllib3"
version = "2.2.3"
@@ -2178,7 +2106,6 @@ description = "HTTP library with thread-safe connection pooling, file post, and
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "python_version >= \"3.10\""
files = [
{file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"},
{file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"},
@@ -2292,5 +2219,5 @@ type = ["pytest-mypy"]
[metadata]
lock-version = "2.1"
-python-versions = "^3.8.1"
-content-hash = "4d6dc3f0080c62b28f78487a4cbefa724da3af5e9fd100a6abd376bcae3baadf"
+python-versions = "^3.10.0"
+content-hash = "219c6ed169c74778a600c5881dc9b14885a8b15c041e76f4f557f6538f7302d3"
diff --git a/pyproject.toml b/pyproject.toml
index ae8796e2..6b5e15f1 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -16,14 +16,14 @@ classifiers = [
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.8",
- "Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: 3.12",
+ "Programming Language :: Python :: 3.13",
]
[tool.poetry.dependencies]
-python = "^3.8.1"
+python = "^3.10.0"
resourcebundle = "2.1.0"
boto3 = "^1.34.111"
toml = "^0.10.2"
@@ -40,9 +40,9 @@ flake8-type-checking = "^2.9.0"
isort = "^5.13.2"
pep8-naming = "^0.14.1"
SQLAlchemy = "^2.0.30"
-psycopg = "^3.1.19"
-psycopg-binary = "^3.1.19"
-mysql-connector-python = "9.0.0"
+psycopg = "^3.3.1"
+psycopg-binary = "^3.3.1"
+mysql-connector-python = "^9.5.0"
[tool.poetry.group.test.dependencies]
boto3 = "^1.34.111"
@@ -57,9 +57,9 @@ pytest-html-merger = ">=0.0.10,<0.1.1"
toxiproxy-python = "^0.1.1"
parameterized = "^0.9.0"
tabulate = "^0.9.0"
-psycopg = "^3.1.19"
-psycopg-binary = "^3.1.19"
-mysql-connector-python = "9.0.0"
+psycopg = "^3.3.1"
+psycopg-binary = "^3.3.1"
+mysql-connector-python = "^9.5.0"
opentelemetry-exporter-otlp = "^1.22.0"
opentelemetry-exporter-otlp-proto-grpc = "^1.22.0"
opentelemetry-sdk-extension-aws = "^2.0.1"
diff --git a/tests/integration/container/utils/target_python_version.py b/tests/integration/container/utils/target_python_version.py
index db23eaf6..624e6676 100644
--- a/tests/integration/container/utils/target_python_version.py
+++ b/tests/integration/container/utils/target_python_version.py
@@ -17,4 +17,5 @@
class TargetPythonVersion(Enum):
PYTHON_3_11 = "PYTHON_3_11"
- PYTHON_3_8 = "PYTHON_3_8"
+ PYTHON_3_12 = "PYTHON_3_12"
+ PYTHON_3_13 = "PYTHON_3_13"
diff --git a/tests/integration/host/build.gradle.kts b/tests/integration/host/build.gradle.kts
index 6ede2d6c..7a3bc19c 100644
--- a/tests/integration/host/build.gradle.kts
+++ b/tests/integration/host/build.gradle.kts
@@ -68,7 +68,8 @@ tasks.register("test-python-3.11-mysql") {
filter.includeTestsMatching("integration.host.TestRunner.runTests")
doFirst {
systemProperty("exclude-performance", "true")
- systemProperty("exclude-python-38", "true")
+ systemProperty("exclude-python-3-12", "true")
+ systemProperty("exclude-python-3-13", "true")
systemProperty("exclude-multi-az-cluster", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
@@ -79,28 +80,47 @@ tasks.register("test-python-3.11-mysql") {
}
}
-tasks.register("test-python-3.8-mysql") {
+tasks.register("test-python-3.11-pg") {
group = "verification"
filter.includeTestsMatching("integration.host.TestRunner.runTests")
doFirst {
systemProperty("exclude-performance", "true")
- systemProperty("exclude-python-311", "true")
+ systemProperty("exclude-python-3-12", "true")
+ systemProperty("exclude-python-3-13", "true")
systemProperty("exclude-multi-az-cluster", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
+ systemProperty("exclude-mysql-driver", "true")
+ systemProperty("exclude-mysql-engine", "true")
+ systemProperty("exclude-mariadb-driver", "true")
+ systemProperty("exclude-mariadb-engine", "true")
+ }
+}
+
+tasks.register("test-python-3.12-mysql") {
+ group = "verification"
+ filter.includeTestsMatching("integration.host.TestRunner.runTests")
+ doFirst {
+ systemProperty("exclude-performance", "true")
+ systemProperty("exclude-python-3-11", "true")
+ systemProperty("exclude-python-3-13", "true")
+ systemProperty("exclude-multi-az-cluster", "true")
+ systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-traces-telemetry", "true")
systemProperty("exclude-metrics-telemetry", "true")
+ systemProperty("exclude-bg", "true")
systemProperty("exclude-pg-driver", "true")
systemProperty("exclude-pg-engine", "true")
}
}
-tasks.register("test-python-3.11-pg") {
+tasks.register("test-python-3.12-pg") {
group = "verification"
filter.includeTestsMatching("integration.host.TestRunner.runTests")
doFirst {
systemProperty("exclude-performance", "true")
- systemProperty("exclude-python-38", "true")
+ systemProperty("exclude-python-3-11", "true")
+ systemProperty("exclude-python-3-13", "true")
systemProperty("exclude-multi-az-cluster", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
@@ -111,12 +131,30 @@ tasks.register("test-python-3.11-pg") {
}
}
-tasks.register("test-python-3.8-pg") {
+tasks.register("test-python-3.13-mysql") {
+ group = "verification"
+ filter.includeTestsMatching("integration.host.TestRunner.runTests")
+ doFirst {
+ systemProperty("exclude-performance", "true")
+ systemProperty("exclude-python-3-11", "true")
+ systemProperty("exclude-python-3-12", "true")
+ systemProperty("exclude-multi-az-cluster", "true")
+ systemProperty("exclude-multi-az-instance", "true")
+ systemProperty("exclude-bg", "true")
+ systemProperty("exclude-traces-telemetry", "true")
+ systemProperty("exclude-metrics-telemetry", "true")
+ systemProperty("exclude-pg-driver", "true")
+ systemProperty("exclude-pg-engine", "true")
+ }
+}
+
+tasks.register("test-python-3.13-pg") {
group = "verification"
filter.includeTestsMatching("integration.host.TestRunner.runTests")
doFirst {
systemProperty("exclude-performance", "true")
- systemProperty("exclude-python-311", "true")
+ systemProperty("exclude-python-3-11", "true")
+ systemProperty("exclude-python-3-12", "true")
systemProperty("exclude-multi-az-cluster", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
@@ -136,7 +174,6 @@ tasks.register("test-docker") {
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
systemProperty("exclude-performance", "true")
- systemProperty("exclude-python-38", "true")
}
}
@@ -149,7 +186,6 @@ tasks.register("test-aurora") {
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
systemProperty("exclude-performance", "true")
- systemProperty("exclude-python-38", "true")
}
}
@@ -190,7 +226,6 @@ tasks.register("test-multi-az") {
systemProperty("exclude-docker", "true")
systemProperty("exclude-performance", "true")
systemProperty("exclude-aurora", "true")
- systemProperty("exclude-python-38", "true")
systemProperty("exclude-bg", "true")
}
}
@@ -276,7 +311,6 @@ tasks.register("test-bgd-mysql-instance") {
systemProperty("exclude-performance", "true")
systemProperty("exclude-pg-driver", "true")
systemProperty("exclude-pg-engine", "true")
- systemProperty("exclude-python-38", "true")
systemProperty("exclude-aurora", "true")
systemProperty("exclude-failover", "true")
systemProperty("exclude-secrets-manager", "true")
@@ -296,7 +330,6 @@ tasks.register("test-bgd-mysql-aurora") {
systemProperty("exclude-performance", "true")
systemProperty("exclude-pg-driver", "true")
systemProperty("exclude-pg-engine", "true")
- systemProperty("exclude-python-38", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-failover", "true")
systemProperty("exclude-secrets-manager", "true")
@@ -317,7 +350,6 @@ tasks.register("test-bgd-pg-instance") {
systemProperty("exclude-performance", "true")
systemProperty("exclude-mysql-driver", "true")
systemProperty("exclude-mysql-engine", "true")
- systemProperty("exclude-python-38", "true")
systemProperty("exclude-aurora", "true")
systemProperty("exclude-failover", "true")
systemProperty("exclude-secrets-manager", "true")
@@ -337,7 +369,6 @@ tasks.register("test-bgd-pg-aurora") {
systemProperty("exclude-performance", "true")
systemProperty("exclude-mysql-driver", "true")
systemProperty("exclude-mysql-engine", "true")
- systemProperty("exclude-python-38", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-failover", "true")
systemProperty("exclude-secrets-manager", "true")
@@ -357,7 +388,6 @@ tasks.register("debug-all-environments") {
filter.includeTestsMatching("integration.host.TestRunner.debugTests")
doFirst {
systemProperty("exclude-performance", "true")
- systemProperty("exclude-python-38", "true")
systemProperty("exclude-bg", "true")
}
}
@@ -371,7 +401,6 @@ tasks.register("debug-docker") {
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
systemProperty("exclude-performance", "true")
- systemProperty("exclude-python-38", "true")
}
}
@@ -384,7 +413,6 @@ tasks.register("debug-aurora") {
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-bg", "true")
systemProperty("exclude-performance", "true")
- systemProperty("exclude-python-38", "true")
}
}
@@ -470,7 +498,6 @@ tasks.register("debug-multi-az") {
systemProperty("exclude-docker", "true")
systemProperty("exclude-aurora", "true")
systemProperty("exclude-performance", "true")
- systemProperty("exclude-python-38", "true")
systemProperty("exclude-bg", "true")
}
}
@@ -509,7 +536,6 @@ tasks.register("debug-bgd-pg-aurora") {
systemProperty("exclude-performance", "true")
systemProperty("exclude-mysql-driver", "true")
systemProperty("exclude-mysql-engine", "true")
- systemProperty("exclude-python-38", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-failover", "true")
systemProperty("exclude-secrets-manager", "true")
@@ -529,7 +555,6 @@ tasks.register("debug-bgd-mysql-aurora") {
systemProperty("exclude-performance", "true")
systemProperty("exclude-pg-driver", "true")
systemProperty("exclude-pg-engine", "true")
- systemProperty("exclude-python-38", "true")
systemProperty("exclude-multi-az-instance", "true")
systemProperty("exclude-failover", "true")
systemProperty("exclude-secrets-manager", "true")
@@ -549,7 +574,6 @@ tasks.register("debug-bgd-mysql-instance") {
systemProperty("exclude-performance", "true")
systemProperty("exclude-pg-driver", "true")
systemProperty("exclude-pg-engine", "true")
- systemProperty("exclude-python-38", "true")
systemProperty("exclude-aurora", "true")
systemProperty("exclude-failover", "true")
systemProperty("exclude-secrets-manager", "true")
@@ -569,7 +593,6 @@ tasks.register("debug-bgd-pg-instance") {
systemProperty("exclude-performance", "true")
systemProperty("exclude-mysql-driver", "true")
systemProperty("exclude-mysql-engine", "true")
- systemProperty("exclude-python-38", "true")
systemProperty("exclude-aurora", "true")
systemProperty("exclude-failover", "true")
systemProperty("exclude-secrets-manager", "true")
diff --git a/tests/integration/host/src/test/java/integration/TargetPythonVersion.java b/tests/integration/host/src/test/java/integration/TargetPythonVersion.java
index f6ac5bc0..31e0edd7 100644
--- a/tests/integration/host/src/test/java/integration/TargetPythonVersion.java
+++ b/tests/integration/host/src/test/java/integration/TargetPythonVersion.java
@@ -18,5 +18,6 @@
public enum TargetPythonVersion {
PYTHON_3_11,
- PYTHON_3_8
+ PYTHON_3_12,
+ PYTHON_3_13
}
diff --git a/tests/integration/host/src/test/java/integration/host/TestEnvironment.java b/tests/integration/host/src/test/java/integration/host/TestEnvironment.java
index 06a4fa30..2eb36682 100644
--- a/tests/integration/host/src/test/java/integration/host/TestEnvironment.java
+++ b/tests/integration/host/src/test/java/integration/host/TestEnvironment.java
@@ -1141,10 +1141,12 @@ private static void createTelemetryOtlpContainer(TestEnvironment env) {
private static String getContainerBaseImageName(TestEnvironmentRequest request) {
switch (request.getTargetPythonVersion()) {
- case PYTHON_3_8:
- return "python:3.8.18";
case PYTHON_3_11:
return "python:3.11.5";
+ case PYTHON_3_12:
+ return "python:3.12";
+ case PYTHON_3_13:
+ return "python:3.13";
default:
throw new NotImplementedException(request.getTargetPythonVersion().toString());
}
diff --git a/tests/integration/host/src/test/java/integration/host/TestEnvironmentConfiguration.java b/tests/integration/host/src/test/java/integration/host/TestEnvironmentConfiguration.java
index 3e7e5677..782a496a 100644
--- a/tests/integration/host/src/test/java/integration/host/TestEnvironmentConfiguration.java
+++ b/tests/integration/host/src/test/java/integration/host/TestEnvironmentConfiguration.java
@@ -69,10 +69,12 @@ public class TestEnvironmentConfiguration {
public boolean testBlueGreenOnly =
Boolean.parseBoolean(System.getProperty("test-bg-only", "false"));
- public boolean excludePython38 =
- Boolean.parseBoolean(System.getProperty("exclude-python-38", "false"));
public boolean excludePython311 =
- Boolean.parseBoolean(System.getProperty("exclude-python-311", "false"));
+ Boolean.parseBoolean(System.getProperty("exclude-python-3-11", "false"));
+ public boolean excludePython312 =
+ Boolean.parseBoolean(System.getProperty("exclude-python-3-12", "false"));
+ public boolean excludePython313 =
+ Boolean.parseBoolean(System.getProperty("exclude-python-3-13", "false"));
public String testFilter = System.getenv("FILTER");
diff --git a/tests/integration/host/src/test/java/integration/host/TestEnvironmentProvider.java b/tests/integration/host/src/test/java/integration/host/TestEnvironmentProvider.java
index 52d126fa..2ab6757a 100644
--- a/tests/integration/host/src/test/java/integration/host/TestEnvironmentProvider.java
+++ b/tests/integration/host/src/test/java/integration/host/TestEnvironmentProvider.java
@@ -140,10 +140,13 @@ public Stream provideTestTemplateInvocationContex
}
for (TargetPythonVersion targetPythonVersion : TargetPythonVersion.values()) {
- if (targetPythonVersion == TargetPythonVersion.PYTHON_3_8 && config.excludePython38) {
+ if (targetPythonVersion == TargetPythonVersion.PYTHON_3_11 && config.excludePython311) {
continue;
}
- if (targetPythonVersion == TargetPythonVersion.PYTHON_3_11 && config.excludePython311) {
+ if (targetPythonVersion == TargetPythonVersion.PYTHON_3_12 && config.excludePython312) {
+ continue;
+ }
+ if (targetPythonVersion == TargetPythonVersion.PYTHON_3_13 && config.excludePython313) {
continue;
}
diff --git a/tests/unit/test_connection_provider.py b/tests/unit/test_connection_provider.py
index 5d73c06e..c1f15a6a 100644
--- a/tests/unit/test_connection_provider.py
+++ b/tests/unit/test_connection_provider.py
@@ -18,6 +18,8 @@
from aws_advanced_python_wrapper.connection_provider import (
ConnectionProviderManager, DriverConnectionProvider)
from aws_advanced_python_wrapper.hostinfo import HostInfo, HostRole
+from aws_advanced_python_wrapper.sql_alchemy_connection_provider import \
+ SqlAlchemyPooledConnectionProvider
from aws_advanced_python_wrapper.utils.properties import Properties
@@ -28,12 +30,12 @@ def connection_mock(mocker):
@pytest.fixture
def default_provider_mock(mocker):
- return mocker.MagicMock()
+ return mocker.MagicMock(spec=DriverConnectionProvider)
@pytest.fixture
def set_provider_mock(mocker):
- return mocker.MagicMock()
+ return mocker.MagicMock(spec=SqlAlchemyPooledConnectionProvider)
@pytest.fixture
@@ -172,9 +174,8 @@ def test_manager_get_host_info_by_strategy(connection_mock, default_provider_moc
assert host_info.host == "other"
-def test_release_resources(connection_mock, default_provider_mock, set_provider_mock):
- connection_provider_manager = ConnectionProviderManager(default_provider_mock)
+def test_release_resources(connection_mock, set_provider_mock):
ConnectionProviderManager.set_connection_provider(set_provider_mock)
ConnectionProviderManager.release_resources()
- connection_provider_manager._conn_provider.release_resources.assert_called_once()
+ set_provider_mock.release_resources.assert_called_once()
diff --git a/tests/unit/test_limitless_plugin.py b/tests/unit/test_limitless_plugin.py
index 8bcadf1c..c54038a6 100644
--- a/tests/unit/test_limitless_plugin.py
+++ b/tests/unit/test_limitless_plugin.py
@@ -14,7 +14,8 @@
import psycopg
import pytest
-from aws_advanced_python_wrapper.database_dialect import (DatabaseDialect,
+from aws_advanced_python_wrapper.database_dialect import (AuroraPgDialect,
+ DatabaseDialect,
MysqlDatabaseDialect)
from aws_advanced_python_wrapper.errors import (AwsWrapperError,
UnsupportedOperationError)
@@ -36,6 +37,8 @@ def mock_plugin_service(mocker, mock_driver_dialect, mock_conn, host_info):
service_mock = mocker.MagicMock()
service_mock.current_connection = mock_conn
service_mock.current_host_info = host_info
+ # Use a real AuroraPgDialect to pass isinstance checks in Python 3.12+
+ service_mock.database_dialect = AuroraPgDialect()
type(service_mock).driver_dialect = mocker.PropertyMock(return_value=mock_driver_dialect)
return service_mock
@@ -125,7 +128,8 @@ def test_connect_supported_dialect_after_refresh(
mocker, plugin, host_info, props, mock_conn, mock_plugin_service, mock_limitless_router_service, mock_driver_dialect
):
unsupported_dialect: DatabaseDialect = MysqlDatabaseDialect()
- type(mock_plugin_service).database_dialect = PropertyMock(side_effect=[unsupported_dialect, mock_driver_dialect])
+ supported_dialect: DatabaseDialect = AuroraPgDialect()
+ type(mock_plugin_service).database_dialect = PropertyMock(side_effect=[unsupported_dialect, supported_dialect])
def replace_context_connection(invocation):
context = invocation._connection_plugin._context
diff --git a/tests/unit/test_multi_az_rds_host_list_provider.py b/tests/unit/test_multi_az_rds_host_list_provider.py
index 65161404..145926d0 100644
--- a/tests/unit/test_multi_az_rds_host_list_provider.py
+++ b/tests/unit/test_multi_az_rds_host_list_provider.py
@@ -17,6 +17,7 @@
import psycopg
import pytest
+from aws_advanced_python_wrapper.database_dialect import AuroraPgDialect
from aws_advanced_python_wrapper.errors import (AwsWrapperError,
QueryTimeoutError)
from aws_advanced_python_wrapper.host_list_provider import (
@@ -59,7 +60,10 @@ def mock_cursor(mocker):
@pytest.fixture
def mock_provider_service(mocker):
- return mocker.MagicMock()
+ service_mock = mocker.MagicMock()
+ # Use a real AuroraPgDialect to pass isinstance checks in Python 3.12+
+ service_mock.database_dialect = AuroraPgDialect()
+ return service_mock
@pytest.fixture
diff --git a/tests/unit/test_mysql_driver_dialect.py b/tests/unit/test_mysql_driver_dialect.py
index 938ead59..e790788f 100644
--- a/tests/unit/test_mysql_driver_dialect.py
+++ b/tests/unit/test_mysql_driver_dialect.py
@@ -14,8 +14,8 @@
import psycopg
import pytest
-from mysql.connector import CMySQLConnection
-from mysql.connector.cursor_cext import CMySQLCursor
+from mysql.connector import MySQLConnection
+from mysql.connector.cursor import MySQLCursor
from aws_advanced_python_wrapper.errors import AwsWrapperError
from aws_advanced_python_wrapper.hostinfo import HostInfo
@@ -31,7 +31,7 @@ def dialect():
@pytest.fixture
def mock_conn(mocker):
- return mocker.MagicMock(spec=CMySQLConnection)
+ return mocker.MagicMock(spec=MySQLConnection)
@pytest.fixture
@@ -84,7 +84,7 @@ def test_autocommit(dialect, mock_conn, mock_invalid_conn):
def test_transfer_session_state(dialect, mocker, mock_conn):
mock_conn.autocommit = False
- new_conn = mocker.MagicMock(spec=CMySQLConnection)
+ new_conn = mocker.MagicMock(spec=MySQLConnection)
new_conn.autocommit = True
dialect.transfer_session_state(mock_conn, new_conn)
@@ -95,8 +95,8 @@ def test_transfer_session_state(dialect, mocker, mock_conn):
def test_get_connection_from_obj(dialect, mocker, mock_conn, mock_invalid_conn):
assert dialect.get_connection_from_obj(mock_conn) == mock_conn
- mock_cursor = mocker.MagicMock(spec=CMySQLCursor)
- mock_cursor._cnx = mock_conn
+ mock_cursor = mocker.MagicMock(spec=MySQLCursor)
+ mock_cursor._connection = mock_conn
assert dialect.get_connection_from_obj(mock_cursor) == mock_conn
assert dialect.get_connection_from_obj(mock_invalid_conn) is None
diff --git a/tests/unit/test_pg_driver_dialect.py b/tests/unit/test_pg_driver_dialect.py
index 8c01a7aa..bc4a533a 100644
--- a/tests/unit/test_pg_driver_dialect.py
+++ b/tests/unit/test_pg_driver_dialect.py
@@ -14,7 +14,7 @@
import psycopg
import pytest
-from mysql.connector import CMySQLConnection
+from mysql.connector import MySQLConnection
from sqlalchemy import PoolProxiedConnection
from aws_advanced_python_wrapper.errors import AwsWrapperError
@@ -40,7 +40,7 @@ def mock_pool_conn(mocker, mock_conn):
@pytest.fixture
def mock_invalid_conn(mocker):
- return mocker.MagicMock(spec=CMySQLConnection)
+ return mocker.MagicMock(spec=MySQLConnection)
@pytest.fixture
diff --git a/tests/unit/test_rds_host_list_provider.py b/tests/unit/test_rds_host_list_provider.py
index 3e375d4b..bd2fcc8a 100644
--- a/tests/unit/test_rds_host_list_provider.py
+++ b/tests/unit/test_rds_host_list_provider.py
@@ -18,6 +18,7 @@
import psycopg
import pytest
+from aws_advanced_python_wrapper.database_dialect import AuroraPgDialect
from aws_advanced_python_wrapper.errors import (AwsWrapperError,
QueryTimeoutError)
from aws_advanced_python_wrapper.host_list_provider import RdsHostListProvider
@@ -58,7 +59,10 @@ def mock_cursor(mocker):
@pytest.fixture
def mock_provider_service(mocker):
- return mocker.MagicMock()
+ service_mock = mocker.MagicMock()
+ # Use a real AuroraPgDialect to pass isinstance checks in Python 3.12+
+ service_mock.database_dialect = AuroraPgDialect()
+ return service_mock
@pytest.fixture