Skip to content

⬆️(project) upgrade python dependencies#620

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/python-dependencies
Open

⬆️(project) upgrade python dependencies#620
renovate[bot] wants to merge 1 commit intomainfrom
renovate/python-dependencies

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate bot commented Sep 23, 2024

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
anyio (changelog) ==4.9.0==4.13.0 age confidence
bcrypt ==4.2.0==5.0.0 age confidence
black (changelog) ==24.8.0==26.3.1 age confidence
cachetools ==5.5.0==7.0.5 age confidence
click (changelog) >=8.1.0,<8.2.1>=8.3.1,<8.4.0 age confidence
clickhouse-connect <0.8<0.16 age confidence
cryptography (changelog) ==43.0.1==46.0.6 age confidence
elasticsearch >=8.0.0,<9.0.0>=9.3.0,<9.4.0 age confidence
factory-boy ==3.3.1==3.3.3 age confidence
fastapi (changelog) ==0.114.2==0.135.3 age confidence
importlib-metadata >=8.5, <8.6>=9, <9.1 age confidence
mike ==2.1.3==2.1.4 age confidence
mkdocs-click (changelog) ==0.8.1==0.9.0 age confidence
mkdocs-material (changelog) ==9.5.34==9.7.6 age confidence
mkdocstrings (changelog) ==0.26.1==1.0.3 age confidence
moto (changelog) ==5.0.14==5.1.22 age confidence
mypy (changelog) ==1.11.2==1.20.0 age confidence
neoteroi-mkdocs ==1.1.0==1.2.0 age confidence
polyfactory (changelog) ==2.16.2==3.3.0 age confidence
pyfakefs (changelog) ==5.6.0==6.1.6 age confidence
pymdown-extensions ==10.9==10.21.2 age confidence
pytest (changelog) ==8.3.5==9.0.2 age confidence
pytest-cov (changelog) ==5.0.0==7.1.0 age confidence
pytest-httpx (changelog) ==0.35.0==0.36.0 age confidence
python-jose (changelog) ==3.3.0==3.5.0 age confidence
responses (changelog) ==0.25.3==0.26.0 age confidence
ruff (source, changelog) ==0.6.5==0.15.9 age confidence
sentry-sdk (changelog) ==2.14.0==2.57.0 age confidence
twine ==5.1.1==6.2.0 age confidence
types-cachetools (changelog) ==5.5.0.20240820==6.2.0.20260317 age confidence
types-python-dateutil (changelog) ==2.9.0.20240906==2.9.0.20260402 age confidence
types-python-jose (changelog) ==3.3.4.20240106==3.5.0.20260402 age confidence
types-requests (changelog) <2.32.0.20240915<2.33.0.20260403 age confidence
uvicorn (changelog) ==0.30.6==0.42.0 age confidence
websockets (changelog) >=13.0,<14.0>=16,<16.1 age confidence

Release Notes

agronholm/anyio (anyio)

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)

v4.11.0

