python-arango 8.1.2__tar.gz → 8.1.4__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.1.2 → python_arango-8.1.4}/PKG-INFO +3 -3
- {python_arango-8.1.2 → python_arango-8.1.4}/README.md +2 -2
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/aql.py +7 -3
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/connection.py +1 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/cursor.py +19 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/database.py +4 -3
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/request.py +1 -1
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/utils.py +5 -1
- {python_arango-8.1.2 → python_arango-8.1.4}/python_arango.egg-info/PKG-INFO +3 -3
- {python_arango-8.1.2 → python_arango-8.1.4}/.circleci/config.yml +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/.github/workflows/codeql.yaml +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/.github/workflows/docs.yaml +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/.github/workflows/pypi.yaml +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/.gitignore +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/.pre-commit-config.yaml +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/.readthedocs.yaml +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/CONTRIBUTING.md +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/LICENSE +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/MANIFEST.in +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/__init__.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/api.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/backup.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/client.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/cluster.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/collection.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/errno.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/exceptions.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/executor.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/formatter.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/foxx.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/graph.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/http.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/job.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/pregel.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/py.typed +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/replication.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/resolver.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/response.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/result.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/typings.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/arango/wal.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/Makefile +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/admin.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/analyzer.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/aql.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/async.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/auth.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/backup.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/batch.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/certificates.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/cluster.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/collection.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/compression.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/conf.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/contributing.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/cursor.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/database.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/document.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/errno.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/errors.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/foxx.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/graph.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/http.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/index.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/indexes.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/logging.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/make.bat +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/overload.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/overview.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/pregel.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/replication.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/requirements.txt +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/schema.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/serializer.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/simple.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/specs.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/static/logo.png +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/task.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/threading.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/transaction.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/user.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/view.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/docs/wal.rst +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/pyproject.toml +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/python_arango.egg-info/SOURCES.txt +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/python_arango.egg-info/dependency_links.txt +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/python_arango.egg-info/requires.txt +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/python_arango.egg-info/top_level.txt +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/setup.cfg +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/setup.py +0 -0
- {python_arango-8.1.2 → python_arango-8.1.4}/starter.sh +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: python-arango
|
|
3
|
-
Version: 8.1.
|
|
3
|
+
Version: 8.1.4
|
|
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>
|
|
@@ -70,12 +70,12 @@ Requires-Dist: types-setuptools; extra == "dev"
|
|
|
70
70
|
[](https://github.com/arangodb/python-arango/actions/workflows/codeql.yaml)
|
|
71
71
|
[](https://github.com/arangodb/python-arango/actions/workflows/docs.yaml)
|
|
72
72
|
[](https://codecov.io/gh/arangodb/python-arango)
|
|
73
|
-
[](https://github.com/arangodb/python-arango/commits/
|
|
73
|
+
[](https://github.com/arangodb/python-arango/commits/main)
|
|
74
74
|
|
|
75
75
|
[](https://pypi.org/project/python-arango/)
|
|
76
76
|
[](https://pypi.org/project/python-arango/)
|
|
77
77
|
|
|
78
|
-
[](https://github.com/arangodb/python-arango/blob/
|
|
78
|
+
[](https://github.com/arangodb/python-arango/blob/main/LICENSE)
|
|
79
79
|
[](https://github.com/psf/black)
|
|
80
80
|
[](https://pepy.tech/project/python-arango)
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
[](https://github.com/arangodb/python-arango/actions/workflows/codeql.yaml)
|
|
5
5
|
[](https://github.com/arangodb/python-arango/actions/workflows/docs.yaml)
|
|
6
6
|
[](https://codecov.io/gh/arangodb/python-arango)
|
|
7
|
-
[](https://github.com/arangodb/python-arango/commits/
|
|
7
|
+
[](https://github.com/arangodb/python-arango/commits/main)
|
|
8
8
|
|
|
9
9
|
[](https://pypi.org/project/python-arango/)
|
|
10
10
|
[](https://pypi.org/project/python-arango/)
|
|
11
11
|
|
|
12
|
-
[](https://github.com/arangodb/python-arango/blob/
|
|
12
|
+
[](https://github.com/arangodb/python-arango/blob/main/LICENSE)
|
|
13
13
|
[](https://github.com/psf/black)
|
|
14
14
|
[](https://pepy.tech/project/python-arango)
|
|
@@ -264,7 +264,7 @@ class AQL(ApiGroup):
|
|
|
264
264
|
cache: Optional[bool] = None,
|
|
265
265
|
memory_limit: int = 0,
|
|
266
266
|
fail_on_warning: Optional[bool] = None,
|
|
267
|
-
profile: Optional[bool] = None,
|
|
267
|
+
profile: Optional[Union[bool, int]] = None,
|
|
268
268
|
max_transaction_size: Optional[int] = None,
|
|
269
269
|
max_warning_count: Optional[int] = None,
|
|
270
270
|
intermediate_commit_count: Optional[int] = None,
|
|
@@ -317,8 +317,12 @@ class AQL(ApiGroup):
|
|
|
317
317
|
this behaviour, so it does not need to be set per-query.
|
|
318
318
|
:type fail_on_warning: bool
|
|
319
319
|
:param profile: Return additional profiling details in the cursor,
|
|
320
|
-
unless the query cache is used.
|
|
321
|
-
|
|
320
|
+
unless the query cache is used. If set to True or 1, then query profiling
|
|
321
|
+
information can be fetched with `cursor.profile()`. If set to 2, additional
|
|
322
|
+
execution stats per query plan node are included via "nodes" in
|
|
323
|
+
`cursor.statistics()`, as well as a the query plan which can be fetched
|
|
324
|
+
with `cursor.plan()`.
|
|
325
|
+
:type profile: bool | int
|
|
322
326
|
:param max_transaction_size: Transaction size limit in bytes.
|
|
323
327
|
:type max_transaction_size: int
|
|
324
328
|
:param max_warning_count: Max number of warnings returned.
|
|
@@ -47,6 +47,7 @@ class BaseConnection:
|
|
|
47
47
|
request_compression: Optional[RequestCompression] = None,
|
|
48
48
|
response_compression: Optional[str] = None,
|
|
49
49
|
) -> None:
|
|
50
|
+
self._hosts = hosts
|
|
50
51
|
self._url_prefixes = [f"{host}/_db/{db_name}" for host in hosts]
|
|
51
52
|
self._host_resolver = host_resolver
|
|
52
53
|
self._sessions = sessions
|
|
@@ -40,6 +40,7 @@ class Cursor:
|
|
|
40
40
|
"_count",
|
|
41
41
|
"_cached",
|
|
42
42
|
"_stats",
|
|
43
|
+
"_plan",
|
|
43
44
|
"_profile",
|
|
44
45
|
"_warnings",
|
|
45
46
|
"_has_more",
|
|
@@ -63,6 +64,7 @@ class Cursor:
|
|
|
63
64
|
self._count: Optional[int] = None
|
|
64
65
|
self._cached = None
|
|
65
66
|
self._stats = None
|
|
67
|
+
self._plan = None
|
|
66
68
|
self._profile = None
|
|
67
69
|
self._warnings = None
|
|
68
70
|
self._next_batch_id: Optional[str] = None
|
|
@@ -132,12 +134,18 @@ class Cursor:
|
|
|
132
134
|
self._warnings = extra["warnings"]
|
|
133
135
|
result["warnings"] = extra["warnings"]
|
|
134
136
|
|
|
137
|
+
if "plan" in extra:
|
|
138
|
+
self._plan = extra["plan"]
|
|
139
|
+
result["plan"] = extra["plan"]
|
|
140
|
+
|
|
135
141
|
if "stats" in extra:
|
|
136
142
|
stats = extra["stats"]
|
|
137
143
|
if "writesExecuted" in stats:
|
|
138
144
|
stats["modified"] = stats.pop("writesExecuted")
|
|
139
145
|
if "writesIgnored" in stats:
|
|
140
146
|
stats["ignored"] = stats.pop("writesIgnored")
|
|
147
|
+
if "documentLookups" in stats:
|
|
148
|
+
stats["lookups"] = stats.pop("documentLookups")
|
|
141
149
|
if "scannedFull" in stats:
|
|
142
150
|
stats["scanned_full"] = stats.pop("scannedFull")
|
|
143
151
|
if "scannedIndex" in stats:
|
|
@@ -159,6 +167,9 @@ class Cursor:
|
|
|
159
167
|
if "peakMemoryUsage" in stats:
|
|
160
168
|
stats["peak_memory_usage"] = stats.pop("peakMemoryUsage")
|
|
161
169
|
|
|
170
|
+
if "intermediateCommits" in stats:
|
|
171
|
+
stats["intermediate_commits"] = stats.pop("intermediateCommits")
|
|
172
|
+
|
|
162
173
|
self._stats = stats
|
|
163
174
|
result["statistics"] = stats
|
|
164
175
|
|
|
@@ -239,6 +250,14 @@ class Cursor:
|
|
|
239
250
|
"""
|
|
240
251
|
return self._warnings
|
|
241
252
|
|
|
253
|
+
def plan(self) -> Optional[Json]:
|
|
254
|
+
"""Return query execution plan.
|
|
255
|
+
|
|
256
|
+
:return: Query execution plan.
|
|
257
|
+
:rtype: dict
|
|
258
|
+
"""
|
|
259
|
+
return self._plan
|
|
260
|
+
|
|
242
261
|
def empty(self) -> bool:
|
|
243
262
|
"""Check if the current batch is empty.
|
|
244
263
|
|
|
@@ -436,7 +436,7 @@ class Database(ApiGroup):
|
|
|
436
436
|
instance. Can be called on single servers, Coordinators,
|
|
437
437
|
and DB-Servers.
|
|
438
438
|
|
|
439
|
-
:param license: The Base64-encoded license string.
|
|
439
|
+
:param license: The Base64-encoded license string, wrapped in double-quotes.
|
|
440
440
|
:type license: str
|
|
441
441
|
:param force: If set to True, the new license will be set even if
|
|
442
442
|
it expires sooner than the current license.
|
|
@@ -1284,8 +1284,9 @@ class Database(ApiGroup):
|
|
|
1284
1284
|
:type name: str
|
|
1285
1285
|
:param users: List of users with access to the new database, where each
|
|
1286
1286
|
user is a dictionary with fields "username", "password", "active"
|
|
1287
|
-
and "extra" (see below for example). If not set,
|
|
1288
|
-
|
|
1287
|
+
and "extra" (see below for example). If not set, the default user root
|
|
1288
|
+
will be used to ensure that the new database will be accessible after
|
|
1289
|
+
it is created.
|
|
1289
1290
|
:type users: [dict]
|
|
1290
1291
|
:param replication_factor: Default replication factor for collections
|
|
1291
1292
|
created in this database. Special values include "satellite" which
|
|
@@ -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 = "8.1.
|
|
15
|
+
driver_version = "8.1.4"
|
|
16
16
|
driver_header = "python-arango/" + driver_version + " (" + flags + ")"
|
|
17
17
|
normalized_headers: Headers = {
|
|
18
18
|
"charset": "utf-8",
|
|
@@ -120,5 +120,9 @@ def build_filter_conditions(filters: Json) -> str:
|
|
|
120
120
|
if not filters:
|
|
121
121
|
return ""
|
|
122
122
|
|
|
123
|
-
conditions = [
|
|
123
|
+
conditions = []
|
|
124
|
+
for k, v in filters.items():
|
|
125
|
+
field = k if "." in k else f"`{k}`"
|
|
126
|
+
conditions.append(f"doc.{field} == {json.dumps(v)}")
|
|
127
|
+
|
|
124
128
|
return "FILTER " + " AND ".join(conditions)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: python-arango
|
|
3
|
-
Version: 8.1.
|
|
3
|
+
Version: 8.1.4
|
|
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>
|
|
@@ -70,12 +70,12 @@ Requires-Dist: types-setuptools; extra == "dev"
|
|
|
70
70
|
[](https://github.com/arangodb/python-arango/actions/workflows/codeql.yaml)
|
|
71
71
|
[](https://github.com/arangodb/python-arango/actions/workflows/docs.yaml)
|
|
72
72
|
[](https://codecov.io/gh/arangodb/python-arango)
|
|
73
|
-
[](https://github.com/arangodb/python-arango/commits/
|
|
73
|
+
[](https://github.com/arangodb/python-arango/commits/main)
|
|
74
74
|
|
|
75
75
|
[](https://pypi.org/project/python-arango/)
|
|
76
76
|
[](https://pypi.org/project/python-arango/)
|
|
77
77
|
|
|
78
|
-
[](https://github.com/arangodb/python-arango/blob/
|
|
78
|
+
[](https://github.com/arangodb/python-arango/blob/main/LICENSE)
|
|
79
79
|
[](https://github.com/psf/black)
|
|
80
80
|
[](https://pepy.tech/project/python-arango)
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|