Breaking Changes
* Breaking changes to `arango.ArangoClient`:
* Replaced parameters `protocol`, `host` and `port` with `hosts` and `host_resolver`. Example:
python
from arango import ArangoClient
OLD
client = ArangoClient(protocol='http', host='localhost', port=8529)
NEW (single host)
client = ArangoClient(hosts='http://localhost:8529')
NEW (multiple hosts with "roundrobin" or "random" host resolver)
client = ArangoClient(hosts=['http://host1:8529', 'http://host2:8529'], host_resolver='roundrobin')
* Replaced properties `protocol`, `host`, `port` and `base_url` with `hosts`. Example:
python
from arango import ArangoClient
OLD
client = ArangoClient(protocol='http', host='localhost', port=8529)
client.protocol
client.host
client.port
client.base_url
NEW
client = ArangoClient(hosts='http://localhost:8529')
client.hosts
* Breaking changes to transactions:
* Changed the parameters in `Database.begin_transaction`.
* Context managers are no longer offered (you must commit the transaction yourself).
* On API execution, results are now returned immediately instead of `TransactionJob` objects.
* To abort transactions, you must call `TransactionDatabase.abort_transaction` method.
* Removed exception `arango.exceptions.TransactionStateError`.
* Removed exception `arango.exceptions.TransactionJobResultError`.
* See examples [here](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/transaction.html).
* Breaking changes to `AQLQueryCache` (`Database.aql.cache`):
* Renamed parameter `limit` to `max_results` in method `AQLQueryCache.configure`.
* Renamed field `limit` to `max_results` in the result of method `AQLQueryCache.properties`.
* See examples [here](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/aql.html#aql-query-cache).
* Breaking changes to `arango.request.Request`:
* Removed properties `read`, `write` and `command`.
* The content of property `data` is no longer serialized.
* Removed method `Database.ping` (all it did was send a get API call which you can always do yourself).
* Changed the abstract class for custom HTTP clients ([arango.http.HTTPClient](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/specs.html#arango.http.HTTPClient)). See new examples of defining your HTTP clients [here](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/http.html).
New Features
* Python 3.7 is officially supported
* Added support for load balancing multiple hosts/coordinators in a cluster (available host resolving techniques are "roundrobin" or "random"). See API specification [here](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/specs.html#arango.client.ArangoClient).
* Added support for [new transaction REST API](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/transaction.html).
* Added support for [ArangoSearch views](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/view.html).
* Added support for [analyzers](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/analyzer.html).
* Added support for named indexes (new parameter `name`).
* Added support for adding indexes asynchronously (new parameter `in_background`).
* Added support for new TTL index.
* Added support for [custom JSON serializers and de-serializers](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/serializer.html).
* Added new parameter `name_filter` to method [Database.foxx.run_tests](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/specs.html#arango.foxx.Foxx.run_tests).
* Added new method [Collection.recalculate_count](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/specs.html#arango.collection.StandardCollection.recalculate_count).
* Added new method [Collection.responsible_shard](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/specs.html#arango.collection.StandardCollection.responsible_shard).
* Added more fields in the result of method [AQLQueryCache.properties](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/specs.html#arango.aql.AQLQueryCache.properties) and [AQLQueryCache.configure](https://python-driver-for-arangodb.readthedocs.io/en/5.0.0/specs.html#arango.aql.AQLQueryCache.configure).