From 6532d34f2e4dc755b1940e6ed375d98cb0b1f0370970b9ff71a6105cbceadb18 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Mon, 10 Feb 2025 13:46:40 +0000 Subject: [PATCH] - Update to 3.29.2 * 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) - Drop python-cassandra-driver-no-mock.patch, fixed upstream - Drop python-cassandra-driver-test_libevreactor-DependencyException.patch, fixed upstream - Remove C source files from source tree - Switch package to modern Python Stack on SLE-15 * Use Python 3.11 on SLE-15 by default * Drop support for older Python versions - Switch build system from setuptools to pyproject.toml * Add python-pip and python-wheel to BuildRequires * Replace %python_build with %pyproject_wheel * Replace %python_install with %pyproject_install * Update name for dist directory in %files section OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cassandra-driver?expand=0&rev=61 --- .gitattributes | 23 + .gitignore | 1 + 3.29.1.tar.gz | 3 + 3.29.2.tar.gz | 3 + python-cassandra-driver-no-mock.patch | 312 ++++++++ ...est_libevreactor-DependencyException.patch | 13 + python-cassandra-driver.changes | 699 ++++++++++++++++++ python-cassandra-driver.spec | 108 +++ 8 files changed, 1162 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 3.29.1.tar.gz create mode 100644 3.29.2.tar.gz create mode 100644 python-cassandra-driver-no-mock.patch create mode 100644 python-cassandra-driver-test_libevreactor-DependencyException.patch create mode 100644 python-cassandra-driver.changes create mode 100644 python-cassandra-driver.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/3.29.1.tar.gz b/3.29.1.tar.gz new file mode 100644 index 0000000..51bc070 --- /dev/null +++ b/3.29.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c68a9dee67b3386b46b4e13a78287ef6923aa63ff574b859bc98ea16ab46934 +size 785113 diff --git a/3.29.2.tar.gz b/3.29.2.tar.gz new file mode 100644 index 0000000..4381403 --- /dev/null +++ b/3.29.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa3be5396e05b395c178091656a329daba23b0d4dd69b8d076090157f86e6d13 +size 791791 diff --git a/python-cassandra-driver-no-mock.patch b/python-cassandra-driver-no-mock.patch new file mode 100644 index 0000000..6a87169 --- /dev/null +++ b/python-cassandra-driver-no-mock.patch @@ -0,0 +1,312 @@ +Index: python-driver-3.29.1/tests/unit/advanced/cloud/test_cloud.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/advanced/cloud/test_cloud.py ++++ python-driver-3.29.1/tests/unit/advanced/cloud/test_cloud.py +@@ -15,7 +15,7 @@ import unittest + from cassandra import DriverException + from cassandra.datastax import cloud + +-from mock import patch ++from unittest.mock import patch + + from tests import notwindows + +Index: python-driver-3.29.1/tests/unit/advanced/test_insights.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/advanced/test_insights.py ++++ python-driver-3.29.1/tests/unit/advanced/test_insights.py +@@ -16,7 +16,7 @@ + import unittest + + import logging +-from mock import sentinel ++from unittest.mock import sentinel + import sys + + from cassandra import ConsistencyLevel +Index: python-driver-3.29.1/tests/unit/advanced/test_policies.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/advanced/test_policies.py ++++ python-driver-3.29.1/tests/unit/advanced/test_policies.py +@@ -13,7 +13,7 @@ + # limitations under the License. + import unittest + +-from mock import Mock ++from unittest.mock import Mock + + from cassandra.pool import Host + from cassandra.policies import RoundRobinPolicy +Index: python-driver-3.29.1/tests/unit/cqlengine/test_connection.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/cqlengine/test_connection.py ++++ python-driver-3.29.1/tests/unit/cqlengine/test_connection.py +@@ -18,7 +18,7 @@ from cassandra.cluster import _ConfigMod + from cassandra.cqlengine import connection + from cassandra.query import dict_factory + +-from mock import Mock ++from unittest.mock import Mock + + + class ConnectionTest(unittest.TestCase): +Index: python-driver-3.29.1/tests/unit/io/test_asyncioreactor.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/io/test_asyncioreactor.py ++++ python-driver-3.29.1/tests/unit/io/test_asyncioreactor.py +@@ -10,7 +10,7 @@ except (ImportError, SyntaxError): + from tests import is_monkey_patched, connection_class + from tests.unit.io.utils import TimerCallback, TimerTestMixin + +-from mock import patch ++from unittest.mock import patch + + import unittest + import time +Index: python-driver-3.29.1/tests/unit/io/test_asyncorereactor.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/io/test_asyncorereactor.py ++++ python-driver-3.29.1/tests/unit/io/test_asyncorereactor.py +@@ -13,7 +13,7 @@ + # limitations under the License. + import unittest + +-from mock import patch ++from unittest.mock import patch + import socket + import cassandra.io.asyncorereactor as asyncorereactor + from cassandra.io.asyncorereactor import AsyncoreConnection +Index: python-driver-3.29.1/tests/unit/io/test_eventletreactor.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/io/test_eventletreactor.py ++++ python-driver-3.29.1/tests/unit/io/test_eventletreactor.py +@@ -19,7 +19,7 @@ from tests.unit.io.utils import TimerTes + from tests import notpypy, EVENT_LOOP_MANAGER + + from eventlet import monkey_patch +-from mock import patch ++from unittest.mock import patch + + try: + from cassandra.io.eventletreactor import EventletConnection +Index: python-driver-3.29.1/tests/unit/io/test_geventreactor.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/io/test_geventreactor.py ++++ python-driver-3.29.1/tests/unit/io/test_geventreactor.py +@@ -23,7 +23,7 @@ try: + except ImportError: + GeventConnection = None # noqa + +-from mock import patch ++from unittest.mock import patch + + + skip_condition = GeventConnection is None or EVENT_LOOP_MANAGER != "gevent" +Index: python-driver-3.29.1/tests/unit/io/test_libevreactor.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/io/test_libevreactor.py ++++ python-driver-3.29.1/tests/unit/io/test_libevreactor.py +@@ -13,7 +13,7 @@ + # limitations under the License. + import unittest + +-from mock import patch, Mock ++from unittest.mock import patch, Mock + import weakref + import socket + +Index: python-driver-3.29.1/tests/unit/io/test_twistedreactor.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/io/test_twistedreactor.py ++++ python-driver-3.29.1/tests/unit/io/test_twistedreactor.py +@@ -13,7 +13,7 @@ + # limitations under the License. + + import unittest +-from mock import Mock, patch ++from unittest.mock import Mock, patch + + from cassandra.connection import DefaultEndPoint + +Index: python-driver-3.29.1/tests/unit/io/utils.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/io/utils.py ++++ python-driver-3.29.1/tests/unit/io/utils.py +@@ -27,7 +27,7 @@ import random + from functools import wraps + from itertools import cycle + from io import BytesIO +-from mock import Mock ++from unittest.mock import Mock + + import errno + import logging +Index: python-driver-3.29.1/tests/unit/test_cluster.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/test_cluster.py ++++ python-driver-3.29.1/tests/unit/test_cluster.py +@@ -16,7 +16,7 @@ import unittest + import logging + import socket + +-from mock import patch, Mock ++from unittest.mock import patch, Mock + + from cassandra import ConsistencyLevel, DriverException, Timeout, Unavailable, RequestExecutionException, ReadTimeout, WriteTimeout, CoordinationFailure, ReadFailure, WriteFailure, FunctionFailure, AlreadyExists,\ + InvalidRequest, Unauthorized, AuthenticationFailed, OperationTimedOut, UnsupportedOperation, RequestValidationException, ConfigurationException, ProtocolVersion +Index: python-driver-3.29.1/tests/unit/test_concurrent.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/test_concurrent.py ++++ python-driver-3.29.1/tests/unit/test_concurrent.py +@@ -16,7 +16,7 @@ + import unittest + + from itertools import cycle +-from mock import Mock ++from unittest.mock import Mock + import time + import threading + from queue import PriorityQueue +Index: python-driver-3.29.1/tests/unit/test_connection.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/test_connection.py ++++ python-driver-3.29.1/tests/unit/test_connection.py +@@ -13,7 +13,7 @@ + # limitations under the License. + import unittest + +-from mock import Mock, ANY, call, patch ++from unittest.mock import Mock, ANY, call, patch + from io import BytesIO + import time + from threading import Lock +Index: python-driver-3.29.1/tests/unit/test_control_connection.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/test_control_connection.py ++++ python-driver-3.29.1/tests/unit/test_control_connection.py +@@ -15,7 +15,7 @@ + import unittest + + from concurrent.futures import ThreadPoolExecutor +-from mock import Mock, ANY, call ++from unittest.mock import Mock, ANY, call + + from cassandra import OperationTimedOut, SchemaTargetType, SchemaChangeType + from cassandra.protocol import ResultMessage, RESULT_KIND_ROWS +Index: python-driver-3.29.1/tests/unit/test_endpoints.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/test_endpoints.py ++++ python-driver-3.29.1/tests/unit/test_endpoints.py +@@ -12,7 +12,7 @@ import itertools + + from cassandra.connection import DefaultEndPoint, SniEndPoint, SniEndPointFactory + +-from mock import patch ++from unittest.mock import patch + + + def socket_getaddrinfo(*args): +Index: python-driver-3.29.1/tests/unit/test_metadata.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/test_metadata.py ++++ python-driver-3.29.1/tests/unit/test_metadata.py +@@ -15,7 +15,7 @@ import unittest + + from binascii import unhexlify + import logging +-from mock import Mock ++from unittest.mock import Mock + import os + import timeit + +Index: python-driver-3.29.1/tests/unit/test_policies.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/test_policies.py ++++ python-driver-3.29.1/tests/unit/test_policies.py +@@ -15,7 +15,7 @@ + import unittest + + from itertools import islice, cycle +-from mock import Mock, patch, call ++from unittest.mock import Mock, patch, call + from random import randint + from _thread import LockType + import sys +Index: python-driver-3.29.1/tests/unit/test_protocol.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/test_protocol.py ++++ python-driver-3.29.1/tests/unit/test_protocol.py +@@ -14,7 +14,7 @@ + + import unittest + +-from mock import Mock ++from unittest.mock import Mock + + from cassandra import ProtocolVersion, UnsupportedOperation + from cassandra.protocol import ( +Index: python-driver-3.29.1/tests/unit/test_response_future.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/test_response_future.py ++++ python-driver-3.29.1/tests/unit/test_response_future.py +@@ -17,7 +17,7 @@ import unittest + from collections import deque + from threading import RLock + +-from mock import Mock, MagicMock, ANY ++from unittest.mock import Mock, MagicMock, ANY + + from cassandra import ConsistencyLevel, Unavailable, SchemaTargetType, SchemaChangeType, OperationTimedOut + from cassandra.cluster import Session, ResponseFuture, NoHostAvailable, ProtocolVersion +Index: python-driver-3.29.1/tests/unit/test_resultset.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/test_resultset.py ++++ python-driver-3.29.1/tests/unit/test_resultset.py +@@ -15,7 +15,7 @@ from cassandra.query import named_tuple_ + + import unittest + +-from mock import Mock, PropertyMock, patch ++from unittest.mock import Mock, PropertyMock, patch + + from cassandra.cluster import ResultSet + +Index: python-driver-3.29.1/tests/unit/test_timestamps.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/test_timestamps.py ++++ python-driver-3.29.1/tests/unit/test_timestamps.py +@@ -14,7 +14,7 @@ + + import unittest + +-import mock ++from unittest import mock + + from cassandra import timestamps + from threading import Thread, Lock +Index: python-driver-3.29.1/tests/unit/utils.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/utils.py ++++ python-driver-3.29.1/tests/unit/utils.py +@@ -15,7 +15,7 @@ + from concurrent.futures import Future + from functools import wraps + from cassandra.cluster import Session +-from mock import patch ++from unittest.mock import patch + + + def mock_session_pools(f): +Index: python-driver-3.29.1/tests/unit/test_host_connection_pool.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/test_host_connection_pool.py ++++ python-driver-3.29.1/tests/unit/test_host_connection_pool.py +@@ -14,7 +14,7 @@ + + import unittest + +-from mock import Mock, NonCallableMagicMock ++from unittest.mock import Mock, NonCallableMagicMock + from threading import Thread, Event, Lock + + from cassandra.cluster import Session diff --git a/python-cassandra-driver-test_libevreactor-DependencyException.patch b/python-cassandra-driver-test_libevreactor-DependencyException.patch new file mode 100644 index 0000000..510e614 --- /dev/null +++ b/python-cassandra-driver-test_libevreactor-DependencyException.patch @@ -0,0 +1,13 @@ +Index: python-driver-3.29.1/tests/unit/io/test_libevreactor.py +=================================================================== +--- python-driver-3.29.1.orig/tests/unit/io/test_libevreactor.py ++++ python-driver-3.29.1/tests/unit/io/test_libevreactor.py +@@ -24,7 +24,7 @@ from tests.unit.io.utils import ReactorT + try: + from cassandra.io.libevreactor import _cleanup as libev__cleanup + from cassandra.io.libevreactor import LibevConnection +-except ImportError: ++except: + LibevConnection = None # noqa + + diff --git a/python-cassandra-driver.changes b/python-cassandra-driver.changes new file mode 100644 index 0000000..08ddfa2 --- /dev/null +++ b/python-cassandra-driver.changes @@ -0,0 +1,699 @@ +------------------------------------------------------------------- +Mon Feb 10 11:31:49 UTC 2025 - John Paul Adrian Glaubitz + +- Update to 3.29.2 + * 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) +- Drop python-cassandra-driver-no-mock.patch, fixed upstream +- Drop python-cassandra-driver-test_libevreactor-DependencyException.patch, fixed upstream +- Remove C source files from source tree +- Switch package to modern Python Stack on SLE-15 + * Use Python 3.11 on SLE-15 by default + * Drop support for older Python versions +- Switch build system from setuptools to pyproject.toml + * Add python-pip and python-wheel to BuildRequires + * Replace %python_build with %pyproject_wheel + * Replace %python_install with %pyproject_install + * Update name for dist directory in %files section + +------------------------------------------------------------------- +Mon Apr 15 09:17:49 UTC 2024 - pgajdos@suse.com + +- added patches + if CASS_DRIVER_NO_EXTENSIONS=1, import throws DependencyException + + python-cassandra-driver-test_libevreactor-DependencyException.patch + +------------------------------------------------------------------- +Wed Apr 10 14:32:27 UTC 2024 - Markéta Machová + +- Update to 3.29.1 + * Add support for Python 3.9 through 3.12, drop support for 3.7 + * Removal of dependency on six module + * Raise explicit exception when deserializing a vector with a + subtype that isn’t a constant size +- Rebased python-cassandra-driver-no-mock.patch + +------------------------------------------------------------------- +Thu Feb 8 09:38:13 UTC 2024 - Markéta Machová + +- Fix tests on Python 3.12 + +------------------------------------------------------------------- +Sun Jun 25 19:02:15 UTC 2023 - Dirk Müller + +- update to 3.28.0: + * Add support for vector type (PYTHON-1352) + * Cryptography module is now an optional dependency + * 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) + * Add support for client-side encryption (PYTHON-1341) + +------------------------------------------------------------------- +Tue Jun 6 11:39:40 UTC 2023 - pgajdos@suse.com + +- python-scales is not required + +------------------------------------------------------------------- +Wed Mar 22 08:48:30 UTC 2023 - Daniel Garcia + +- Update to 3.26.0 + Features + -------- + * Add support for execution profiles in execute_concurrent (PR 1122) + Bug Fixes + --------- + * 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) + Others + ------ + * 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 (PYTTHON-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) + Deprecations + ------------ + * This release removes support for Python 2.7.x as well as Python 3.5.x and 3.6.x + +------------------------------------------------------------------- +Thu May 19 07:49:12 UTC 2022 - pgajdos@suse.com + +- run test_host_connection_pool +- modified patches + % python-cassandra-driver-no-mock.patch (refreshed) + +------------------------------------------------------------------- +Tue May 17 10:56:36 UTC 2022 - pgajdos@suse.com + +- version update to 3.25.0 + 3.25.0 + ====== + Features + -------- + * 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) + Bug Fixes + --------- + * Asyncore race condition cause logging exception on shutdown (PYTHON-1266) + * Update list of reserved keywords (PYTHON-1269) + Others + ------ + * Drop Python 3.4 support (PYTHON-1220) + * Update security documentation and examples to use PROTOCOL_TLS (PYTHON-1264) + 3.24.0 + ====== + Features + -------- + * 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) + Bug Fixes + --------- + * 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) + Others + ------ + * 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) + - added patches + fix https://datastax-oss.atlassian.net/browse/PYTHON-1299 + + python-cassandra-driver-no-mock.patch + +------------------------------------------------------------------- +Mon Jan 17 09:58:20 UTC 2022 - Dirk Müller + +- remove blist dependency + +------------------------------------------------------------------- +Fri Mar 5 13:19:07 UTC 2021 - Matej Cepl + +- Switch off failing tests test_nts_token_performance and + test_connection_initialization + (https://datastax-oss.atlassian.net/browse/PYTHON-1273, bsc#1182585). + +------------------------------------------------------------------- +Wed Jun 10 10:41:08 UTC 2020 - Marketa Calabkova + +- replace nose + +------------------------------------------------------------------- +Wed Apr 22 10:05:27 UTC 2020 - Tomáš Chvátal + +- Fix build without python2 + +------------------------------------------------------------------- +Tue Apr 7 09:05:31 UTC 2020 - Dirk Mueller + +- update to 3.23.0: + * Transient Replication Support (PYTHON-1207) + * Support system.peers_v2 and port discovery for C* 4.0 (PYTHON-700) + * Asyncore logging exception on shutdown (PYTHON-1228) + +------------------------------------------------------------------- +Tue Apr 7 07:10:02 UTC 2020 - Tomáš Chvátal + +- Fix 32bit build by skipping the tests overflowing there + +------------------------------------------------------------------- +Mon Mar 30 12:28:15 UTC 2020 - Marketa Calabkova + +- update to version 3.22.0 + * 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) + * 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) + * 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) + * Insights integration (PYTHON-1047) + * Graph execution profiles should preserve their graph_source when graph_options is overridden (PYTHON-1021) + * 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) + * Add Graph DurationType support (PYTHON-607) + * Support DSE DateRange type (PYTHON-668) + * 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) + * 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) + * Correctly handle other types in geo type equality (PYTHON-508) + * Add an abstract GraphStatement to handle different graph statements (PYTHON-789) + +------------------------------------------------------------------- +Fri Nov 22 06:07:48 UTC 2019 - Arun Persaud + +- update to version 3.20.2: + * Fix import error for old python installation without SSLContext + (PYTHON-1183) + +------------------------------------------------------------------- +Sat Nov 9 14:43:45 UTC 2019 - Arun Persaud + +- update to version 3.20.1: + * Bug Fixes + + ValueError: too many values to unpack (expected 2)" when there + are two dashes in server version number (PYTHON-1172) + +- changes from version 3.20.0: + * Features + + DataStax Apollo Support (PYTHON-1074) + + Use 4.0 schema parser in 4 alpha and snapshot builds + (PYTHON-1158) + * Bug Fixes + + Connection setup methods prevent using ExecutionProfile in + cqlengine (PYTHON-1009) + + Driver deadlock if all connections dropped by heartbeat whilst + request in flight and request times out (PYTHON-1044) + + Exception when use pk__token__gt filter In python 3.7 + (PYTHON-1121) + +------------------------------------------------------------------- +Sat Aug 31 04:36:00 UTC 2019 - Arun Persaud + +- update to version 3.19.0: + * Features + + Add Python 3.7 support (PYTHON-1016) + + Future-proof Mapping imports (PYTHON-1023) + + Include param values in cqlengine logging (PYTHON-1105) + + NTS Token Replica Map Generation is slow (PYTHON-622) + * Bug Fixes + + as_cql_query UDF/UDA parameters incorrectly includes "frozen" if + arguments are collections (PYTHON-1031) + + cqlengine does not currently support combining TTL and TIMESTAMP + on INSERT (PYTHON-1093) + + Fix incorrect metadata for compact counter tables (PYTHON-1100) + + Call ConnectionException with correct kwargs (PYTHON-1117) + + Can't connect to clusters built from source because version + parsing doesn't handle 'x.y-SNAPSHOT' (PYTHON-1118) + + Discovered node doesn´t honor the configured Cluster port on + connection (PYTHON-1127) + * Other + + Remove invalid warning in set_session when we initialize a + default connection (PYTHON-1104) + + Set the proper default ExecutionProfile.row_factory value + (PYTHON-1119) + +------------------------------------------------------------------- +Sat Jun 8 23:08:18 UTC 2019 - Arun Persaud + +- update to version 3.18.0: + * Features + + Abstract Host Connection information (PYTHON-1079) + + Improve version parsing to support a non-integer 4th component + (PYTHON-1091) + + Expose on_request_error method in the RetryPolicy (PYTHON-1064) + + Add jitter to ExponentialReconnectionPolicy (PYTHON-1065) + * Bug Fixes + + Fix error when preparing queries with beta protocol v5 + (PYTHON-1081) + + Accept legacy empty strings as column names (PYTHON-1082) + + Let util.SortedSet handle uncomparable elements (PYTHON-1087) + +------------------------------------------------------------------- +Sat May 4 19:56:15 UTC 2019 - Arun Persaud + +- update to version 3.17.1: + * Bug Fixes + + Socket errors EAGAIN/EWOULDBLOCK are not handled properly and + cause timeouts (PYTHON-1089) + +------------------------------------------------------------------- +Sat Mar 2 04:47:54 UTC 2019 - Arun Persaud + +- specfile: + * update copyright year + * be more specific in %files section + +- update to version 3.17.0: + * Features + + Send driver name and version in startup message (PYTHON-1068) + + Add Cluster ssl_context option to enable SSL (PYTHON-995) + + Allow encrypted private keys for 2-way SSL cluster connections + (PYTHON-995) + + Introduce new method ConsistencyLevel.is_serial (PYTHON-1067) + + Add Session.get_execution_profile (PYTHON-932) + + Add host kwarg to Session.execute/execute_async APIs to send a + query to a specific node (PYTHON-993) + * Bug Fixes + + NoHostAvailable when all hosts are up and connectable + (PYTHON-891) + + Serial consistency level is not used (PYTHON-1007) + * Other + + Fail faster on incorrect lz4 import (PYTHON-1042) + + Bump Cython dependency version to 0.29 (PYTHON-1036) + + Expand Driver SSL Documentation (PYTHON-740) + * Deprecations + + Using Cluster.ssl_options to enable SSL is deprecated and will + be removed in the next major release, use ssl_context. + + DowngradingConsistencyRetryPolicy is deprecated and will be + removed in the next major release. (PYTHON-937) + +------------------------------------------------------------------- +Sat Dec 1 18:26:17 UTC 2018 - Arun Persaud + +- update to version 3.16.0: + * Bug Fixes + + Improve and fix socket error-catching code in nonblocking-socket + reactors (PYTHON-1024) + + Non-ASCII characters in schema break CQL string generation + (PYTHON-1008) + + Fix OSS driver's virtual table support against DSE 6.0.X and + future server releases (PYTHON-1020) + + ResultSet.one() fails if the row_factory is using a generator + (PYTHON-1026) + + Log profile name on attempt to create existing profile + (PYTHON-944) + + Cluster instantiation fails if any contact points' hostname + resolution fails (PYTHON-895) + * Other + + Fix tests when RF is not maintained if we decomission a node + (PYTHON-1017) + + Fix wrong use of ResultSet indexing (PYTHON-1015) + +------------------------------------------------------------------- +Thu Nov 1 09:24:07 UTC 2018 - Tomáš Chvátal + +- Update to 3.15.1: + * No updatream changelog +- Switch to github tarball as the pypi one lacks tests now + +------------------------------------------------------------------- +Thu Sep 20 12:03:19 UTC 2018 - Tomáš Chvátal + +- Add gevent to test dependencies +- Add scales to dependencies +- Add twisted to dependencies + +------------------------------------------------------------------- +Mon Sep 3 12:05:19 UTC 2018 - Tomáš Chvátal + +- Enable tests + +------------------------------------------------------------------- +Sat Sep 1 18:29:47 UTC 2018 - arun@gmx.de + +- update to version 3.15.0: + * Features + + Parse Virtual Keyspace Metadata (PYTHON-992) + * Bug Fixes + + Tokenmap.get_replicas returns the wrong value if token coincides + with the end of the range (PYTHON-978) + + Python Driver fails with "more than 255 arguments" python + exception when > 255 columns specified in query response + (PYTHON-893) + + Hang in + integration.standard.test_cluster.ClusterTests.test_set_keyspace_twice + (PYTHON-998) + + Asyncore reactors should use a global variable instead of a + class variable for the event loop (PYTHON-697) + * Other + + Use global variable for libev loops so it can be subclassed + (PYTHON-973) + + Update SchemaParser for V4 (PYTHON-1006) + + Bump Cython dependency version to 0.28 (PYTHON-1012) + +------------------------------------------------------------------- +Wed Jun 13 08:29:00 UTC 2018 - jengelh@inai.de + +- Trim marketing wording from description. + +------------------------------------------------------------------- +Sun May 6 05:43:14 UTC 2018 - arun@gmx.de + +- update to version 3.14.0: + * Features + + Add one() function to the ResultSet API (PYTHON-947) + + Create an utility function to fetch concurrently many keys from + the same replica (PYTHON-647) + + Allow filter queries with fields that have an index managed + outside of cqlengine (PYTHON-966) + + Twisted SSL Support (PYTHON-343) + + Support IS NOT NULL operator in cqlengine (PYTHON-968) + * Other + + Fix Broken Links in Docs (PYTHON-916) + + Reevaluate MONKEY_PATCH_LOOP in test codebase (PYTHON-903) + + Remove CASS_SERVER_VERSION and replace it for CASSANDRA_VERSION + in tests (PYTHON-910) + + Refactor CASSANDRA_VERSION to a some kind of version object + (PYTHON-915) + + Log warning when driver configures an authenticator, but server + does not request authentication (PYTHON-940) + + Warn users when using the deprecated + Session.default_consistency_level (PYTHON-953) + + Add DSE smoke test to OSS driver tests (PYTHON-894) + + Document long compilation times and workarounds (PYTHON-868) + + Improve error for batch WriteTimeouts (PYTHON-941) + + Deprecate ResultSet indexing (PYTHON-945) + +------------------------------------------------------------------- +Sun Feb 4 00:31:30 UTC 2018 - arun@gmx.de + +- specfile: + * update copyright year + +- update to version 3.13.0: + * Features + + cqlengine: LIKE filter operator (PYTHON-512) + + Support cassandra.query.BatchType with cqlengine BatchQuery + (PYTHON-888) + * Bug Fixes + + AttributeError: 'NoneType' object has no attribute 'add_timer' + (PYTHON-862) + + Support retry_policy in PreparedStatement (PYTHON-861) + + __del__ method in Session is throwing an exception (PYTHON-813) + + LZ4 import issue with recent versions (PYTHON-897) + + ResponseFuture._connection can be None when returning request_id + (PYTHON-853) + * Other + + cqlengine: avoid warning when unregistering connection on + shutdown (PYTHON-865) + + Fix DeprecationWarning of log.warn (PYTHON-846) + + Fix example_mapper.py for python3 (PYTHON-860) + + Possible deadlock on cassandra.concurrent.execute_concurrent + (PYTHON-768) + + Add some known deprecated warnings for 4.x (PYTHON-877) + + Remove copyright dates from copyright notices (PYTHON-863) + + Remove "Experimental" tag from execution profiles documentation + (PYTHON-840) + + request_timer metrics descriptions are slightly incorrect + (PYTHON-885) + + Remove "Experimental" tag from cqlengine connections + documentation (PYTHON-892) + + Set in documentation default consistency for operations is + LOCAL_ONE (PYTHON-901) + +------------------------------------------------------------------- +Tue Nov 7 23:21:21 UTC 2017 - arun@gmx.de + +- update to version 3.12.0: + * Features + + Send keyspace in QUERY, PREPARE, and BATCH messages (PYTHON-678) + + Add IPv4Address/IPv6Address support for inet types (PYTHON-751) + + WriteType.CDC and VIEW missing (PYTHON-794) + + Warn on Cluster init if contact points are specified but LBP + isn't (legacy mode) (PYTHON-812) + + Warn on Cluster init if contact points are specified but LBP + isn't (exection profile mode) (PYTHON-838) + + Include hash of result set metadata in prepared stmt id + (PYTHON-808) + + Add NO_COMPACT startup option (PYTHON-839) + + Add new exception type for CDC (PYTHON-837) + * Bug Fixes + + Both _set_final_exception/result called for the same + ResponseFuture (PYTHON-630) + + Use of DCAwareRoundRobinPolicy raises NoHostAvailable exception + (PYTHON-781) + + Not create two sessions by default in CQLEngine (PYTHON-814) + + Bug when subclassing AyncoreConnection (PYTHON-827) + + Error at cleanup when closing the asyncore connections + (PYTHON-829) + + Fix sites where sessions can change during iteration + (PYTHON-793) + + cqlengine: allow min_length=0 for Ascii and Text column types + (PYTHON-735) + + Rare exception when "sys.exit(0)" after query timeouts + (PYTHON-752) + + Dont set the session keyspace when preparing statements + (PYTHON-843) + + Use of DCAwareRoundRobinPolicy raises NoHostAvailable exception + (PYTHON-781) + * Other + + Remove DeprecationWarning when using WhiteListRoundRobinPolicy + (PYTHON-810) + + Bump Cython dependency version to 0.27 (PYTHON-833) + +------------------------------------------------------------------- +Wed Oct 4 17:30:26 UTC 2017 - arun@gmx.de + +- specfile: + * fixed source url + * updated description + +------------------------------------------------------------------- +Tue Oct 3 15:46:20 UTC 2017 - arun@gmx.de + +- update to version 3.11.0: + * Features + + Add idle_heartbeat_timeout cluster option to tune how long to + wait for heartbeat responses. (PYTHON-762) + + Add HostFilterPolicy (PYTHON-761) + * Bug Fixes + + is_idempotent flag is not propagated from PreparedStatement to + BoundStatement (PYTHON-736) + + Fix asyncore hang on exit (PYTHON-767) + + Driver takes several minutes to remove a bad host from session + (PYTHON-762) + + Installation doesn't always fall back to no cython in Windows + (PYTHON-763) + + Avoid to replace a connection that is supposed to shutdown + (PYTHON-772) + + request_ids may not be returned to the pool (PYTHON-739) + + Fix murmur3 on big-endian systems (PYTHON-653) + + Ensure unused connections are closed if a Session is deleted by + the GC (PYTHON-774) + + Fix .values_list by using db names internally (cqlengine) + (PYTHON-785) + * Other + + Bump Cython dependency version to 0.25.2 (PYTHON-754) + + Fix DeprecationWarning when using lz4 (PYTHON-769) + + Deprecate WhiteListRoundRobinPolicy (PYTHON-759) + + Improve upgrade guide for materializing pages (PYTHON-464) + + Documentation for time/date specifies timestamp inupt as + microseconds (PYTHON-717) + + Point to DSA Slack, not IRC, in docs index + +- changes from version 3.10.0: + * Features + + Add Duration type to cqlengine (PYTHON-750) + + Community PR review: Raise error on primary key update only if + its value changed (PYTHON-705) + + get_query_trace() contract is ambiguous (PYTHON-196) + * Bug Fixes + + Queries using speculative execution policy timeout prematurely + (PYTHON-755) + + Fix map where results are not consumed (PYTHON-749) + + Driver fails to encode Duration's with large values (PYTHON-747) + + UDT values are not updated correctly in CQLEngine (PYTHON-743) + + UDT types are not validated in CQLEngine (PYTHON-742) + + to_python is not implemented for types columns.Type and + columns.Date in CQLEngine (PYTHON-741) + + Clients spin infinitely trying to connect to a host that is + drained (PYTHON-734) + + Resulset.get_query_trace returns empty trace sometimes + (PYTHON-730) + + Memory grows and doesn't get removed (PYTHON-720) + + Fix RuntimeError caused by change dict size during iteration + (PYTHON-708) + + fix ExponentialReconnectionPolicy may throw OverflowError + problem (PYTHON-707) + + Avoid using nonexistent prepared statement in ResponseFuture + (PYTHON-706) + * Other + + Update README (PYTHON-746) + + Test python versions 3.5 and 3.6 (PYTHON-737) + + Docs Warning About Prepare "select *" (PYTHON-626) + + Increase Coverage in CqlEngine Test Suite (PYTHON-505) + + Example SSL connection code does not verify server certificates + (PYTHON-469) + +- changes from version 3.9.0: + * Features + + cqlengine: remove elements by key from a map (PYTHON-688) + * Bug Fixes + + improve error handling when connecting to non-existent keyspace + (PYTHON-665) + + Sockets associated with sessions not getting cleaned up on + session.shutdown() (PYTHON-673) + + rare flake on + integration.standard.test_cluster.ClusterTests.test_clone_shared_lbp + (PYTHON-727) + + MontonicTimestampGenerator.__init__ ignores class defaults + (PYTHON-728) + + race where callback or errback for request may not be called + (PYTHON-733) + + cqlengine: model.update() should not update columns with a + default value that hasn't changed (PYTHON-657) + + cqlengine: field value manager's explicit flag is True when + queried back from cassandra (PYTHON-719) + * Other + + Connection not closed in example_mapper (PYTHON-723) + + Remove mention of pre-2.0 C* versions from OSS 3.0+ docs + (PYTHON-710) + +- changes from version 3.8.1: + * Bug Fixes + + implement __le__/__ge__/__ne__ on some custom types (PYTHON-714) + + Fix bug in eventlet and gevent reactors that could cause hangs + (PYTHON-721) + + Fix DecimalType regression (PYTHON-724) + +- changes from version 3.8.0: + * Features + + Quote index names in metadata CQL generation (PYTHON-616) + + On column deserialization failure, keep error message consistent + between python and cython (PYTHON-631) + + TokenAwarePolicy always sends requests to the same replica for a + given key (PYTHON-643) + + Added cql types to result set (PYTHON-648) + + Add __len__ to BatchStatement (PYTHON-650) + + Duration Type for Cassandra (PYTHON-655) + + Send flags with PREPARE message in v5 (PYTHON-684) + * Bug Fixes + + Potential Timing issue if application exits prior to session + pool initialization (PYTHON-636) + + "Host X.X.X.X has been marked down" without any exceptions + (PYTHON-640) + + NoHostAvailable or OperationTimedOut when using + execute_concurrent with a generator that inserts into more than + one table (PYTHON-642) + + ResponseFuture creates Timers and don't cancel them even when + result is received which leads to memory leaks (PYTHON-644) + + Driver cannot connect to Cassandra version > 3 (PYTHON-646) + + Unable to import model using UserType without setuping + connection since 3.7 (PYTHON-649) + + Don't prepare queries on ignored hosts on_up (PYTHON-669) + + Sockets associated with sessions not getting cleaned up on + session.shutdown() (PYTHON-673) + + Make client timestamps strictly monotonic (PYTHON-676) + + cassandra.cqlengine.connection.register_connection broken when + hosts=None (PYTHON-692) + * Other + + Create a cqlengine doc section explaining None semantics + (PYTHON-623) + + Resolve warnings in documentation generation (PYTHON-645) + + Cython dependency (PYTHON-686) + + Drop Support for Python 2.6 (PYTHON-690) + +------------------------------------------------------------------- +Tue Oct 3 01:50:58 UTC 2017 - arun@gmx.de + +- update to single spec + +- commented out test-requirements, since tests are not run at the + moment + +------------------------------------------------------------------- +Mon Jan 16 13:29:01 UTC 2017 - dmueller@suse.com + +- Initial package (3.7.1) + diff --git a/python-cassandra-driver.spec b/python-cassandra-driver.spec new file mode 100644 index 0000000..9fcae43 --- /dev/null +++ b/python-cassandra-driver.spec @@ -0,0 +1,108 @@ +# +# spec file for package python-cassandra-driver +# +# Copyright (c) 2025 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?sle15_python_module_pythons} +Name: python-cassandra-driver +Version: 3.29.2 +Release: 0 +Summary: Python driver for Cassandra +License: Apache-2.0 +URL: https://github.com/datastax/python-driver +Source: https://github.com/datastax/python-driver/archive/%{version}.tar.gz +BuildRequires: %{python_module Cython} +BuildRequires: %{python_module PyYAML} +BuildRequires: %{python_module Twisted} +BuildRequires: %{python_module devel} +BuildRequires: %{python_module eventlet} +BuildRequires: %{python_module geomet >= 0.1} +BuildRequires: %{python_module gevent} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module pure-sasl} +BuildRequires: %{python_module pyasyncore if %python-base >= 3.12} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module pytz} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module sure} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: libev-devel +BuildRequires: python-rpm-macros +Requires: python-Cython +Requires: python-geomet >= 0.1 +Recommends: python-Twisted +Recommends: python-eventlet +Recommends: python-gevent +%if 0%{?python_version_nodots} > 311 +Requires: python-pyasyncore +%endif +%if %{with python2} +BuildRequires: python2-futures +%endif +%ifpython2 +Requires: python2-futures +%endif +%python_subpackages + +%description +A tunable Python client library for Apache Cassandra (1.2+) and +DataStax Enterprise (3.1+) using exclusively Cassandra's binary +protocol and Cassandra Query Language v3. +A list of features may be found at https://github.com/datastax/python-driver#features . + +%prep +%autosetup -p1 -n python-driver-%{version} +# do not run integration tests +rm -rf tests/integration +rm -rf tests/stress_tests +# do not run cython tests +rm -rf tests/unit/cython +# fail on 32bit as it overflows +rm -f tests/unit/test_types.py +# fix hardcoded cython dep +sed -i -e 's:Cython>=0.20,!=0.25,<0.29:Cython:g' setup.py +# fix tests on Python 3.12 +sed -i 's/assertRaisesRegexp/assertRaisesRegex/' tests/unit/test_response_future.py +# remove C sources +rm -f cassandra/cmurmur3.c cassandra/io/libevwrapper.c cassandra/numpyFlags.h + +%build +export CFLAGS="%{optflags}" +export CASS_DRIVER_NO_EXTENSIONS=1 +%pyproject_wheel + +%install +export CASS_DRIVER_NO_EXTENSIONS=1 +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitearch} + +%check +# https://datastax-oss.atlassian.net/browse/PYTHON-1273 +%pytest -k 'not (test_connection_initialization or test_nts_token_performance or test_host_connection_pool)' +# https://datastax-oss.atlassian.net/browse/PYTHON-1300 +pytest tests/unit/test_host_connection_pool.py -k "HostConnectionTests" +pytest tests/unit/test_host_connection_pool.py -k "HostConnectionPoolTests" + +%files %{python_files} +%license LICENSE +%doc README.rst +%dir %{python_sitearch}/cassandra +%dir %{python_sitearch}/cassandra_driver-%{version}.dist-info +%{python_sitearch}/cassandra/* +%{python_sitearch}/cassandra_driver-%{version}.dist-info/* + +%changelog