Skip to content

Commit c32dfcb

Browse files
authored
Merge branch 'master' into master
2 parents d0a7d5f + 06835c9 commit c32dfcb

205 files changed

Lines changed: 3775 additions & 941 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.travis.yml

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
language: python
2-
python: 2.7
2+
python:
3+
- "2.7"
4+
- "3.3"
5+
- "3.4"
6+
- "3.5"
7+
- "3.6"
8+
- "pypy-5.4.1"
9+
310
sudo: false
411
env:
5-
- TOX_ENV=py26 CASS_VER=21 CASS_DRIVER_NO_CYTHON=1
6-
- TOX_ENV=py26 CASS_VER=21
7-
- TOX_ENV=py27 CASS_VER=12 CASS_DRIVER_NO_CYTHON=1
8-
- TOX_ENV=py27 CASS_VER=20 CASS_DRIVER_NO_CYTHON=1
9-
- TOX_ENV=py27 CASS_VER=21 CASS_DRIVER_NO_CYTHON=1
10-
- TOX_ENV=py27 CASS_VER=21
11-
- TOX_ENV=py33 CASS_VER=21 CASS_DRIVER_NO_CYTHON=1
12-
- TOX_ENV=py33 CASS_VER=21
13-
- TOX_ENV=py34 CASS_VER=21 CASS_DRIVER_NO_CYTHON=1
14-
- TOX_ENV=py34 CASS_VER=21
15-
- TOX_ENV=pypy CASS_VER=21 CASS_DRIVER_NO_CYTHON=1
12+
- CASS_DRIVER_NO_CYTHON=1
13+
-
1614

1715
addons:
1816
apt:
@@ -24,7 +22,8 @@ addons:
2422
- libev-dev
2523

2624
install:
27-
- pip install tox
25+
- pip install tox-travis
2826

2927
script:
30-
- tox -e $TOX_ENV
28+
- tox
29+
- tox -e patched_loops

CHANGELOG.rst

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,72 @@
1+
3.9.0
2+
=====
3+
4+
Features
5+
--------
6+
* cqlengine: remove elements by key from a map (PYTHON-688)
7+
8+
Bug Fixes
9+
---------
10+
* improve error handling when connecting to non-existent keyspace (PYTHON-665)
11+
* Sockets associated with sessions not getting cleaned up on session.shutdown() (PYTHON-673)
12+
* rare flake on integration.standard.test_cluster.ClusterTests.test_clone_shared_lbp (PYTHON-727)
13+
* MontonicTimestampGenerator.__init__ ignores class defaults (PYTHON-728)
14+
* race where callback or errback for request may not be called (PYTHON-733)
15+
* cqlengine: model.update() should not update columns with a default value that hasn't changed (PYTHON-657)
16+
* cqlengine: field value manager's explicit flag is True when queried back from cassandra (PYTHON-719)
17+
18+
Other
19+
-----
20+
* Connection not closed in example_mapper (PYTHON-723)
21+
* Remove mention of pre-2.0 C* versions from OSS 3.0+ docs (PYTHON-710)
22+
23+
3.8.1
24+
=====
25+
March 16, 2017
26+
27+
Bug Fixes
28+
---------
29+
30+
* implement __le__/__ge__/__ne__ on some custom types (PYTHON-714)
31+
* Fix bug in eventlet and gevent reactors that could cause hangs (PYTHON-721)
32+
* Fix DecimalType regression (PYTHON-724)
33+
34+
3.8.0
35+
=====
36+
37+
Features
38+
--------
39+
40+
* Quote index names in metadata CQL generation (PYTHON-616)
41+
* On column deserialization failure, keep error message consistent between python and cython (PYTHON-631)
42+
* TokenAwarePolicy always sends requests to the same replica for a given key (PYTHON-643)
43+
* Added cql types to result set (PYTHON-648)
44+
* Add __len__ to BatchStatement (PYTHON-650)
45+
* Duration Type for Cassandra (PYTHON-655)
46+
* Send flags with PREPARE message in v5 (PYTHON-684)
47+
48+
Bug Fixes
49+
---------
50+
51+
* Potential Timing issue if application exits prior to session pool initialization (PYTHON-636)
52+
* "Host X.X.X.X has been marked down" without any exceptions (PYTHON-640)
53+
* NoHostAvailable or OperationTimedOut when using execute_concurrent with a generator that inserts into more than one table (PYTHON-642)
54+
* ResponseFuture creates Timers and don't cancel them even when result is received which leads to memory leaks (PYTHON-644)
55+
* Driver cannot connect to Cassandra version > 3 (PYTHON-646)
56+
* Unable to import model using UserType without setuping connection since 3.7 (PYTHON-649)
57+
* Don't prepare queries on ignored hosts on_up (PYTHON-669)
58+
* Sockets associated with sessions not getting cleaned up on session.shutdown() (PYTHON-673)
59+
* Make client timestamps strictly monotonic (PYTHON-676)
60+
* cassandra.cqlengine.connection.register_connection broken when hosts=None (PYTHON-692)
61+
62+
Other
63+
-----
64+
65+
* Create a cqlengine doc section explaining None semantics (PYTHON-623)
66+
* Resolve warnings in documentation generation (PYTHON-645)
67+
* Cython dependency (PYTHON-686)
68+
* Drop Support for Python 2.6 (PYTHON-690)
69+
170
3.7.1
271
=====
372
October 26, 2016