Compare Source

  • Added support for cancellation reasons (the reason parameter to CancelScope.cancel()) (#​975)
  • Bumped the minimum version of Trio to v0.31.0
  • Added the ability to enter the event loop from foreign (non-worker) threads by passing the return value of anyio.lowlevel.current_token() to anyio.from_thread.run() and anyio.from_thread.run_sync() as the token keyword argument (#​256)
  • Added pytest option (anyio_mode = "auto") to make the pytest plugin automatically handle all async tests (#​971)
  • Added the anyio.Condition.wait_for() method for feature parity with asyncio (#​974)
  • Changed the default type argument of anyio.abc.TaskStatus from Any to None (#​964)
  • Fixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when local_port=0 (#​857; PR by @​11kkw and @​agronholm)
  • Fixed inconsistency between Trio and asyncio where a TCP stream that previously raised a BrokenResourceError on send() would still raise BrokenResourceError after the stream was closed on asyncio, but ClosedResourceError on Trio. They now both raise a ClosedResourceError in this scenario. (#​671)

v4.10.0

Compare Source

  • Added the feed_data() method to the BufferedByteReceiveStream class, allowing users to inject data directly into the buffer
  • Added various class methods to wrap existing sockets as listeners or socket streams:
    • SocketListener.from_socket()
    • SocketStream.from_socket()
    • UNIXSocketStream.from_socket()
    • UDPSocket.from_socket()
    • ConnectedUDPSocket.from_socket()
    • UNIXDatagramSocket.from_socket()
    • ConnectedUNIXDatagramSocket.from_socket()
  • Added a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects
  • Added context manager mix-in classes (anyio.ContextManagerMixin and anyio.AsyncContextManagerMixin) to help write classes that embed other context managers, particularly cancel scopes or task groups (#​905; PR by @​agronholm and @​tapetersen)
  • Added the ability to specify the thread name in start_blocking_portal() (#​818; PR by @​davidbrochart)
  • Added anyio.notify_closing to allow waking anyio.wait_readable and anyio.wait_writable before closing a socket. Among other things, this prevents an OSError on the ProactorEventLoop. (#​896; PR by @​graingert)
  • Incorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)
  • Added a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's
  • Updated the to_interpreters module to use the public concurrent.interpreters API on Python 3.14 or later
  • Fixed anyio.Path.copy() and anyio.Path.copy_into() failing on Python 3.14.0a7
  • Fixed return annotation of __aexit__ on async context managers. CMs which can suppress exceptions should return bool, or None otherwise. (#​913; PR by @​Enegg)
  • Fixed rollover boundary check in SpooledTemporaryFile so that rollover only occurs when the buffer size exceeds max_size (#​915; PR by @​11kkw)
  • Migrated testing and documentation dependencies from extras to dependency groups
  • Fixed compatibility of anyio.to_interpreter with Python 3.14.0b2 (#​926; PR by @​hroncok)
  • Fixed SyntaxWarning on Python 3.14 about return in finally (#​816)
  • Fixed RunVar name conflicts. RunVar instances with the same name should not share storage (#​880; PR by @​vimfu)
  • Renamed the BrokenWorkerIntepreter exception to BrokenWorkerInterpreter. The old name is available as a deprecated alias. (#​938; PR by @​ayussh-verma)
  • Fixed an edge case in CapacityLimiter on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (#​947)
psf/black (black)

v26.3.1

Compare Source

Stable style
  • Prevent Jupyter notebook magic masking collisions from corrupting cells by using
    exact-length placeholders for short magics and aborting if a placeholder can no longer
    be unmasked safely (#​5038)
Configuration
  • Always hash cache filename components derived from --python-cell-magics so custom
    magic names cannot affect cache paths (#​5038)
Blackd
  • Disable browser-originated requests by default, add configurable origin allowlisting
    and request body limits, and bound executor submissions to improve backpressure
    (#​5039)

v26.3.0

Compare Source

Stable style
  • Don't double-decode input, causing non-UTF-8 files to be corrupted (#​4964)
  • Fix crash on standalone comment in lambda default arguments (#​4993)
  • Preserve parentheses when # type: ignore comments would be merged with other
    comments on the same line, preventing AST equivalence failures (#​4888)
Preview style
  • Fix bug where if guards in case blocks were incorrectly split when the pattern had
    a trailing comma (#​4884)
  • Fix string_processing crashing on unassigned long string literals with trailing
    commas (one-item tuples) (#​4929)
  • Simplify implementation of the power operator "hugging" logic (#​4918)
Packaging
  • Fix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in
    frozen environments (#​4930)
Performance
  • Introduce winloop for windows as an alternative to uvloop (#​4996)
  • Remove deprecated function uvloop.install() in favor of uvloop.new_event_loop()
    (#​4996)
  • Rename maybe_install_uvloop function to maybe_use_uvloop to simplify loop
    installation and creation of either a uvloop/winloop evenloop or default eventloop
    (#​4996)
Output
  • Emit a clear warning when the target Python version is newer than the running Python
    version, since AST safety checks cannot parse newer syntax. Also replace the
    misleading "INTERNAL ERROR" message with an actionable error explaining the version
    mismatch (#​4983)
Blackd
  • Introduce winloop to be used when windows in use which enables blackd to run faster on
    windows when winloop is installed. (#​4996)
Integrations
  • Remove unused gallery script (#​5030)
  • Harden parsing of black requirements in the GitHub Action when use_pyproject is
    enabled so that only version specifiers are accepted and direct references such as
    black @&#8203; https://... are rejected. Users should upgrade to the latest version of the
    action as soon as possible. This update is received automatically when using
    psf/black@stable, and is independent of the version of Black installed by the
    action. (#​5031)
Documentation
  • Expand preview style documentation with detailed examples for wrap_comprehension_in,
    simplify_power_operator_hugging, and wrap_long_dict_values_in_parens features
    (#​4987)
  • Add detailed documentation for formatting Jupyter Notebooks (#​5009)

v26.1.0

Compare Source

Highlights

Introduces the 2026 stable style (#​4892), stabilizing the following changes:

  • always_one_newline_after_import: Always force one blank line after import
    statements, except when the line after the import is a comment or an import statement
    (#​4489)
  • fix_fmt_skip_in_one_liners: Fix # fmt: skip behavior on one-liner declarations,
    such as def foo(): return "mock" # fmt: skip, where previously the declaration would
    have been incorrectly collapsed (#​4800)
  • fix_module_docstring_detection: Fix module docstrings being treated as normal
    strings if preceded by comments (#​4764)
  • fix_type_expansion_split: Fix type expansions split in generic functions (#​4777)
  • multiline_string_handling: Make expressions involving multiline strings more compact
    (#​1879)
  • normalize_cr_newlines: Add \r style newlines to the potential newlines to
    normalize file newlines both from and to (#​4710)
  • remove_parens_around_except_types: Remove parentheses around multiple exception
    types in except and except* without as (#​4720)
  • remove_parens_from_assignment_lhs: Remove unnecessary parentheses from the left-hand
    side of assignments while preserving magic trailing commas and intentional multiline
    formatting (#​4865)
  • standardize_type_comments: Format type comments which have zero or more spaces
    between # and type: or between type: and value to # type: (value) (#​4645)

The following change was not in any previous stable release:

  • Regenerated the _width_table.py and added tests for the Khmer language (#​4253)

This release alo bumps pathspec to v1 and fixes inconsistencies with Git's
.gitignore logic (#​4958). Now, files will be ignored if a pattern matches them, even
if the parent directory is directly unignored. For example, Black would previously
format exclude/not_this/foo.py with this .gitignore:

exclude/
!exclude/not_this/

Now, exclude/not_this/foo.py will remain ignored. To ensure exclude/not_this/ and
all of it's children are included in formatting (and in Git), use this .gitignore:

*/exclude/*
!*/exclude/not_this/

This new behavior matches Git. The leading */ are only necessary if you wish to ignore
matching subdirectories (like the previous behavior did), and not just matching root
directories.

Output
  • Explicitly shutdown the multiprocessing manager when run in diff mode too (#​4952)
Integrations
  • Upgraded PyPI upload workflow to use Trusted Publishing (#​4611)

v25.12.0

Compare Source

Highlights
  • Black no longer supports running with Python 3.9 (#​4842)
Stable style
  • Fix bug where comments preceding # fmt: off/# fmt: on blocks were incorrectly
    removed, particularly affecting Jupytext's # %% [markdown] comments (#​4845)
  • Fix crash when multiple # fmt: skip comments are used in a multi-part if-clause, on
    string literals, or on dictionary entries with long lines (#​4872)
  • Fix possible crash when fmt: directives aren't on the top level (#​4856)
Preview style
  • Fix fmt: skip skipping the line after instead of the line it's on (#​4855)
  • Remove unnecessary parentheses from the left-hand side of assignments while preserving
    magic trailing commas and intentional multiline formatting (#​4865)
  • Fix fix_fmt_skip_in_one_liners crashing on with statements (#​4853)
  • Fix fix_fmt_skip_in_one_liners crashing on annotated parameters (#​4854)
  • Fix new lines being added after imports with # fmt: skip on them (#​4894)
Packaging
  • Releases now include arm64 Windows binaries and wheels (#​4814)
Integrations
  • Add output-file input to GitHub Action psf/black to write formatter output to a
    file for artifact capture and log cleanliness (#​4824)

v25.11.0

Compare Source

Highlights
  • Enable base 3.14 support (#​4804)
  • Add support for the new Python 3.14 t-string syntax introduced by PEP 750 (#​4805)
Stable style
  • Fix bug where comments between # fmt: off and # fmt: on were reformatted (#​4811)
  • Comments containing fmt directives now preserve their exact formatting instead of
    being normalized (#​4811)
Preview style
  • Move multiline_string_handling from --unstable to --preview (#​4760)
  • Fix bug where module docstrings would be treated as normal strings if preceded by
    comments (#​4764)
  • Fix bug where python 3.12 generics syntax split line happens weirdly (#​4777)
  • Standardize type comments to form # type: <value> (#​4645)
  • Fix fix_fmt_skip_in_one_liners preview feature to respect # fmt: skip for compound
    statements with semicolon-separated bodies (#​4800)
Configuration
  • Add no_cache option to control caching behavior. (#​4803)
Packaging
  • Releases now include arm64 Linux binaries (#​4773)
Output
  • Write unchanged content to stdout when excluding formatting from stdin using pipes
    (#​4610)
Blackd
  • Implemented BlackDClient. This simple python client allows to easily send formatting
    requests to blackd (#​4774)
Integrations
  • Enable 3.14 base CI (#​4804)
  • Enhance GitHub Action psf/black to support the required-version major-version-only
    "stability" format when using pyproject.toml (#​4770)
  • Improve error message for vim plugin users. It now handles independently vim version
  • Vim: Warn on unsupported Vim and Python versions independently (#​4772)
  • Vim: Print the import paths when importing black fails (#​4675)
  • Vim: Fix handling of virtualenvs that have a different Python version (#​4675)

v25.9.0

Compare Source

Highlights
  • Remove support for pre-python 3.7 await/async as soft keywords/variable names
    (#​4676)
Stable style
  • Fix crash while formatting a long del statement containing tuples (#​4628)
  • Fix crash while formatting expressions using the walrus operator in complex with
    statements (#​4630)
  • Handle # fmt: skip followed by a comment at the end of file (#​4635)
  • Fix crash when a tuple appears in the as clause of a with statement (#​4634)
  • Fix crash when tuple is used as a context manager inside a with statement (#​4646)
  • Fix crash when formatting a \ followed by a \r followed by a comment (#​4663)
  • Fix crash on a \\r\n (#​4673)
  • Fix crash on await ... (where ... is a literal Ellipsis) (#​4676)
  • Fix crash on parenthesized expression inside a type parameter bound (#​4684)
  • Fix crash when using line ranges excluding indented single line decorated items
    (#​4670)
Preview style
  • Fix a bug where one-liner functions/conditionals marked with # fmt: skip would still
    be formatted (#​4552)
  • Improve multiline_string_handling with ternaries and dictionaries (#​4657)
  • Fix a bug where string_processing would not split f-strings directly after
    expressions (#​4680)
  • Wrap the in clause of comprehensions across lines if necessary (#​4699)
  • Remove parentheses around multiple exception types in except and except* without
    as. (#​4720)
  • Add \r style newlines to the potential newlines to normalize file newlines both from
    and to (#​4710)
Parser
  • Rewrite tokenizer to improve performance and compliance (#​4536)
  • Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type
    parameter bounds and defaults. (#​4602)
Performance
  • Avoid using an extra process when running with only one worker (#​4734)
Integrations
  • Fix the version check in the vim file to reject Python 3.8 (#​4567)
  • Enhance GitHub Action psf/black to read Black version from an additional section in
    pyproject.toml: [project.dependency-groups] (#​4606)
  • Build gallery docker image with python3-slim and reduce image size (#​4686)
Documentation
  • Add FAQ entry for windows emoji not displaying (#​4714)

v25.1.0

Compare Source

Highlights

This release introduces the new 2025 stable style (#​4558), stabilizing the following
changes:

  • Normalize casing of Unicode escape characters in strings to lowercase (#​2916)
  • Fix inconsistencies in whether certain strings are detected as docstrings (#​4095)
  • Consistently add trailing commas to typed function parameters (#​4164)
  • Remove redundant parentheses in if guards for case blocks (#​4214)
  • Add parentheses to if clauses in case blocks when the line is too long (#​4269)
  • Whitespace before # fmt: skip comments is no longer normalized (#​4146)
  • Fix line length computation for certain expressions that involve the power operator
    (#​4154)
  • Check if there is a newline before the terminating quotes of a docstring (#​4185)
  • Fix type annotation spacing between * and more complex type variable tuple (#​4440)

The following changes were not in any previous release:

  • Remove parentheses around sole list items (#​4312)
  • Generic function definitions are now formatted more elegantly: parameters are split
    over multiple lines first instead of type parameter definitions (#​4553)
Stable style
  • Fix formatting cells in IPython notebooks with magic methods and starting or trailing
    empty lines (#​4484)
  • Fix crash when formatting with statements containing tuple generators/unpacking
    (#​4538)
Preview style
  • Fix/remove string merging changing f-string quotes on f-strings with internal quotes
    (#​4498)
  • Collapse multiple empty lines after an import into one (#​4489)
  • Prevent string_processing and wrap_long_dict_values_in_parens from removing
    parentheses around long dictionary values (#​4377)
  • Move wrap_long_dict_values_in_parens from the unstable to preview style (#​4561)
Packaging
  • Store license identifier inside the License-Expression metadata field, see
    PEP 639. (#​4479)
Performance
  • Speed up the is_fstring_start function in Black's tokenizer (#​4541)
Integrations
  • If using stdin with --stdin-filename set to a force excluded path, stdin won't be
    formatted. (#​4539)

v24.10.0

Compare Source

Highlights
  • Black is now officially tested with Python 3.13 and provides Python 3.13
    mypyc-compiled wheels. (#​4436) (#​4449)
  • Black will issue an error when used with Python 3.12.5, due to an upstream memory
    safety issue in Python 3.12.5 that can cause Black's AST safety checks to fail. Please
    use Python 3.12.6 or Python 3.12.4 instead. (#​4447)
  • Black no longer supports running with Python 3.8 (#​4452)
Stable style
  • Fix crashes involving comments in parenthesised return types or X | Y style unions.
    (#​4453)
  • Fix skipping Jupyter cells with unknown %% magic (#​4462)
Preview style
  • Fix type annotation spacing between * and more complex type variable tuple (i.e. def fn(*args: *tuple[*Ts, T]) -> None: pass) (#​4440)
Caching
  • Fix bug where the cache was shared between runs with and without --unstable (#​4466)
Packaging
  • Upgrade version of mypyc used to 1.12 beta (#​4450) (#​4449)
  • blackd now requires a newer version of aiohttp. (#​4451)
Output
  • Added Python target version information on parse error (#​4378)
  • Add information about Black version to internal error messages (#​4457)
pallets/click (click)

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

v8.3.0

Compare Source

Released 2025-09-17

  • Improved flag option handling: Reworked the relationship between flag_value
    and default parameters for better consistency:

    • The default parameter value is now preserved as-is and passed directly
      to CLI functions (no more unexpected transformations)
    • Exception: flag options with default=True maintain backward compatibility
      by defaulting to their flag_value
    • The default parameter can now be any type (bool, None, etc.)
    • Fixes inconsistencies reported in: :issue:1992 :issue:2514 :issue:2610
      :issue:3024 :pr:3030
  • Allow default to be set on Argument for nargs = -1. :issue:2164
    :pr:3030

  • Show correct auto complete value for nargs option in combination with flag
    option :issue:2813

  • Fix handling of quoted and escaped parameters in Fish autocompletion. :issue:2995 :pr:3013

  • Lazily import shutil. :pr:3023

  • Properly forward exception information to resources registered with
    click.core.Context.with_resource(). :issue:2447 :pr:3058

  • Fix regression related to EOF handling in CliRunner. :issue:2939 :pr:2940

v8.2.2

Compare Source

Released 2025-07-31

  • Fix reconciliation of default, flag_value and type parameters for
    flag options, as well as parsing and normalization of environment variables.
    :issue:2952 :pr:2956
  • Fix typing issue in BadParameter and MissingParameter exceptions for the
    parameter param_hint that did not allow for a sequence of string where the
    underlying function _join_param_hints allows for it. :issue:2777 :pr:2990
  • Use the value of Enum choices to render their default value in help
    screen. Refs :issue:2911 :pr:3004
  • Fix completion for the Z shell (zsh) for completion items containing
    colons. :issue:2703 :pr:2846
  • Don't include envvar in error hint when not configured. :issue:2971 :pr:2972
  • Fix a rare race in click.testing.StreamMixer's finalization that manifested
    as a ValueError on close in a multi-threaded test session.
    :issue:2993 :pr:2991

v8.2.1

Compare Source

Released 2025-05-20

  • Fix flag value handling for flag options with a provided type. :issue:2894
    :issue:2897 :pr:2930
  • Fix shell completion for nested groups. :issue:2906 :pr:2907
  • Flush sys.stderr at the end of CliRunner.invoke. :issue:2682
  • Fix EOF handling for stdin input in CliRunner. :issue:2787
ClickHouse/clickhouse-connect (clickhouse-connect)

v0.15.1

Compare Source

Bug Fixes
  • Use timezone from parameter type hint instead of server_tz when formatting tz-aware datetimes in {param:Type} bind expressions. Previously, bind_query always converted datetimes to the server timezone, ignoring explicit timezone declarations in type hints like DateTime64(6, 'UTC'). This caused incorrect query results when server_tz differed from the hint timezone. Handles LowCardinality, Nullable, and container type wrappers. Fixes #​697

v0.15.0

Compare Source

Improvements
  • SQLAlchemy: Comprehensive ClickHouse JOIN support via the new ch_join() helper. All strictness modifiers (ALL, ANY, SEMI, ANTI, ASOF), the GLOBAL distribution modifier, and explicit CROSS JOIN are now available. Use with select_from() to generate ClickHouse-specific join syntax like GLOBAL ALL LEFT OUTER JOIN. Closes #​635
  • SQLAlchemy: array_join() now supports multiple columns for parallel array expansion. Pass a list of columns and a matching list of aliases to generate ARRAY JOIN col1 AS a, col2 AS b, col3 AS c. Single-column usage is unchanged. Closes #​633
  • SQLAlchemy: ch_join() now supports USING syntax via the new using parameter. Pass a list of column name strings to generate USING (col1, col2) instead of ON. This is important for FULL OUTER JOIN where USING merges the join column correctly while ON produces default values (0, '') for unmatched sides. Closes #​636
  • SQLAlchemy: Add missing Replicated table engine variants: ReplicatedReplacingMergeTree, ReplicatedCollapsingMergeTree, ReplicatedVersionedCollapsingMergeTree, and ReplicatedGraphiteMergeTree. Closes #​687
  • Lazy imports for optional dependencies (numpy, pandas, pyarrow, polars). If installed, these heavy libraries are no longer imported at import clickhouse_connect time. They are only imported when features that need them are actually used. The C/Numpy optimization bridge is also deferred. This speeds up bare import time of clickhouse-connect about 4X in environments where all four are installed. Closes #​589
Other
  • Remove py.typed marker file. The package does not have comprehensive type annotations, so the PEP 561 marker was causing false type errors for mypy/pyright users. Closes #​691
Bug Fixes
  • SQLAlchemy: Fix .final() and .sample() silently overwriting each other when chained. Both methods now store modifiers as custom attributes on the Select instance and render them during compilation, replacing the previous with_hint() approach that only allowed one hint per table. Chaining in either order (e.g. select(t).final().sample(0.1)) correctly produces FROM t FINAL SAMPLE 0.1. Also fixes rendering for aliased tables (FROM t AS u FINAL) and supports explicit table targeting in joins. Fixes #​658
  • SQLAlchemy: Fix sqlalchemy.values() to generate ClickHouse's VALUES table function syntax. The compiler now emits VALUES('col1 Type1, col2 Type2', ...) with the column structure as the first argument, instead of the standard SQL form that places column names after the alias. Generic SQLAlchemy types are mapped to ClickHouse equivalents (e.g. Integer to Int32, String to String). Also handles CTE usage by wrapping in SELECT * FROM VALUES(...). Fixes #​681
  • SQLAlchemy: Fix GraphiteMergeTree and ReplicatedGraphiteMergeTree to properly single-quote the config_section argument as ClickHouse requires.

v0.14.1

Compare Source

Bug Fixes
  • Fix JSON and Dynamic column read paths to properly decode shared variant data instead of returning raw binary with discriminator byte prefixes. Shared data values, used when paths exceed max_dynamic_paths or types exceed max_dynamic_types are now decoded from ClickHouse's binary variant encoding. Scalar types like integers, floats, strings, booleans, and nulls as well as nested objects are now fully decoded. Compound types like Array, Tuple, Map, DateTime, Date, Decimal, and UUID are not yet decoded and will be returned as raw bytes. Fixes #​599, #​615, and #​674
  • SQLAlchemy: Fixed empty ORM/DBAPI SELECT results so cursor.description is still populated when ClickHouse Native format returns no data blocks. This restores correct handling for empty result sets, including parameterized and limited queries. Closes #​675
  • Restore the default Cython runtime path so compiled driverc modules are used again unless CLICKHOUSE_CONNECT_USE_C=0 is set. Fix C/Python parity issues in streaming exception handling, FixedString string reads, nullable array helpers, and numpy conversion helpers, and expand CI and unit parity coverage to keep the optimized and pure-Python paths in sync. Addresses #​676
  • Simplify pivot in the Cython data conversion module to use tuple(zip(*...)) instead of a manual tuple-building loop which matches the pure-Python implementation and provides significant insert speedup.

v0.14.0

Compare Source

Breaking Changes
  • Renamed apply_server_timezone parameter to tz_source across Client and HttpClient. The new tz_source parameter accepts string values: "auto" (default, was None), "server" (was True or "always"), and "local" (was False). The old apply_server_timezone parameter is still accepted but emits a DeprecationWarning and will be removed in 1.0. Passing both tz_source and `apply_ser

@renovate renovate bot force-pushed the renovate/python-dependencies branch from b82a8f3 to 47a96fa Compare September 23, 2024 18:38
@renovate renovate bot force-pushed the renovate/python-dependencies branch 2 times, most recently from f338270 to 68a9f86 Compare May 28, 2025 20:24
@wilbrdt wilbrdt force-pushed the renovate/python-dependencies branch from 68a9f86 to 2e458eb Compare May 29, 2025 08:01
@renovate renovate bot force-pushed the renovate/python-dependencies branch from 2e458eb to a06be19 Compare May 29, 2025 08:02
@renovate
Copy link
Copy Markdown
Contributor Author

renovate bot commented May 29, 2025

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@wilbrdt wilbrdt force-pushed the renovate/python-dependencies branch from a7e7eda to a06be19 Compare May 29, 2025 08:44
@renovate renovate bot force-pushed the renovate/python-dependencies branch 5 times, most recently from 9fbeed4 to 9904c4d Compare June 2, 2025 20:42
@renovate renovate bot force-pushed the renovate/python-dependencies branch 7 times, most recently from 40e3493 to 622e055 Compare June 12, 2025 10:56
@renovate renovate bot force-pushed the renovate/python-dependencies branch 7 times, most recently from f7f5593 to ed7707b Compare June 21, 2025 18:33
@renovate renovate bot force-pushed the renovate/python-dependencies branch 3 times, most recently from 8490285 to 3519d46 Compare June 26, 2025 17:04
@renovate renovate bot force-pushed the renovate/python-dependencies branch 6 times, most recently from 14b6bc4 to ce25951 Compare July 21, 2025 19:05
@renovate renovate bot force-pushed the renovate/python-dependencies branch 5 times, most recently from e016033 to 0b19607 Compare July 28, 2025 17:37
@renovate renovate bot force-pushed the renovate/python-dependencies branch 5 times, most recently from f4a006e to b35662c Compare August 12, 2025 00:30
@renovate renovate bot force-pushed the renovate/python-dependencies branch 3 times, most recently from 774c62c to 1972fc8 Compare August 15, 2025 18:44
@renovate renovate bot force-pushed the renovate/python-dependencies branch 7 times, most recently from 8ddb755 to 1614702 Compare August 27, 2025 06:31
@renovate renovate bot force-pushed the renovate/python-dependencies branch 3 times, most recently from 2ee4b7d to b6b8a87 Compare September 5, 2025 00:03
| datasource | package               | from            | to              |
| ---------- | --------------------- | --------------- | --------------- |
| pypi       | anyio                 | 4.9.0           | 4.13.0          |
| pypi       | bcrypt                | 4.2.0           | 5.0.0           |
| pypi       | black                 | 24.8.0          | 26.3.1          |
| pypi       | cachetools            | 5.5.0           | 7.0.5           |
| pypi       | click                 | 8.2.0           | 8.3.1           |
| pypi       | clickhouse-connect    | 0.7.19          | 0.15.1          |
| pypi       | cryptography          | 43.0.1          | 46.0.6          |
| pypi       | elasticsearch         | 8.19.3          | 9.3.0           |
| pypi       | factory-boy           | 3.3.1           | 3.3.3           |
| pypi       | fastapi               | 0.114.2         | 0.135.3         |
| pypi       | importlib-metadata    | 8.5.0           | 9.0.0           |
| pypi       | mike                  | 2.1.3           | 2.1.4           |
| pypi       | mkdocs-click          | 0.8.1           | 0.9.0           |
| pypi       | mkdocs-material       | 9.5.34          | 9.7.6           |
| pypi       | mkdocstrings          | 0.26.1          | 1.0.3           |
| pypi       | moto                  | 5.0.14          | 5.1.22          |
| pypi       | mypy                  | 1.11.2          | 1.20.0          |
| pypi       | neoteroi-mkdocs       | 1.1.0           | 1.2.0           |
| pypi       | polyfactory           | 2.16.2          | 3.3.0           |
| pypi       | pyfakefs              | 5.6.0           | 6.1.6           |
| pypi       | pymdown-extensions    | 10.9            | 10.21.2         |
| pypi       | pytest                | 8.3.5           | 9.0.2           |
| pypi       | pytest-cov            | 5.0.0           | 7.1.0           |
| pypi       | pytest-httpx          | 0.35.0          | 0.36.0          |
| pypi       | python-jose           | 3.3.0           | 3.5.0           |
| pypi       | responses             | 0.25.3          | 0.26.0          |
| pypi       | ruff                  | 0.6.5           | 0.15.9          |
| pypi       | sentry-sdk            | 2.14.0          | 2.57.0          |
| pypi       | twine                 | 5.1.1           | 6.2.0           |
| pypi       | types-cachetools      | 5.5.0.20240820  | 6.2.0.20260317  |
| pypi       | types-python-dateutil | 2.9.0.20240906  | 2.9.0.20260402  |
| pypi       | types-python-jose     | 3.3.4.20240106  | 3.5.0.20260402  |
| pypi       | types-requests        | 2.32.0.20240914 | 2.33.0.20260402 |
| pypi       | uvicorn               | 0.30.6          | 0.42.0          |
| pypi       | websockets            | 13.1            | 16.0            |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants