ralph icon indicating copy to clipboard operation
ralph copied to clipboard

⬆️(project) upgrade python dependencies

Open renovate[bot] opened this issue 1 year ago • 1 comments

This PR contains the following updates:

Package Change Age Confidence
anyio (changelog) ==4.9.0 -> ==4.11.0 age confidence
bcrypt ==4.2.0 -> ==5.0.0 age confidence
black (changelog) ==24.8.0 -> ==25.9.0 age confidence
cachetools ==5.5.0 -> ==6.2.1 age confidence
click (changelog) >=8.1.0,<8.2.1 -> >=8.3.0,<8.4.0 age confidence
clickhouse-connect <0.8 -> <0.10 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.121.0 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.6.23 age confidence
mkdocstrings (changelog) ==0.26.1 -> ==0.30.1 age confidence
moto (changelog) ==5.0.14 -> ==5.1.16 age confidence
mypy (changelog) ==1.11.2 -> ==1.18.2 age confidence
neoteroi-mkdocs ==1.1.0 -> ==1.1.3 age confidence
polyfactory (changelog) ==2.16.2 -> ==2.22.3 age confidence
pyfakefs (changelog) ==5.6.0 -> ==5.10.2 age confidence
pymdown-extensions ==10.9 -> ==10.16.1 age confidence
pytest (changelog) ==8.3.5 -> ==8.4.2 age confidence
pytest-cov (changelog) ==5.0.0 -> ==7.0.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.3 age confidence
sentry-sdk (changelog) ==2.14.0 -> ==2.43.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.20251008 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.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.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.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.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.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 an error if both are set.

v0.8.11

Compare Source

Improvement
  • Support of ISO8601 strings for inserting values to columns with DateTime64 type was added. If the driver detects that the inserted data for a DateTime64 is a string, it will attempt to parse an ISO-8601 datetime from that string. Other string formats are not currently supported. Thanks to Nikita Reznikov for the PR!
Bug Fix
  • Correctly handled native format column prefixes and insert names for Variant/Dynamic/JSON. Fixes #​441 and likely some other issues with experimental types Variant,Dynamic, and JSON.

v0.8.10

Compare Source

Bug Fixes
  • The experimental JSON type would break in some circumstances with ClickHouse server version 24.10 and later. This has been fixed. The fix is incompatible with ClickHouse version 24.8 and 24.9 however, so see the above WARNING about mixing JSON types
  • Experimental JSON types within a Tuple was broken. This has been fixed; however, the fix fails on ClickHouse server versions 24.8 and 24.9. If you need Tuple(JSON) support, you must use ClickHouse server version 24.10 or later. Closes #​436.

v0.8.9

Compare Source

Bug Fix
  • Roll back some timezone changes that caused incorrect usage of "local time" objects for some ClickHouse queries. Note that has deprecated "naive" timestamps; however converting everything to timezone aware objects (with the UTC timezone as appropriate) causes some numpy and possibly Pandas side effects. Eventually naive datetime object support will be deprecated/eliminated, but it will take some time to ensure no breaking changes. Fixes #​433

v0.8.8

Compare Source

Improvement
  • Handle low level HTTP errors as "Stream Complete". This provides better compatibility with the most recent ClickHouse version when the HTTP stream is abruptly closed after a server error.

v0.8.7

Compare Source

Improvement
  • Added basic support for ClickHouse geometric types Ring, Polygon, MultiPolygon, LineString, and MultiLineString. Closes #​427
Bug Fix
  • Settings/parameters from one Client will no longer leak into later client instantiations. Fixes #​426

v0.8.6

Compare Source

Bug Fixes
  • Correctly stream unchunked HTTP responses. Fixes #​417.
  • Don't use wait_end_of_query for any streaming requests. Fixes #​416

v0.8.5

Compare Source

Bug fix
  • Inserts into a Nullable integer/float column could throw an exception if the first value was None and the column required conversion to the numeric type (such as Python str to float). This has been fixed. Note that "mixed" Python types in an insert data set will still throw an exception (i.e., Python strings and ints should not be combined into the same column for insert. Closes #​414

v0.8.4

Compare Source

Improvement
  • Python 3.13 is now included in CI tests and 3.13 wheels are built for distribution. Note that PyArrow is not yet available for Python 3.13.
Bug fixes
  • ClickHouse errors are now detected and throw an exception even if the HTTP status code returned by ClickHouse is a 200. This can happen when there is a long-running query (such as a large INSERT INTO ... SELECT FROM ...) and send_progress_in_http_headers is enabled to keep the HTTP connection open.
  • Pandas NA (which is equivalent to Float NaN for Float values) is now inserted as NULL into Nullable(Float*) columns. Closes #​412

v0.8.3

Compare Source

Improvement
  • Add an optional executor_threads argument to the get_async_client method. This controls the number of concurrent threads that each AsyncClient has available for queries. Defaults to "number of CPU cores plus four". Closes #​407

v0.8.2

Compare Source

Bug Fix
  • Ensure lz4 compression does not exit on an empty block. May fix #​403.
Improvement
  • Compress Arrow inserts (using pyarrow compression) if compression is set to lz4 or zstd. Closes #​267.

v0.8.1

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.

renovate[bot] avatar Sep 23 '24 01:09 renovate[bot]

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.

renovate[bot] avatar May 29 '25 08:05 renovate[bot]