./net/py-zmq, Python bindings for zeromq

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 26.0.2, Package name: py311-zmq-26.0.2, Maintainer: pkgsrc-users

PyZMQ is ostensibly the Python bindings for ZeroMQ, but the project,
following Python's 'batteries included' philosophy, provides more than
just Python methods objects for calling into the ZeroMQ C++ library.


Required to run:
[devel/py-cython] [net/zeromq] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 260.461 KB

Version history: (Expand)


CVS history: (Expand)


   2024-04-24 14:50:28 by Adam Ciarcinski | Files touched by this commit (5) | Package updated
Log message:
py-zmq: updated to 26.0.2

26.0.2

- When bundling libsodium, download from libsodium's releases on GitHub instead \ 
of download.libsodium.org,
  which appears to error frequently.

26.0.1

- Fix install from source with cmake \< 3.21

26.0.0

pyzmq 26 is a small release, but with some big changes _hopefully_ nobody will \ 
notice,
except for some users (especially on Windows) where pyzmq releases did not work.

The highlights are:

- The Cython backend has been rewritten using Cython 3's pure Python mode.
- The build system has been rewritten to use CMake via [scikit-build-core] \ 
instead of setuptools (setup.py is gone!).
- Bundled libzmq is updated to 4.3.5, which changes its license from LGPL to MPL.

This means:

1. Cython >=3.0 is now a build requirement (if omitted, source distributions \ 
_should_ still build from Cython-generated .c files without any Cython present)
1. pyzmq's Cython backend is a single extension module, which should improve \ 
install size, import time, compile time, etc.
1. pyzmq's Cython backend is now BSD-licensed, matching the rest of pyzmq.
1. The license of the libzmq library (included in pyzmq wheels) starting with \ 
4.3.5 is now Mozilla Public License 2.0 (MPL-2.0).
1. when building pyzmq from source and it falls back on bundled libzmq, libzmq \ 
and libsodium are built as static libraries using their own build systems (CMake \ 
for libzmq, autotools for libsodium except on Windows where it uses msbuild)
   rather than bundling libzmq with tweetnacl as a Python Extension.

