pypi multidict 6.0.5

latest release: 6.1.0
9 months ago

Bug fixes

  • Upgraded the C-API macros that have been deprecated in Python 3.9
    and later removed in 3.13 -- by :user:iemelyanov.

    Related issues and pull requests on GitHub:
    #862, #864, #868, #898.

  • Reverted to using the public argument parsing API
    :c:func:PyArg_ParseTupleAndKeywords under Python 3.12
    -- by :user:charles-dyfis-net and :user:webknjaz.

    The effect is that this change prevents build failures with
    clang 16.9.6 and gcc-14 reported in #926. It also
    fixes a segmentation fault crash caused by passing keyword
    arguments to :py:meth:MultiDict.getall() <multidict.MultiDict.getall> discovered by :user:jonaslb
    and :user:hroncok while examining the problem.

    Related issues and pull requests on GitHub:
    #862, #909, #926, #929.

  • Fixed a SystemError: null argument to internal routine error on
    a MultiDict.items().isdisjoint() call when using C Extensions.

    Related issues and pull requests on GitHub:
    #927.

Improved documentation

  • On the Contributing docs <https://github.com/aio-libs/multidict/blob/master/CHANGES/README.rst>_ page,
    a link to the Towncrier philosophy has been fixed.

    Related issues and pull requests on GitHub:
    #911.

Packaging updates and notes for downstreams

  • Stopped marking all files as installable package data
    -- by :user:webknjaz.

    This change helps setuptools understand that C-headers are
    not to be installed under :file:lib/python3.{x}/site-packages/.

    Related commits on GitHub:
    :commit:31e1170.

  • Started publishing pure-python wheels to be installed
    as a fallback -- by :user:webknjaz.

    Related commits on GitHub:
    :commit:7ba0e72.

  • Switched from setuptools' legacy backend (setuptools.build_meta:__legacy__)
    to the modern one (setuptools.build_meta) by actually specifying the
    the [build-system] build-backend option in :file:pyproject.toml
    -- by :user:Jackenmen.

    Related issues and pull requests on GitHub:
    #802.

  • Declared Python 3.12 supported officially in the
    distribution package metadata -- by :user:hugovk.

    Related issues and pull requests on GitHub:
    #877.

Contributor-facing changes

  • The test framework has been refactored. In the previous state, the circular
    imports reported in #837 caused the C-extension tests to be skipped.

    Now, there is a set of the pytest fixtures that is set up in a parametrized
    manner allowing to have a consistent way of accessing mirrored multidict
    implementations across all the tests.

    This change also implemented a pair of CLI flags (--c-extensions /
    --no-c-extensions) that allow to explicitly request deselecting the tests
    running against the C-extension.

    -- by :user:webknjaz.

    Related issues and pull requests on GitHub:
    #98, #837, #915.

  • Updated the test pins lockfile used in the
    cibuildwheel test stage -- by :user:hoodmane.

    Related issues and pull requests on GitHub:
    #827.

  • Added an explicit void for arguments in C-function signatures
    which addresses the following compiler warning:

    .. code-block:: console

    warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]

    -- by :user:hoodmane

    Related issues and pull requests on GitHub:
    #828.

  • An experimental Python 3.13 job now runs in the CI
    -- :user:webknjaz.

    Related issues and pull requests on GitHub:
    #920.

  • Added test coverage for the :ref:and <python:and>, :ref:or <python:or>, :py:obj:sub <python:object.__sub__>, and
    :py:obj:xor <python:object.__xor__> operators in the
    :file:multidict/_multidict_base.py module. It also covers
    :py:data:NotImplemented and
    ":py:class:~typing.Iterable-but-not-:py:class:~typing.Set"
    cases there.

    -- by :user:a5r0n

    Related issues and pull requests on GitHub:
    #936.

  • The version of pytest is now capped below 8, when running MyPy
    against Python 3.7. This pytest release dropped support for
    said runtime.

    Related issues and pull requests on GitHub:
    #937.


Don't miss a new multidict release

NewReleases is sending notifications on new releases.