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