Skip to content

Releases: arangodb/python-arango

8.0.0

29 May 18:55
e44a3e8
Compare
Choose a tag to compare

Major Changes

Breaking

  • ‎Collection.add_geo_index() parameter ordered has been renamed to geo_json. The name ordered used to create lots of confusion.
  • The api/traversal endpoint is no longer available starting with ArangoDB 3.12. This renders the arango.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 a data 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 the Collection 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

18 Jan 16:16
99f5d9b
Compare
Choose a tag to compare

What's Changed

Full Changelog: 7.9.0...7.9.1

7.9.0

05 Jan 17:05
e94750e
Compare
Choose a tag to compare

What's Changed

Full Changelog: 7.8.1...7.9.0

7.8.1

13 Nov 18:42
8e35379
Compare
Choose a tag to compare

What's Changed

Full Changelog: 7.8.0...7.8.1

7.8.0

07 Nov 16:28
879434f
Compare
Choose a tag to compare

What's Changed

Full Changelog: 7.7.0...7.8.0

7.7.0

22 Sep 10:00
a0e2efb
Compare
Choose a tag to compare

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() and Database.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

31 Aug 18:49
fda5a41
Compare
Choose a tag to compare

What's Changed

Full Changelog: 7.6.1...7.6.2

7.6.1

25 Aug 13:06
68bf6e2
Compare
Choose a tag to compare

What's Changed

  • [DE-542] Added shards() method to Collection by @apetenchea in #274
  • [DE-584] Refactor deprecated /_api/simple methods by @aMahanna in #275
  • Added raise_on_document_error parameter to Collection.update_many() by @aMahanna in #273
  • Added computed_values parameter to Collection.onfigure() by @aMahanna in #268
  • Various bug fixes

New Contributors

Full Changelog: 7.6.0...7.6.1

7.6.0

01 Aug 15:03
4abec73
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 7.5.9...7.6.0

7.5.9

14 Jul 09:18
4bb8c6c
Compare
Choose a tag to compare

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