python-arango 8.0.0__tar.gz → 8.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_arango-8.0.0 → python_arango-8.1.1}/.github/workflows/docs.yaml +3 -2
- {python_arango-8.0.0 → python_arango-8.1.1}/.readthedocs.yaml +1 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/PKG-INFO +1 -2
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/cluster.py +55 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/collection.py +4 -4
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/database.py +54 -2
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/exceptions.py +8 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/executor.py +5 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/formatter.py +6 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/request.py +1 -1
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/admin.rst +1 -1
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/conf.py +3 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/pyproject.toml +0 -1
- {python_arango-8.0.0 → python_arango-8.1.1}/python_arango.egg-info/PKG-INFO +1 -2
- {python_arango-8.0.0 → python_arango-8.1.1}/python_arango.egg-info/requires.txt +0 -1
- {python_arango-8.0.0 → python_arango-8.1.1}/starter.sh +1 -1
- {python_arango-8.0.0 → python_arango-8.1.1}/.circleci/config.yml +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/.github/workflows/codeql.yaml +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/.github/workflows/pypi.yaml +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/.gitignore +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/.pre-commit-config.yaml +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/CONTRIBUTING.md +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/LICENSE +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/MANIFEST.in +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/README.md +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/__init__.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/api.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/aql.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/backup.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/client.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/connection.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/cursor.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/errno.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/foxx.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/graph.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/http.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/job.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/pregel.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/py.typed +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/replication.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/resolver.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/response.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/result.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/typings.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/utils.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/arango/wal.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/Makefile +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/analyzer.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/aql.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/async.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/auth.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/backup.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/batch.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/certificates.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/cluster.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/collection.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/compression.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/contributing.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/cursor.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/database.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/document.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/errno.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/errors.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/foxx.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/graph.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/http.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/index.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/indexes.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/logging.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/make.bat +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/overload.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/overview.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/pregel.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/replication.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/requirements.txt +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/schema.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/serializer.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/simple.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/specs.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/static/logo.png +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/task.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/threading.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/transaction.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/user.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/view.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/docs/wal.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/python_arango.egg-info/SOURCES.txt +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/python_arango.egg-info/dependency_links.txt +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/python_arango.egg-info/top_level.txt +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/setup.cfg +0 -0
- {python_arango-8.0.0 → python_arango-8.1.1}/setup.py +0 -0
|
@@ -98,5 +98,6 @@ jobs:
|
|
|
98
98
|
- name: Run Sphinx doctest
|
|
99
99
|
run: python -m sphinx -b doctest docs docs/_build
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
# No longer needed as this is handled by Read the Docs
|
|
102
|
+
#- name: Generate Sphinx HTML
|
|
103
|
+
# run: python -m sphinx -b html -W docs docs/_build
|
|
@@ -15,6 +15,7 @@ sphinx:
|
|
|
15
15
|
configuration: docs/conf.py
|
|
16
16
|
# You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
|
|
17
17
|
# builder: "dirhtml"
|
|
18
|
+
builder: html
|
|
18
19
|
# Fail on all warnings to avoid broken references
|
|
19
20
|
fail_on_warning: true
|
|
20
21
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: python-arango
|
|
3
|
-
Version: 8.
|
|
3
|
+
Version: 8.1.1
|
|
4
4
|
Summary: Python Driver for ArangoDB
|
|
5
5
|
Author-email: Joohwan Oh <joohwan.oh@outlook.com>
|
|
6
6
|
Maintainer-email: Joohwan Oh <joohwan.oh@outlook.com>, Alexandru Petenchea <alex.petenchea@gmail.com>, Anthony Mahanna <anthony.mahanna@arangodb.com>
|
|
@@ -61,7 +61,6 @@ Requires-Dist: pytest>=7.1.1; extra == "dev"
|
|
|
61
61
|
Requires-Dist: pytest-cov>=3.0.0; extra == "dev"
|
|
62
62
|
Requires-Dist: sphinx; extra == "dev"
|
|
63
63
|
Requires-Dist: sphinx_rtd_theme; extra == "dev"
|
|
64
|
-
Requires-Dist: types-pkg_resources; extra == "dev"
|
|
65
64
|
Requires-Dist: types-requests; extra == "dev"
|
|
66
65
|
Requires-Dist: types-setuptools; extra == "dev"
|
|
67
66
|
|
|
@@ -15,6 +15,7 @@ from arango.exceptions import (
|
|
|
15
15
|
ClusterServerRoleError,
|
|
16
16
|
ClusterServerStatisticsError,
|
|
17
17
|
ClusterServerVersionError,
|
|
18
|
+
ClusterVpackSortMigrationError,
|
|
18
19
|
)
|
|
19
20
|
from arango.formatter import format_body
|
|
20
21
|
from arango.request import Request
|
|
@@ -444,3 +445,57 @@ class Cluster(ApiGroup): # pragma: no cover
|
|
|
444
445
|
return result
|
|
445
446
|
|
|
446
447
|
return self._execute(request, response_handler)
|
|
448
|
+
|
|
449
|
+
def vpack_sort_migration_status(self) -> Result[Json]:
|
|
450
|
+
"""Query the status of the vpack sorting migration.
|
|
451
|
+
|
|
452
|
+
:return: Status of the VPack sort migration.
|
|
453
|
+
:rtype: dict
|
|
454
|
+
"""
|
|
455
|
+
request = Request(
|
|
456
|
+
method="get", endpoint="/_admin/cluster/vpackSortMigration/status"
|
|
457
|
+
)
|
|
458
|
+
|
|
459
|
+
def response_handler(resp: Response) -> Json:
|
|
460
|
+
if not resp.is_success:
|
|
461
|
+
raise ClusterVpackSortMigrationError(resp, request)
|
|
462
|
+
result: Json = resp.body["result"]
|
|
463
|
+
return result
|
|
464
|
+
|
|
465
|
+
return self._execute(request, response_handler)
|
|
466
|
+
|
|
467
|
+
def vpack_sort_migration_index_check(self) -> Result[Json]:
|
|
468
|
+
"""Check for indexes impacted by the sorting behavior before 3.12.2.
|
|
469
|
+
|
|
470
|
+
:return: Status of indexes.
|
|
471
|
+
:rtype: dict
|
|
472
|
+
"""
|
|
473
|
+
request = Request(
|
|
474
|
+
method="get", endpoint="/_admin/cluster/vpackSortMigration/check"
|
|
475
|
+
)
|
|
476
|
+
|
|
477
|
+
def response_handler(resp: Response) -> Json:
|
|
478
|
+
if not resp.is_success:
|
|
479
|
+
raise ClusterVpackSortMigrationError(resp, request)
|
|
480
|
+
result: Json = resp.body["result"]
|
|
481
|
+
return result
|
|
482
|
+
|
|
483
|
+
return self._execute(request, response_handler)
|
|
484
|
+
|
|
485
|
+
def migrate_vpack_sorting(self) -> Result[Json]:
|
|
486
|
+
"""Migrate instances to the new VPack sorting behavior.
|
|
487
|
+
|
|
488
|
+
:return: Status of the VPack sort migration.
|
|
489
|
+
:rtype: dict
|
|
490
|
+
"""
|
|
491
|
+
request = Request(
|
|
492
|
+
method="put", endpoint="/_admin/cluster/vpackSortMigration/migrate"
|
|
493
|
+
)
|
|
494
|
+
|
|
495
|
+
def response_handler(resp: Response) -> Json:
|
|
496
|
+
if not resp.is_success:
|
|
497
|
+
raise ClusterVpackSortMigrationError(resp, request)
|
|
498
|
+
result: Json = resp.body["result"]
|
|
499
|
+
return result
|
|
500
|
+
|
|
501
|
+
return self._execute(request, response_handler)
|
|
@@ -630,20 +630,20 @@ class Collection(ApiGroup):
|
|
|
630
630
|
headers["x-arango-allow-dirty-read"] = "true"
|
|
631
631
|
|
|
632
632
|
request = Request(
|
|
633
|
-
method="
|
|
633
|
+
method="head",
|
|
634
634
|
endpoint=f"/_api/document/{handle}",
|
|
635
635
|
headers=headers,
|
|
636
636
|
read=self.name,
|
|
637
637
|
)
|
|
638
638
|
|
|
639
639
|
def response_handler(resp: Response) -> bool:
|
|
640
|
-
if resp.error_code == 1202:
|
|
641
|
-
return False
|
|
642
640
|
if resp.status_code == 412:
|
|
643
641
|
raise DocumentRevisionError(resp, request)
|
|
642
|
+
if resp.status_code == 404:
|
|
643
|
+
return False
|
|
644
644
|
if not resp.is_success:
|
|
645
645
|
raise DocumentInError(resp, request)
|
|
646
|
-
return
|
|
646
|
+
return True
|
|
647
647
|
|
|
648
648
|
return self._execute(request, response_handler)
|
|
649
649
|
|
|
@@ -52,6 +52,7 @@ from arango.exceptions import (
|
|
|
52
52
|
ServerLicenseGetError,
|
|
53
53
|
ServerLicenseSetError,
|
|
54
54
|
ServerLogLevelError,
|
|
55
|
+
ServerLogLevelResetError,
|
|
55
56
|
ServerLogLevelSetError,
|
|
56
57
|
ServerLogSettingError,
|
|
57
58
|
ServerLogSettingSetError,
|
|
@@ -934,7 +935,9 @@ class Database(ApiGroup):
|
|
|
934
935
|
|
|
935
936
|
return self._execute(request, response_handler)
|
|
936
937
|
|
|
937
|
-
def log_levels(
|
|
938
|
+
def log_levels(
|
|
939
|
+
self, server_id: Optional[str] = None, with_appenders: Optional[bool] = None
|
|
940
|
+
) -> Result[Json]:
|
|
938
941
|
"""Return current logging levels.
|
|
939
942
|
|
|
940
943
|
:param server_id: Forward log level to a specific server. This makes it
|
|
@@ -942,12 +945,16 @@ class Database(ApiGroup):
|
|
|
942
945
|
JWT authentication whereas Coordinators also support authentication
|
|
943
946
|
using usernames and passwords.
|
|
944
947
|
:type server_id: str
|
|
948
|
+
:param with_appenders: Include appenders in the response.
|
|
949
|
+
:type with_appenders: bool
|
|
945
950
|
:return: Current logging levels.
|
|
946
951
|
:rtype: dict
|
|
947
952
|
"""
|
|
948
953
|
params: Params = {}
|
|
949
954
|
if server_id is not None:
|
|
950
955
|
params["serverId"] = server_id
|
|
956
|
+
if with_appenders is not None:
|
|
957
|
+
params["withAppenders"] = with_appenders
|
|
951
958
|
|
|
952
959
|
request = Request(method="get", endpoint="/_admin/log/level", params=params)
|
|
953
960
|
|
|
@@ -960,7 +967,10 @@ class Database(ApiGroup):
|
|
|
960
967
|
return self._execute(request, response_handler)
|
|
961
968
|
|
|
962
969
|
def set_log_levels(
|
|
963
|
-
self,
|
|
970
|
+
self,
|
|
971
|
+
server_id: Optional[str] = None,
|
|
972
|
+
with_appenders: Optional[bool] = None,
|
|
973
|
+
**kwargs: Dict[str, Any],
|
|
964
974
|
) -> Result[Json]:
|
|
965
975
|
"""Set the logging levels.
|
|
966
976
|
|
|
@@ -982,6 +992,8 @@ class Database(ApiGroup):
|
|
|
982
992
|
JWT authentication whereas Coordinators also support authentication
|
|
983
993
|
using usernames and passwords.
|
|
984
994
|
:type server_id: str | None
|
|
995
|
+
:param with_appenders: Include appenders in the request.
|
|
996
|
+
:type with_appenders: bool | None
|
|
985
997
|
:param kwargs: Logging levels.
|
|
986
998
|
:type kwargs: Dict[str, Any]
|
|
987
999
|
:return: New logging levels.
|
|
@@ -990,6 +1002,8 @@ class Database(ApiGroup):
|
|
|
990
1002
|
params: Params = {}
|
|
991
1003
|
if server_id is not None:
|
|
992
1004
|
params["serverId"] = server_id
|
|
1005
|
+
if with_appenders is not None:
|
|
1006
|
+
params["withAppenders"] = with_appenders
|
|
993
1007
|
|
|
994
1008
|
request = Request(
|
|
995
1009
|
method="put", endpoint="/_admin/log/level", params=params, data=kwargs
|
|
@@ -1003,6 +1017,35 @@ class Database(ApiGroup):
|
|
|
1003
1017
|
|
|
1004
1018
|
return self._execute(request, response_handler)
|
|
1005
1019
|
|
|
1020
|
+
def reset_log_levels(self, server_id: Optional[str] = None) -> Result[Json]:
|
|
1021
|
+
"""Reset the logging levels.
|
|
1022
|
+
|
|
1023
|
+
Revert the server’s log level settings to the values they had at startup,
|
|
1024
|
+
as determined by the startup options specified on the command-line,
|
|
1025
|
+
a configuration file, and the factory defaults.
|
|
1026
|
+
|
|
1027
|
+
:param server_id: Forward log level to a specific server. This makes it
|
|
1028
|
+
easier to adjust the log levels in clusters because DB-Servers require
|
|
1029
|
+
JWT authentication whereas Coordinators also support authentication
|
|
1030
|
+
using usernames and passwords.
|
|
1031
|
+
:type server_id: str | None
|
|
1032
|
+
:return: New logging levels.
|
|
1033
|
+
:rtype: dict
|
|
1034
|
+
"""
|
|
1035
|
+
params: Params = {}
|
|
1036
|
+
if server_id is not None:
|
|
1037
|
+
params["serverId"] = server_id
|
|
1038
|
+
|
|
1039
|
+
request = Request(method="delete", endpoint="/_admin/log/level", params=params)
|
|
1040
|
+
|
|
1041
|
+
def response_handler(resp: Response) -> Json:
|
|
1042
|
+
if not resp.is_success:
|
|
1043
|
+
raise ServerLogLevelResetError(resp, request)
|
|
1044
|
+
result: Json = resp.body
|
|
1045
|
+
return result
|
|
1046
|
+
|
|
1047
|
+
return self._execute(request, response_handler)
|
|
1048
|
+
|
|
1006
1049
|
def reload_routing(self) -> Result[bool]:
|
|
1007
1050
|
"""Reload the routing information.
|
|
1008
1051
|
|
|
@@ -3020,6 +3063,7 @@ class StandardDatabase(Database):
|
|
|
3020
3063
|
allow_implicit: Optional[bool] = None,
|
|
3021
3064
|
lock_timeout: Optional[int] = None,
|
|
3022
3065
|
max_size: Optional[int] = None,
|
|
3066
|
+
skip_fast_lock_round: Optional[bool] = None,
|
|
3023
3067
|
) -> "TransactionDatabase":
|
|
3024
3068
|
"""Begin a transaction.
|
|
3025
3069
|
|
|
@@ -3043,6 +3087,9 @@ class StandardDatabase(Database):
|
|
|
3043
3087
|
:type lock_timeout: int | None
|
|
3044
3088
|
:param max_size: Max transaction size in bytes.
|
|
3045
3089
|
:type max_size: int | None
|
|
3090
|
+
:param skip_fast_lock_round: Whether to disable fast locking for write
|
|
3091
|
+
operations.
|
|
3092
|
+
:type skip_fast_lock_round: bool | None
|
|
3046
3093
|
:return: Database API wrapper object specifically for transactions.
|
|
3047
3094
|
:rtype: arango.database.TransactionDatabase
|
|
3048
3095
|
"""
|
|
@@ -3055,6 +3102,7 @@ class StandardDatabase(Database):
|
|
|
3055
3102
|
allow_implicit=allow_implicit,
|
|
3056
3103
|
lock_timeout=lock_timeout,
|
|
3057
3104
|
max_size=max_size,
|
|
3105
|
+
skip_fast_lock_round=skip_fast_lock_round,
|
|
3058
3106
|
)
|
|
3059
3107
|
|
|
3060
3108
|
def begin_controlled_execution(
|
|
@@ -3191,6 +3239,8 @@ class TransactionDatabase(Database):
|
|
|
3191
3239
|
:param transaction_id: Initialize using an existing transaction instead of creating
|
|
3192
3240
|
a new transaction.
|
|
3193
3241
|
:type transaction_id: str | None
|
|
3242
|
+
:param skip_fast_lock_round: Whether to disable fast locking for write operations.
|
|
3243
|
+
:type skip_fast_lock_round: bool | None
|
|
3194
3244
|
"""
|
|
3195
3245
|
|
|
3196
3246
|
def __init__(
|
|
@@ -3204,6 +3254,7 @@ class TransactionDatabase(Database):
|
|
|
3204
3254
|
lock_timeout: Optional[int] = None,
|
|
3205
3255
|
max_size: Optional[int] = None,
|
|
3206
3256
|
transaction_id: Optional[str] = None,
|
|
3257
|
+
skip_fast_lock_round: Optional[bool] = None,
|
|
3207
3258
|
) -> None:
|
|
3208
3259
|
self._executor: TransactionApiExecutor
|
|
3209
3260
|
super().__init__(
|
|
@@ -3218,6 +3269,7 @@ class TransactionDatabase(Database):
|
|
|
3218
3269
|
lock_timeout=lock_timeout,
|
|
3219
3270
|
max_size=max_size,
|
|
3220
3271
|
transaction_id=transaction_id,
|
|
3272
|
+
skip_fast_lock_round=skip_fast_lock_round,
|
|
3221
3273
|
),
|
|
3222
3274
|
)
|
|
3223
3275
|
|
|
@@ -674,6 +674,10 @@ class ServerLogLevelError(ArangoServerError):
|
|
|
674
674
|
"""Failed to retrieve server log levels."""
|
|
675
675
|
|
|
676
676
|
|
|
677
|
+
class ServerLogLevelResetError(ArangoServerError):
|
|
678
|
+
"""Failed to reset server log levels."""
|
|
679
|
+
|
|
680
|
+
|
|
677
681
|
class ServerLogSettingError(ArangoServerError):
|
|
678
682
|
"""Failed to retrieve server log settings."""
|
|
679
683
|
|
|
@@ -1043,6 +1047,10 @@ class ClusterRebalanceError(ArangoServerError):
|
|
|
1043
1047
|
"""Failed to execute cluster re-balancing operation (load/set)."""
|
|
1044
1048
|
|
|
1045
1049
|
|
|
1050
|
+
class ClusterVpackSortMigrationError(ArangoServerError):
|
|
1051
|
+
"""Failed to execute vpack sort migration request."""
|
|
1052
|
+
|
|
1053
|
+
|
|
1046
1054
|
##################
|
|
1047
1055
|
# JWT Exceptions #
|
|
1048
1056
|
##################
|
|
@@ -245,6 +245,8 @@ class TransactionApiExecutor:
|
|
|
245
245
|
:param transaction_id: Initialize using an existing transaction instead of starting
|
|
246
246
|
a new transaction.
|
|
247
247
|
:type transaction_id: str | None
|
|
248
|
+
:param skip_fast_lock_round: Whether to disable fast locking for write operations.
|
|
249
|
+
:type skip_fast_lock_round: bool | None
|
|
248
250
|
"""
|
|
249
251
|
|
|
250
252
|
def __init__(
|
|
@@ -259,6 +261,7 @@ class TransactionApiExecutor:
|
|
|
259
261
|
max_size: Optional[int] = None,
|
|
260
262
|
allow_dirty_read: bool = False,
|
|
261
263
|
transaction_id: Optional[str] = None,
|
|
264
|
+
skip_fast_lock_round: Optional[bool] = None,
|
|
262
265
|
) -> None:
|
|
263
266
|
self._conn = connection
|
|
264
267
|
|
|
@@ -279,6 +282,8 @@ class TransactionApiExecutor:
|
|
|
279
282
|
data["lockTimeout"] = lock_timeout
|
|
280
283
|
if max_size is not None:
|
|
281
284
|
data["maxTransactionSize"] = max_size
|
|
285
|
+
if skip_fast_lock_round is not None:
|
|
286
|
+
data["skipFastLockRound"] = skip_fast_lock_round
|
|
282
287
|
|
|
283
288
|
if transaction_id is None:
|
|
284
289
|
request = Request(
|
|
@@ -365,6 +365,12 @@ def format_aql_query(body: Json) -> Json:
|
|
|
365
365
|
# New in 3.11
|
|
366
366
|
if "peakMemoryUsage" in body:
|
|
367
367
|
result["peak_memory_usage"] = body["peakMemoryUsage"]
|
|
368
|
+
|
|
369
|
+
# New in 3.12.2
|
|
370
|
+
if "modificationQuery" in body:
|
|
371
|
+
result["modification_query"] = body["modificationQuery"]
|
|
372
|
+
if "warnings" in body:
|
|
373
|
+
result["warnings"] = body["warnings"]
|
|
368
374
|
return verify_format(body, result)
|
|
369
375
|
|
|
370
376
|
|
|
@@ -12,7 +12,7 @@ def normalize_headers(
|
|
|
12
12
|
if driver_flags is not None:
|
|
13
13
|
for flag in driver_flags:
|
|
14
14
|
flags = flags + flag + ";"
|
|
15
|
-
driver_version = "
|
|
15
|
+
driver_version = "8.1.1"
|
|
16
16
|
driver_header = "python-arango/" + driver_version + " (" + flags + ")"
|
|
17
17
|
normalized_headers: Headers = {
|
|
18
18
|
"charset": "utf-8",
|
|
@@ -17,6 +17,9 @@ html_static_path = ["static"]
|
|
|
17
17
|
html_theme = "sphinx_rtd_theme"
|
|
18
18
|
master_doc = "index"
|
|
19
19
|
|
|
20
|
+
# Set canonical URL from the Read the Docs Domain
|
|
21
|
+
html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "docs.python-arango.com")
|
|
22
|
+
|
|
20
23
|
autodoc_member_order = "bysource"
|
|
21
24
|
|
|
22
25
|
doctest_global_setup = """
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: python-arango
|
|
3
|
-
Version: 8.
|
|
3
|
+
Version: 8.1.1
|
|
4
4
|
Summary: Python Driver for ArangoDB
|
|
5
5
|
Author-email: Joohwan Oh <joohwan.oh@outlook.com>
|
|
6
6
|
Maintainer-email: Joohwan Oh <joohwan.oh@outlook.com>, Alexandru Petenchea <alex.petenchea@gmail.com>, Anthony Mahanna <anthony.mahanna@arangodb.com>
|
|
@@ -61,7 +61,6 @@ Requires-Dist: pytest>=7.1.1; extra == "dev"
|
|
|
61
61
|
Requires-Dist: pytest-cov>=3.0.0; extra == "dev"
|
|
62
62
|
Requires-Dist: sphinx; extra == "dev"
|
|
63
63
|
Requires-Dist: sphinx_rtd_theme; extra == "dev"
|
|
64
|
-
Requires-Dist: types-pkg_resources; extra == "dev"
|
|
65
64
|
Requires-Dist: types-requests; extra == "dev"
|
|
66
65
|
Requires-Dist: types-setuptools; extra == "dev"
|
|
67
66
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|