Skip to content

Conversation

@renovate
Copy link
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.12.0 age confidence
bcrypt ==4.2.0 -> ==5.0.0 age confidence
black (changelog) ==24.8.0 -> ==25.12.0 age confidence
cachetools ==5.5.0 -> ==6.2.2 age confidence
click (changelog) >=8.1.0,<8.2.1 -> >=8.3.1,<8.4.0 age confidence
clickhouse-connect <0.8 -> <0.11 age confidence
cryptography (changelog) ==43.0.1 -> ==46.0.3 age confidence
elasticsearch >=8.0.0,<9.0.0 -> >=9.2.0,<9.3.0 age confidence
factory-boy ==3.3.1 -> ==3.3.3 age confidence
fastapi (changelog) ==0.114.2 -> ==0.124.2 age confidence
importlib-metadata >=8.5, <8.6 -> >=8.7, <8.8 age confidence
mkdocs-click (changelog) ==0.8.1 -> ==0.9.0 age confidence
mkdocs-material (changelog) ==9.5.34 -> ==9.7.0 age confidence
mkdocstrings (changelog) ==0.26.1 -> ==1.0.0 age confidence
moto (changelog) ==5.0.14 -> ==5.1.18 age confidence
mypy (changelog) ==1.11.2 -> ==1.19.0 age confidence
neoteroi-mkdocs ==1.1.0 -> ==1.2.0 age confidence
polyfactory (changelog) ==2.16.2 -> ==3.1.0 age confidence
pyfakefs (changelog) ==5.6.0 -> ==5.10.2 age confidence
pymdown-extensions ==10.9 -> ==10.18 age confidence
pytest (changelog) ==8.3.5 -> ==9.0.2 age confidence
pytest-cov (changelog) ==5.0.0 -> ==7.0.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.25.8 age confidence
ruff (source, changelog) ==0.6.5 -> ==0.14.8 age confidence
sentry-sdk (changelog) ==2.14.0 -> ==2.47.0 age confidence
twine ==5.1.1 -> ==6.2.0 age confidence
types-cachetools (changelog) ==5.5.0.20240820 -> ==6.2.0.20251022 age confidence
types-python-dateutil (changelog) ==2.9.0.20240906 -> ==2.9.0.20251115 age confidence
types-python-jose (changelog) ==3.3.4.20240106 -> ==3.5.0.20250531 age confidence
types-requests (changelog) <2.32.0.20240915 -> <2.32.4.20250914 age confidence
uvicorn (changelog) ==0.30.6 -> ==0.38.0 age confidence
websockets (changelog) >=13.0,<14.0 -> >=15,<15.1 age confidence

Release Notes

agronholm/anyio (anyio)

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)

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)
tkem/cachetools (cachetools)

v6.2.2

Compare Source

===================

  • Minor improvements from GitHub Copilot code review.

  • Improve documentation.

v6.2.1

Compare Source

===================

  • Add support for Python 3.14.

  • Improve documentation.

  • Update CI environment.

v6.2.0

Compare Source

===================

  • Improve general RRCache performance by storing cache keys in an
    additional sequence container. Note that this will increase memory
    consumption.

  • Add more unit tests.

v6.1.0

Compare Source

===================

  • Improve LFUCache insertion performance by switching to an
    implementation based on the cacheing <https://pypi.org/project/cacheing/>_ library.

  • Update CI environment.

v6.0.0

Compare Source

===================

  • Require Python 3.9 or later (breaking change).

  • Remove MRUCache and the @func.mru_cache decorator (breaking
    change).

  • Add an optional condition parameter to the @cached and
    @cachedmethod decorators, which, when used with a
    threading.Condition instance, should improve cache stampede <https://en.wikipedia.org/wiki/Cache_stampede>_ issues in massively
    parallel environments. Note that this will inflict some performance
    penalty, and therefore has to be enabled explicitly.

  • Convert the cachetools.func decorators to use a
    threading.Condition instance to deal with cache stampede <https://en.wikipedia.org/wiki/Cache_stampede>_ issues. Note that
    this may result in a noticable performance degradation, depending
    on your actual use case.

  • Deprecate support for cache(self) returning None to suppress
    caching with the @cachedmethod decorator.

  • Improve documentation.

  • Update CI environment.

