python-arango 8.0.0__tar.gz → 8.1.0__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.0}/.github/workflows/docs.yaml +3 -2
- {python_arango-8.0.0 → python_arango-8.1.0}/.readthedocs.yaml +1 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/PKG-INFO +1 -2
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/collection.py +4 -4
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/database.py +39 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/exceptions.py +4 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/executor.py +5 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/request.py +1 -1
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/conf.py +3 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/pyproject.toml +0 -1
- {python_arango-8.0.0 → python_arango-8.1.0}/python_arango.egg-info/PKG-INFO +1 -2
- {python_arango-8.0.0 → python_arango-8.1.0}/python_arango.egg-info/requires.txt +0 -1
- {python_arango-8.0.0 → python_arango-8.1.0}/starter.sh +1 -1
- {python_arango-8.0.0 → python_arango-8.1.0}/.circleci/config.yml +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/.github/workflows/codeql.yaml +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/.github/workflows/pypi.yaml +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/.gitignore +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/.pre-commit-config.yaml +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/CONTRIBUTING.md +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/LICENSE +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/MANIFEST.in +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/README.md +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/__init__.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/api.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/aql.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/backup.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/client.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/cluster.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/connection.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/cursor.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/errno.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/formatter.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/foxx.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/graph.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/http.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/job.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/pregel.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/py.typed +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/replication.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/resolver.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/response.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/result.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/typings.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/utils.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/arango/wal.py +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/Makefile +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/admin.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/analyzer.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/aql.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/async.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/auth.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/backup.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/batch.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/certificates.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/cluster.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/collection.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/compression.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/contributing.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/cursor.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/database.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/document.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/errno.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/errors.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/foxx.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/graph.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/http.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/index.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/indexes.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/logging.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/make.bat +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/overload.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/overview.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/pregel.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/replication.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/requirements.txt +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/schema.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/serializer.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/simple.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/specs.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/static/logo.png +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/task.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/threading.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/transaction.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/user.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/view.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/docs/wal.rst +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/python_arango.egg-info/SOURCES.txt +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/python_arango.egg-info/dependency_links.txt +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/python_arango.egg-info/top_level.txt +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/setup.cfg +0 -0
- {python_arango-8.0.0 → python_arango-8.1.0}/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.0
|
|
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
|
|
|
@@ -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,
|
|
@@ -1003,6 +1004,35 @@ class Database(ApiGroup):
|
|
|
1003
1004
|
|
|
1004
1005
|
return self._execute(request, response_handler)
|
|
1005
1006
|
|
|
1007
|
+
def reset_log_levels(self, server_id: Optional[str] = None) -> Result[Json]:
|
|
1008
|
+
"""Reset the logging levels.
|
|
1009
|
+
|
|
1010
|
+
Revert the server’s log level settings to the values they had at startup,
|
|
1011
|
+
as determined by the startup options specified on the command-line,
|
|
1012
|
+
a configuration file, and the factory defaults.
|
|
1013
|
+
|
|
1014
|
+
:param server_id: Forward log level to a specific server. This makes it
|
|
1015
|
+
easier to adjust the log levels in clusters because DB-Servers require
|
|
1016
|
+
JWT authentication whereas Coordinators also support authentication
|
|
1017
|
+
using usernames and passwords.
|
|
1018
|
+
:type server_id: str | None
|
|
1019
|
+
:return: New logging levels.
|
|
1020
|
+
:rtype: dict
|
|
1021
|
+
"""
|
|
1022
|
+
params: Params = {}
|
|
1023
|
+
if server_id is not None:
|
|
1024
|
+
params["serverId"] = server_id
|
|
1025
|
+
|
|
1026
|
+
request = Request(method="delete", endpoint="/_admin/log/level", params=params)
|
|
1027
|
+
|
|
1028
|
+
def response_handler(resp: Response) -> Json:
|
|
1029
|
+
if not resp.is_success:
|
|
1030
|
+
raise ServerLogLevelResetError(resp, request)
|
|
1031
|
+
result: Json = resp.body
|
|
1032
|
+
return result
|
|
1033
|
+
|
|
1034
|
+
return self._execute(request, response_handler)
|
|
1035
|
+
|
|
1006
1036
|
def reload_routing(self) -> Result[bool]:
|
|
1007
1037
|
"""Reload the routing information.
|
|
1008
1038
|
|
|
@@ -3020,6 +3050,7 @@ class StandardDatabase(Database):
|
|
|
3020
3050
|
allow_implicit: Optional[bool] = None,
|
|
3021
3051
|
lock_timeout: Optional[int] = None,
|
|
3022
3052
|
max_size: Optional[int] = None,
|
|
3053
|
+
skip_fast_lock_round: Optional[bool] = None,
|
|
3023
3054
|
) -> "TransactionDatabase":
|
|
3024
3055
|
"""Begin a transaction.
|
|
3025
3056
|
|
|
@@ -3043,6 +3074,9 @@ class StandardDatabase(Database):
|
|
|
3043
3074
|
:type lock_timeout: int | None
|
|
3044
3075
|
:param max_size: Max transaction size in bytes.
|
|
3045
3076
|
:type max_size: int | None
|
|
3077
|
+
:param skip_fast_lock_round: Whether to disable fast locking for write
|
|
3078
|
+
operations.
|
|
3079
|
+
:type skip_fast_lock_round: bool | None
|
|
3046
3080
|
:return: Database API wrapper object specifically for transactions.
|
|
3047
3081
|
:rtype: arango.database.TransactionDatabase
|
|
3048
3082
|
"""
|
|
@@ -3055,6 +3089,7 @@ class StandardDatabase(Database):
|
|
|
3055
3089
|
allow_implicit=allow_implicit,
|
|
3056
3090
|
lock_timeout=lock_timeout,
|
|
3057
3091
|
max_size=max_size,
|
|
3092
|
+
skip_fast_lock_round=skip_fast_lock_round,
|
|
3058
3093
|
)
|
|
3059
3094
|
|
|
3060
3095
|
def begin_controlled_execution(
|
|
@@ -3191,6 +3226,8 @@ class TransactionDatabase(Database):
|
|
|
3191
3226
|
:param transaction_id: Initialize using an existing transaction instead of creating
|
|
3192
3227
|
a new transaction.
|
|
3193
3228
|
:type transaction_id: str | None
|
|
3229
|
+
:param skip_fast_lock_round: Whether to disable fast locking for write operations.
|
|
3230
|
+
:type skip_fast_lock_round: bool | None
|
|
3194
3231
|
"""
|
|
3195
3232
|
|
|
3196
3233
|
def __init__(
|
|
@@ -3204,6 +3241,7 @@ class TransactionDatabase(Database):
|
|
|
3204
3241
|
lock_timeout: Optional[int] = None,
|
|
3205
3242
|
max_size: Optional[int] = None,
|
|
3206
3243
|
transaction_id: Optional[str] = None,
|
|
3244
|
+
skip_fast_lock_round: Optional[bool] = None,
|
|
3207
3245
|
) -> None:
|
|
3208
3246
|
self._executor: TransactionApiExecutor
|
|
3209
3247
|
super().__init__(
|
|
@@ -3218,6 +3256,7 @@ class TransactionDatabase(Database):
|
|
|
3218
3256
|
lock_timeout=lock_timeout,
|
|
3219
3257
|
max_size=max_size,
|
|
3220
3258
|
transaction_id=transaction_id,
|
|
3259
|
+
skip_fast_lock_round=skip_fast_lock_round,
|
|
3221
3260
|
),
|
|
3222
3261
|
)
|
|
3223
3262
|
|
|
@@ -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
|
|
|
@@ -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(
|
|
@@ -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.0"
|
|
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.0
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|