CONTRIBUTING.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ good bug reports. They will not be repeated in detail here, but in general, the
1717

1818
Pull Requests
1919
-------------
20-
If you're able to fix a bug yourself, you can [fork the repository](https://help.github.com/articles/fork-a-repo/) and submit a [Pull Request](https://help.github.com/articles/using-pull-requests/) with the fix.
20+
If you're able to fix a bug yourself, you can `fork the repository <https://help.github.com/articles/fork-a-repo/>`_ and submit a `Pull Request <https://help.github.com/articles/using-pull-requests/>`_ with the fix.
2121
Please include tests demonstrating the issue and fix. For examples of how to run the tests, consult the `dev README <https://github.com/datastax/python-driver/blob/master/README-dev.rst#running-the-tests>`_.
2222

2323
Contribution License Agreement
2424
------------------------------
25-
To protect the community, all contributors are required to [sign the DataStax Contribution License Agreement](http://cla.datastax.com/). The process is completely electronic and should only take a few minutes.
25+
To protect the community, all contributors are required to `sign the DataStax Contribution License Agreement <http://cla.datastax.com/>`_. The process is completely electronic and should only take a few minutes.
2626

2727
Design and Implementation Guidelines
2828
------------------------------------

README-dev.rst

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,12 @@ You can also specify a cassandra directory (to test unreleased versions)::
102102

103103
CASSANDRA_DIR=/home/thobbs/cassandra python setup.py nosetests -w tests/integration/standard
104104

105+
Specifying the usage of an already running Cassandra cluster
106+
----------------------------------------------------
107+
The test will start the appropriate Cassandra clusters when necessary but if you don't want this to happen because a Cassandra cluster is already running the flag ``USE_CASS_EXTERNAL`` can be used, for example:
108+
109+
USE_CASS_EXTERNAL=1 python setup.py nosetests -w tests/integration/standard
110+
105111
Specify a Protocol Version for Tests
106112
------------------------------------
107113
The protocol version defaults to 1 for cassandra 1.2 and 2 otherwise. You can explicitly set
@@ -111,7 +117,7 @@ it with the ``PROTOCOL_VERSION`` environment variable::
111117

112118
Testing Multiple Python Versions
113119
--------------------------------
114-
If you want to test all of python 2.6, 2.7, and pypy, use tox (this is what
120+
If you want to test all of python 2.7, 3.3, 3.4 and pypy, use tox (this is what
115121
TravisCI runs)::
116122

117123
tox
@@ -126,6 +132,10 @@ and change ``tests/unit/`` to ``tests/``.
126132

127133
Running the Benchmarks
128134
======================
135+
There needs to be a version of cassandra running locally so before running the benchmarks, if ccm is installed:
136+
137+
ccm create benchmark_cluster -v 3.0.1 -n 1 -s
138+
129139
To run the benchmarks, pick one of the files under the ``benchmarks/`` dir and run it::
130140

131141
python benchmarks/future_batches.py

README.rst

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ DataStax Python Driver for Apache Cassandra
44
.. image:: https://travis-ci.org/datastax/python-driver.png?branch=master
55
:target: https://travis-ci.org/datastax/python-driver
66

7-
A modern, `feature-rich <https://github.com/datastax/python-driver#features>`_ and highly-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.
7+
A modern, `feature-rich <https://github.com/datastax/python-driver#features>`_ and highly-tunable Python client library for Apache Cassandra (2.1+) using exclusively Cassandra's binary protocol and Cassandra Query Language v3.
88

9-
The driver supports Python 2.6, 2.7, 3.3, and 3.4.
9+
The driver supports Python 2.7, 3.3, 3.4, 3.5, and 3.6.
10+
11+
If you require compatibility with DataStax Enterprise, use the `DataStax Enterprise Python Driver <http://docs.datastax.com/en/developer/python-dse-driver/>`_.
1012

1113
Feedback Requested
1214
------------------
@@ -63,16 +65,13 @@ If you would like to contribute, please feel free to open a pull request.
6365

6466
Getting Help
6567
------------
66-
Your two best options for getting help with the driver are the
68+
Your best options for getting help with the driver are the
6769
`mailing list <https://groups.google.com/a/lists.datastax.com/forum/#!forum/python-driver-user>`_
68-
and the IRC channel.
69-
70-
For IRC, use the #datastax-drivers channel on irc.freenode.net. If you don't have an IRC client,
71-
you can use `freenode's web-based client <http://webchat.freenode.net/?channels=#datastax-drivers>`_.
70+
and the ``#datastax-drivers`` channel in the `DataStax Academy Slack <https://academy.datastax.com/slack>`_.
7271

7372
License
7473
-------
75-
Copyright 2013-2016 DataStax
74+
Copyright 2013-2017 DataStax
7675

7776
Licensed under the Apache License, Version 2.0 (the "License");
7877
you may not use this file except in compliance with the License.

appveyor/run_test.ps1

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,13 @@ python -c "import platform; print(platform.architecture())"
1212

1313
$wc = New-Object 'System.Net.WebClient'
1414
nosetests -s -v --with-ignore-docstrings --with-xunit --xunit-file=unit_results.xml .\tests\unit
15-
echo "uploading unit results"
16-
$wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\unit_results.xml))
1715