v5.5.2

Compare Source

===================

  • Reduce number of @cached lock/unlock operations.

  • Improve documentation.

  • Update CI environment.

v5.5.1

Compare Source

===================

  • Add documentation regarding caching of exceptions.

  • Officially support Python 3.13.

  • Update CI environment.

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.10.0

Compare Source

Bug Fixes
  • Fixed DST fallback bug in DateTime and DateTime64 types caused by passing potentially ambiguous times to pd.DateTimeIndex constructor. Closes #​585
  • Fixed issue with JSON key dot escaping. Closes #​571
Improvements
  • Added SQLAlchemy core API support for ARRAY JOIN and FINAL modifier. Closes #​579
  • Added Python 3.14 support (non-free-threaded build only; free-threaded builds are not yet supported). Closes #​574
  • Added utc_tz_aware parameter to client and query methods to opt in to returning timezone-aware UTC objects for DateTime/DateTime64 columns. Default behavior remains the same and returns tz naive objects for backward compatibility. Note: this parameter will likely be removed and only return tz-aware dts in some future release. Closes #​566
  • Added executor parameter to AsyncClient constructor to allow passing a custom executor for async operations. This allows users to control the concurrency and thread pool used by the async client.

v0.9.2

Compare Source

  • Updated python_requires to drop Python 3.8 and advertise support for 3.9–3.13
  • Allow passing role as a field in the settings keyword argument to set a role for a specific query

v0.9.1

Compare Source

  • Fix problem with typing that forced numpy to be installed.

v0.9.0

Compare Source

Breaking Changes
  • WARNING: BREAKING CHANGE — Removed support for sqlalchemy 1.3 which reached its EOL in 2021. The minimum required version is now 1.4.40.
  • WARNING: BREAKING CHANGE — Behavior for reading from IPv6 columns has changed:
    • With read_format='native', the client will always return ipaddress.IPv6Address objects, even for IPv4-mapped addresses (e.g., "::ffff:192.168.1.1"). Previously, the client returned ipaddress.IPv4Address objects for these cases. This change enforces type consistency and avoids surprising implicit conversions. If your application requires IPv4 objects, you can explicitly convert using the ipv4_mapped attribute of IPv6Address.
    • With read_format='string', the client will always return IPv6 string representations, e.g., "::ffff:192.168.1.1" instead of "192.168.1.1", for the same reasons as above. If you require only the IPv4 string, you can parse or truncate this in your application code.
    • Closes #​493
Major Features
  • Added support for SQLAlchemy 2.x. The minimum required version is 1.4.40. Closes #​263
  • Added Polars support for Arrow-based query and insert methods (query_df_arrow, query_df_arrow_stream, insert_df_arrow). This initial implementation provides basic dataframe conversion through the Arrow format, similar to how we support the pyarrow-backed pandas dataframes. Closes #​111 and #​542
  • Added support for querying/inserting pyarrow-backed DataFrames:
    • query_df_arrow(): returns a pandas DataFrame with PyArrow dtype backend. Note that Arrow data types are preserved without additional conversions.
    • query_df_arrow_stream(): Streaming version of query_df_arrow() for processing large result sets.
    • insert_df_arrow(): Optimized insertion method for pandas DataFrames with PyArrow backend, which should provide better performance than standard insert_df().
  • Added Time and Time64 type support. Closes #​509
  • Support for both pandas 1.x and 2.x.
  • Added support for Nullable(JSON) types
  • Added support for BFloat16 types
