NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4046 most downloaded on PyPI
Scylla Driver for Apache Cassandra
Last release 8 days ago
26 Sep 2026
Ships fairly regularly
a new release about every 2 months
Some releases are documented
notes for 18 of 46 stable releases
1 version withdrawn
withdrawn after publishing
6 years old
47 releases · first in 2020
One column per quarter.
build(deps): remove vulnerable Python 3.9 resolutions by @dkropachev in #1043
Full Changelog: 3.29.11-scylla...3.29.12-scylla
Sep 26, 2026
Report the driver's identity and configuration in the STARTUP options, where ScyllaDB exposes them in the client_options column of its clients table (DRIVER-950). Every connection now sends SESSION_ID, a UUID identifying the Cluster it belongs to and readable from the new Cluster.session_id, so all of a client's connections can be correlated with each other and with its own logs. The control connection additionally sends DRIVER_CONFIG, a JSON description of the effective configuration, which for now carries only the schema version it follows. Reporting the configuration can be turned off with the new Cluster(driver_config_reporting_enabled=False); SESSION_ID is unaffected by that setting. Reporting is best effort and never prevents a connection from being established.
DRIVER_CONFIG now describes the configuration itself rather than only the schema version it follows (DRIVER-379). The report covers connection settings (timeouts, request capacity, shard awareness, socket options, reconnection policy, TLS hostname verification), the driver's own control-plane query timeouts, and the query defaults and policies a statement gets when it overrides none of them. It follows the JSON schema shared with the other ScyllaDB drivers, so the same document describes a client whichever driver wrote it. Custom policies are reported by type name only and never by their attributes, so a policy holding a credential does not leak it into the clients table.
Cluster.sockopts is now materialized at construction, so a one-shot iterable is applied to every connection the cluster opens rather than only to the first one.
Negotiate and implement the SCYLLA_USE_METADATA_ID protocol extension: prepared statements skip re-sending result metadata on EXECUTE, and the driver automatically refreshes cached metadata when the server detects a schema change (DRIVER-153, #770).
Negotiate TABLETS_ROUTING_V2, track tablet versions, and prefer tablet leaders for strongly consistent tables (#913).
Resume TLS sessions through the new per-endpoint SSLSessionCache, with cache lifetime and security controls exposed by Cluster (#789, DRIVER-165).
Use a Cython LZ4 fast path linked directly to the C library for CQL v4 compression (#809).
Python 3.10 or newer is now required (#1043). Python 3.15 is supported, including published CPython 3.15 wheels; free-threaded 3.15t is tested but does not receive wheels (#1005). Wheels are no longer published for 32-bit Windows (#916).
The eventlet, gevent, and Twisted reactors and their public modules have been removed (#969, CASSPYTHON-13).
The Insights package and its Cluster configuration API have been removed (#968, CASSPYTHON-24).
DCAwareRoundRobinPolicy.local_dc is now read-only. It is set by the constructor, and filled in by the policy itself when the constructor was given none, from the first host to come up. Code that assigned it should pass local_dc to the constructor instead.
PreparedStatement.result_metadata and PreparedStatement.result_metadata_id are now read-only. They are replaced together by PreparedStatement.update_result_metadata(), so a request cannot observe metadata and its id from different schema versions. Code that assigned either attribute directly must call update_result_metadata() instead.
Message serialization now receives the connection's negotiated ProtocolFeatures. Custom protocol handlers that override encode_message must accept a required protocol_features keyword argument, and custom encoders that delegate to msg.send_body must forward it. This enables the connection-specific serialization required by SCYLLA_USE_METADATA_ID and TABLETS_ROUTING_V2.
Prevent sessions from leaking keyspace state when application queries fall back to the shared control connection. The first fallback session binds that connection to its keyspace (including no keyspace); other fallback sessions with a different keyspace are rejected while that binding is held. The binding is released once every session holding it has been shut down or garbage collected and its fallback requests have drained, so a later session can take it over. Taking it over from a session without a keyspace is rejected when the previous holder left the shared connection in a keyspace, since CQL offers no way back to "no keyspace". An explicit USE statement -- including the one Session.set_keyspace() executes -- is now rejected with InvalidRequest on the fallback path, since it would change the keyspace of the shared connection under every other session using it; the keyspace has to be chosen when the session is created (#1013).
Fix the client-side timeout never firing for a request on the control-connection fallback path while the driver's own USE is in flight. The USE is sent without recording a host attempt, and _on_speculative_execute checked its "no attempt recorded yet" guard before the deadline, so with a speculative execution policy configured a repeatedly failing USE rescheduled the callback every 10ms instead of ever timing the request out. The deadline is now checked first (#1013).
Fix ResponseFuture._req_id being left pointing at the driver's own USE instead of the request actually in flight, when the SET_KEYSPACE reply is processed before send_msg() returns. On a later timeout the driver then orphaned the wrong stream id and left the real request in the connection's request map (#1013).
A host reconnection handler now releases the host's reconnection slot when authentication fails or its retry schedule is exhausted. A later DOWN event can therefore start a new handler after credentials recover or another reconnection opportunity appears, instead of treating the stopped handler as an active one (#1026).
A defunct control connection is no longer left unreconnected when the cluster does not run DOWN handling for its host (#847). ControlConnection._signal_error() treated the conviction policy accepting a failure as a guarantee that a DOWN callback would reconnect it, but the two are not the same: Cluster.on_down() deliberately skips DOWN handling when a session pool to the host is still open, when the host is already down or already reconnecting, and when pool creation is disabled -- and the default SimpleConvictionPolicy rejects the conviction outright for OperationTimedOut. In all of those cases the control connection stayed defunct with nothing scheduled to replace it. Cluster.on_down() and Cluster.signal_connection_failure() now return whether DOWN handling was actually dispatched, and the control connection reconnects directly whenever it was not. This applies uniformly to TCP, Unix socket, alternate-route and stable host-ID connections, and does not duplicate the reconnect that an accepted DOWN transition already performs. Two related cases are fixed with it: a control connection whose reconnection attempts are already backing off no longer has that schedule cancelled and restarted from its initial delay by every further error, and a reconnection handler that has stopped for good -- once its retry schedule is exhausted -- now releases the slot it occupies, so a later error starts a fresh reconnection instead of mistaking the dead handler for one still retrying. The slot is likewise released once a connection is installed, so a handler whose backoff outlived the reconnection that succeeded without it no longer blocks the next one. Every release is identity-checked, so a handler that stops can only ever clear itself: it cannot evict a replacement another thread installed while it was handing its connection over, which would have left that replacement retrying where nothing could find it. An attempt that fails while an overlapping one succeeds no longer parks a handler in the slot the successful attempt emptied, which would have blocked reconnection for the length of its backoff and then replaced a healthy control connection. Once retry handling begins, its cadence follows reconnection_policy up to max_reconnection_delay instead of being restarted by each idle_heartbeat_interval. Operators that need a shorter recovery bound should configure a lower maximum delay. A finite schedule gives up after its configured attempts only when its final attempt does not overlap another reconnect trigger. A trigger received while the final attempt is running starts a fresh schedule if that attempt fails, so reconnection can be retriggered indefinitely when attempts outlast idle_heartbeat_interval. Heartbeat returns after exhaustion for the same failed connection do not re-arm it; an infinite schedule provides timing-independent recovery.
The control connection is no longer closed immediately after a reconnection handler restores it. _ReconnectionHandler.run() closed the connection it had just opened, which is right for the host handler that only uses it to probe the host, but left the control connection dead the moment its backoff finally succeeded -- until a heartbeat noticed, or forever with idle_heartbeat_interval=0.
Preserve SERIAL and LOCAL_SERIAL semantics during routing and retries: LWT replicas are no longer shuffled, and retries cannot downgrade to a non-serial consistency level (#887).
The default constant and exponential reconnection schedules no longer stop after 64 attempts, and heartbeat failures report the configured timeout correctly (#834).
Treat an explicit empty ssl_options mapping as SSL configuration when selecting a shard-aware endpoint (#936).
Invalidate cached tablet metadata when a table is deleted through a schema event (#975).
Stop schedulers before executor teardown and fail pending retry work cleanly during interpreter shutdown (#392).
Preserve Unix-socket control endpoints for local hosts (#944), and restore local listen and broadcast metadata when token metadata is disabled (#1012).
Mark compatibility MD5 operations as non-security uses so they work in FIPS-enabled environments (#970).
Use portable, precision-preserving shard-id arithmetic in the Cython implementation, fixing MSVC builds and matching the Python implementation (#950).
Report errors from every pool when Session.set_keyspace() fails, rather than only the final error (#911), and validate the scope passed to Session.wait_for_schema_agreement() (#917).
Reject secure-connect-bundle archive paths that escape their extraction directory (#969).
Connection.max_request_id and Connection.orphaned_threshold now follow the max_in_flight actually in force. Both were computed in the class body, which runs once, so a subclass that set its own max_in_flight inherited values derived from the base class -- leaving, for example, a max_in_flight of 256 with a threshold of 24576, which a connection holding at most 256 orphaned stream ids can never reach, so orphan-based connection replacement never happened for such a subclass. Each connection now derives both in __init__ from the limit in force when it is built, which overrides a value a subclass sets in its class body. orphaned_threshold is also capped at three quarters of the CQL stream id range, as max_request_id already was: a max_in_flight raised past that range left the threshold above the number of stream ids a connection can hold at all, which is the same bug in the other direction. The two new static methods Connection.max_request_id_for() and Connection.orphaned_threshold_for() expose the derivation, so that both limits can be read for a given max_in_flight before any connection exists.
The STARTUP options that describe the driver itself are no longer the application's to set. An ApplicationInfoBase.add_startup_options that sets DRIVER_NAME, DRIVER_VERSION, SESSION_ID or DRIVER_CONFIG now has that value dropped, with a warning naming the option; keys the driver does not own still come through unchanged. Previously DRIVER_NAME and DRIVER_VERSION could be overridden, which misreported the driver to the server for the life of the connection and, in the clients table, to the operator reading the row.
asyncio backend now supports TLS
NetworkTopologyStrategy instead of SimpleStrategyFull Changelog: 3.29.10-scylla...3.29.11-scylla
Jun 15, 2026
asyncio backend now supports TLS
Race conditions in libev backend resulting in EBADF error have been fixed
Integration tests now use NetworkTopologyStrategy instead of SimpleStrategy
All actions used in CI are now hash-pinned to decrease risk of supply-chain attacks
Various fixes to make CI tests work with various versions of Scylla - mostly related to tablets and LWT
Bumped Scylla version used in CI to 2026.1
Deprecate ControlConnection.wait_for_schema_agreement
May 10, 2026
Fast-path lookup_casstype() for simple type names
Add Session.wait_for_schema_agreement
Fix CQL injection in Connection.set_keyspace_blocking and Connection.set_keyspace_async
Fix libev shutdown crashes by correcting atexit registration
Handle None control_connection_timeout in wait_for_schema_agreement
Clean up failed heartbeat sends
Fix ExponentialBackoffRetryPolicy.__init__ super() call
Correct clustering_key to clustering in column kind filter
Fix inverted cooldown check in _get_shard_aware_endpoint
Deprecate ControlConnection.wait_for_schema_agreement
Add timeout and in-flight observability to OperationTimedOut
Drop per-query connection log
Remove deprecated setup_requires in favor of PEP 517 build-system.requires
March 18, 2026
Add Private Link support via client routes handler
Add optional query_params parameter to QueryMessage
Fix segmentation fault in libev prepare_callback during shutdown
Add null checks to io_callback and timer_callback in libev wrapper
Fix RecursionError in execute_concurrent on synchronous errbacks
Fix floating-point precision loss for timestamps far from epoch
Cache parsed tablet routing type in ResponseFuture
Remove deprecated setup_requires in favor of PEP 517 build-system.requires
Update dependency hatchling to v1.29.0
Add frozen parameter to collection columns with FULL index support
February 09, 2026
Add frozen parameter to collection columns with FULL index support
Include original error in ConnectionShutdown messages
Fix IntStat comparison operators and metrics cleanup on shutdown
Fix NumPy 2.0 compatibility in numpy_parser
Fix race condition during host IP address update
Fix infinite retry when single host fails with server error
Don't mark node down when control connection fails to connect
Call on_add before distance to properly initialize lbp
Don't check if host is in initial contact points when setting default local_dc
Pull version information from system.local when version info is not present
Fix missing call to superclass __init__ during object initialization
Remove scales dependency with self-contained metrics implementation
Migrate from pytz to zoneinfo
Remove Python 2 compatibility code
Optimize write path in protocol.py to reduce copies
TokenAwarePolicy: remove redundant check if a table is using tablets
Don't create Host instances with random host_id
Use endpoint instead of Host in _try_connect
Remove support for protocols <3 from cython files
Return empty query plan if there are no live hosts
Replace asynctest with stdlib mock
Make it compression=None a valid case by @dkropachev in #613
Full Changelog: 3.29.6-scylla...3.29.7-scylla
compression: better handle configuration problems by @dkropachev in #585
sure package by @dkropachev in #592Full Changelog: 3.29.5-scylla...3.29.6-scylla
November 27, 2025
Rename connection_metadata to client_routes (#608)
TokenAwarePolicy: enable shuffling by default (#478)
Add support of LWT flag for BatchStatement (#606)
Add support of CONNECTION_METADATA_CHANGE event (#601)
Add LWT support (#584)
Add support for Python 3.14 (#566)
Fix dict handling in pool and metrics (#595)
Remove serverless code (#590)
tests: drop sure package (#592)
compression: better handle configuration problems (#585)
Update TokenAwarePolicy.make_query_plan to schedule to replicas first
November 5, 2025
Update TokenAwarePolicy.make_query_plan to schedule to replicas first (#548)
Drop _tablets_routing_v1 flag from token-aware policy (#547)
Fix dc aware and rack aware policies initialization (#546)
Fix Cluster.metadata_request_timeout and default it from control_connection_timeout (#539)
Drop python 3.9 support (#564)
Remove python 3.8 support by @dkropachev in #480
Full Changelog: 3.29.3-scylla...3.29.4-scylla
August 16, 2025
Add Cluster.application_info to report application information to server (#486)
Move to uv package manager (#496)
Fix deadlocks on evicting connection in HostConnectionPool and ConnectionPool (#499)
Fix libevreactor crashing when connection added and closed right away (#508)
Remove outdated protocols support (v1 and v2) (#493, #525)
Remove DSE integration tests (#502)
Optimise shard port allocator (#506)
Remove self.assert (#507)
Minor performance improvement for make_token_replica_map (#513)
Remove in-memory Scylla tables support (#518)
Add optional dependencies for SNAPPY and LZ4 compressors (#517)
Remove support for protocol versions not supported by Scylla (#492)
Set monitor_reporting_enabled False by default (#523)
Fix regression after #443 when _is_gevent_monkey_patched was broken
March 11, 2025
Fix regression after #443 when _is_gevent_monkey_patched was broken (#452)
Fix sync_table to raise error on adding partition key (#433)
Upgrade CICD Runners to ubuntu-24.04 (#451)
Make connection tests to fail when failed to import connection class from EVENT_LOOP_MANAGER
Use timezone-aware API to avoid deprecated warning (PR 1213)
September 9, 2024
Convert to pytest for running unit and integration tests (PYTHON-1297)
Add support for Cassandra 4.1.x and 5.0 releases to CI (PYTHON-1393)
Extend driver vector support to arbitrary subtypes and fix handling of variable length types (PYTHON-1369)
Python NumpyProtocolHandler does not work with NumPy 1.24.0 or greater (PYTHON-1359)
cibuildwheel appears to not be stripping Cython-generated shared objects (PYTHON-1387)
Windows build for Python 3.12 compiled without libev support (PYTHON-1386)
Update README.rst with badges for version and license (PR 1210)
Remove dependency on old mock external module (PR 1201)
Removed future print_function, division, and with and some pre 3.7 handling (PR 1208)
Update geomet dependency (PR 1207)
Remove problematic escape sequences in some docstrings to avoid SyntaxWarning in Python 3.12 (PR 1205)
Use timezone-aware API to avoid deprecated warning (PR 1213)
Add support for Python 3.9 through 3.12, drop support for 3.7 (PYTHON-1283)
December 19, 2023
Add support for Python 3.9 through 3.12, drop support for 3.7 (PYTHON-1283)
Removal of dependency on six module (PR 1172)
Raise explicit exception when deserializing a vector with a subtype that isn’t a constant size (PYTHON-1371)
Remove outdated Python pre-3.7 references (PR 1186)
Remove backup(.bak) files (PR 1185)
Fix doc typo in add_callbacks (PR 1177)
Nothing published for this version
Add support for vector type (PYTHON-1352)
June 5, 2023
Add support for vector type (PYTHON-1352)
Cryptography module is now an optional dependency (PYTHON-1351)
Store IV along with encrypted text when using column-level encryption (PYTHON-1350)
Create session-specific protocol handlers to contain session-specific CLE policies (PYTHON-1356)
Use Cython for smoke builds (PYTHON-1343)
Don't fail when inserting UDTs with prepared queries with some missing fields (PR 1151)
Convert print statement to function in docs (PR 1157)
Update comment for retry policy (DOC-3278)
Added error handling blog reference (DOC-2813)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix deprecation warning in query tracing (PR 1103)
March 13, 2023
Add support for execution profiles in execute_concurrent (PR 1122)
Handle empty non-final result pages (PR 1110)
Do not re-use stream IDs for in-flight requests (PR 1114)
Asyncore race condition cause logging exception on shutdown (PYTHON-1266)
Fix deprecation warning in query tracing (PR 1103)
Remove mutable default values from some tests (PR 1116)
Remove dependency on unittest2 (PYTHON-1289)
Fix deprecation warnings for asyncio.coroutine annotation in asyncioreactor (PYTHON-1290)
Fix typos in source files (PR 1126)
HostFilterPolicyInitTest fix for Python 3.11 (PR 1131)
Fix for DontPrepareOnIgnoredHostsTest (PYTHON-1287)
tests.integration.simulacron.test_connection failures (PYTHON-1304)
tests.integration.standard.test_single_interface.py appears to be failing for C* 4.0 (PYTHON-1329)
Authentication tests appear to be failing fraudulently (PYTHON-1328)
PreparedStatementTests.test_fail_if_different_query_id_on_reprepare() failing unexpectedly (PTYHON-1327)
Refactor deprecated unittest aliases for Python 3.11 compatibility (PR 1112)
This release removes support for Python 2.7.x as well as Python 3.5.x and 3.6.x
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Ensure the driver can connect when invalid peer hosts are in system.peers (PYTHON-1260)
March 18, 2021
Ensure the driver can connect when invalid peer hosts are in system.peers (PYTHON-1260)
Implement protocol v5 checksumming (PYTHON-1258)
Fix the default cqlengine connection mechanism to work with Astra (PYTHON-1265)
Asyncore race condition cause logging exception on shutdown (PYTHON-1266)
Update list of reserved keywords (PYTHON-1269)
Drop Python 3.4 support (PYTHON-1220)
Update security documentation and examples to use PROTOCOL_TLS (PYTHON-1264)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Make geomet an optional dependency at runtime (PYTHON-1237)
June 18, 2020
Make geomet an optional dependency at runtime (PYTHON-1237)
Add use_default_tempdir cloud config options (PYTHON-1245)
Tcp flow control for libevreactor (PYTHON-1248)
Unable to connect to a cloud cluster using Ubuntu 20.04 (PYTHON-1238)
PlainTextAuthProvider fails with unicode chars and Python3 (PYTHON-1241)
[GRAPH] Graph execution profiles consistency level are not set to LOCAL_QUORUM with a cloud cluster (PYTHON-1240)
[GRAPH] Can't write data in a Boolean field using the Fluent API (PYTHON-1239)
[GRAPH] Fix elementMap() result deserialization (PYTHON-1233)
Bump geomet dependency version to 0.2 (PYTHON-1243)
Bump gremlinpython dependency version to 3.4.6 (PYTHON-1212)
Improve fluent graph documentation for core graphs (PYTHON-1244)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Add all() function to the ResultSet API (PYTHON-1203)
February 26, 2020
Add all() function to the ResultSet API (PYTHON-1203)
Parse new schema metadata in NGDG and generate table edges CQL syntax (PYTHON-996)
Add GraphSON3 support (PYTHON-788)
Use GraphSON3 as default for Native graphs (PYTHON-1004)
Add Tuple and UDT types for native graph (PYTHON-1005)
Add Duration type for native graph (PYTHON-1000)
Add gx:ByteBuffer graphson type support for Blob field (PYTHON-1027)
Enable Paging Through DSE Driver for Gremlin Traversals (PYTHON-1045)
Provide numerical wrappers to ensure proper graphson schema definition (PYTHON-1051)
Resolve the row_factory automatically for native graphs (PYTHON-1056)
Add g:TraversalMetrics/g:Metrics graph deserializers (PYTHON-1057)
Add g:BulkSet graph deserializers (PYTHON-1060)
Update Graph Engine names and the way to create a Classic/Native Graph (PYTHON-1090)
Update Native to Core Graph Engine
Add graphson3 and native graph support (PYTHON-1039)
Enable Paging Through DSE Driver for Gremlin Traversals (PYTHON-1045)
Expose filter predicates for cql collections (PYTHON-1019)
Add g:TraversalMetrics/Metrics deserializers (PYTHON-1057)
Make graph metadata handling more robust (PYTHON-1204)
Make sure to only query the native_transport_address column with DSE (PYTHON-1205)
Unified driver: merge core and DSE drivers into a single package (PYTHON-1130)
January 15, 2020
Unified driver: merge core and DSE drivers into a single package (PYTHON-1130)
Add Python 3.8 support (PYTHON-1189)
Allow passing ssl context for Twisted (PYTHON-1161)
Ssl context and cloud support for Eventlet (PYTHON-1162)
Cloud Twisted support (PYTHON-1163)
Add additional_write_policy and read_repair to system schema parsing (PYTHON-1048)
Flexible version parsing (PYTHON-1174)
Support NULL in collection deserializer (PYTHON-1123)
[GRAPH] Ability to execute Fluent Graph queries asynchronously (PYTHON-1129)
Handle prepared id mismatch when repreparing on the fly (PYTHON-1124)
re-raising the CQLEngineException will fail on Python 3 (PYTHON-1166)
asyncio message chunks can be processed discontinuously (PYTHON-1185)
Reconnect attempts persist after downed node removed from peers (PYTHON-1181)
Connection fails to validate ssl certificate hostname when SSLContext.check_hostname is set (PYTHON-1186)
ResponseFuture._set_result crashes on connection error when used with PrepareMessage (PYTHON-1187)
Insights fail to serialize the startup message when the SSL Context is from PyOpenSSL (PYTHON-1192)
The driver has a new dependency: geomet. It comes from the dse-driver unification and is used to support DSE geo types.
Remove *read_repair_chance table options (PYTHON-1140)
Avoid warnings about unspecified load balancing policy when connecting to a cloud cluster (PYTHON-1177)
Add new DSE CQL keywords (PYTHON-1122)
Publish binary wheel distributions (PYTHON-1013)
DSELoadBalancingPolicy will be removed in the next major, consider using the DefaultLoadBalancingPolicy.
Merged from dse-driver:
Insights integration (PYTHON-1047)
Graph execution profiles should preserve their graph_source when graph_options is overridden (PYTHON-1021)
Add NodeSync metadata (PYTHON-799)
Add new NodeSync failure values (PYTHON-934)
DETERMINISTIC and MONOTONIC Clauses for Functions and Aggregates (PYTHON-955)
GraphOptions should show a warning for unknown parameters (PYTHON-819)
DSE protocol version 2 and continous paging backpressure (PYTHON-798)
GraphSON2 Serialization/Deserialization Support (PYTHON-775)
Add graph-results payload option for GraphSON format (PYTHON-773)
Create an AuthProvider for the DSE transitional mode (PYTHON-831)
Implement serializers for the Graph String API (PYTHON-778)
Provide deserializers for GraphSON types (PYTHON-782)
Add Graph DurationType support (PYTHON-607)
Support DSE DateRange type (PYTHON-668)
RLAC CQL output for materialized views (PYTHON-682)
Add Geom Types wkt deserializer
DSE Graph Client timeouts in custom payload (PYTHON-589)
Make DSEGSSAPIAuthProvider accept principal name (PYTHON-574)
Add config profiles to DSE graph execution (PYTHON-570)
DSE Driver version checking (PYTHON-568)
Distinct default timeout for graph queries (PYTHON-477)
Graph result parsing for known types (PYTHON-479,487)
Distinct read/write CL for graph execution (PYTHON-509)
Target graph analytics query to spark master when available (PYTHON-510)
Continuous paging sessions raise RuntimeError when results are not entirely consumed (PYTHON-1054)
GraphSON Property deserializer should return a dict instead of a set (PYTHON-1033)
ResponseFuture.has_more_pages may hold the wrong value (PYTHON-946)
DETERMINISTIC clause in AGGREGATE misplaced in CQL generation (PYTHON-963)
graph module import cause a DLL issue on Windows due to its cythonizing failure (PYTHON-900)
Update date serialization to isoformat in graph (PYTHON-805)
DateRange Parse Error (PYTHON-729)
MontonicTimestampGenerator.__init__ ignores class defaults (PYTHON-728)
metadata.get_host returning None unexpectedly (PYTHON-709)
Sockets associated with sessions not getting cleaned up on session.shutdown() (PYTHON-673)
Resolve FQDN from ip address and use that as host passed to SASLClient (PYTHON-566)
Geospatial type implementations don't handle 'EMPTY' values. (PYTHON-481)
Correctly handle other types in geo type equality (PYTHON-508)
Add tests around cqlengine and continuous paging (PYTHON-872)
Add an abstract GraphStatement to handle different graph statements (PYTHON-789)
Write documentation examples for DSE 2.0 features (PYTHON-732)
DSE_V1 protocol should not include all of protocol v5 (PYTHON-694)
Your coding agent can read these notes before it upgrades. Set up the MCP server →