Releases: arangodb/python-arango
8.0.0
Major Changes
Breaking
Collection.add_geo_index()
parameterordered
has been renamed togeo_json
. The nameordered
used to create lots of confusion.- The
api/traversal
endpoint is no longer available starting with ArangoDB 3.12. This renders thearango.graph.Graph.traverse()
unusable.
Non-Breaking
- Dropped support for ArangoDB 3.10.
- Pregel is deprecated since ArangoDB 3.12. The API can still be used with the driver, but it will eventually be removed when 3.11 support is over.
- Compression of requests and responses. By default compression is turned off, so this change has no effect unless the user specifies one of the newly introduced parameters.
The ArangoClient gets two optional parameters:- request_compression - Represents the compression strategy, None by default. The reason for passing in an object instead of a string (such as deflate) is to allow the client to fine tune the compression algorithm.
- response_compression - The equivalent of an Accept-Encoding string. This has no effect unless the server is configured to use encoding.
client = ArangoClient( hosts="http://127.0.0.1:8529", request_compression=DeflateRequestCompression(), response_compression="deflate", )
- Full support on Options API [3.12]
- The
add_index()
becomes the new way of creating indexes. It takes adata
parameter - the keys are pure ArangoDB REST API arguments, no snake_case conversion anymore. However, for the output, the legacy methods remain the same, while the new add_index method by default skips formatting. Legacy methods have been deprecated.collection.add_index({'type': 'persistent', 'fields': ['name'], 'unique': True})
New Features
Improved administration interface
- Added
/_admin/log/structured
support - Added
/_admin/compact
support - Added
/_admin/echo
support - Added
/_admin/server/mode
support - Added
/_admin/execute
support - Added
/_admin/support-info
- Added
/_admin/cluster/maintenance/
Updated /metrics
endpoint to v2
New fetch_transaction()
method
Introduced a new StandardDatabase.fetch_transaction()
method that allows users to create a TransactionDatabase
based on an existing Transaction, instead of starting a new transaction.
Minor changes
- Improved documentation pages
- External versioning support, adding
version_attribute
to some of theCollection
methods - Fixed
autoincrement
collection creation - Updated
ServerConnectionError
to contain an error code
New Contributors
Other Contributors
Full Changelog: 7.9.1...8.0.0
7.9.1
7.9.0
What's Changed
- Circleci project setup by @apetenchea in #291
- Update Readme Badges by @aMahanna in #298
- DE-699 | Update global server logs retrieval by @aMahanna in #299
- Optional: Update Readme Badges by @aMahanna in #300
- Migrate to
pyproject.toml
by @aMahanna in #302 - ES-1867 |
force_one_shard_attribute_value
param by @aMahanna in #314
Full Changelog: 7.8.1...7.9.0
7.8.1
7.8.0
7.7.0
This release marks a significant step forward in our support for ArangoDB's vast set of HTTP APIs, especially these added in 3.11.
🚀 Enhancements & New Features
Database.view_info()
- retrieves condensed information about a view (HTTP docs)Database.databases_accessible_to_user()
retrieves the list of databases currently accessible to the user (HTTP docs)- Added support for soft shutdowns (HTTP docs)
Collection.info()
- retrieves condensed information about a collection (HTTP docs)Collection.compact()
- support for collection compaction (HTTP docs)Database.license()
andDatabase.set_license()
- get & set the license of an ArangoDB EE Instance. Can be called on single servers, Coordinators, and DB-Servers, as long as the user holds the necessary permissions (HTTP docs)Database.list_transactions()
- list the running stream transactions (HTTP docs)- Added Cluster Rebalance support through the
Cluster
interface (HTTP docs)
❌ Deprecations
As part of our ongoing commitment to enhance the driver's capabilities, we've made the decision to deprecate the Batch API. The BatchDatabase
is still available, but it now uses a TreadPoolExecutor
internally. To discourage its use we now issue a warning upon instantiating it. This warning may be disabled by the user. Note that, the Batch API of ArangoDB is long deprecated, and eventually the BatchDatabase
part of this driver is going to be completely removed or repurposed.
🐛 Fixes
Minor improvements
📖 Changelog
For a more detailed breakdown of the changes, please refer to the Full Changelog
7.6.2
7.6.1
What's Changed
- [DE-542] Added
shards()
method toCollection
by @apetenchea in #274 - [DE-584] Refactor deprecated
/_api/simple
methods by @aMahanna in #275 - Added
raise_on_document_error
parameter toCollection.update_many()
by @aMahanna in #273 - Added
computed_values
parameter toCollection.onfigure()
by @aMahanna in #268 - Various bug fixes
New Contributors
- @PhilipMay made their first contribution in #267
Full Changelog: 7.6.0...7.6.1
7.6.0
What's Changed
- [DE-562] Index Cache Refilling by @apetenchea in #259
- [DE-554]
serverId
query param (GET/PUT/_admin/log/level
) by @aMahanna in #262 - [DE-545] UTF-8 names by @apetenchea in #260
- [DE-566] geo_s2 analyzer test case by @aMahanna in #263
- Fix python-arango Client (de)serialization by @geenen124 in #264
- Fix
request_timeout
typing by @aMahanna in #265 - Update CHANGELOG by @aMahanna in #266
New Contributors
- @geenen124 made their first contribution in #264
Full Changelog: 7.5.9...7.6.0
7.5.9
New features
- Added cache and primaryKeyCache parameters to the inverted index API.
- Added allow_retry query parameter, making it possible to retry fetching the latest batch from a cursor.
- Added OverloadControlDatabase, enabling the client to react effectively to potential server overloads.
- The db.version() now has a new optional parameter "details" that can be used to return additional information about the server version. The default is still false, so the old behavior is preserved.
- Added peak_memory_usage as a new property of AQL queries, available since ArangoDB 3.11.
- The explain method of AQL queries includes the "stats" field in the returned object. Note that the REST API returns it separately from the "plan" field, but for now we have to merge them together to ensure backward compatibility.
DefaultHTTPClientChanges
The following parameters where added:
- request_timeout: socket timeout in seconds for each individual connection
- pool_connections: the number of urllib3 connection pools to cache
- pool_maxsize: the maximum number of connections to save in the pool
- pool_timeout: if set, then the pool will be set to block=True, and requests will block for pool_timeout seconds and raise EmptyPoolError if no connection is available within the time period