Improvements
  • Add support for lightweight DELETE in sqlalchemy. Closes #​382
  • Added support for SELECT/JOIN operations via SQLAlchemy's core API (table operations and explicit statements--not ORM sessions-based queries)
  • Added client connection option rename_response_column (default None) that allows the user to define how response columns are automatically renamed according to a predefined scheme. Helpful for stripping alias prefixes, etc. in potentially complex queries. Closes #​228
  • Add third-party library identifiers (name/version) in the User-Agent, e.g. pandas/2.2.5. Users can opt out by changing the common setting send_integration_tags to False.
  • Added support for form encoding query parameters when using HTTP interface. This addresses #​342. Query parameters can now be sent as form-encoded data in the request body by setting form_encode_query_params=True when creating the client. This is particularly useful for queries with large parameter payloads that might exceed URL length limits.
  • Added support for special interval types. Closes #​391
  • Added new common setting option "preserve_pandas_datetime_resolution" (default is False) allowing pandas 2.x users to opt into (when set to True) using the additional pandas 2.x datetime64/timedelta64 resolutions of "s", "ms", "us". If set to False or using pandas 1.x, all datetime64/timedelta64 resolutions will be coerced to "ns". (See here for more info). Closes #​165 and #​531
  • Tightens up type consistency of date-like objects when using query_df
  • When writing to an IPv6 column type, the client will "promote" IPv4 addresses to IPv4-mapped IPv6 addresses to prevent write errors. Closes #​498
  • Changed AsyncClient.settings typing to Optional[Dict[str, Any]] to accept None inputs.
  • Added more robust error handling and tests. Closes #​508
  • Replace the use of deprecated datetime.utcfromtimestamp
Bug Fixes
  • Fixed an AttributeError on http.client when importing clickhouse_connect under certain circumstances
  • Fixes problem with df inserts of Time and Time64 types. Closes #​524

v0.8.18

Compare Source

Improvements
  • Added a standalone test file (tests/unit_tests/test_driver/test_cursor.py) for testing cursor behavior
Bug Fixes
  • Fix SQLAlchemy execution error by using text() function by @​lakako in #​491
  • Test fixes for main by @​genzgd in #​497
  • Ensure types are returned even if there are no rows by @​orian in #​500
  • Added a standalone test file (tests/unit_tests/test_driver/test_cursor.py) for testing cursor behavior
  • Fix some issues with cursor behavior by @​joe-clickhouse in #​506
    • Reset cursor location after performing an execute.
    • Fix behavior of fetchall to only return rows from the current cursor location.
    • Fixes logic of fetchmany to respect size parameter.

v0.8.17

Compare Source

