Skip to content

fix(deps): update all non-major dependencies#42

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/all-minor-patch
Open

fix(deps): update all non-major dependencies#42
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/all-minor-patch

Conversation

@renovate

@renovate renovate Bot commented Apr 25, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence Type Update
anyio (changelog) ==4.11.0==4.14.1 age confidence minor
asttokens ==3.0.0==3.0.1 age confidence patch
attrs (changelog) ==25.3.0==25.4.0 age confidence minor
babel (source) ==2.17.0==2.18.0 age confidence minor
cems-nuclei ==3.0.1==3.2.0 age confidence minor
certifi ==2025.8.3==2025.11.12 age confidence minor
charset-normalizer (changelog) ==3.4.3==3.4.7 age confidence patch
click (changelog) ==8.3.0==8.4.2 age confidence minor
decorator ==5.2.1==5.3.1 age confidence minor
docutils (changelog) ==0.21.2==0.23 age confidence minor
duckdb (changelog) ==1.4.0==1.5.4 age confidence minor
fonttools ==4.60.0==4.63.0 age confidence minor
idna (changelog) ==3.10==3.18 age confidence minor
imagesize ==1.4.1==1.5.0 age confidence minor
iniconfig ==2.1.0==2.3.0 age confidence minor
ipython ==9.1.0==9.15.0 age confidence project.optional-dependencies minor
ipython ==9.1.0==9.15.0 age confidence minor
jedi ==0.19.2==0.20.0 age confidence minor
jiter ==0.11.0==0.16.0 age confidence minor
jsonschema (changelog) ==4.25.1==4.26.0 age confidence minor
jupyter-core ==5.8.1==5.9.1 age confidence minor
kiwisolver (changelog) ==1.4.9==1.5.0 age confidence minor
loro ==1.8.1==1.13.1 age confidence minor
marimo >0.14,<0.15>0.23,<0.24 age confidence project.optional-dependencies minor
marimo ==0.14.17==0.23.11 age confidence minor
markdown (changelog) ==3.9==3.10.2 age confidence minor
markupsafe (changelog) ==3.0.2==3.0.3 age confidence patch
matplotlib ==3.10.6==3.11.0 age confidence minor
matplotlib-inline ==0.1.7==0.2.2 age confidence minor
micropip >0.10,<0.11>0.11,<0.12 age confidence project.optional-dependencies minor
micropip ==0.10.1==0.11.1 age confidence minor
narwhals ==2.5.0==2.22.1 age confidence minor
numpy (changelog) ==2.3.3==2.5.0 age confidence minor
orjson (changelog) ==3.11.3==3.11.9 age confidence patch
pandas ==2.3.2==2.3.3 age confidence patch
parso ==0.8.5==0.8.7 age confidence patch
platformdirs (changelog) ==4.4.0==4.10.0 age confidence minor
polars (changelog) ==1.33.1==1.42.0 age confidence minor
psutil ==7.1.0==7.2.2 age confidence minor
pydantic (changelog) ==2.11.9==2.13.4 age confidence minor
pydantic-core ==2.33.2==2.47.0 age confidence minor
pygments (changelog) ==2.19.2==2.20.0 age confidence minor
pyjwt ==2.10.1==2.13.0 age confidence minor
pymdown-extensions ==10.16.1==10.21.3 age confidence minor
pyparsing ==3.2.5==3.3.2 age confidence minor
python 3.133.14 age confidence uses-with minor
pyyaml (source) ==6.0.2==6.0.3 age confidence patch
referencing (changelog) ==0.36.2==0.37.0 age confidence minor
requests (changelog) ==2.32.5==2.34.2 age confidence minor
rpds-py ==0.27.1==0.30.0 age confidence minor
ruff (source, changelog) ==0.13.1==0.15.20 age confidence minor
snowballstemmer ==3.0.1==3.1.1 age confidence minor
sphinx-autodoc-typehints (changelog) ==3.1.0==3.12.0 age confidence project.optional-dependencies minor
sphinx-autodoc-typehints (changelog) ==3.1.0==3.12.0 age confidence minor
sphinx-rtd-theme ==3.0.2==3.1.0 age confidence project.optional-dependencies minor
sphinx-rtd-theme ==3.0.2==3.1.0 age confidence minor
sqlglot ==27.17.0==27.29.0 age confidence minor
starlette (changelog) ==0.48.0==0.52.1 age confidence minor
tomlkit ==0.13.3==0.15.0 age confidence minor
tqdm (changelog) ==4.67.1==4.68.3 age confidence minor
traitlets ==5.14.3==5.15.1 age confidence minor
tzdata ==2025.2==2025.3 age confidence minor
urllib3 (changelog) ==2.5.0==2.7.0 age confidence minor
uvicorn (changelog) ==0.37.0==0.49.0 age confidence minor
wcwidth ==0.2.14==0.8.1 age confidence minor

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

