From b5bcead2507ab4cac46f8dcb607f98d28d981d39 Mon Sep 17 00:00:00 2001 From: Victor Bajada Date: Wed, 10 Dec 2025 10:00:03 -0500 Subject: [PATCH 01/10] Updates dependencies for Python 3.13 Bumps the httpx dependency and adjusts other dependencies to be compatible with Python 3.13. Adds *.pyc to .gitignore to ignore compiled python files. --- .gitignore | 1 + poetry.lock | 97 ++++++++++++++++++++++++++++++++++++-------------- pyproject.toml | 4 +-- 3 files changed, 74 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index 1f645a7..0263082 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ .dmypy.json .idea/ dist/ +*.pyc \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 6a08d84..4d36909 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. [[package]] name = "anyio" @@ -6,6 +6,7 @@ version = "4.0.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "anyio-4.0.0-py3-none-any.whl", hash = "sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f"}, {file = "anyio-4.0.0.tar.gz", hash = "sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a"}, @@ -17,7 +18,7 @@ sniffio = ">=1.1" [package.extras] doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17) ; python_version < \"3.12\" and platform_python_implementation == \"CPython\" and platform_system != \"Windows\""] trio = ["trio (>=0.22)"] [[package]] @@ -26,6 +27,7 @@ version = "23.1.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, @@ -36,7 +38,7 @@ cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] dev = ["attrs[docs,tests]", "pre-commit"] docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-no-zope = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.1.1) ; platform_python_implementation == \"CPython\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version < \"3.11\"", "pytest-xdist[psutil]"] [[package]] name = "black" @@ -44,6 +46,7 @@ version = "23.11.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "black-23.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dbea0bb8575c6b6303cc65017b46351dc5953eea5c0a59d7b7e3a2d2f433a911"}, {file = "black-23.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:412f56bab20ac85927f3a959230331de5614aecda1ede14b373083f62ec24e6f"}, @@ -84,6 +87,7 @@ version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" +groups = ["main", "dev"] files = [ {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, @@ -95,6 +99,7 @@ version = "3.2.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" +groups = ["dev"] files = [ {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, @@ -179,6 +184,7 @@ version = "8.1.7" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, @@ -193,6 +199,8 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] +markers = "platform_system == \"Windows\" or sys_platform == \"win32\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -204,6 +212,7 @@ version = "7.3.0" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "coverage-7.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db76a1bcb51f02b2007adacbed4c88b6dee75342c37b05d1822815eed19edee5"}, {file = "coverage-7.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c02cfa6c36144ab334d556989406837336c1d05215a9bdf44c0bc1d1ac1cb637"}, @@ -260,7 +269,7 @@ files = [ ] [package.extras] -toml = ["tomli"] +toml = ["tomli ; python_full_version <= \"3.11.0a6\""] [[package]] name = "docker" @@ -268,6 +277,7 @@ version = "6.1.3" description = "A Python library for the Docker Engine API." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "docker-6.1.3-py3-none-any.whl", hash = "sha256:aecd2277b8bf8e506e484f6ab7aec39abe0038e29fa4a6d3ba86c3fe01844ed9"}, {file = "docker-6.1.3.tar.gz", hash = "sha256:aa6d17830045ba5ef0168d5eaa34d37beeb113948c413affe1d5991fc11f9a20"}, @@ -289,6 +299,7 @@ version = "6.1.0" description = "the modular source code checker: pep8 pyflakes and co" optional = false python-versions = ">=3.8.1" +groups = ["dev"] files = [ {file = "flake8-6.1.0-py2.py3-none-any.whl", hash = "sha256:ffdfce58ea94c6580c77888a86506937f9a1a227dfcd15f245d694ae20a6b6e5"}, {file = "flake8-6.1.0.tar.gz", hash = "sha256:d5b3857f07c030bdb5bf41c7f53799571d75c4491748a3adcd47de929e34cd23"}, @@ -305,6 +316,7 @@ version = "23.7.10" description = "A plugin for flake8 finding likely bugs and design problems in your program. Contains warnings that don't belong in pyflakes and pycodestyle." optional = false python-versions = ">=3.8.1" +groups = ["dev"] files = [ {file = "flake8-bugbear-23.7.10.tar.gz", hash = "sha256:0ebdc7d8ec1ca8bd49347694562381f099f4de2f8ec6bda7a7dca65555d9e0d4"}, {file = "flake8_bugbear-23.7.10-py3-none-any.whl", hash = "sha256:d99d005114020fbef47ed5e4aebafd22f167f9a0fbd0d8bf3c9e90612cb25c34"}, @@ -323,6 +335,7 @@ version = "4.0.10" description = "Git Object Database" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "gitdb-4.0.10-py3-none-any.whl", hash = "sha256:c286cf298426064079ed96a9e4a9d39e7f3e9bf15ba60701e95f5492f28415c7"}, {file = "gitdb-4.0.10.tar.gz", hash = "sha256:6eb990b69df4e15bad899ea868dc46572c3f75339735663b81de79b06f17eb9a"}, @@ -337,6 +350,7 @@ version = "3.1.34" description = "GitPython is a Python library used to interact with Git repositories" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "GitPython-3.1.34-py3-none-any.whl", hash = "sha256:5d3802b98a3bae1c2b8ae0e1ff2e4aa16bcdf02c145da34d092324f599f01395"}, {file = "GitPython-3.1.34.tar.gz", hash = "sha256:85f7d365d1f6bf677ae51039c1ef67ca59091c7ebd5a3509aa399d4eda02d6dd"}, @@ -347,58 +361,62 @@ gitdb = ">=4.0.1,<5" [[package]] name = "h11" -version = "0.14.0" +version = "0.16.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["main"] files = [ - {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, - {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, + {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, + {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, ] [[package]] name = "httpcore" -version = "0.17.3" +version = "1.0.9" description = "A minimal low-level HTTP client." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["main"] files = [ - {file = "httpcore-0.17.3-py3-none-any.whl", hash = "sha256:c2789b767ddddfa2a5782e3199b2b7f6894540b17b16ec26b2c4d8e103510b87"}, - {file = "httpcore-0.17.3.tar.gz", hash = "sha256:a6f30213335e34c1ade7be6ec7c47f19f50c56db36abef1a9dfa3815b1cb3888"}, + {file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"}, + {file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"}, ] [package.dependencies] -anyio = ">=3.0,<5.0" certifi = "*" -h11 = ">=0.13,<0.15" -sniffio = "==1.*" +h11 = ">=0.16" [package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<1.0)"] [[package]] name = "httpx" -version = "0.24.1" +version = "0.28.1" description = "The next generation HTTP client." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["main"] files = [ - {file = "httpx-0.24.1-py3-none-any.whl", hash = "sha256:06781eb9ac53cde990577af654bd990a4949de37a28bdb4a230d434f3a30b9bd"}, - {file = "httpx-0.24.1.tar.gz", hash = "sha256:5853a43053df830c20f8110c5e69fe44d035d850b2dfe795e196f00fdb774bdd"}, + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, ] [package.dependencies] +anyio = "*" certifi = "*" -httpcore = ">=0.15.0,<0.18.0" +httpcore = "==1.*" idna = "*" -sniffio = "*" [package.extras] -brotli = ["brotli", "brotlicffi"] +brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""] cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "idna" @@ -406,6 +424,7 @@ version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" +groups = ["main", "dev"] files = [ {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, @@ -417,6 +436,7 @@ version = "2.0.0" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, @@ -428,6 +448,7 @@ version = "5.12.0" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.8.0" +groups = ["dev"] files = [ {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, @@ -445,6 +466,7 @@ version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, @@ -456,6 +478,7 @@ version = "1.5.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "mypy-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f33592ddf9655a4894aef22d134de7393e95fcbdc2d15c1ab65828eee5c66c70"}, {file = "mypy-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:258b22210a4a258ccd077426c7a181d789d1121aca6db73a83f79372f5569ae0"}, @@ -501,6 +524,7 @@ version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, @@ -512,6 +536,7 @@ version = "23.1" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, @@ -523,6 +548,7 @@ version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, @@ -534,6 +560,7 @@ version = "3.10.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, @@ -549,6 +576,7 @@ version = "1.3.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, @@ -564,6 +592,7 @@ version = "2.11.0" description = "Python style guide checker" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pycodestyle-2.11.0-py2.py3-none-any.whl", hash = "sha256:5d1013ba8dc7895b548be5afb05740ca82454fd899971563d2ef625d090326f8"}, {file = "pycodestyle-2.11.0.tar.gz", hash = "sha256:259bcc17857d8a8b3b4a2327324b79e5f020a13c16074670f9c8c8f872ea76d0"}, @@ -575,6 +604,7 @@ version = "3.1.0" description = "passive checker of Python programs" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pyflakes-3.1.0-py2.py3-none-any.whl", hash = "sha256:4132f6d49cb4dae6819e5379898f2b8cce3c5f23994194c24b77d5da2e36f774"}, {file = "pyflakes-3.1.0.tar.gz", hash = "sha256:a0aae034c444db0071aa077972ba4768d40c830d9539fd45bf4cd3f8f6992efc"}, @@ -586,6 +616,7 @@ version = "7.4.1" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pytest-7.4.1-py3-none-any.whl", hash = "sha256:460c9a59b14e27c602eb5ece2e47bec99dc5fc5f6513cf924a7d03a578991b1f"}, {file = "pytest-7.4.1.tar.gz", hash = "sha256:2f2301e797521b23e4d2585a0a3d7b5e50fdddaaf7e7d6773ea26ddb17c213ab"}, @@ -606,6 +637,7 @@ version = "0.21.1" description = "Pytest support for asyncio" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pytest-asyncio-0.21.1.tar.gz", hash = "sha256:40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d"}, {file = "pytest_asyncio-0.21.1-py3-none-any.whl", hash = "sha256:8666c1c8ac02631d7c51ba282e0c69a8a452b211ffedf2599099845da5c5c37b"}, @@ -624,6 +656,7 @@ version = "4.1.0" description = "Pytest plugin for measuring coverage." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, @@ -642,6 +675,7 @@ version = "3.1.3" description = "Docker integration tests for pytest" optional = false python-versions = ">=3.7.0,<4.0.0" +groups = ["dev"] files = [ {file = "pytest_docker_tools-3.1.3-py3-none-any.whl", hash = "sha256:63e659043160f41d89f94ea42616102594bcc85682aac394fcbc14f14cd1b189"}, {file = "pytest_docker_tools-3.1.3.tar.gz", hash = "sha256:c7e28841839d67b3ac80ad7b345b953701d5ae61ffda97586114244292aeacc0"}, @@ -657,6 +691,7 @@ version = "3.11.1" description = "Thin-wrapper around the mock package for easier use with pytest" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pytest-mock-3.11.1.tar.gz", hash = "sha256:7f6b125602ac6d743e523ae0bfa71e1a697a2f5534064528c6ff84c2f7c2fc7f"}, {file = "pytest_mock-3.11.1-py3-none-any.whl", hash = "sha256:21c279fff83d70763b05f8874cc9cfb3fcacd6d354247a976f9529d19f9acf39"}, @@ -674,6 +709,8 @@ version = "306" description = "Python for Window Extensions" optional = false python-versions = "*" +groups = ["dev"] +markers = "sys_platform == \"win32\"" files = [ {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, @@ -697,6 +734,7 @@ version = "2.31.0" description = "Python HTTP for Humans." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, @@ -718,6 +756,7 @@ version = "5.0.0" description = "A pure Python implementation of a sliding window memory map manager" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, @@ -729,6 +768,7 @@ version = "1.3.0" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, @@ -740,6 +780,7 @@ version = "23.1.0" description = "Structured Logging for Python" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "structlog-23.1.0-py3-none-any.whl", hash = "sha256:79b9e68e48b54e373441e130fa447944e6f87a05b35de23138e475c05d0f7e0e"}, {file = "structlog-23.1.0.tar.gz", hash = "sha256:270d681dd7d163c11ba500bc914b2472d2b50a8ef00faa999ded5ff83a2f906b"}, @@ -757,6 +798,7 @@ version = "8.2.3" description = "Retry code until it succeeds" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "tenacity-8.2.3-py3-none-any.whl", hash = "sha256:ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c"}, {file = "tenacity-8.2.3.tar.gz", hash = "sha256:5398ef0d78e63f40007c1fb4c0bff96e1911394d2fa8d194f77619c05ff6cc8a"}, @@ -771,6 +813,7 @@ version = "4.7.1" description = "Backported and Experimental Type Hints for Python 3.7+" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, @@ -782,13 +825,14 @@ version = "2.0.4" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "urllib3-2.0.4-py3-none-any.whl", hash = "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"}, {file = "urllib3-2.0.4.tar.gz", hash = "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -799,6 +843,7 @@ version = "1.6.2" description = "WebSocket client for Python with low level API options" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "websocket-client-1.6.2.tar.gz", hash = "sha256:53e95c826bf800c4c465f50093a8c4ff091c7327023b10bfaff40cf1ef170eaa"}, {file = "websocket_client-1.6.2-py3-none-any.whl", hash = "sha256:ce54f419dfae71f4bdba69ebe65bf7f0a93fe71bc009ad3a010aacc3eebad537"}, @@ -810,6 +855,6 @@ optional = ["python-socks", "wsaccel"] test = ["websockets"] [metadata] -lock-version = "2.0" -python-versions = ">=3.11,<4.0" -content-hash = "c91ef0571903d611c4fc46919b37c0beac5bae945b9ea5ce315b928c6e17b273" +lock-version = "2.1" +python-versions = ">=3.13,<3.14" +content-hash = "9112bf18b7bf93ea87402f986d2f4c8d5825ce9b52d954357429ed187265be46" diff --git a/pyproject.toml b/pyproject.toml index ffcafe8..f663d0e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,8 +9,8 @@ authors = [ readme = "README.md" [tool.poetry.dependencies] -python = ">=3.11,<4.0" -httpx = "^0.24.1" +python = ">=3.13,<3.14" +httpx = "^0.28.1" tenacity = "^8.0.1" structlog = "^23.1.0" From b69037f4ba08bd669f47a217dcdedc06f16fd437 Mon Sep 17 00:00:00 2001 From: Victor Bajada Date: Wed, 10 Dec 2025 10:06:35 -0500 Subject: [PATCH 02/10] Fix tenacity --- poetry.lock | 4 ++-- pyproject.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 66ea031..d6bfc82 100644 --- a/poetry.lock +++ b/poetry.lock @@ -797,7 +797,7 @@ name = "tenacity" version = "9.1.2" description = "Retry code until it succeeds" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" groups = ["main"] files = [ {file = "tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138"}, @@ -858,4 +858,4 @@ test = ["websockets"] [metadata] lock-version = "2.1" python-versions = ">=3.13,<3.14" -content-hash = "9112bf18b7bf93ea87402f986d2f4c8d5825ce9b52d954357429ed187265be46" +content-hash = "13c4d6f1937da27589f6b6134b1d4b6b7c05a7e39d8bb53f92137a65c243875a" diff --git a/pyproject.toml b/pyproject.toml index f663d0e..3471cfc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ readme = "README.md" [tool.poetry.dependencies] python = ">=3.13,<3.14" httpx = "^0.28.1" -tenacity = "^8.0.1" +tenacity = "^9.1.2" structlog = "^23.1.0" [tool.poetry.group.dev.dependencies] From b38bbf9d74645e1a0d498d0206b909a151c10368 Mon Sep 17 00:00:00 2001 From: Victor Bajada Date: Wed, 10 Dec 2025 10:11:12 -0500 Subject: [PATCH 03/10] Updates Python version to 3.13 in Actions Updates the Python version used in CI and CD workflows to the latest stable release, 3.13. --- .github/workflows/cd.yml | 2 +- .github/workflows/ci.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index d276769..cc94b00 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -8,7 +8,7 @@ on: env: FORCE_COLOR: "1" # Make tools pretty. - PYTHON_LATEST: "3.11" + PYTHON_LATEST: "3.13" jobs: deploy-pypi: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 87ee60e..2052a52 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ permissions: env: FORCE_COLOR: "1" # Make tools pretty. - PYTHON_LATEST: "3.11" + PYTHON_LATEST: "3.13" POETRY_VIRTUALENVS_CREATE: false @@ -73,7 +73,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.11"] + python-version: ["3.13"] steps: - uses: actions/checkout@v3 From 502edd4dbf33d5611b4b461eda42f068aeeeacc9 Mon Sep 17 00:00:00 2001 From: Victor Bajada Date: Wed, 10 Dec 2025 10:13:40 -0500 Subject: [PATCH 04/10] Bump Poetry in CICD --- .github/workflows/cd.yml | 2 +- .github/workflows/ci.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index cc94b00..68dce7b 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -20,7 +20,7 @@ jobs: python-version: ${{ env.PYTHON_LATEST }} - uses: snok/install-poetry@v1 with: - version: 1.3.0 + version: 2.1.1 - name: Install dependencies run: | poetry self add "poetry-dynamic-versioning[plugin]" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2052a52..7ba41c5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -82,7 +82,7 @@ jobs: python-version: ${{ matrix.python-version }} - uses: snok/install-poetry@v1 with: - version: 1.3.0 + version: 2.1.1 virtualenvs-create: true - name: Install dependencies run: | From 9d4c612910fcefc614c012d137733f193e3e856c Mon Sep 17 00:00:00 2001 From: Victor Bajada Date: Wed, 10 Dec 2025 10:20:08 -0500 Subject: [PATCH 05/10] Bump Poetry in CICD --- .github/workflows/ci.yml | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7ba41c5..4715b08 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,7 @@ jobs: python-version: ${{ env.PYTHON_LATEST }} - uses: snok/install-poetry@v1 with: - version: 1.3.0 + version: 2.1.1 virtualenvs-create: true - name: Install dependencies run: | diff --git a/pyproject.toml b/pyproject.toml index 3471cfc..af4ac29 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,5 +51,5 @@ module = "pytest_docker_tools" ignore_missing_imports = true [build-system] -requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"] +requires = ["poetry-core>=2.1.1", "wheel", "poetry-dynamic-versioning>=0.13.1"] build-backend = "poetry.core.masonry.api" From ef95d4934903b33103437b3fbe9d1317007293ff Mon Sep 17 00:00:00 2001 From: Victor Bajada Date: Wed, 10 Dec 2025 10:39:22 -0500 Subject: [PATCH 06/10] Add setuptools --- .github/workflows/cd.yml | 1 + .github/workflows/ci.yml | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 68dce7b..d1f9833 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -23,6 +23,7 @@ jobs: version: 2.1.1 - name: Install dependencies run: | + pip install setuptools poetry self add "poetry-dynamic-versioning[plugin]" - run: poetry build diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4715b08..29103c5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,7 @@ jobs: virtualenvs-create: true - name: Install dependencies run: | + pip install setuptools poetry self add "poetry-dynamic-versioning[plugin]" poetry install --only=dev @@ -60,6 +61,7 @@ jobs: virtualenvs-create: true - name: Install dependencies run: | + pip install setuptools poetry self add "poetry-dynamic-versioning[plugin]" poetry install @@ -86,6 +88,7 @@ jobs: virtualenvs-create: true - name: Install dependencies run: | + pip install setuptools poetry self add "poetry-dynamic-versioning[plugin]" poetry install From c52232be60d71825058e8e31299fcb3d0e4173b4 Mon Sep 17 00:00:00 2001 From: Victor Bajada Date: Wed, 10 Dec 2025 10:48:34 -0500 Subject: [PATCH 07/10] Update poetry dynamic versioning --- .github/workflows/cd.yml | 2 +- .github/workflows/ci.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index d1f9833..a1f9613 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -24,7 +24,7 @@ jobs: - name: Install dependencies run: | pip install setuptools - poetry self add "poetry-dynamic-versioning[plugin]" + poetry self add "poetry-dynamic-versioning[plugin]>=1.4.1" - run: poetry build diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 29103c5..974843e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: - name: Install dependencies run: | pip install setuptools - poetry self add "poetry-dynamic-versioning[plugin]" + poetry self add "poetry-dynamic-versioning[plugin]>=1.4.1" poetry install --only=dev - name: black @@ -62,7 +62,7 @@ jobs: - name: Install dependencies run: | pip install setuptools - poetry self add "poetry-dynamic-versioning[plugin]" + poetry self add "poetry-dynamic-versioning[plugin]>=1.4.1" poetry install - name: mypy @@ -89,7 +89,7 @@ jobs: - name: Install dependencies run: | pip install setuptools - poetry self add "poetry-dynamic-versioning[plugin]" + poetry self add "poetry-dynamic-versioning[plugin]>=1.4.1" poetry install - name: Setup Git From d3fee474a4d9f5f3a41857eb8a3f9c2cf777cb09 Mon Sep 17 00:00:00 2001 From: Victor Bajada Date: Wed, 10 Dec 2025 10:54:17 -0500 Subject: [PATCH 08/10] remove poetry dynamic versioning --- .github/workflows/cd.yml | 1 - .github/workflows/ci.yml | 4 ---- pyproject.toml | 5 ++--- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index a1f9613..68f1232 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -24,7 +24,6 @@ jobs: - name: Install dependencies run: | pip install setuptools - poetry self add "poetry-dynamic-versioning[plugin]>=1.4.1" - run: poetry build diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 974843e..3fe8da7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,8 +33,6 @@ jobs: virtualenvs-create: true - name: Install dependencies run: | - pip install setuptools - poetry self add "poetry-dynamic-versioning[plugin]>=1.4.1" poetry install --only=dev - name: black @@ -62,7 +60,6 @@ jobs: - name: Install dependencies run: | pip install setuptools - poetry self add "poetry-dynamic-versioning[plugin]>=1.4.1" poetry install - name: mypy @@ -89,7 +86,6 @@ jobs: - name: Install dependencies run: | pip install setuptools - poetry self add "poetry-dynamic-versioning[plugin]>=1.4.1" poetry install - name: Setup Git diff --git a/pyproject.toml b/pyproject.toml index af4ac29..f479c59 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,5 @@ [tool.poetry] name = "foxops-client" -# managed by poetry-dynamic-versioning, do not change. version = "0.0.0" description = "Foxops API Client" authors = [ @@ -39,7 +38,7 @@ line-length = 120 profile = "black" [tool.poetry-dynamic-versioning] -enable = true +enable = false vcs = "git" style = "pep440" @@ -51,5 +50,5 @@ module = "pytest_docker_tools" ignore_missing_imports = true [build-system] -requires = ["poetry-core>=2.1.1", "wheel", "poetry-dynamic-versioning>=0.13.1"] +requires = ["poetry-core>=2.1.1", "wheel"] build-backend = "poetry.core.masonry.api" From 7a08b591cad690c111191d4ee604d0f6d5030b38 Mon Sep 17 00:00:00 2001 From: Victor Bajada Date: Wed, 10 Dec 2025 15:23:25 -0500 Subject: [PATCH 09/10] add poetry dynamic versioning --- .github/workflows/cd.yml | 10 ++++++++-- .github/workflows/ci.yml | 22 ++++++++++++++-------- pyproject.toml | 6 +++--- 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 68f1232..d4eb7f1 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -7,7 +7,7 @@ on: workflow_dispatch: env: - FORCE_COLOR: "1" # Make tools pretty. + FORCE_COLOR: "1" PYTHON_LATEST: "3.13" jobs: @@ -15,12 +15,18 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: actions/setup-python@v4 with: python-version: ${{ env.PYTHON_LATEST }} + - uses: snok/install-poetry@v1 with: version: 2.1.1 + plugins: "poetry-dynamic-versioning[plugin]" + - name: Install dependencies run: | pip install setuptools @@ -30,4 +36,4 @@ jobs: - name: Publish package if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') run: | - poetry publish -u __token__ -p ${{ secrets.PYPI_API_TOKEN }} + poetry publish -u __token__ -p ${{ secrets.PYPI_API_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3fe8da7..cffbe5b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,10 +12,8 @@ permissions: contents: read env: - FORCE_COLOR: "1" # Make tools pretty. + FORCE_COLOR: "1" PYTHON_LATEST: "3.13" - POETRY_VIRTUALENVS_CREATE: false - jobs: linting: @@ -36,13 +34,13 @@ jobs: poetry install --only=dev - name: black - run: python -m black --check --diff . + run: poetry run python -m black --check --diff . - name: flake8 - run: python -m flake8 . + run: poetry run python -m flake8 . - name: isort - run: python -m isort --check-only -v --profile black . + run: poetry run python -m isort --check-only -v --profile black . typing: name: Typing @@ -55,15 +53,16 @@ jobs: python-version: ${{ env.PYTHON_LATEST }} - uses: snok/install-poetry@v1 with: - version: 1.3.0 + version: 2.1.1 # CHANGED: Updated from 1.3.0 to match other jobs virtualenvs-create: true - name: Install dependencies run: | pip install setuptools poetry install + # CHANGED: Use 'poetry run' so it finds the installed types - name: mypy - run: python -m mypy . + run: poetry run python -m mypy . tests: @@ -139,6 +138,9 @@ jobs: steps: - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: actions/setup-python@v4 with: python-version: ${{ env.PYTHON_LATEST }} @@ -161,8 +163,12 @@ jobs: steps: - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: actions/setup-python@v4 with: python-version: ${{ env.PYTHON_LATEST }} + - run: python -m pip install -e . - run: python -c 'import foxops_client; print(foxops_client.__version__)' \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index f479c59..04c1936 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ line-length = 120 profile = "black" [tool.poetry-dynamic-versioning] -enable = false +enable = true vcs = "git" style = "pep440" @@ -50,5 +50,5 @@ module = "pytest_docker_tools" ignore_missing_imports = true [build-system] -requires = ["poetry-core>=2.1.1", "wheel"] -build-backend = "poetry.core.masonry.api" +requires = ["poetry-core>=2.1.1", "wheel", "poetry-dynamic-versioning>=1.0.0,<2.0.0"] +build-backend = "poetry_dynamic_versioning.backend" From d9504873e662e0edfcc2d396b4621a822b4294e0 Mon Sep 17 00:00:00 2001 From: Victor Bajada Date: Wed, 10 Dec 2025 15:26:06 -0500 Subject: [PATCH 10/10] comments --- .github/workflows/ci.yml | 3 +-- pyproject.toml | 5 ----- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cffbe5b..573829a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,14 +53,13 @@ jobs: python-version: ${{ env.PYTHON_LATEST }} - uses: snok/install-poetry@v1 with: - version: 2.1.1 # CHANGED: Updated from 1.3.0 to match other jobs + version: 2.1.1 virtualenvs-create: true - name: Install dependencies run: | pip install setuptools poetry install - # CHANGED: Use 'poetry run' so it finds the installed types - name: mypy run: poetry run python -m mypy . diff --git a/pyproject.toml b/pyproject.toml index 04c1936..4884b6b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,20 +14,15 @@ tenacity = "^9.1.2" structlog = "^23.1.0" [tool.poetry.group.dev.dependencies] -# Linting black = "^23.7.0" flake8 = "^6.1.0" flake8-bugbear = "^23.7.10" isort = "^5.9.3" - -# Testing pytest = "^7.1.3" pytest-asyncio = "^0.21.1" pytest-cov = "^4.0.0" pytest-docker-tools = "^3.1.3" pytest-mock = "^3.10.0" - -# Typing mypy = "^1.5.1" GitPython = "^3.1.29"