py-uv*: update to 0.13.7
Preview features
Add --output-version to uv workspace metadata for requesting a specific schema version (#22958)
Report aliased OSV records as a single vulnerability in uv audit (#22990)
Bug fixes
Treat workspace member paths added by uv init or uv add as literals instead of glob patterns (#23008)
Prevent uv's Windows trampolines from closing handles they did not inherit (#22977)
Allow uvx to run tools with CPython builds whose versions contain local identifiers (#23013)
Generate valid module names when uv init creates packaged projects whose names start with a digit (#23022)
Preserve comments around existing inline dependency groups when uv add updates a group (#23017)
Allow uv remove with an empty inline tool.uv.sources table (#23012)
Documentation
Correct the cache-keys inline table example (#22984)
apache24: updated to 2.4.70
Apache 2.4.70
*) mod_authnz_ldap: Fix crashes in 2.4.69 reported on Windows.
*) mod_cgid: Increase limits for number and length of
environment variables, URI and arguments.
[Emmanuel Dreyfus <manu netbsd.org>, Joe Orton]
*) mod_substitute: Fix an integer overflow that can happen in very special
setups.
*) mod_cache: Do not store a response whose "Vary: *" was set via
"Header always".
*) mod_dav_lock: Fix a heap buffer overflow in dav_size_indirect(), which
under-reserved space for the stored key length field, written as
apr_size_t but sized as int.
sysutils/dua-cli: update to 3.0.1
This release fixes builds for free-desktop/linux,
which is not(target_os = "macos"), not(target_os = "ios"), not(target_os = "android")
apr-util: updated to 1.6.6
Changes with APR-util 1.6.6
*) Fix crypto/apr_passwd.c compilation errors on older systems.
*) Fix crashes in apr_crypto_get_block_key_types() with default cmake builds on
Windows.
Changes with APR-util 1.6.5
*) Fix oracle DBD compilation errors introduced in 1.6.4.
py-utils: updated to 4.2.0
4.2.0
Deprecate batch sizes below 1 in batcher, and in abatcher without an interval. A DeprecationWarning is issued when iteration starts, before the source is consumed, and the results and errors stay as they were. A test suite that turns warnings into errors fails on such a size from this release on. These sizes will raise ValueError in 5.0. With an interval, abatcher keeps accepting None or a size below 1 as no size limit, without a warning.
Accept a value that does not equal itself, such as float('nan'), when it is assigned back to its own slot of a UniqueList with on_duplicate='raise'. 4.1.4 raised ValueError: Duplicate value for it, while any other value could already be assigned to its own slot.
Import the lazy exports that a module's __getattr__ serves for the names in its __all__ with import_global. 4.1.4 skipped every name that dir() does not list. On Python 3.13 and later, import_global('typing') now also imports AsyncContextManager, ContextManager, ForwardRef, Match and Pattern, as it already did on 3.10 to 3.12. A lazy export that fails to resolve is still skipped.
Apply the key and value casts of a LazyCastedDict in get, as indexing already did. On an int-keyed dict, d.get('3') now finds the key stored as 3, and get returns the cast value where 4.1.4 returned the raw stored value. A raw value that the value cast rejects now raises from get as it does from d[k]. dict.get(d, k) still reads the raw value.
Annotate the default of to_float as int | float. The documented to_float('abc', default=0.0) was a type error under mypy and pyright. A # type: ignore added for it is now reported as unused under mypy --strict.
Keep from python_utils.types import * working on Python 3.15. Python 3.15 removed typing.ByteString and typing.no_type_check_decorator, so the star import raised AttributeError there. Both names stay exported on 3.10 to 3.14, at their 4.1.4 positions in __all__, and 3.15 joins the CI matrix and the classifiers.
Choose the binary prefix of scale_1024 from the exact integer threshold. 4.1.4 took the prefix from a logarithm, which rounded an integer just below a boundary up to it: scale_1024(2**60 - 1, 9) returned (1.0, 6) and scale_1024(2**50 - 1, 9) returned (0.9999999999999991, 5), while scale_1024(2**40 - 1, 9) already returned (1023.9999999990687, 3). Every power now behaves like the lower ones: (1024.0, 5) and (1023.9999999999991, 4), so a progressbar2 DataSize prints 1024.0 PiB where 4.1.4 printed 1.0 EiB for a value a few bytes below an exbibyte. Only ints take the exact comparison. Any other number goes through float() as before.
Keep the return type of a custom container in acontainer. The overloads only typed list, set and tuple, so await acontainer(source, frozenset) was a type error under mypy and pyright and its result came back as Any, while the call already worked at runtime. A fourth overload types any factory that takes the collected items, so frozenset[int] and deque[int] are inferred now. Runtime behaviour is unchanged. A # type: ignore written for such a call is now reported as unused under mypy --strict, and a factory that does not return a collection, such as sum, is rejected with type-var instead of call-overload.
py-pamqp: updated to 5.0.0
5.0.0 (2026-10-30)
- Encode `bytes` field table and field array values as the AMQP byte array (`x`) type, the same as `bytearray`
- **Breaking:** decode AMQP byte array (`x`) values as `bytes`, not `bytearray`. Code that changes a decoded value in place must copy it to a `bytearray` first
py-svglib: updated to 2.4.0
2.4.0 (2026-11-04)
Added
- `<textPath>` is now supported: text follows the `<path>` named by its `href`
or `xlink:href`, with `startOffset` (a length or a percentage) and
`text-anchor`, and styled `<tspan>` children. ReportLab can't draw text along
a path, so each glyph is placed and rotated individually, at the point of the
path under its midpoint; glyphs beyond the end of the path are dropped. Only
paths of the same document can be followed, and `side`, `method`, `spacing`
and per-glyph `dx`/`dy`/`rotate` are not supported
- The plain `opacity` property is now supported, as a presentation attribute,
in `style` attributes and in `<style>` rules, including percentages. Opacity
composes down the tree, so a shape at 0.5 inside a group at 0.5 is drawn at
0.25. It is applied per shape, so overlapping shapes inside a translucent
group show through each other, and images are not affected
thanks to @Pharex38).
[48 lines not shown]
py-bracex: updated to 3.2.2
3.2.2
- **FIX**: Match Bash 5.3 for groups that contain a top level `..` but are not valid sequences. If the group starts
like a sequence, such as `{1..3{a,b}}`, it is kept as text without expanding nested groups. If it doesn't, such as
`{a..x{b}},}`, only the opening `{` is skipped and what follows is parsed again, as in Bash.
py-progressbar2: updated to 4.7.0
4.7.0 - 2026-11-05
Widgets are coloured by default: a bar on a colour terminal shows the
default palette without ``enable_colors=True``, spinners cycle through
colours, and the ``Bar`` fill colours are constructor arguments (``fg``,
``bg``) instead of the ``Bar.fg`` and ``Bar.bg`` class attributes. A
widget called directly returns the escape codes, and
``progressbar.utils.no_color`` strips them. Output to a file or pipe is
unchanged.
A parallel execution API: ``progressbar.map``, ``imap``,
``imap_unordered``, ``starmap``, ``thread_map``, ``process_map``,
``as_completed``, the asyncio variants ``amap``, ``aimap``,
``aimap_unordered`` and ``gather``, ``run`` for shell commands, and the
``progressbar.parallel`` decorator, with ``bar='multi'`` for an overall
bar plus a bar per task.
[76 lines not shown]
py-ramlfications: updated to 0.3.0
0.3.0 (2026-10-25)
Added:
- RAML 1.0 support, dispatched automatically from the ``#%RAML`` header
at the existing ``parse()``/``load()``/``validate()`` entry points:
* data types with inheritance, facets, and type expressions
(named types, arrays ``T[]``, unions ``A | B``)
* ``annotationTypes`` declarations and annotations applied on
resources and methods
* ``uses`` libraries with dotted ``LibName.member`` references,
including libraries used by other libraries
* typed fragments (DataType, Trait, ResourceType, Library,
SecurityScheme, DocumentationItem), parsed standalone or included
* Overlay and Extension documents with RAML 1.0 merge semantics;
overlays may not change behavioral aspects of their target
[85 lines not shown]
py-typer: updated to 0.29.0
0.29.0
Features
Use Pydantic for parameter validation.
Typer now uses Pydantic internally to validate command-line parameters. This is a gradual migration focused on preserving compatibility with existing Typer applications. Some validation error messages have changed.
Fixes
Escape terminal controls in Pydantic validation errors.
Docs
Explain Pydantic validation in the release notes.
Use the Zensical modern theme for docs.
Add AI development guidance and coding agent notices.