18-
if($env:ci_type -eq 'standard' -Or $env:ci_type -eq 'long'){
19-
echo "Running CQLEngine integration tests"
20-
nosetests -s -v --with-ignore-docstrings --with-xunit --xunit-file=cqlengine_results.xml .\tests\integration\cqlengine
21-
$wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\cqlengine_results.xml))
22-
echo "uploading CQLEngine test results"
16+
$env:MONKEY_PATCH_LOOP=1
17+
nosetests -s -v --with-ignore-docstrings --with-xunit --xunit-file=unit_results.xml .\tests\unit\io\test_geventreactor.py
18+
nosetests -s -v --with-ignore-docstrings --with-xunit --xunit-file=unit_results.xml .\tests\unit\io\test_eventletreactor.py
19+
Remove-Item $env:MONKEY_PATCH_LOOP
2320

24-
echo "Running standard integration tests"
25-
nosetests -s -v --with-ignore-docstrings --with-xunit --xunit-file=standard_results.xml .\tests\integration\standard
26-
$wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\standard_results.xml))
27-
echo "uploading standard integration test results"
28-
}
21+
echo "uploading unit results"
22+
$wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\unit_results.xml))
2923

30-
if($env:ci_type -eq 'long'){
31-
nosetests -s -v --with-ignore-docstrings --with-xunit --xunit-file=cqlengine_results.xml .\tests\integration\cqlengine
32-
$wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\cqlengine_results.xml))
33-
echo "uploading standard integration test results"
34-
}
3524
exit 0

benchmarks/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2013-2016 DataStax, Inc.
1+
# Copyright 2013-2017 DataStax, Inc.
22
#
33
# Licensed under the Apache License, Version 2.0 (the "License");
44
# you may not use this file except in compliance with the License.

benchmarks/callback_full_pipeline.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2013-2016 DataStax, Inc.
1+
# Copyright 2013-2017 DataStax, Inc.
22
#
33
# Licensed under the Apache License, Version 2.0 (the "License");
44
# you may not use this file except in compliance with the License.

benchmarks/future_batches.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2013-2016 DataStax, Inc.
1+
# Copyright 2013-2017 DataStax, Inc.
22
#
33
# Licensed under the Apache License, Version 2.0 (the "License");
44
# you may not use this file except in compliance with the License.

benchmarks/future_full_pipeline.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2013-2016 DataStax, Inc.
1+
# Copyright 2013-2017 DataStax, Inc.
22
#
33
# Licensed under the Apache License, Version 2.0 (the "License");
44
# you may not use this file except in compliance with the License.

0 commit comments

Comments
 (0)