From 49acc1f1bcd0f32acf761bfdd6dd0a59e1858792 Mon Sep 17 00:00:00 2001 From: Roo Sczesnak Date: Wed, 18 Feb 2026 17:24:36 -0800 Subject: [PATCH 1/7] WIP --- .circleci/config.yml | 52 --------- .github/workflows/ci.yml | 7 +- Makefile | 4 +- Pipfile | 14 --- Pipfile.lock | 237 --------------------------------------- README.md | 8 +- aiosocketpool/version.py | 2 +- pyproject.toml | 50 +++++++++ requirements.txt | 1 - setup.cfg | 3 - setup.py | 32 ------ 11 files changed, 59 insertions(+), 351 deletions(-) delete mode 100644 .circleci/config.yml delete mode 100644 Pipfile delete mode 100644 Pipfile.lock create mode 100644 pyproject.toml delete mode 100644 requirements.txt delete mode 100644 setup.cfg delete mode 100644 setup.py diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index aeb2c57..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,52 +0,0 @@ -version: 2.1 -executors: - aio_socketpool: - docker: - - image: circleci/python:3.7-stretch - -commands: - build-package: - description: "Install dependencies" - steps: - - checkout - - restore_cache: - key: deps1-{{ .Branch }}-{{ checksum "requirements.txt" }}-{{ checksum "setup.py" }} - - run: - name: "Install Python dependencies" - command: | - python3 -m venv venv - . venv/bin/activate - pip install -q -U pip - pip install --progress-bar=off -r requirements.txt - pip install --progress-bar=off . - - save_cache: - key: deps1-{{ .Branch }}-{{ checksum "requirements.txt" }}-{{ checksum "setup.py" }} - paths: - - venv - -jobs: - test-py3: - executor: aio_socketpool - steps: - - build-package - - run: - name: "Run tests" - command: | - . venv/bin/activate - make test - lint: - executor: aio_socketpool - steps: - - build-package - - run: - name: "Run flake8, black, and pydocstyle" - command: | - . venv/bin/activate - make lint - -workflows: - version: 2 - build: - jobs: - - test-py3 - - lint \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 40a10ae..938b445 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,14 +21,11 @@ jobs: python-version: "3.10" cache: "pip" cache-dependency-path: | - requirements.txt - setup.cfg - pyproject.toml + requirements-dev.txt - name: Install dependencies run: | pip install -q -U pip - pip install --progress-bar=off -r requirements.txt - pip install --progress-bar=off . + pip install --progress-bar=off '.[testing]' - name: Lint run: | make lint diff --git a/Makefile b/Makefile index 38a6297..c4e3bcc 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ lint: - flake8 aiosocketpool/ + flake8 --max-line-length=100 aiosocketpool/ black -l 100 --check aiosocketpool/ tests/ pydocstyle --convention=numpy --add-ignore=D100,D101,D102,D103,D104,D105,D202 aiosocketpool/ tests/ - mypy . + mypy aiosocketpool/ tests/ format: black -l 100 aiosocketpool/ tests/ test: diff --git a/Pipfile b/Pipfile deleted file mode 100644 index 5cc1317..0000000 --- a/Pipfile +++ /dev/null @@ -1,14 +0,0 @@ -[[source]] -url = "https://pypi.org/simple" -verify_ssl = true -name = "pypi" - -[packages] - -[dev-packages] -black = "*" -flake8 = "*" -pydocstyle = "~=4.0.0" -pytest = "~=6.2.3" -pytest-asyncio = "~=0.15.1" -mypy = "*" diff --git a/Pipfile.lock b/Pipfile.lock deleted file mode 100644 index 1670a13..0000000 --- a/Pipfile.lock +++ /dev/null @@ -1,237 +0,0 @@ -{ - "_meta": { - "hash": { - "sha256": "e1ac82277132512ba749ea8996291af36edddfe42171564b84536e340971a889" - }, - "pipfile-spec": 6, - "requires": {}, - "sources": [ - { - "name": "pypi", - "url": "https://pypi.org/simple", - "verify_ssl": true - } - ] - }, - "default": {}, - "develop": { - "attrs": { - "hashes": [ - "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04", - "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015" - ], - "markers": "python_version >= '3.7'", - "version": "==23.1.0" - }, - "black": { - "hashes": [ - "sha256:031e8c69f3d3b09e1aa471a926a1eeb0b9071f80b17689a655f7885ac9325a6f", - "sha256:13a2e4a93bb8ca74a749b6974925c27219bb3df4d42fc45e948a5d9feb5122b7", - "sha256:13ef033794029b85dfea8032c9d3b92b42b526f1ff4bf13b2182ce4e917f5100", - "sha256:14f04c990259576acd093871e7e9b14918eb28f1866f91968ff5524293f9c573", - "sha256:24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d", - "sha256:403397c033adbc45c2bd41747da1f7fc7eaa44efbee256b53842470d4ac5a70f", - "sha256:50254ebfa56aa46a9fdd5d651f9637485068a1adf42270148cd101cdf56e0ad9", - "sha256:538efb451cd50f43aba394e9ec7ad55a37598faae3348d723b59ea8e91616300", - "sha256:638619a559280de0c2aa4d76f504891c9860bb8fa214267358f0a20f27c12948", - "sha256:6a3b50e4b93f43b34a9d3ef00d9b6728b4a722c997c99ab09102fd5efdb88325", - "sha256:6ccd59584cc834b6d127628713e4b6b968e5f79572da66284532525a042549f9", - "sha256:75a2dc41b183d4872d3a500d2b9c9016e67ed95738a3624f4751a0cb4818fe71", - "sha256:7d30ec46de88091e4316b17ae58bbbfc12b2de05e069030f6b747dfc649ad186", - "sha256:8431445bf62d2a914b541da7ab3e2b4f3bc052d2ccbf157ebad18ea126efb91f", - "sha256:8fc1ddcf83f996247505db6b715294eba56ea9372e107fd54963c7553f2b6dfe", - "sha256:a732b82747235e0542c03bf352c126052c0fbc458d8a239a94701175b17d4855", - "sha256:adc3e4442eef57f99b5590b245a328aad19c99552e0bdc7f0b04db6656debd80", - "sha256:c46767e8df1b7beefb0899c4a95fb43058fa8500b6db144f4ff3ca38eb2f6393", - "sha256:c619f063c2d68f19b2d7270f4cf3192cb81c9ec5bc5ba02df91471d0b88c4c5c", - "sha256:cf3a4d00e4cdb6734b64bf23cd4341421e8953615cba6b3670453737a72ec204", - "sha256:cf99f3de8b3273a8317681d8194ea222f10e0133a24a7548c73ce44ea1679377", - "sha256:d6bc09188020c9ac2555a498949401ab35bb6bf76d4e0f8ee251694664df6301" - ], - "index": "pypi", - "markers": "python_version >= '3.8'", - "version": "==23.9.1" - }, - "click": { - "hashes": [ - "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", - "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de" - ], - "markers": "python_version >= '3.7'", - "version": "==8.1.7" - }, - "flake8": { - "hashes": [ - "sha256:d5b3857f07c030bdb5bf41c7f53799571d75c4491748a3adcd47de929e34cd23", - "sha256:ffdfce58ea94c6580c77888a86506937f9a1a227dfcd15f245d694ae20a6b6e5" - ], - "index": "pypi", - "markers": "python_full_version >= '3.8.1'", - "version": "==6.1.0" - }, - "iniconfig": { - "hashes": [ - "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", - "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" - ], - "markers": "python_version >= '3.7'", - "version": "==2.0.0" - }, - "mccabe": { - "hashes": [ - "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", - "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e" - ], - "markers": "python_version >= '3.6'", - "version": "==0.7.0" - }, - "mypy": { - "hashes": [ - "sha256:159aa9acb16086b79bbb0016145034a1a05360626046a929f84579ce1666b315", - "sha256:258b22210a4a258ccd077426c7a181d789d1121aca6db73a83f79372f5569ae0", - "sha256:26f71b535dfc158a71264e6dc805a9f8d2e60b67215ca0bfa26e2e1aa4d4d373", - "sha256:26fb32e4d4afa205b24bf645eddfbb36a1e17e995c5c99d6d00edb24b693406a", - "sha256:2fc3a600f749b1008cc75e02b6fb3d4db8dbcca2d733030fe7a3b3502902f161", - "sha256:32cb59609b0534f0bd67faebb6e022fe534bdb0e2ecab4290d683d248be1b275", - "sha256:330857f9507c24de5c5724235e66858f8364a0693894342485e543f5b07c8693", - "sha256:361da43c4f5a96173220eb53340ace68cda81845cd88218f8862dfb0adc8cddb", - "sha256:4a465ea2ca12804d5b34bb056be3a29dc47aea5973b892d0417c6a10a40b2d65", - "sha256:51cb1323064b1099e177098cb939eab2da42fea5d818d40113957ec954fc85f4", - "sha256:57b10c56016adce71fba6bc6e9fd45d8083f74361f629390c556738565af8eeb", - "sha256:596fae69f2bfcb7305808c75c00f81fe2829b6236eadda536f00610ac5ec2243", - "sha256:5d627124700b92b6bbaa99f27cbe615c8ea7b3402960f6372ea7d65faf376c14", - "sha256:6ac9c21bfe7bc9f7f1b6fae441746e6a106e48fc9de530dea29e8cd37a2c0cc4", - "sha256:82cb6193de9bbb3844bab4c7cf80e6227d5225cc7625b068a06d005d861ad5f1", - "sha256:8f772942d372c8cbac575be99f9cc9d9fb3bd95c8bc2de6c01411e2c84ebca8a", - "sha256:9fece120dbb041771a63eb95e4896791386fe287fefb2837258925b8326d6160", - "sha256:a156e6390944c265eb56afa67c74c0636f10283429171018446b732f1a05af25", - "sha256:a9ec1f695f0c25986e6f7f8778e5ce61659063268836a38c951200c57479cc12", - "sha256:abed92d9c8f08643c7d831300b739562b0a6c9fcb028d211134fc9ab20ccad5d", - "sha256:b031b9601f1060bf1281feab89697324726ba0c0bae9d7cd7ab4b690940f0b92", - "sha256:c543214ffdd422623e9fedd0869166c2f16affe4ba37463975043ef7d2ea8770", - "sha256:d28ddc3e3dfeab553e743e532fb95b4e6afad51d4706dd22f28e1e5e664828d2", - "sha256:f33592ddf9655a4894aef22d134de7393e95fcbdc2d15c1ab65828eee5c66c70", - "sha256:f6b0e77db9ff4fda74de7df13f30016a0a663928d669c9f2c057048ba44f09bb", - "sha256:f757063a83970d67c444f6e01d9550a7402322af3557ce7630d3c957386fa8f5", - "sha256:ff0cedc84184115202475bbb46dd99f8dcb87fe24d5d0ddfc0fe6b8575c88d2f" - ], - "index": "pypi", - "markers": "python_version >= '3.8'", - "version": "==1.5.1" - }, - "mypy-extensions": { - "hashes": [ - "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", - "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" - ], - "markers": "python_version >= '3.5'", - "version": "==1.0.0" - }, - "packaging": { - "hashes": [ - "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", - "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7" - ], - "markers": "python_version >= '3.7'", - "version": "==23.2" - }, - "pathspec": { - "hashes": [ - "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20", - "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3" - ], - "markers": "python_version >= '3.7'", - "version": "==0.11.2" - }, - "platformdirs": { - "hashes": [ - "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3", - "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e" - ], - "markers": "python_version >= '3.7'", - "version": "==3.11.0" - }, - "pluggy": { - "hashes": [ - "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12", - "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7" - ], - "markers": "python_version >= '3.8'", - "version": "==1.3.0" - }, - "py": { - "hashes": [ - "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", - "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==1.11.0" - }, - "pycodestyle": { - "hashes": [ - "sha256:259bcc17857d8a8b3b4a2327324b79e5f020a13c16074670f9c8c8f872ea76d0", - "sha256:5d1013ba8dc7895b548be5afb05740ca82454fd899971563d2ef625d090326f8" - ], - "markers": "python_version >= '3.8'", - "version": "==2.11.0" - }, - "pydocstyle": { - "hashes": [ - "sha256:04c84e034ebb56eb6396c820442b8c4499ac5eb94a3bda88951ac3dc519b6058", - "sha256:66aff87ffe34b1e49bff2dd03a88ce6843be2f3346b0c9814410d34987fbab59" - ], - "index": "pypi", - "markers": "python_version >= '3.4'", - "version": "==4.0.1" - }, - "pyflakes": { - "hashes": [ - "sha256:4132f6d49cb4dae6819e5379898f2b8cce3c5f23994194c24b77d5da2e36f774", - "sha256:a0aae034c444db0071aa077972ba4768d40c830d9539fd45bf4cd3f8f6992efc" - ], - "markers": "python_version >= '3.8'", - "version": "==3.1.0" - }, - "pytest": { - "hashes": [ - "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89", - "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134" - ], - "index": "pypi", - "markers": "python_version >= '3.6'", - "version": "==6.2.5" - }, - "pytest-asyncio": { - "hashes": [ - "sha256:2564ceb9612bbd560d19ca4b41347b54e7835c2f792c504f698e05395ed63f6f", - "sha256:3042bcdf1c5d978f6b74d96a151c4cfb9dcece65006198389ccd7e6c60eb1eea" - ], - "index": "pypi", - "markers": "python_version >= '3.6'", - "version": "==0.15.1" - }, - "snowballstemmer": { - "hashes": [ - "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1", - "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a" - ], - "version": "==2.2.0" - }, - "toml": { - "hashes": [ - "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", - "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" - ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==0.10.2" - }, - "typing-extensions": { - "hashes": [ - "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0", - "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef" - ], - "markers": "python_version >= '3.8'", - "version": "==4.8.0" - } - } -} diff --git a/README.md b/README.md index 505f8af..4d0cff1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -[![Circle CI](https://circleci.com/gh/polyatail/aiosocketpool.svg?style=shield&circle-token=f7f570b230ecf72d3df817cca445c5a28809068a)](https://circleci.com/gh/onecodex/mainline) -![Black Code Style](https://camo.githubusercontent.com/28a51fe3a2c05048d8ca8ecd039d6b1619037326/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64652532307374796c652d626c61636b2d3030303030302e737667) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +[![CI](https://github.com/polyatail/aiosocketpool/actions/workflows/ci.yml/badge.svg)](https://github.com/polyatail/aiosocketpool/actions/workflows/ci.yml) # aiosocketpool An asyncio-compatible socket pool. Simple, compact, easily extended. @@ -10,7 +10,7 @@ every request. Combining an `asyncio` event loop and a socket pool might be the Based on [socketpool](https://github.com/benoitc/socketpool). -**Requires Python 3.7 or above.** +**Requires Python 3.8 or above.** ## Examples @@ -81,4 +81,4 @@ for _ in range(25): tasks.append(loop.create_task(hello_world())) loop.run_until_complete(asyncio.gather(*tasks)) -``` \ No newline at end of file +``` diff --git a/aiosocketpool/version.py b/aiosocketpool/version.py index 81f0fde..b1a19e3 100644 --- a/aiosocketpool/version.py +++ b/aiosocketpool/version.py @@ -1 +1 @@ -__version__ = "0.0.4" +__version__ = "0.0.5" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..e370688 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,50 @@ +[build-system] +requires = ["setuptools>=61", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "aiosocketpool" +description = "An asyncio-compatible socket pool" +readme = "README.md" +requires-python = ">=3.8" +license = { file = "LICENSE" } +authors = [ + { name = "Roo Sczesnak", email = "andrewscz@gmail.com" }, +] +keywords = ["asyncio", "socketpool", "aiosocketpool"] +classifiers = [ + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Framework :: AsyncIO", +] +dynamic = ["version"] + +[project.optional-dependencies] +testing = [ + "black>=19.3b0", + "flake8>=3.7.8", + "mypy>=1.19.1", + "pip-tools>=4.2.0", + "pydocstyle>=4.0.0", + "pytest>=5.1.0", + "pytest-asyncio>=0.10.0", +] + +[project.urls] +Homepage = "https://github.com/polyatail/aiosocketpool" +Repository = "https://github.com/polyatail/aiosocketpool" + +[tool.setuptools] + +[tool.setuptools.dynamic] +version = { attr = "aiosocketpool.version.__version__" } + +[tool.setuptools.packages.find] +exclude = ["tests*", "test*"] + +[tool.flake8] +ignore = ["E203", "W503"] +max-line-length = 100 diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index e4f81fa..0000000 --- a/requirements.txt +++ /dev/null @@ -1 +0,0 @@ --i https://pypi.org/simple diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index f6be84b..0000000 --- a/setup.cfg +++ /dev/null @@ -1,3 +0,0 @@ -[flake8] -ignore = E203, W503 -max-line-length = 100 diff --git a/setup.py b/setup.py deleted file mode 100644 index 9cade6f..0000000 --- a/setup.py +++ /dev/null @@ -1,32 +0,0 @@ -from setuptools import setup, find_packages # type: ignore - -with open("aiosocketpool/version.py") as version_file: - exec(version_file.read()) - -with open("README.md") as readme: - README = readme.read() - -setup( - name="aiosocketpool", - version=__version__, # type: ignore - packages=find_packages(exclude=["*test*"]), - extras_require={ - "testing": [ - "black>=19.3b0", - "flake8>=3.7.8", - "pip-tools>=4.2.0", - "pydocstyle>=4.0.0", - "pytest>=5.1.0", - "pytest-asyncio>=0.10.0", - ] - }, - author="Roo Sczesnak", - author_email="andrewscz@gmail.com", - description="An asyncio-compatible socket pool", - long_description=README, - long_description_content_type="text/markdown", - license="MIT License", - keyword="asyncio socketpool aiosocketpool", - url="https://github.com/polyatail/aiosocketpool", - test_suite="tests", -) From ad64b93d908d0d36575e21670d84dab715deff05 Mon Sep 17 00:00:00 2001 From: Roo Sczesnak Date: Wed, 18 Feb 2026 18:01:55 -0800 Subject: [PATCH 2/7] Update .github/workflows/ci.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 938b445..d8e3476 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: python-version: "3.10" cache: "pip" cache-dependency-path: | - requirements-dev.txt + pyproject.toml - name: Install dependencies run: | pip install -q -U pip From 16e6969825019ebf75070fd96c2dcd96d542e1d6 Mon Sep 17 00:00:00 2001 From: Roo Sczesnak Date: Wed, 18 Feb 2026 18:02:08 -0800 Subject: [PATCH 3/7] Update pyproject.toml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- pyproject.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e370688..55165a9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,7 +44,3 @@ version = { attr = "aiosocketpool.version.__version__" } [tool.setuptools.packages.find] exclude = ["tests*", "test*"] - -[tool.flake8] -ignore = ["E203", "W503"] -max-line-length = 100 From c1f0ecb74a3ff55b4e0b2de390ba4ac263c65626 Mon Sep 17 00:00:00 2001 From: Roo Sczesnak Date: Wed, 18 Feb 2026 18:02:17 -0800 Subject: [PATCH 4/7] Update Makefile Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c4e3bcc..00def9c 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ lint: - flake8 --max-line-length=100 aiosocketpool/ + flake8 --max-line-length=100 --ignore=E203,W503 aiosocketpool/ black -l 100 --check aiosocketpool/ tests/ pydocstyle --convention=numpy --add-ignore=D100,D101,D102,D103,D104,D105,D202 aiosocketpool/ tests/ mypy aiosocketpool/ tests/ From 50e9d54bb8c0344f795dfe1c9f5d3e0b4806c812 Mon Sep 17 00:00:00 2001 From: Roo Sczesnak Date: Wed, 18 Feb 2026 18:02:24 -0800 Subject: [PATCH 5/7] Update pyproject.toml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- pyproject.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 55165a9..c4e220f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,8 +37,6 @@ testing = [ Homepage = "https://github.com/polyatail/aiosocketpool" Repository = "https://github.com/polyatail/aiosocketpool" -[tool.setuptools] - [tool.setuptools.dynamic] version = { attr = "aiosocketpool.version.__version__" } From 16ec0a0be03c8b14be955b4ad56d04526066fece Mon Sep 17 00:00:00 2001 From: Roo Sczesnak Date: Wed, 18 Feb 2026 18:04:02 -0800 Subject: [PATCH 6/7] Bump Black version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c4e220f..3f0a107 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,7 @@ dynamic = ["version"] [project.optional-dependencies] testing = [ - "black>=19.3b0", + "black>=24.3.0", "flake8>=3.7.8", "mypy>=1.19.1", "pip-tools>=4.2.0", From 90bd655abe3ef275cd99a1ed0f6bc5613e8a608e Mon Sep 17 00:00:00 2001 From: Roo Sczesnak Date: Wed, 18 Feb 2026 18:13:01 -0800 Subject: [PATCH 7/7] Fix mypy errors in CI --- aiosocketpool/__init__.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/aiosocketpool/__init__.py b/aiosocketpool/__init__.py index fb28f18..253be4c 100644 --- a/aiosocketpool/__init__.py +++ b/aiosocketpool/__init__.py @@ -6,7 +6,7 @@ import select import socket import time -from typing import Optional, Type, AsyncGenerator +from typing import Optional, Type, AsyncGenerator, Any, cast import weakref @@ -60,23 +60,24 @@ def is_connected(sock: socket.socket): return True p.unregister(fno) elif can_use_kqueue(): - kq = select.kqueue() + sel = cast(Any, select) + kq = sel.kqueue() events = [ - select.kevent(fno, select.KQ_FILTER_READ, select.KQ_EV_ADD), - select.kevent(fno, select.KQ_FILTER_WRITE, select.KQ_EV_ADD), + sel.kevent(fno, sel.KQ_FILTER_READ, sel.KQ_EV_ADD), + sel.kevent(fno, sel.KQ_FILTER_WRITE, sel.KQ_EV_ADD), ] kq.control(events, 0) kevents = kq.control(None, 4, 0) for ev in kevents: if ev.ident == fno: - if ev.flags & select.KQ_EV_ERROR: + if ev.flags & sel.KQ_EV_ERROR: return False else: return True events = [ - select.kevent(fno, select.KQ_FILTER_READ, select.KQ_EV_DELETE), - select.kevent(fno, select.KQ_FILTER_WRITE, select.KQ_EV_DELETE), + sel.kevent(fno, sel.KQ_FILTER_READ, sel.KQ_EV_DELETE), + sel.kevent(fno, sel.KQ_FILTER_WRITE, sel.KQ_EV_DELETE), ] kq.control(events, 0) kq.close()