Since the new build system uses libzmq and libsodium's own build systems, \ 
evaluated at install time, building pyzmq with bundled libzmq from source should \ 
be much more likely to succeed on a variety of platforms than the previous \ 
method, where their build system was skipped and approximated as a Python \ 
extension.
But I would also be _very_ surprised if I didn't break anything in the process \ 
of replacing 14 years of setup.py from scratch, especially cases like \ 
cross-compiling.
Please [report](https://github.com/zeromq/pyzmq/issues/new) any issues you \ 
encounter building pyzmq.

See [build docs](building-pyzmq) for more info.

__New__:

- Experimental support for wheels on windows-arm64
- `Socket.bind('tcp://ip:0')` can be used as a context manager to bind to a \ 
random port.
  The resulting URL can be retrieved as `socket.last_endpoint`.
- Add `SyncSocket` and `SyncContext` type aliases for the default Socket/Context \ 
implementations,
  since the base classes are Generics, type-wise.
  These are type aliases only to be used in type checking, not actual classes.

__Enhancements__:

- `repr(Frame)` now produces a nice repr, summarizing Frame contents (without \ 
getting too large),
  e.g. `<zmq.Frame(b'abcdefghijkl'...52B)>`

__Breaking changes__:

- `str(Frame)` no longer returns the whole frame contents interpreted as utf8-bytes.
  Instead, it returns the new summarized repr,
  which produces more logical results with `print`, etc.
  `bytes(Frame)` remains unchanged, and utf-8 text strings can still be produced \ 
with:
  `bytes(Frame).decode("utf8")`,
  which works in all versions of pyzmq and does the same thing.
- Stop building Python 3.7 wheels for manylinux1, which reached EOL in January, \ 
2022. The new build system doesn't seem to be able to find cmake in that \ 
environment.
   2023-12-05 19:20:01 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-zmq: updated to 25.1.2

25.1.2

- Fix builds with some recent compilers and bundled libzmq
- Fix builds with upcoming Cython 3.1
   2023-10-11 10:32:21 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-zmq: updated to 25.1.1

25.1.1 is the first stable release with Python 3.12 wheels.

Changes:

- Allow Cython 0.29.35 to build Python 3.12 wheels (no longer require Cython 3)

Bugs fixed:

- Fix builds on Solaris by including generated platform.hpp
- Cleanup futures in `Socket.poll()`  that are cancelled and never return
- Fix builds with `-j` when numpy is present in the build env

25.1.0

pyzmq 25.1 mostly changes some packaging details of pyzmq, including support for \ 
installation from source on Python 3.12 beta 1.

Enhancements:

- Include address in error message when bind/connect fail.

Packaging changes:

- Fix inclusion of some test files in source distributions.
- Add Cython as a build-time dependency in `build-system.requires` metadata, \ 
following current [recommendations][cython-build-requires] of the Cython \ 
maintainers.
  We still ship generated Cython sources in source distributions, so it is not a \ 
_strict_ dependency for packagers using `--no-build-isolation`, but pip will \ 
install Cython as part of building pyzmq from source.
  This makes it more likely that past pyzmq releases will install on future \ 
Python releases, which often require an update to Cython but not pyzmq itself.
  For Python 3.12, Cython >=3.0.0b3 is required.

25.0.2

- Fix handling of shadow sockets in ZMQStream when the original sockets have \ 
been closed. A regression in 25.0.0, seen with jupyter-client 7.

25.0.1

Tiny bugfix release that should only affect users of {class}`~.PUBHandler` or \ 
pyzmq repackagers.

- Fix handling of custom Message types in {class}`~.PUBHandler`
- Small lint fixes to satisfy changes in mypy
- License files have been renamed to more standard LICENSE.BSD, LICENSE.LESSER \ 
to appease some license auto-detect tools.

25.0.0

New:

- Added `socket_class` argument to {func}`zmq.Context.socket`
- Support shadowing sockets with socket objects,
  not just via address, e.g. `zmq.asyncio.Socket(other_socket)`.
  Shadowing an object preserves a reference to the original,
  unlike shadowing via address.
- in {mod}`zmq.auth`, CredentialsProvider callbacks may now be async.
- {class}`~.zmq.eventloop.zmqstream.ZMQStream` callbacks may now be async.
- Add {class}`zmq.ReconnectStop` draft constants.
- Add manylinux_2_28 wheels for x86_64 CPython 3.10, 3.11, and PyPy 3.9 (these \ 
are _in addition to_ not _instead of_ the manylinux_2014 wheels).

Fixed:

- When {class}`~.zmq.eventloop.zmqstream.ZMQStream` is given an async socket,
  it now warns and hooks up events correctly with the underlying socket, so the \ 
callback gets the received message,
  instead of sending the callback the incorrect arguments.
- Fixed toml parse error in `pyproject.toml`,
  when installing from source with very old pip.
- Removed expressed dependency on `py` when running with pypy,
  which hasn't been used in some time.

Deprecated:

- {class}`zmq.auth.ioloop.IOLoopAuthenticator` is deprecated in favor of \ 
{class}`zmq.auth.asyncio.AsyncioAuthenticator`
- As part of migrating toward modern pytest, {class}`zmq.tests.BaseZMQTestCase` \ 
is deprecated and should not be used outside pyzmq.
- `python setup.py test` is deprecated as a way to launch the tests.
  Just use `pytest`.

Removed:

- Bundled subset of tornado's IOLoop (deprecated since pyzmq 17) is removed,
  so ZMQStream cannot be used without an actual install of tornado.
- Remove support for tornado 4,
  meaning tornado is always assumed to run on asyncio.
   2022-11-21 21:09:01 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-zmq: updated to 24.0.1

24.0.1

- Fix several possible resource warnings and deprecation warnings
  when cleaning up contexts and sockets,
  especially in pyzmq's own tests and when implicit teardown of objects is \ 
happening during process teardown.

24.0.0

pyzmq 24 has two breaking changes (one only on Windows), though they are not \ 
likely to affect most users.

Breaking changes:

- Due to a libzmq bug causing unavoidable crashes for some users,
  Windows wheels no longer bundle libzmq with AF_UNIX support.
  In order to enable AF_UNIX on Windows, pyzmq must be built from source,
  linking an appropriate build of libzmq (e.g. `libzmq-v142`).
  AF_UNIX support will be re-enabled in pyzmq wheels
  when libzmq published fixed releases.

- Using a {class}`zmq.Context` as a context manager or deleting a context \ 
without closing it now calls {meth}`zmq.Context.destroy` at exit instead of \ 
{meth}`zmq.Context.term`.
  This will have little effect on most users,
  but changes what happens when user bugs result in a context being _implicitly_ \ 
destroyed while sockets are left open.
  In almost all cases, this will turn what used to be a hang into a warning.
  However, there may be some cases where sockets are actively used in threads,
  which could result in a crash.
  To use sockets across threads, it is critical to properly and explicitly close \ 
your contexts and sockets,
  which will always avoid this issue.
   2022-08-18 18:51:37 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-zmq: updated to 23.2.1

23.2.1

Improvements:

- First release with wheels for Python 3.11 (thanks cibuildwheel!).
- linux aarch64 wheels now bundle the same libzmq (4.3.4) as all other builds,
  thanks to switching to native arm builds on CircleCI.

Fixes:

- Some type annotation fixes in devices.
   2022-07-02 11:31:44 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-zmq: updated to 23.2.0

23.2.0

Improvements:

- Use `zmq.Event` enums in `parse_monitor_message` for nicer reprs

Fixes:

- Fix building bundled libzmq with `ZMQ_DRAFT_API=1`
- Fix subclassing `zmq.Context` with additional arguments in the constructor.
  Subclasses may now have full control over the signature,
  rather than purely adding keyword-only arguments
- Typos and other small fixes
   2022-06-11 15:26:59 by Makoto Fujiwara | Files touched by this commit (1)
Log message:
(net/py-zmq) Fix build, +DEPENDS+= py-packaging
   2022-06-07 18:23:04 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-zmq: updated to 23.1.0

23.1.0

Fixing some regressions in 23.0:

- Fix global name of `zmq.EVENT_HANDSHAKE_*` constants
- Fix constants missing when using `import zmq.green as zmq`

Compatibility fixes:

- {func}`zmq.utils.monitor.recv_monitor_msg` now supports async Sockets.
- Fix build with mingw

23.0.0

Changes:

- all zmq constants are now available as Python enums
  (e.g. `zmq.SocketType.PULL`, `zmq.SocketOption.IDENTITY`),
  generated statically from zmq.h instead of at compile-time.
  This means that checks for the *presence* of a constant (`hasattr(zmq, 'RADIO')`)
  is not a valid check for the presence of a feature.
  This practice has never been robust, but it may have worked sometimes.
  Use direct checks via e.g. {func}`zmq.has` or {func}`zmq.zmq_version_info`.
- A bit more type coverage of Context.term and Context.socket

Compatibility fixes:

- Remove all use of deprecated stdlib distutils
- Update to Cython 0.29.30 (required for Python 3.11 compatibility)
- Compatibility with Python 3.11.0b1

Maintenance changes:

- Switch to myst for docs
- Deprecate `zmq.utils.strtypes`, now unused
- Updates to autoformatting, linting
- New wheels for PyPy 3.9
- Manylinux wheels for CPython 3.10 are based on manylinux2014