Skip to content

Commit 1a947f8

Browse files
authored
Documentation (and other) updates for 3.29.0 (#1194)
1 parent 8ff0ba0 commit 1a947f8

File tree

12 files changed

+50
-29
lines changed

12 files changed

+50
-29
lines changed

.travis.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
dist: xenial
1+
dist: jammy
22
sudo: false
33

44
language: python
55
python:
6-
- "3.7"
76
- "3.8"
7+
- "3.9"
8+
- "3.10"
89

910
env:
1011
- CASS_DRIVER_NO_CYTHON=1
@@ -13,7 +14,7 @@ addons:
1314
apt:
1415
packages:
1516
- build-essential
16-
- python-dev
17+
- python3-dev
1718
- pypy-dev
1819
- libc-ares-dev
1920
- libev4

CHANGELOG.rst

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1+
3.29.0
2+
======
3+
December 19, 2023
4+
5+
Features
6+
--------
7+
* Add support for Python 3.9 through 3.12, drop support for 3.7 (PYTHON-1283)
8+
* Removal of dependency on six module (PR 1172)
9+
* Raise explicit exception when deserializing a vector with a subtype that isn’t a constant size (PYTHON-1371)
10+
11+
Others
12+
------
13+
* Remove outdated Python pre-3.7 references (PR 1186)
14+
* Remove backup(.bak) files (PR 1185)
15+
* Fix doc typo in add_callbacks (PR 1177)
16+
117
3.28.0
218
======
319
June 5, 2023

README-dev.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ Use tee to capture logs and see them on your terminal::
176176

177177
Testing Multiple Python Versions
178178
--------------------------------
179-
If you want to test all of python 3.7, 3.8, and pypy, use tox (this is what
179+
Use tox to test all of Python 3.8 through 3.12 and pypy (this is what
180180
TravisCI runs)::
181181

182182
tox

README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ DataStax Driver for Apache Cassandra
77
A modern, `feature-rich <https://github.com/datastax/python-driver#features>`_ and highly-tunable Python client library for Apache Cassandra (2.1+) and
88
DataStax Enterprise (4.7+) using exclusively Cassandra's binary protocol and Cassandra Query Language v3.
99

10-
The driver supports Python 3.7 and 3.8.
10+
The driver supports Python 3.8 through 3.12.
1111

1212
**Note:** DataStax products do not support big-endian systems.
1313

cassandra/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def emit(self, record):
2222

2323
logging.getLogger('cassandra').addHandler(NullHandler())
2424

25-
__version_info__ = (3, 28, 0)
25+
__version_info__ = (3, 29, 0)
2626
__version__ = '.'.join(map(str, __version_info__))
2727

2828

cassandra/scylla/cloud.py

Whitespace-only changes.

docs/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ A Python client driver for `Apache Cassandra® <http://cassandra.apache.org>`_.
44
This driver works exclusively with the Cassandra Query Language v3 (CQL3)
55
and Cassandra's native protocol. Cassandra 2.1+ is supported, including DSE 4.7+.
66

7-
The driver supports Python 3.7 and 3.8.
7+
The driver supports Python 3.8 through 3.12.
88

99
This driver is open source under the
1010
`Apache v2 License <http://www.apache.org/licenses/LICENSE-2.0.html>`_.

docs/installation.rst

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Installation
33

44
Supported Platforms
55
-------------------
6-
Python 3.7 and 3.8 are supported. Both CPython (the standard Python
6+
Python 3.8 through 3.12 are supported. Both CPython (the standard Python
77
implementation) and `PyPy <http://pypy.org>`_ are supported and tested.
88

99
Linux, OSX, and Windows are supported.
@@ -26,7 +26,7 @@ To check if the installation was successful, you can run::
2626

2727
python -c 'import cassandra; print cassandra.__version__'
2828

29-
It should print something like "3.27.0".
29+
It should print something like "3.29.0".
3030

3131
.. _installation-datastax-graph:
3232

@@ -215,12 +215,15 @@ dependencies, then use install-option::
215215
sudo pip install --install-option="--no-cython"
216216

217217

218+
Supported Event Loops
219+
^^^^^^^^^^^^^^^^^^^^^
220+
For Python versions before 3.12 the driver uses the ``asyncore`` module for its default
221+
event loop. Other event loops such as ``libev``, ``gevent`` and ``eventlet`` are also
222+
available via Python modules or C extensions. Python 3.12 has removed ``asyncore`` entirely
223+
so for this platform one of these other event loops must be used.
224+
218225
libev support
219226
^^^^^^^^^^^^^
220-
The driver currently uses Python's ``asyncore`` module for its default
221-
event loop. For better performance, ``libev`` is also supported through
222-
a C extension.
223-
224227
If you're on Linux, you should be able to install libev
225228
through a package manager. For example, on Debian/Ubuntu::
226229

setup.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,7 @@ def run_setup(extensions):
413413
version=__version__,
414414
description=' DataStax Driver for Apache Cassandra',
415415
long_description=long_description,
416+
long_description_content_type='text/x-rst',
416417
url='http://github.com/datastax/python-driver',
417418
project_urls={
418419
'Documentation': 'https://docs.datastax.com/en/developer/python-driver/latest/',
@@ -438,8 +439,11 @@ def run_setup(extensions):
438439
'Natural Language :: English',
439440
'Operating System :: OS Independent',
440441
'Programming Language :: Python',
441-
'Programming Language :: Python :: 3.7',
442442
'Programming Language :: Python :: 3.8',
443+
'Programming Language :: Python :: 3.9',
444+
'Programming Language :: Python :: 3.10',
445+
'Programming Language :: Python :: 3.11',
446+
'Programming Language :: Python :: 3.12',
443447
'Programming Language :: Python :: Implementation :: CPython',
444448
'Programming Language :: Python :: Implementation :: PyPy',
445449
'Topic :: Software Development :: Libraries :: Python Modules'

test-requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ pytz
77
sure
88
pure-sasl
99
twisted[tls]
10-
gevent>=1.0
10+
gevent
1111
eventlet
1212
cython>=0.20,<0.30
1313
packaging
14-
futurist; python_version >= '3.7'
14+
futurist
1515
asynctest

tests/unit/test_cluster.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import unittest
1515

1616
import logging
17+
import socket
1718

1819
from mock import patch, Mock
1920

@@ -88,8 +89,9 @@ class ClusterTest(unittest.TestCase):
8889

8990
def test_tuple_for_contact_points(self):
9091
cluster = Cluster(contact_points=[('localhost', 9045), ('127.0.0.2', 9046), '127.0.0.3'], port=9999)
92+
localhost_addr = set([addr[0] for addr in [t for (_,_,_,_,t) in socket.getaddrinfo("localhost",80)]])
9193
for cp in cluster.endpoints_resolved:
92-
if cp.address in ('::1', '127.0.0.1'):
94+
if cp.address in localhost_addr:
9395
self.assertEqual(cp.port, 9045)
9496
elif cp.address == '127.0.0.2':
9597
self.assertEqual(cp.port, 9046)

tox.ini

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
11
[tox]
2-
envlist = py{37,38},pypy
2+
envlist = py{38,39,310,311,312},pypy
33

44
[base]
5-
deps = nose
6-
mock<=1.0.1
5+
deps = pynose
6+
mock>1.1
77
packaging
8-
cython
8+
cython>=0.20,<0.30
99
eventlet
10-
twisted <15.5.0
10+
gevent
11+
twisted[tls]
1112
pure-sasl
1213
kerberos
1314
futurist
14-
greenlet>=0.4.14,<0.4.17
15+
lz4
1516
cryptography>=35.0
16-
lz4_dependency = py37,py38: lz4
1717

1818
[testenv]
1919
deps = {[base]deps}
20-
{[base]lz4_dependency}
2120

2221
setenv = LIBEV_EMBED=0
2322
CARES_EMBED=0
@@ -28,8 +27,6 @@ commands = nosetests --verbosity=2 --no-path-adjustment {toxinidir}/tests/unit/
2827

2928
[testenv:gevent_loop]
3029
deps = {[base]deps}
31-
{[base]lz4_dependency}
32-
gevent>=1.4,<1.5
3330

3431
setenv = LIBEV_EMBED=0
3532
CARES_EMBED=0
@@ -41,8 +38,6 @@ commands =
4138

4239
[testenv:eventlet_loop]
4340
deps = {[base]deps}
44-
{[base]lz4_dependency}
45-
gevent>=1.4,<1.5
4641

4742
setenv = LIBEV_EMBED=0
4843
CARES_EMBED=0

0 commit comments

Comments
 (0)