pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/databases/py-multidict
Module Name: pkgsrc
Committed By: wiz
Date: Sun Apr 13 11:09:38 UTC 2025
Modified Files:
pkgsrc/databases/py-multidict: Makefile PLIST distinfo
Log Message:
py-multidict: update to 6.4.3.
Add missing test dependencies.
6.4.3
=====
*(2025-04-10)*
Bug fixes
---------
- Fixed building the library in debug mode.
*Related issues and pull requests on GitHub:*
:issue:`1144`.
- Fixed custom ``PyType_GetModuleByDef()`` when non-heap type object was passed.
*Related issues and pull requests on GitHub:*
:issue:`1147`.
Packaging updates and notes for downstreams
-------------------------------------------
- Added the ability to build in debug mode by setting :envvar:`MULTIDICT_DEBUG_BUILD` in the environment -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
:issue:`1145`.
----
6.4.2
=====
*(2025-04-09)*
Bug fixes
---------
- Fixed a segmentation fault when creating subclassed :py:class:`~multidict.MultiDict` objects on Python < 3.11 -- by :user:`bdraco`.
The problem first appeared in 6.4.0
*Related issues and pull requests on GitHub:*
:issue:`1141`.
----
6.4.1
=====
*(2025-04-09)*
No significant changes.
----
6.4.0
=====
*(2025-04-09)*
Bug fixes
---------
- Fixed a memory leak creating new :class:`~multidict.istr` objects -- by :user:`bdraco`.
The leak was introduced in 6.3.0
*Related issues and pull requests on GitHub:*
:issue:`1133`.
- Fixed reference counting when calling :py:meth:`multidict.MultiDict.update` -- by :user:`bdraco`.
The leak was introduced in 4.4.0
*Related issues and pull requests on GitHub:*
:issue:`1135`.
Features
--------
- Switched C Extension to use heap types and the module state.
*Related issues and pull requests on GitHub:*
:issue:`1125`.
- Started building armv7l wheels -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
:issue:`1127`.
----
6.3.2
=====
*(2025-04-03)*
Bug fixes
---------
- Resolved a memory leak by ensuring proper reference count decrementation -- by :user:`asvetlov` and :user:`bdraco`.
*Related issues and pull requests on GitHub:*
:issue:`1121`.
----
6.3.1
=====
*(2025-04-01)*
Bug fixes
---------
- Fixed keys not becoming case-insensitive when :class:`multidict.CIMultiDict` is created by passing in a :class:`multidict.MultiDict` -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
:issue:`1112`.
- Fixed the pure Python version mutating the original :class:`multidict.MultiDict` when creating a new :class:`multidict.CIMultiDict` from an existing one when keyword arguments are also passed -- by
:user:`bdraco`.
*Related issues and pull requests on GitHub:*
:issue:`1113`.
- Prevented crashing with a segfault when :func:`repr` is called for recursive multidicts and their proxies and views.
*Related issues and pull requests on GitHub:*
:issue:`1115`.
----
6.3.0
=====
*(2025-03-31)*
Bug fixes
---------
- Set operations for ``KeysView`` and ``ItemsView`` of case-insensitive multidicts and their proxies are processed in case-insensitive manner.
*Related issues and pull requests on GitHub:*
:issue:`965`.
- Rewrote :class:`multidict.CIMultiDict` and it proxy to always return
:class:`multidict.istr` keys. ``istr`` is derived from :class:`str`,
thus the change is backward compatible.
The performance boost is about 15% for some operations for C Extension,
pure Python implementation have got a visible (15% - 230%) speedup as well.
*Related issues and pull requests on GitHub:*
:issue:`1097`.
- Fixed a crash when extending a multidict from multidict proxy if C Extensions were used.
*Related issues and pull requests on GitHub:*
:issue:`1100`.
Features
--------
- Implemented a custom parser for ``METH_FASTCALL | METH_KEYWORDS`` protocol
-- by :user:`asvetlov`.
The patch re-enables fast call protocol in the :py:mod:`multidict` C Extension.
Speedup is about 25%-30% for the library benchmarks for Python 3.12+.
*Related issues and pull requests on GitHub:*
:issue:`1070`.
- The C-extension no longer pre-allocates a Python exception object in
lookup-related methods of :py:class:`~multidict.MultiDict` when the
passed-in *key* is not found but *default* value is provided.
Namely, this affects :py:meth:`MultiDict.getone()
<multidict.MultiDict.getone>`, :py:meth:`MultiDict.getall()
<multidict.MultiDict.getall>`, :py:meth:`MultiDict.get()
<multidict.MultiDict.get>`, :py:meth:`MultiDict.pop()
<multidict.MultiDict.pop>`, :py:meth:`MultiDict.popone()
<multidict.MultiDict.popone>`, and :py:meth:`MultiDict.popall()
<multidict.MultiDict.popall>`.
Additionally, the :py:class:`~multidict.MultiDict` comparison with
regular :py:class:`dict`\ ionaries is now about 60% faster
on Python 3.13+ in the fallback-to-default case.
*Related issues and pull requests on GitHub:*
:issue:`1078`.
- Implemented ``__repr__()`` for C Extension classes in C.
The speedup is about 2.5 times.
*Related issues and pull requests on GitHub:*
:issue:`1081`.
- Made C version of :class:`multidict.istr` pickleable.
*Related issues and pull requests on GitHub:*
:issue:`1098`.
- Optimized multidict creation and extending / updating if C Extensions are used.
The speedup is between 25% and 70% depending on the usage scenario.
*Related issues and pull requests on GitHub:*
:issue:`1101`.
- :meth:`multidict.MultiDict.popitem` is changed to remove
the latest entry instead of the first.
It gives O(1) amortized complexity.
The standard :meth:`dict.popitem` removes the last entry also.
*Related issues and pull requests on GitHub:*
:issue:`1105`.
Contributor-facing changes
--------------------------
- Started running benchmarks for the pure Python implementation in addition to the C implementation -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
:issue:`1092`.
- The the project-wide Codecov_ metric is no longer reported
via GitHub Checks API. The combined value is not very useful
because one of the sources (MyPy) cannot reach 100% with the
current state of the ecosystem. We may want to reconsider in
the future. Instead, we now have two separate
“runtime coverage” metrics for library code and tests.
They are to be kept at 100% at all times.
And the “type coverage” metric will remain advisory, at a
lower threshold.
The default patch metric check is renamed to “runtime”
to better reflect its semantics. This one will also require
100% coverage.
Another “typing” patch coverage metric is now reported
alongside it. It's considered advisory, just like its
project counterpart.
When looking at Codecov_, one will likely want to look at
MyPy and pytest flags separately. It is usually best to
avoid looking at the PR pages that sometimes display
combined coverage incorrectly.
The change additionally disables the deprecated GitHub
Annotations integration in Codecov_.
Finally, the badge coloring range now starts at 100%.
.. image:: https://codecov.io/gh/aio-libs/multidict/branch/master/graph/badge.svg?flag=pytest
:target: https://codecov.io/gh/aio-libs/multidict?flags[]=pytest
:alt: Coverage metrics
-- by :user:`webknjaz`
*Related issues and pull requests on GitHub:*
:issue:`1093`.
Miscellaneous internal changes
------------------------------
- Synchronized :file:`pythoncapi_compat.h` with the latest available version.
*Related issues and pull requests on GitHub:*
:issue:`1063`.
- Moved registering ABCs for C Extension classes from C to Python.
*Related issues and pull requests on GitHub:*
:issue:`1083`.
- Refactored the internal ``pair_list`` implementation.
*Related issues and pull requests on GitHub:*
:issue:`1084`.
- Implemented views comparison and disjoints in C instead of Python helpers.
The performance boost is about 40%.
*Related issues and pull requests on GitHub:*
:issue:`1096`.
----
6.2.0
======
*(2025-03-17)*
Bug fixes
---------
- Fixed ``in`` checks throwing an exception instead of returning :data:`False` when testing non-strings.
*Related issues and pull requests on GitHub:*
:issue:`1045`.
- Fixed a leak when the last accessed module in ``PyInit__multidict()`` init is not released.
*Related issues and pull requests on GitHub:*
:issue:`1061`.
Features
--------
- Implemented support for the free-threaded build of CPython 3.13 -- by :user:`lysnikolaou`.
*Related issues and pull requests on GitHub:*
:issue:`1015`.
Packaging updates and notes for downstreams
-------------------------------------------
- Started publishing wheels made for the free-threaded build of CPython 3.13 -- by :user:`lysnikolaou`.
*Related issues and pull requests on GitHub:*
:issue:`1015`.
Miscellaneous internal changes
------------------------------
- Used stricter typing across the code base, resulting in improved typing accuracy across multidict classes.
Funded by an ``NLnet`` grant.
*Related issues and pull requests on GitHub:*
:issue:`1046`.
To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 pkgsrc/databases/py-multidict/Makefile
cvs rdiff -u -r1.12 -r1.13 pkgsrc/databases/py-multidict/PLIST
cvs rdiff -u -r1.32 -r1.33 pkgsrc/databases/py-multidict/distinfo
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/databases/py-multidict/Makefile
diff -u pkgsrc/databases/py-multidict/Makefile:1.33 pkgsrc/databases/py-multidict/Makefile:1.34
--- pkgsrc/databases/py-multidict/Makefile:1.33 Mon Nov 11 07:27:57 2024
+++ pkgsrc/databases/py-multidict/Makefile Sun Apr 13 11:09:38 2025
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.33 2024/11/11 07:27:57 wiz Exp $
+# $NetBSD: Makefile,v 1.34 2025/04/13 11:09:38 wiz Exp $
-DISTNAME= multidict-6.1.0
+DISTNAME= multidict-6.4.3
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
CATEGORIES= databases python
MASTER_SITES= ${MASTER_SITE_PYPI:=m/multidict/}
@@ -10,7 +10,9 @@ HOMEPAGE= https://github.com/aio-libs/mu
COMMENT= Multidict implementation
LICENSE= apache-2.0
-TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools>=40:../../devel/py-setuptools
+TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools>=78:../../devel/py-setuptools
+TEST_DEPENDS+= ${PYPKGPREFIX}-objgraph-[0-9]*:../../graphics/py-objgraph
+TEST_DEPENDS+= ${PYPKGPREFIX}-test-codspeed-[0-9]*:../../devel/py-test-codspeed
TEST_DEPENDS+= ${PYPKGPREFIX}-test-cov-[0-9]*:../../devel/py-test-cov
.include "../../lang/python/pyversion.mk"
Index: pkgsrc/databases/py-multidict/PLIST
diff -u pkgsrc/databases/py-multidict/PLIST:1.12 pkgsrc/databases/py-multidict/PLIST:1.13
--- pkgsrc/databases/py-multidict/PLIST:1.12 Fri Feb 2 08:08:49 2024
+++ pkgsrc/databases/py-multidict/PLIST Sun Apr 13 11:09:38 2025
@@ -1,12 +1,11 @@
-@comment $NetBSD: PLIST,v 1.12 2024/02/02 08:08:49 adam Exp $
-${PYSITELIB}/${WHEEL_INFODIR}/LICENSE
+@comment $NetBSD: PLIST,v 1.13 2025/04/13 11:09:38 wiz Exp $
${PYSITELIB}/${WHEEL_INFODIR}/METADATA
${PYSITELIB}/${WHEEL_INFODIR}/RECORD
${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
+${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
${PYSITELIB}/multidict/__init__.py
${PYSITELIB}/multidict/__init__.pyc
-${PYSITELIB}/multidict/__init__.pyi
${PYSITELIB}/multidict/__init__.pyo
${PYSITELIB}/multidict/_abc.py
${PYSITELIB}/multidict/_abc.pyc
@@ -15,9 +14,6 @@ ${PYSITELIB}/multidict/_compat.py
${PYSITELIB}/multidict/_compat.pyc
${PYSITELIB}/multidict/_compat.pyo
${PYSITELIB}/multidict/_multidict.so
-${PYSITELIB}/multidict/_multidict_base.py
-${PYSITELIB}/multidict/_multidict_base.pyc
-${PYSITELIB}/multidict/_multidict_base.pyo
${PYSITELIB}/multidict/_multidict_py.py
${PYSITELIB}/multidict/_multidict_py.pyc
${PYSITELIB}/multidict/_multidict_py.pyo
Index: pkgsrc/databases/py-multidict/distinfo
diff -u pkgsrc/databases/py-multidict/distinfo:1.32 pkgsrc/databases/py-multidict/distinfo:1.33
--- pkgsrc/databases/py-multidict/distinfo:1.32 Tue Sep 10 08:25:44 2024
+++ pkgsrc/databases/py-multidict/distinfo Sun Apr 13 11:09:38 2025
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.32 2024/09/10 08:25:44 adam Exp $
+$NetBSD: distinfo,v 1.33 2025/04/13 11:09:38 wiz Exp $
-BLAKE2s (multidict-6.1.0.tar.gz) = 274a4efe2638912ab0264235496ce26d23110111d2f20a3f8db8aa3bf1fc130f
-SHA512 (multidict-6.1.0.tar.gz) = 2e35c1450879ecfc856e5355cc515f57ce6100a1cd8854704dc6afc1bbdce0d46ab3eb9e23e35ea9956aacfb33bec351e8b878c11fa1cf3c03282fa40a4959d3
-Size (multidict-6.1.0.tar.gz) = 64002 bytes
+BLAKE2s (multidict-6.4.3.tar.gz) = d84d7b45df07108f3a664e7c0e669d97733355c798e7cd8b8a3ac526f217e4d7
+SHA512 (multidict-6.4.3.tar.gz) = 071e25558556ceeb936727dce7495811683207aa9829e01b4d3f09417f5cab7965ead7741ddb9f015d9a053d5ebba7f8082cf2908ceb95b8d542f26793946b8a
+Size (multidict-6.4.3.tar.gz) = 89372 bytes
Home |
Main Index |
Thread Index |
Old Index