Improvements
  • The parameter transport_settings has been added to the Client query and insert methods. For the HTTP client (currently
    the only option), this dictionary of string is directly translated into additional HTTP headers at a query level. This can
    be used to provide additional proxy directives or other extra 'non-ClickHouse' information that is passed via headers.
    Thanks to Paweł Szczur of PostHog for the original PR!
  • There was previously no way to add a path to the ClickHouse server host in cases where the ClickHouse server was
    behind a proxy that used path based routing (such as https://big_proxy:8080/clickhouse). The new proxy_path get_client` argument can now be used to set that path. Closes #​486
Bug Fix
  • Version 0.8.16 introduced a bug where changing a Client setting value and then changing that setting value back to the
    original server value would fail to restore the original setting. This has been fixed. Closes
    #​487

v0.8.16

Compare Source

Bug Fixes
  • Don't send a setting value if the setting is already correct according to the system.settings table.
    Closes #​469
  • Ensure that the http user_agent header is in ascii. Note this could lead to an incorrectly encoded os_user if the
    os_user is not an Ascii string. Closes #​484
  • Fix "cannot access local variable" exception where the http client encounters an unexpected streaming error. Also
    log that unexpected streaming error to assist debugging. Closes #​483
  • Check that arrow/pandas is installed when calling query_df and query_arrow and raise a more meaningful exception
    if the required library is absent. Closes #​477
Improvements
  • Some typing hints have been corrected. Thanks to Avery Fischer for the PR!
  • The docker based tests have been fixed to work with security improvements in recent ClickHouse releases
  • Query string cleanup is now (in theory) microseconds faster. Thanks to Sviatoslav Bobryshev
    for the optimization

v0.8.15

Compare Source

Bug Fix
  • The async client was not shutting down its associated executor thread pool, result in a memory leak if multiple
    async clients were created. Closes #​424. Note that the close
    function for the async client is now async to cleanly close down the pool. The recommended way to use an async client
    is now within an AsyncContext. See the associated PR for details.
    Thanks to ClickHouse core developer @​pufit for the fix!

v0.8.14

Compare Source

Bug Fix
  • Fix an edge case where a Pandas dataframe that contains only Int64 (or smaller) values would cause an exception when
    inserting into a ClickHouse "big int" table of U/Int128/256. Closes #​452

v0.8.13

Compare Source

Bug Fix
  • Fix missing default for new access_token parameter. Thanks to Lukas Thaler for the PR.

v0.8.12

Compare Source

Improvement
  • Added support for JWT authentication (ClickHouse Cloud feature).
    It can be set via the access_token client configuration option for both sync and async clients.
    The token can also be updated via the set_access_token method in the existing client instance.
    NB: do not mix access token and username/password credentials in the configuration;
    the client will throw

@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
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 8 times, most recently from 142b018 to 3d671f0 Compare November 28, 2025 18:32
@renovate renovate bot force-pushed the renovate/python-dependencies branch 15 times, most recently from 1945caa to 7724e1c Compare December 5, 2025 03:37
@renovate renovate bot force-pushed the renovate/python-dependencies branch 5 times, most recently from 0c9f629 to 5a6784a Compare December 8, 2025 05:15
| datasource | package               | from            | to              |
| ---------- | --------------------- | --------------- | --------------- |
| pypi       | anyio                 | 4.9.0           | 4.12.0          |
| pypi       | bcrypt                | 4.2.0           | 5.0.0           |
| pypi       | black                 | 24.8.0          | 25.12.0         |
| pypi       | cachetools            | 5.5.0           | 6.2.2           |
| pypi       | click                 | 8.2.0           | 8.3.1           |
| pypi       | clickhouse-connect    | 0.7.19          | 0.10.0          |
| pypi       | cryptography          | 43.0.1          | 46.0.3          |
| pypi       | elasticsearch         | 8.19.2          | 9.2.0           |
| pypi       | factory-boy           | 3.3.1           | 3.3.3           |
| pypi       | fastapi               | 0.114.2         | 0.124.2         |
| pypi       | importlib-metadata    | 8.5.0           | 8.7.0           |
| pypi       | mkdocs-click          | 0.8.1           | 0.9.0           |
| pypi       | mkdocs-material       | 9.5.34          | 9.7.0           |
| pypi       | mkdocstrings          | 0.26.1          | 1.0.0           |
| pypi       | moto                  | 5.0.14          | 5.1.18          |
| pypi       | mypy                  | 1.11.2          | 1.19.0          |
| pypi       | neoteroi-mkdocs       | 1.1.0           | 1.2.0           |
| pypi       | polyfactory           | 2.16.2          | 3.1.0           |
| pypi       | pyfakefs              | 5.6.0           | 5.10.2          |
| pypi       | pymdown-extensions    | 10.9            | 10.18           |
| pypi       | pytest                | 8.3.5           | 9.0.2           |
| pypi       | pytest-cov            | 5.0.0           | 7.0.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.25.8          |
| pypi       | ruff                  | 0.6.5           | 0.14.8          |
| pypi       | sentry-sdk            | 2.14.0          | 2.47.0          |
| pypi       | twine                 | 5.1.1           | 6.2.0           |
| pypi       | types-cachetools      | 5.5.0.20240820  | 6.2.0.20251022  |
| pypi       | types-python-dateutil | 2.9.0.20240906  | 2.9.0.20251115  |
| pypi       | types-python-jose     | 3.3.4.20240106  | 3.5.0.20250531  |
| pypi       | types-requests        | 2.32.0.20240914 | 2.32.4.20250913 |
| pypi       | uvicorn               | 0.30.6          | 0.38.0          |
| pypi       | websockets            | 13.1            | 15.0.1          |
@renovate renovate bot force-pushed the renovate/python-dependencies branch from 5a6784a to 8fb8d65 Compare December 10, 2025 12:51
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.

1 participant