python-arango 8.1.3__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.
Files changed (91) hide show
  1. {python_arango-8.1.3 → python_arango-8.1.4}/PKG-INFO +1 -1
  2. {python_arango-8.1.3 → python_arango-8.1.4}/arango/aql.py +7 -3
  3. {python_arango-8.1.3 → python_arango-8.1.4}/arango/cursor.py +19 -0
  4. {python_arango-8.1.3 → python_arango-8.1.4}/arango/request.py +1 -1
  5. {python_arango-8.1.3 → python_arango-8.1.4}/python_arango.egg-info/PKG-INFO +1 -1
  6. {python_arango-8.1.3 → python_arango-8.1.4}/.circleci/config.yml +0 -0
  7. {python_arango-8.1.3 → python_arango-8.1.4}/.github/workflows/codeql.yaml +0 -0
  8. {python_arango-8.1.3 → python_arango-8.1.4}/.github/workflows/docs.yaml +0 -0
  9. {python_arango-8.1.3 → python_arango-8.1.4}/.github/workflows/pypi.yaml +0 -0
  10. {python_arango-8.1.3 → python_arango-8.1.4}/.gitignore +0 -0
  11. {python_arango-8.1.3 → python_arango-8.1.4}/.pre-commit-config.yaml +0 -0
  12. {python_arango-8.1.3 → python_arango-8.1.4}/.readthedocs.yaml +0 -0
  13. {python_arango-8.1.3 → python_arango-8.1.4}/CONTRIBUTING.md +0 -0
  14. {python_arango-8.1.3 → python_arango-8.1.4}/LICENSE +0 -0
  15. {python_arango-8.1.3 → python_arango-8.1.4}/MANIFEST.in +0 -0
  16. {python_arango-8.1.3 → python_arango-8.1.4}/README.md +0 -0
  17. {python_arango-8.1.3 → python_arango-8.1.4}/arango/__init__.py +0 -0
  18. {python_arango-8.1.3 → python_arango-8.1.4}/arango/api.py +0 -0
  19. {python_arango-8.1.3 → python_arango-8.1.4}/arango/backup.py +0 -0
  20. {python_arango-8.1.3 → python_arango-8.1.4}/arango/client.py +0 -0
  21. {python_arango-8.1.3 → python_arango-8.1.4}/arango/cluster.py +0 -0
  22. {python_arango-8.1.3 → python_arango-8.1.4}/arango/collection.py +0 -0
  23. {python_arango-8.1.3 → python_arango-8.1.4}/arango/connection.py +0 -0
  24. {python_arango-8.1.3 → python_arango-8.1.4}/arango/database.py +0 -0
  25. {python_arango-8.1.3 → python_arango-8.1.4}/arango/errno.py +0 -0
  26. {python_arango-8.1.3 → python_arango-8.1.4}/arango/exceptions.py +0 -0
  27. {python_arango-8.1.3 → python_arango-8.1.4}/arango/executor.py +0 -0
  28. {python_arango-8.1.3 → python_arango-8.1.4}/arango/formatter.py +0 -0
  29. {python_arango-8.1.3 → python_arango-8.1.4}/arango/foxx.py +0 -0
  30. {python_arango-8.1.3 → python_arango-8.1.4}/arango/graph.py +0 -0
  31. {python_arango-8.1.3 → python_arango-8.1.4}/arango/http.py +0 -0
  32. {python_arango-8.1.3 → python_arango-8.1.4}/arango/job.py +0 -0
  33. {python_arango-8.1.3 → python_arango-8.1.4}/arango/pregel.py +0 -0
  34. {python_arango-8.1.3 → python_arango-8.1.4}/arango/py.typed +0 -0
  35. {python_arango-8.1.3 → python_arango-8.1.4}/arango/replication.py +0 -0
  36. {python_arango-8.1.3 → python_arango-8.1.4}/arango/resolver.py +0 -0
  37. {python_arango-8.1.3 → python_arango-8.1.4}/arango/response.py +0 -0
  38. {python_arango-8.1.3 → python_arango-8.1.4}/arango/result.py +0 -0
  39. {python_arango-8.1.3 → python_arango-8.1.4}/arango/typings.py +0 -0
  40. {python_arango-8.1.3 → python_arango-8.1.4}/arango/utils.py +0 -0
  41. {python_arango-8.1.3 → python_arango-8.1.4}/arango/wal.py +0 -0
  42. {python_arango-8.1.3 → python_arango-8.1.4}/docs/Makefile +0 -0
  43. {python_arango-8.1.3 → python_arango-8.1.4}/docs/admin.rst +0 -0
  44. {python_arango-8.1.3 → python_arango-8.1.4}/docs/analyzer.rst +0 -0
  45. {python_arango-8.1.3 → python_arango-8.1.4}/docs/aql.rst +0 -0
  46. {python_arango-8.1.3 → python_arango-8.1.4}/docs/async.rst +0 -0
  47. {python_arango-8.1.3 → python_arango-8.1.4}/docs/auth.rst +0 -0
  48. {python_arango-8.1.3 → python_arango-8.1.4}/docs/backup.rst +0 -0
  49. {python_arango-8.1.3 → python_arango-8.1.4}/docs/batch.rst +0 -0
  50. {python_arango-8.1.3 → python_arango-8.1.4}/docs/certificates.rst +0 -0
  51. {python_arango-8.1.3 → python_arango-8.1.4}/docs/cluster.rst +0 -0
  52. {python_arango-8.1.3 → python_arango-8.1.4}/docs/collection.rst +0 -0
  53. {python_arango-8.1.3 → python_arango-8.1.4}/docs/compression.rst +0 -0
  54. {python_arango-8.1.3 → python_arango-8.1.4}/docs/conf.py +0 -0
  55. {python_arango-8.1.3 → python_arango-8.1.4}/docs/contributing.rst +0 -0
  56. {python_arango-8.1.3 → python_arango-8.1.4}/docs/cursor.rst +0 -0
  57. {python_arango-8.1.3 → python_arango-8.1.4}/docs/database.rst +0 -0
  58. {python_arango-8.1.3 → python_arango-8.1.4}/docs/document.rst +0 -0
  59. {python_arango-8.1.3 → python_arango-8.1.4}/docs/errno.rst +0 -0
  60. {python_arango-8.1.3 → python_arango-8.1.4}/docs/errors.rst +0 -0
  61. {python_arango-8.1.3 → python_arango-8.1.4}/docs/foxx.rst +0 -0
  62. {python_arango-8.1.3 → python_arango-8.1.4}/docs/graph.rst +0 -0
  63. {python_arango-8.1.3 → python_arango-8.1.4}/docs/http.rst +0 -0
  64. {python_arango-8.1.3 → python_arango-8.1.4}/docs/index.rst +0 -0
  65. {python_arango-8.1.3 → python_arango-8.1.4}/docs/indexes.rst +0 -0
  66. {python_arango-8.1.3 → python_arango-8.1.4}/docs/logging.rst +0 -0
  67. {python_arango-8.1.3 → python_arango-8.1.4}/docs/make.bat +0 -0
  68. {python_arango-8.1.3 → python_arango-8.1.4}/docs/overload.rst +0 -0
  69. {python_arango-8.1.3 → python_arango-8.1.4}/docs/overview.rst +0 -0
  70. {python_arango-8.1.3 → python_arango-8.1.4}/docs/pregel.rst +0 -0
  71. {python_arango-8.1.3 → python_arango-8.1.4}/docs/replication.rst +0 -0
  72. {python_arango-8.1.3 → python_arango-8.1.4}/docs/requirements.txt +0 -0
  73. {python_arango-8.1.3 → python_arango-8.1.4}/docs/schema.rst +0 -0
  74. {python_arango-8.1.3 → python_arango-8.1.4}/docs/serializer.rst +0 -0
  75. {python_arango-8.1.3 → python_arango-8.1.4}/docs/simple.rst +0 -0
  76. {python_arango-8.1.3 → python_arango-8.1.4}/docs/specs.rst +0 -0
  77. {python_arango-8.1.3 → python_arango-8.1.4}/docs/static/logo.png +0 -0
  78. {python_arango-8.1.3 → python_arango-8.1.4}/docs/task.rst +0 -0
  79. {python_arango-8.1.3 → python_arango-8.1.4}/docs/threading.rst +0 -0
  80. {python_arango-8.1.3 → python_arango-8.1.4}/docs/transaction.rst +0 -0
  81. {python_arango-8.1.3 → python_arango-8.1.4}/docs/user.rst +0 -0
  82. {python_arango-8.1.3 → python_arango-8.1.4}/docs/view.rst +0 -0
  83. {python_arango-8.1.3 → python_arango-8.1.4}/docs/wal.rst +0 -0
  84. {python_arango-8.1.3 → python_arango-8.1.4}/pyproject.toml +0 -0
  85. {python_arango-8.1.3 → python_arango-8.1.4}/python_arango.egg-info/SOURCES.txt +0 -0
  86. {python_arango-8.1.3 → python_arango-8.1.4}/python_arango.egg-info/dependency_links.txt +0 -0
  87. {python_arango-8.1.3 → python_arango-8.1.4}/python_arango.egg-info/requires.txt +0 -0
  88. {python_arango-8.1.3 → python_arango-8.1.4}/python_arango.egg-info/top_level.txt +0 -0
  89. {python_arango-8.1.3 → python_arango-8.1.4}/setup.cfg +0 -0
  90. {python_arango-8.1.3 → python_arango-8.1.4}/setup.py +0 -0
  91. {python_arango-8.1.3 → 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
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>
@@ -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
- :type profile: bool
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.
@@ -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
 
@@ -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.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",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-arango
3
- Version: 8.1.3
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>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes