Skip to content

Commit b6cf49a

Browse files
committed
drop Python 3.7, stop building intel-only mac wheels
stick with universal2 removes some dead code for handling 3.7
1 parent 096bb59 commit b6cf49a

File tree

16 files changed

+18
-170
lines changed

16 files changed

+18
-170
lines changed

.github/workflows/test.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
matrix:
4343
include:
4444
- os: macos-13
45-
python: "3.7"
45+
python: "3.8"
4646

4747
- os: macos-14
4848
python: "3.12"
@@ -57,7 +57,7 @@ jobs:
5757
zmq: bundled
5858

5959
- os: ubuntu-20.04
60-
python: "3.7"
60+
python: "3.8"
6161
zmq: bundled
6262
tornado: none
6363

@@ -77,9 +77,6 @@ jobs:
7777

7878
- os: ubuntu-22.04
7979
python: "3.11"
80-
81-
- os: ubuntu-22.04
82-
python: "3.8"
8380
zmq: head
8481

8582
- os: ubuntu-22.04
@@ -93,11 +90,11 @@ jobs:
9390
free_threading: free_threading
9491

9592
- os: windows-2022
96-
python: "3.7"
93+
python: "3.8"
9794
arch: x86
9895

9996
- os: windows-2022
100-
python: "3.9"
97+
python: "3.11"
10198
arch: x64
10299

103100
- os: windows-2022

.github/workflows/wheels.yml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,18 +72,13 @@ jobs:
7272
fail-fast: false
7373
matrix:
7474
include:
75-
- os: macos-13
76-
name: mac-cpython
77-
cibw:
78-
build: "cp*"
79-
8075
- os: macos-13
8176
name: mac-pypy
8277
cibw:
8378
build: "pp*"
8479

8580
- os: macos-14
86-
name: mac-arm
81+
name: mac-cpython
8782
cibw:
8883
arch: universal2
8984
build: "cp*"

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
This package contains Python bindings for [ZeroMQ](https://zeromq.org).
44
ØMQ is a lightweight and fast messaging implementation.
55

6-
PyZMQ should work with any reasonable version of Python (≥ 3.7), as well as PyPy.
6+
PyZMQ should work with any reasonable version of Python (≥ 3.8), as well as PyPy.
77
The Cython backend used by CPython supports libzmq ≥ 2.1.4 (including 3.2.x and 4.x),
88
but the CFFI backend used by PyPy only supports libzmq ≥ 3.2.2 (including 4.x).
99

docs/source/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ an overview of what the ØMQ API looks like in Python. For information on how to
1111
ØMQ in general, see the many examples in the excellent [ØMQ Guide], all of which
1212
have a version in Python.
1313

14-
PyZMQ works with Python 3 (≥ 3.7), as well as PyPy via CFFI.
14+
PyZMQ works with Python 3 (≥ 3.8), as well as PyPy via CFFI.
1515

1616
Please don't hesitate to report pyzmq-specific issues to our [tracker] on GitHub.
1717
General questions about ØMQ are better sent to the [ØMQ tracker] or [mailing list].

examples/security/asyncio-ironhouse.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,3 @@ async def run() -> None:
109109
logging.basicConfig(level=level, format="[%(levelname)s] %(message)s")
110110

111111
asyncio.run(run())
112-
113-
# Note: asyncio.run() was added in Python 3.7.
114-
# For earlier Python versions, you can use:
115-
#
116-
# loop = asyncio.get_event_loop()
117-
# loop.run_until_complete(run())
118-
# loop.close()

pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ authors = [
1919
{ name = "Min Ragan-Kelley" },
2020
]
2121
license = { file = "LICENSE.md" }
22-
requires-python = ">=3.7"
22+
requires-python = ">=3.8"
2323
classifiers = [
2424
"Development Status :: 5 - Production/Stable",
2525
"Intended Audience :: Developers",
@@ -32,7 +32,6 @@ classifiers = [
3232
"Topic :: System :: Networking",
3333
"Programming Language :: Python :: 3",
3434
"Programming Language :: Python :: 3 :: Only",
35-
"Programming Language :: Python :: 3.7",
3635
"Programming Language :: Python :: 3.8",
3736
"Programming Language :: Python :: 3.9",
3837
"Programming Language :: Python :: 3.10",

test-requirements.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
black; platform_python_implementation != "PyPy"
22
# gevent wheels on mac cause Illegal Instruction
33
codecov
4-
# coverage 5 has issues with Cython: https://github.com/cython/cython/issues/3515
5-
coverage<5; python_version < "3.7"
6-
coverage>=7.1; python_version >= "3.7"
4+
coverage>=7.1
75
cython; platform_python_implementation != "PyPy" # required for Cython tests
86
cython>=3.0.0b3; platform_python_implementation != "PyPy" and python_version >= "3.12" # required for Cython tests
97
flake8
108
gevent; platform_python_implementation != "PyPy" and sys_platform != "win32" and sys_platform != "darwin" and python_version < "3.11"
119
mypy; platform_python_implementation != "PyPy"
1210
pymongo
1311
pytest
14-
pytest-asyncio>=0.16; python_version < "3.7"
15-
pytest-asyncio>=0.17; python_version >= "3.7"
12+
pytest-asyncio>=0.17
1613
# pytest-cov 2.11 requires coverage 5, which still doesn't work with Cython
1714
pytest-cov==2.10.*
1815
pytest-rerunfailures

tests/test_asyncio.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import json
88
import os
99
import sys
10-
from concurrent.futures import CancelledError
1110
from multiprocessing import Process
1211

1312
import pytest
@@ -121,13 +120,8 @@ async def test_recv_json_cancelled(push_pull):
121120
await asyncio.sleep(0)
122121
obj = dict(a=5)
123122
await a.send_json(obj)
124-
# CancelledError change in 3.8 https://bugs.python.org/issue32528
125-
if sys.version_info < (3, 8):
126-
with pytest.raises(CancelledError):
127-
recvd = await f
128-
else:
129-
with pytest.raises(asyncio.exceptions.CancelledError):
130-
recvd = await f
123+
with pytest.raises(asyncio.CancelledError):
124+
recvd = await f
131125
assert f.done()
132126
# give it a chance to incorrectly consume the event
133127
events = await b.poll(timeout=5)

tests/test_auth.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -398,10 +398,6 @@ def make_auth(self):
398398
return ThreadAuthenticator(self.context)
399399

400400

401-
@pytest.mark.skipif(
402-
sys.platform == 'win32' and sys.version_info < (3, 8),
403-
reason="flaky event loop cleanup on windows+py<38",
404-
)
405401
class TestAsyncioAuthentication(AuthTest):
406402
"""Test authentication running in a thread"""
407403

tools/run_with_env.cmd

Lines changed: 0 additions & 97 deletions
This file was deleted.

0 commit comments

Comments
 (0)