Pycassa

Latest version: v1.11.2

Safety actively analyzes 682361 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 7

1.1.0

This release adds compatibility with Cassandra 0.8, including support for
counters and key_validation_class. This release is backwards-compatible with
Cassandra 0.7, and can support running against a mixed cluster of both
Cassandra 0.7 and 0.8.

Changes related to Cassandra 0.8

* Addition of COUNTER_COLUMN_TYPE to system_manager.
* Several new column family attributes, including key_validation_class,
replicate_on_write, merge_shards_chance, row_cache_provider, and key_alias.
* The new ColumnFamily.add() and ColumnFamily.remove_counter() methods.
* Support for counters in pycassa.batch and ColumnFamily.batch_insert().
* Autopacking of keys based on key_validation_class.

Other Features

* ColumnFamily.multiget() now has a buffer_size parameter
* ColumnFamily.multiget_count() now returns rows in the order that the
keys were passed in, similar to how multiget() behaves. It also uses
the dict_class attribute for the containing class instead of always
using a dict.
* Autpacking behavior is now more transparent and configurable, allowing
the user to get functionality similar to the CLI’s assume command, whereby
items are packed and unpacked as though they were a certain data type,
even if Cassandra does not use a matching comparator type or validation
class. This behavior can be controlled through the following attributes:
- ColumnFamily.column_name_class
- ColumnFamily.super_column_name_class
- ColumnFamily.key_validation_class
- ColumnFamily.default_validation_class
- ColumnFamily.column_validators
* A ColumnFamily may reload its schema to handle changes in validation
classes with ColumnFamily.load_schema().

Bug Fixes

There were several related issues with overlow in ConnectionPool:

* Connection failures when a ConnectionPool was in a state of overflow
would not result in adjustment of the overflow counter, eventually
leading the ConnectionPool to refuse to create new connections.
* Settings of -1 for ConnectionPool.overflow erroneously caused overflow
to be disabled.
* If overflow was enabled in conjunction with prefill being disabled,
the effective overflow limit was raised to max_overflow + pool_size.

Other

* Overflow is now disabled by default in ConnectionPool.
* ColumnFamilyMap now sets the underlying ColumnFamily‘s
autopack_names and autopack_values attributes to False upon construction.
* Documentation and tests will no longer be included in the
packaged tarballs.

Removed Deprecated Items

The following deprecated items have been removed:

* ColumnFamilyMap.get_count()
* The instance parameter from ColumnFamilyMap.get_indexed_slices()
* The Int64 Column type.
* SystemManager.get_keyspace_description()

Deprecated

Athough not technically deprecated, most ColumnFamily constructor
arguments should instead be set by setting the corresponding
attribute on the ColumnFamily after construction. However, all
previous constructor arguments will continue to be supported if
passed as keyword arguments.

1.0.8

* Pack IndexExpression values in get_indexed_slices() that are supplied
through the IndexClause instead of just the instance parameter.
* Column names and values which use Cassandra’s IntegerType are unpacked
as though they are in a BigInteger-like format. This is (backwards)
compatible with the format that pycassa uses to pack IntegerType data.
This fixes an incompatibility with the format that cassandra-cli and
other clients use to pack IntegerType data.
* Restore Python 2.5 compatibility that was broken through out of order
keyword arguments in ConnectionWrapper.
* Pack column_start and column_finish arguments in ColumnFamily *get*()
methods when the super_column parameter is used.
* Issue a DeprecationWarning when a method, parameter, or class that has
been deprecated is used. Most of these have been deprecated for several
releases, but no warnings were issued until now.
* Deprecations are now split into separate sections for each release in the changelog.

Deprecated in Version 1.0.8

* The instance parameter of ColumnFamilyMap.get_indexed_slices()

1.0.7

* Catch KeyError in pycassa.columnfamily.ColumnFamily.multiget() empty row
removal. If the same non-existent key was passed multiple times, a
KeyError was raised when trying to remove it from the OrderedDictionary
after the first removal. The KeyError is caught and ignored now.
* Handle connection failures during retries. When a connection fails, it
tries to create a new connection to replace itself. Exceptions during
this process were not properly handled; they are now handled and count
towards the retry count for the current operation.
* Close connection when a MaximumRetryException is raised. Normally a
connection is closed when an operation it is performing fails, but this
was not happening for the final failure that triggers the
MaximumRetryException.

1.0.6

* Add EOFError to the list of exceptions that cause a connection swap and
retry
* Improved autopacking efficiency for AsciiType, UTF8Type, and BytesType
* Preserve sub-second timestamp precision in datetime arguments for
insertion or slice bounds where a TimeUUID is expected. Previously,
precision below a second was lost.
* In a MaximumRetryException‘s message, include details about the last
Exception that caused the MaximumRetryException to be raised
* pycassa.pool.ConnectionPool.status() now always reports a non-negative
overflow; 0 is now used when there is not currently any overflow
* Created pycassa.types.Long as a replacement for pycassa.types.Int64.
Long uses big-endian encoding, which is compatible with Cassandra’s LongType,
while Int64 used little-endian encoding.

Deprecated in Version 1.0.6

* pycassa.types.Int64 has been deprecated in favor of pycassa.types.Long

1.0.5

* Assume port 9160 if only a hostname is given
* Remove super_column param from pycassa.columnfamily.ColumnFamily.get_indexed_slices()
* Enable failover on functions that previously lacked it
* Increase base backoff time to 0.01 seconds
* Add a timeout parameter to pycassa.system_manager.SystemManger
* Return timestamp on single-column inserts

1.0.4

* Fixed threadlocal issues that broke multithreading
* Fix bug in pycassa.columnfamily.ColumnFamily.remove() when a super_column
argument is supplied
* Fix minor PoolLogger logging bugs
* Added pycassa.system_manager.SystemManager.describe_partitioner()
* Added pycassa.system_manager.SystemManager.describe_snitch()
* Added pycassa.system_manager.SystemManager.get_keyspace_properties()
* Moved pycassa.system_manager.SystemManager.describe_keyspace() and
pycassa.system_manager.SystemManager.describe_column_family() to
pycassaShell describe_keyspace() and describe_column_family()

Deprecated in Version 1.0.4

* Renamed pycassa.system_manager.SystemManager.get_keyspace_description()
to pycassa.system_manager.SystemManager.get_keyspace_column_families()
and deprecated the previous name

Page 4 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.