agronholm/anyio (anyio)

v4.14.1

Compare Source

  • Fixed teardown of higher-scoped async fixtures failing on asyncio with RuntimeError: Attempted to exit cancel scope in a different task than it was entered in when an async test raise an outcome exception (e.g., pytest.skip(), pytest.xfail(), or pytest.fail()) (#​1179; PR by @​EmmanuelNiyonshuti)
  • Fixed CapacityLimiter.total_tokens rejecting a value of 0 when the limiter was instantiated outside of an event loop, contradicting the documented behavior of allowing 0 total tokens (#​1183; PR by @​nyxst4ck)

v4.14.0

Compare Source

  • Added support for Python 3.15

  • Added an asynchronous implementation of the itertools module (#​998; PR by @​11kkw)

  • Added the local_port parameter to connect_tcp() to allow binding to a specific local port before connecting (#​1067; PR by @​nullwiz)

  • Added support for custom capacity limiters in async path and file I/O functions and classes

  • Added the create_task() task group method for easier asyncio migration (returns a TaskHandle) (#​1098)

  • Changed TaskGroup.start_soon() to return a TaskHandle

  • Added an option for TaskGroup.start() to return a TaskHandle (which then contains the start value in the start_value property)

  • Added the cancel() convenience method to TaskGroup as a shortcut for cancelling the task group's cancel scope

  • Improved the error message when a known backend is not installed to suggest the install command (#​1115; PR by @​EmmanuelNiyonshuti)

  • Improved anyio.Path to preserve subclass types by returning Self in methods that return path objects (#​1130; PR by @​EmmanuelNiyonshuti)

  • Changed the parameter type annotation in anyio.Path.write_bytes() to accept any ReadableBuffer, thus allowing it to accept bytearray and memoryview to match pathlib.Path.write_bytes() (#​1135; PR by @​SAY-5)

  • Changed several type annotations to only accept callables returning coroutine-like objects instead of arbitrary awaitables:

    • TaskGroup.start_soon()
    • TaskGroup.start()
    • anyio.from_thread.run()

    This reverts an earlier change from v3.7.0 which was made in error. (#​1153)

  • Changed anyio.run to support callables returning arbitrary awaitables at runtime on all backends. Previously, this only worked on asyncio (#​1171; PR by @​gschaffner)

  • Changed several classes (and their subclasses) to have __slots__ (with __weakref__):

    • anyio.CancelScope
    • anyio.CapacityLimiter
    • anyio.Condition
    • anyio.Event
    • anyio.Lock
    • anyio.ResourceGuard
    • anyio.Semaphore
  • Fixed cancellation exception escaping a cancel scope when triggered via check_cancelled() in a worker thread (#​1113)

  • Fixed TaskGroup raising AttributeError instead of a clear error when entered more than once (#​1109; PR by @​bahtya)

  • Fixed lost type information when passing arguments to lru_cache (#​1104; PR by @​Graeme22)

  • Fixed test resumption after KeyboardInterrupt in async generator fixtures on the asyncio backend (#​1060; PR by @​EmmanuelNiyonshuti)

  • Fixed import of __main__ in to_process workers when entrypoint script doesn't end in .py, such as when using console_script entrypoints. (#​1027; PR by @​tapetersen)

  • Fixed SocketListener.from_socket() returning a TCP listener for AF_UNIX listening sockets, causing accept() to fail with ENOTSUP (#​1132; PR by @​kudato)

  • Fixed UDPSocket.aclose() and ConnectedUDPSocket.aclose() on asyncio returning before the underlying socket FD was actually released (#​1147; PR by @​matias-arrelid)

  • Fixed trio backend test runner hanging indefinitely instead of raising an error when dynamically accessing an async fixture via request.getfixturevalue (#​1148; PR by @​EmmanuelNiyonshuti)

  • Fixed cancelling tasks started through a BlockingPortal after the portal has been stopped (#​1013; PR by @​puneetdixit200)

  • Fixed backend_options being ignored when running the Trio backend via anyio.run(); the options are now passed as keyword arguments to trio.run() again, as documented (a regression from AnyIO 3) (#​1161; PR by @​Zac-HD)

  • Fixed asyncio Lock and Semaphore deadlocks caused by cancelled waiters left queued during release (#​1145; PR by @​rasmusfaber, @​x42005e1f and @​agronholm)

v4.13.0

Compare Source

  • Dropped support for Python 3.9
  • Added a ttl parameter to the anyio.functools.lru_cache wrapper (#​1073; PR by @​Graeme22)
  • Widened the type annotations of file I/O streams to accept IO[bytes] instead of just BinaryIO (#​1078)
  • Fixed anyio.Path not being compatible with Python 3.15 due to the removal of pathlib.Path.is_reserved() and the addition of pathlib.Path.__vfspath__() (#​1061; PR by @​veeceey)
  • Fixed the BrokenResourceError raised by the asyncio SocketStream not having the original exception as its cause (#​1055; PR by @​veeceey)
  • Fixed the TypeError raised when using "func" as a parameter name in pytest.mark.parametrize when using the pytest plugin (#​1068; PR by @​JohnnyDeuss)
  • Fixed the pytest plugin not running tests that had the anyio marker added programmatically via pytest_collection_modifyitems (#​422; PR by @​chbndrhnns)
  • Fixed cancellation exceptions leaking from a CancelScope on asyncio when they are contained in an exception group alongside non-cancellation exceptions (#​1091; PR by @​gschaffner)
  • Fixed Condition.wait() not passing on a notification when the task is cancelled but already received a notification
  • Fixed inverted condition in the process pool shutdown phase which would cause still-running pooled processes not to be terminated (#​1074; PR by @​bysiber)

v4.12.1

Compare Source

  • Changed all functions currently raising the private NoCurrentAsyncBackend exception (since v4.12.0) to instead raise the public NoEventLoopError exception (#​1048)
  • Fixed anyio.functools.lru_cache not working with instance methods (#​1042)

v4.12.0

Compare Source

  • Added support for asyncio's task call graphs on Python 3.14 and later when using AnyIO's task groups (#​1025)
  • Added an asynchronous implementation of the functools module (#​1001)
  • Added support for uvloop=True on Windows via the winloop implementation (#​960; PR by @​Vizonex)
  • Added support for use as a context manager to anyio.lowlevel.RunVar (#​1003)
  • Added __all__ declarations to public submodules (anyio.lowlevel etc.) (#​1009)
  • Added the ability to set the token count of a CapacityLimiter to zero (#​1019; requires Python 3.10 or later when using Trio)
  • Added parameters case_sensitive and recurse_symlinks along with support for path-like objects to anyio.Path.glob() and anyio.Path.rglob() (#​1033; PR by @​northisup)
  • Dropped sniffio as a direct dependency and added the get_available_backends() function (#​1021)
  • Fixed Process.stdin.send() not raising ClosedResourceError and BrokenResourceError on asyncio. Previously, a non-AnyIO exception was raised in such cases (#​671; PR by @​gschaffner)
  • Fixed Process.stdin.send() not checkpointing before writing data on asyncio (#​1002; PR by @​gschaffner)
  • Fixed a race condition where cancelling a Future from BlockingPortal.start_task_soon() would sometimes not cancel the async function (#​1011; PR by @​gschaffner)
  • Fixed the presence of the pytest plugin causing breakage with older versions of pytest (<= 6.1.2) (#​1028; PR by @​saper)
  • Fixed a rarely occurring RuntimeError: Set changed size during iteration while shutting down the process pool when using the asyncio backend (#​985)
gristlabs/asttokens (asttokens)

v3.0.1

Compare Source

python-attrs/attrs (attrs)

v25.4.0

Compare Source

Backwards-incompatible Changes
  • Class-level kw_only=True behavior is now consistent with dataclasses.

    Previously, a class that sets kw_only=True makes all attributes keyword-only, including those from base classes.
    If an attribute sets kw_only=False, that setting is ignored, and it is still made keyword-only.

    Now, only the attributes defined in that class that doesn't explicitly set kw_only=False are made keyword-only.

    This shouldn't be a problem for most users, unless you have a pattern like this:

    @&#8203;attrs.define(kw_only=True)
    class Base:
        a: int
        b: int = attrs.field(default=1, kw_only=False)
    
    @&#8203;attrs.define
    class Subclass(Base):
        c: int

    Here, we have a kw_only=True attrs class (Base) with an attribute that sets kw_only=False and has a default (Base.b), and then create a subclass (Subclass) with required arguments (Subclass.c).
    Previously this would work, since it would make Base.b keyword-only, but now this fails since Base.b is positional, and we have a required positional argument (Subclass.c) following another argument with defaults.
    #​1457

Changes
  • Values passed to the __init__() method of attrs classes are now correctly passed to __attrs_pre_init__() instead of their default values (in cases where kw_only was not specified).
    #​1427

  • Added support for Python 3.14 and PEP 749.
    #​1446,
    #​1451

  • attrs.validators.deep_mapping() now allows to leave out either key_validator xor value_validator.
    #​1448

  • attrs.validators.deep_iterator() and attrs.validators.deep_mapping() now accept lists and tuples for all validators and wrap them into a attrs.validators.and_().
    #​1449

  • Added a new experimental way to inspect classes:

    attrs.inspect(cls) returns the effective class-wide parameters that were used by attrs to construct the class.

    The returned class is the same data structure that attrs uses internally to decide how to construct the final class.
    #​1454

  • Fixed annotations for attrs.field(converter=...).
    Previously, a tuple of converters was only accepted if it had exactly one element.
    #​1461

  • The performance of attrs.asdict() has been improved by 45–260%.
    #​1463

  • The performance of attrs.astuple() has been improved by 49–270%.
    #​1469

  • The type annotation for attrs.validators.or_() now allows for different types of validators.

    This was only an issue on Pyright.
    #​1474

python-babel/babel (babel)

v2.18.0

Compare Source

Happy 2026! This release is, coincidentally, also being made from FOSDEM.

We will aspire for a slightly less glacial release cadence in this year;
there are interesting features in the pipeline.

Features


* Core: Add `babel.core.get_cldr_version()` by @&#8203;akx in :gh:`1242`
* Core: Use CLDR 47 by @&#8203;tomasr8 in :gh:`1210`
* Core: Use canonical IANA zone names in zone_territories by @&#8203;akx in :gh:`1220`
* Messages: Improve extract performance via ignoring directories early during os.walk by @&#8203;akx in :gh:`968`
* Messages: Merge in per-format keywords and auto_comments by @&#8203;akx in :gh:`1243`
* Messages: Update keywords for extraction of dpgettext and dnpgettext by @&#8203;mardiros in :gh:`1235`
* Messages: Validate all plurals in Python format checker by @&#8203;tomasr8 in :gh:`1188`
* Time: Use standard library `timezone` instead of `FixedOffsetTimezone` by @&#8203;akx in :gh:`1203`

Bugfixes
  • Core: Fix formatting for "Empty locale identifier" exception added in #​1164 by @​akx in :gh:1184
  • Core: Improve handling of no-inheritance-marker in timezone data by @​akx in :gh:1194
  • Core: Make the number pattern regular expression more efficient by @​akx in :gh:1213
  • Messages: Keep translator comments next to the translation function call by @​akx in :gh:1196
  • Numbers: Fix KeyError that occurred when formatting compact currencies of exactly one thousand in several locales by @​bartbroere in :gh:1246

Other improvements


* Core: Avoid unnecessary uses of `map()` by @&#8203;akx in :gh:`1180`
* Messages: Have init-catalog create directories too by @&#8203;akx in :gh:`1244`
* Messages: Optimizations for read_po by @&#8203;akx in :gh:`1200`
* Messages: Use pathlib.Path() in catalog frontend; improve test coverage by @&#8203;akx in :gh:`1204`

Infrastructure and documentation
  • CI: Renovate CI & lint tools by @​akx in :gh:1228
  • CI: Tighten up CI with Zizmor by @​akx in :gh:1230
  • CI: make job permissions explicit by @​akx in :gh:1227
  • Docs: Add SECURITY.md by @​akx in :gh:1229
  • Docs: Remove u string prefix from docs by @​verhovsky in :gh:1174
  • Docs: Update dates.rst with current unicode.org tr35 link by @​clach04 in :gh:1189
  • General: Add some PyPI classifiers by @​tomasr8 in :gh:1186
  • General: Apply reformatting by hand and with Ruff by @​akx in :gh:1202
  • General: Test on and declare support for Python 3.14 by @​akx in :gh:1233
  • Tests: Convert Unittest testcases with setup/teardown to fixtures by @​akx in :gh:1240
  • Tests: Mark PyPy CI flake as xfail by @​akx in :gh:1197
  • Tests: Move pytest config to pyproject.toml by @​tomasr8 in :gh:1187
  • Tests: Unwrap most unittest test cases to bare functions by @​akx in :gh:1241
cemsbv/nuclei (cems-nuclei)

v3.2.0

Compare Source

Features
  • Set PileCore version "v4" as latest

v3.1.0

Compare Source

Bug Fixes
  • Deps: Update all non-major dependencies (#​239)
Features
  • Add PileCore v4 to routing table
Miscellaneous Tasks
  • Ci:
    • Disable pyink in github super-linter
    • Move from dependabot to renovate
Deploy
  • Update deploy_docs.yaml
certifi/python-certifi (certifi)

v2025.11.12

Compare Source

v2025.10.5

Compare Source

jawah/charset_normalizer (charset-normalizer)

v3.4.7

Compare Source

Changed
  • Pre-built optimized version using mypy[c] v1.20.
  • Relax setuptools constraint to setuptools>=68,<82.1.
Fixed
  • Correctly remove SIG remnant in utf-7 decoded string. (#​718) (#​716)

v3.4.6

Compare Source

Changed
  • Flattened the logic in charset_normalizer.md for higher performance. Removed eligible(..) and feed(...)
    in favor of feed_info(...).
  • Raised upper bound for mypy[c] to 1.20, for our optimized version.
  • Updated UNICODE_RANGES_COMBINED using Unicode blocks v17.
Fixed
  • Edge case where noise difference between two candidates can be almost insignificant. (#​672)
  • CLI --normalize writing to wrong path when passing multiple files in. (#​702)
Misc
  • Freethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (#​616)

v3.4.5

Compare Source

Changed
  • Update setuptools constraint to setuptools>=68,<=82.
  • Raised upper bound of mypyc for the optional pre-built extension to v1.19.1
Fixed
  • Add explicit link to lib math in our optimized build. (#​692)
  • Logger level not restored correctly for empty byte sequences. (#​701)
  • TypeError when passing bytearray to from_bytes. (#​703)
Misc
  • Applied safe micro-optimizations in both our noise detector and language detector.
  • Rewrote the query_yes_no function (inside CLI) to avoid using ambiguous licensed code.
  • Added cd.py submodule into mypyc optional compilation to reduce further the performance impact.

v3.4.4

Compare Source

Changed
  • Bound setuptools to a specific constraint setuptools>=68,<=81.
  • Raised upper bound of mypyc for the optional pre-built extension to v1.18.2
Removed
  • setuptools-scm as a build dependency.
Misc
  • Enforced hashes in dev-requirements.txt and created ci-requirements.txt for security purposes.
  • Additional pre-built wheels for riscv64, s390x, and armv7l architectures.
  • Restore multiple.intoto.jsonl in GitHub releases in addition to individual attestation file per wheel.
pallets/click (click)

v8.4.2

Compare Source

Unreleased

  • Fix Fish shell completion broken in 8.4.0 by {pr}3126. Newlines and
    tabs in option help text are now escaped, keeping the original completion
    format while still supporting multi-line help. {issue}3502
    {issue}3043 {pr}3504 {pr}3508
  • Deprecated commands and options with empty or missing help text no longer
    render a stray leading space before the (DEPRECATED) label. {pr}3509
  • A {class}Group with invoke_without_command=True marks its subcommand as
    optional in the usage help, showing [COMMAND] instead of COMMAND.
    {issue}3059 {pr}3507
  • echo_via_pager flushes after each write, so passing a generator streams
    output to the pager incrementally instead of staying hidden until the pipe
    buffer fills. {issue}3242 {issue}2542 {pr}3534
  • echo_via_pager and get_pager_file no longer close a borrowed stdout
    stream when no external pager runs, completing the partial
    I/O operation on closed file fix from {pr}3482. {issue}3449
    {pr}3533

v8.4.1

Compare Source

Released 2026-05-21

  • get_parameter_source() is available during eager callbacks and type
    conversion again. :issue:3458 :issue:3484
  • Zsh completion scripts parse correctly on Windows. :issue:3277 :pr:3466
  • Shell completion of Choice Enum values produces a valid completion
    result. :issue:3015
  • Fix empty byte-string handling in echo. :issue:3487
  • Fix closed file error with echo_via_pager. :issue:3449

v8.4.0

Compare Source

Released 2026-05-17

  • :class:ParamType typing improvements. :pr:3371

    • :class:ParamType is now a generic abstract base class,
      parameterized by its converted value type.
    • :meth:~ParamType.convert return types are narrowed on all
      concrete types (str for :class:STRING, int for
      :class:INT, etc.).
    • :meth:~ParamType.to_info_dict returns specific
      :class:~typing.TypedDict subclasses instead of
      dict[str, Any].
    • :class:CompositeParamType and the number-range base are now
      generic with abstract methods.
  • Refactor convert_type to extract type inference into a private
    _guess_type helper, and add :func:typing.overload signatures.
    :pr:3372

  • :class:Parameter typing improvements. :pr:2805

    • :class:Parameter is now an abstract base class, making explicit
      that it cannot be instantiated directly.
    • :attr:Parameter.name is now str instead of str | None.
      When expose_value=False, the name is set to "" instead
      of None.
    • The ctx parameter of :meth:Parameter.get_error_hint is now
      typed as Context | None, matching the runtime behavior.
  • Split string values from default_map for parameters with nargs > 1
    or :class:Tuple type, matching environment variable behavior.
    :issue:2745 :pr:3364

  • Auto-detect type=UNPROCESSED for flag_value of non-basic types
    (not str, int, float, or bool), so programmer-provided
    Python objects like classes and enum members are passed through unchanged
    instead of being stringified. Previously type=click.UNPROCESSED had
    to be set explicitly. :issue:2012 :pr:3363

  • The error hint now uses :meth:Command.get_help_option_names to pick
    non-shadowed help option names, so Try '... -h' no longer points to a
    subcommand option that shadows -h. The longest surviving name is
    shown (--help over -h) for readability. :issue:2790 :pr:3208

  • Fix readline functionality on non-Windows platforms. Prompt text is now
    passed directly to readline instead of being printed separately, allowing
    proper backspace, line editing, and line wrapping behavior. :issue:2968
    :pr:2969

  • Use :func:os.startfile on Windows to open URLs in :func:open_url,
    replacing the start built-in which cannot be invoked without
    shell=True. :issue:3164 :pr:3186

  • Fix Fish shell completion errors when option help text contains newlines.
    :issue:3043 :pr:3126

  • Add :class:NoSuchCommand exception with suggestions for misspelled
    commands. :issue:3107 :pr:3228

  • Use :class:ValueError message when conversion in :class:FuncParamType would
    fail. :issue:3105 :pr:3211

  • Add click.get_pager_file for file-like access to an output
    pager. :pr:1572 :pr:3405

  • :func:~click.formatting.wrap_text now measures line width in visible
    characters, ignoring ANSI escape sequences. :pr:3420

  • Fix :meth:HelpFormatter.write_usage emitting only a blank line when
    called without args. The usage prefix and program name are now
    written even when no arguments follow, and the trailing separator
    space is stripped so the line ends at the program name.
    :issue:3360 :pr:3434

  • Show custom error messages from types when :func:prompt with
    hide_input=True fails validation, instead of always showing a
    generic message. Built-in type messages mask the input value.
    :issue:2809 :pr:3256

  • Add capture parameter to :class:CliRunner with two modes: sys
    (default) and fd. fd redirects file descriptors 1 and 2
    via :func:os.dup2 so output that bypasses sys.stdout (stale stream
    references, C extensions, subprocesses, faulthandler) is captured
    with proper isolation. :issue:854 :issue:2412 :issue:2468
    :issue:2497 :issue:2761 :issue:2827 :issue:2865 :pr:3391

  • Revert the 8.3.3 change that exposed the original file descriptor
    via fileno() on the redirected CliRunner streams in the default
    capture mode. os.dup2(w, sys.stdout.fileno()) calls inside a CLI no
    longer mutate the host runner's stdout, which broke Pytest's fd-level
    capture teardown. C-level consumers that need a real fd should use
    capture="fd". :issue:3384 :pr:3391

  • Mark additional built-in strings with gettext() to extend translation
    coverage. :pr:2902

  • Fix feature switch groups (several flag_value options sharing one
    parameter name) silently dropping an explicit default when a sibling
    option without an explicit default was declared first. Arbitration is now
    source-aware: a more explicit :class:ParameterSource always wins, and
    within ParameterSource.DEFAULT, an option that received an explicit
    default= keyword wins over a sibling whose default was auto-derived.
    The 8.3.x first-wins fallback for remaining ties was reverted to the
    pre-8.3.x last-wins fallback. :issue:3403 :pr:3404

  • Fix missing space between option help text and the (DEPRECATED)
    label, and localize the option label so it matches the command label.
    The label and the DeprecationWarning reason suffix are now produced
    by shared helpers. :pr:3423

  • Document short option stacking (-abc is parsed as -a -b -c) and
    clarify that multi-character short option names are not supported.
    :issue:2779 :pr:3431

v8.3.3

Compare Source

v8.3.2

Compare Source

Released 2026-04-02

  • Fix handling of flag_value when is_flag=False to allow such options to be
    used without an explicit value. :issue:3084 :pr:3152
  • Hide Sentinel.UNSET values as None when using lookup_default().
    :issue:3136 :pr:3199 :pr:3202 :pr:3209 :pr:3212 :pr:3224
  • Prevent _NamedTextIOWrapper from closing streams owned by StreamMixer.
    :issue:824 :issue:2991 :issue:2993 :issue:3110 :pr:3139 :pr:3140
  • Add comprehensive tests for CliRunner stream lifecycle, covering
    logging interaction, multi-threaded safety, and sequential invocation
    isolation. Add high-iteration stress tests behind a stress marker
    with a dedicated CI job. :pr:3139
  • Fix callable flag_value being instantiated when used as a default via
    default=True. :issue:3121 :pr:3201 :pr:3213 :pr:3225

v8.3.1

Compare Source

Released 2025-11-15

  • Don't discard pager arguments by correctly using subprocess.Popen. :issue:3039
    :pr:3055
  • Replace Sentinel.UNSET default values by None as they're passed through
    the Context.invoke() method. :issue:3066 :issue:3065 :pr:3068
  • Fix conversion of Sentinel.UNSET happening too early, which caused incorrect
    behavior for multiple parameters using the same name. :issue:3071 :pr:3079
  • Hide Sentinel.UNSET values as None when looking up for other parameters
    through the context inside parameter callbacks. :issue:3136 :pr:3137
  • Fix rendering when prompt and confirm parameter prompt_suffix is
    empty. :issue:3019 :pr:3021
  • When Sentinel.UNSET is found during parsing, it will skip calls to
    type_cast_value. :issue:3069 :pr:3090
duckdb/duckdb-python (duckdb)

v1.5.4: Bugfix Release

Compare Source

See DuckDB's changelog for all changes in DuckDB.

What's Changed in DuckDB-Python

v1.5.3: Bugfix Release

Compare Source

See the DuckDB core release notes here: https://github.com/duckdb/duckdb/releases/tag/v1.5.3

What's Changed in DuckDB Python

Note

PR body was truncated to here.

@coveralls

coveralls commented Apr 25, 2025

Copy link
Copy Markdown

Pull Request Test Coverage Report for Build 22127199315

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 92.258%

Totals Coverage Status
Change from base Build 18002325789: 0.0%
Covered Lines: 143
Relevant Lines: 155

💛 - Coveralls

@renovate renovate Bot force-pushed the renovate/all-minor-patch branch 10 times, most recently from 7a81baa to 6576ce8 Compare May 2, 2025 12:10
@renovate renovate Bot force-pushed the renovate/all-minor-patch branch 10 times, most recently from c064051 to 9b13c19 Compare May 9, 2025 21:47
@renovate renovate Bot force-pushed the renovate/all-minor-patch branch 8 times, most recently from 2174cf0 to b05cbbf Compare May 15, 2025 20:19
@renovate renovate Bot force-pushed the renovate/all-minor-patch branch from b05cbbf to 5aa0ac0 Compare May 17, 2025 23:46
@renovate renovate Bot force-pushed the renovate/all-minor-patch branch 12 times, most recently from b0b2232 to 1205182 Compare June 3, 2025 20:54
@renovate renovate Bot force-pushed the renovate/all-minor-patch branch 11 times, most recently from ddc7b49 to 8e60c19 Compare June 11, 2025 17:31
@renovate renovate Bot force-pushed the renovate/all-minor-patch branch 6 times, most recently from c4f5cc1 to 4b6cb3e Compare June 13, 2025 16:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant