python-arango 8.2.1__tar.gz → 8.2.2__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.2.1 → python_arango-8.2.2}/PKG-INFO +1 -1
  2. {python_arango-8.2.1 → python_arango-8.2.2}/arango/backup.py +1 -1
  3. {python_arango-8.2.1 → python_arango-8.2.2}/arango/cluster.py +1 -1
  4. {python_arango-8.2.1 → python_arango-8.2.2}/arango/collection.py +16 -0
  5. {python_arango-8.2.1 → python_arango-8.2.2}/arango/database.py +40 -1
  6. {python_arango-8.2.1 → python_arango-8.2.2}/arango/exceptions.py +8 -0
  7. {python_arango-8.2.1 → python_arango-8.2.2}/arango/request.py +1 -1
  8. {python_arango-8.2.1 → python_arango-8.2.2}/docs/foxx.rst +2 -2
  9. {python_arango-8.2.1 → python_arango-8.2.2}/python_arango.egg-info/PKG-INFO +1 -1
  10. {python_arango-8.2.1 → python_arango-8.2.2}/.circleci/config.yml +0 -0
  11. {python_arango-8.2.1 → python_arango-8.2.2}/.github/workflows/codeql.yaml +0 -0
  12. {python_arango-8.2.1 → python_arango-8.2.2}/.github/workflows/docs.yaml +0 -0
  13. {python_arango-8.2.1 → python_arango-8.2.2}/.github/workflows/pypi.yaml +0 -0
  14. {python_arango-8.2.1 → python_arango-8.2.2}/.gitignore +0 -0
  15. {python_arango-8.2.1 → python_arango-8.2.2}/.pre-commit-config.yaml +0 -0
  16. {python_arango-8.2.1 → python_arango-8.2.2}/.readthedocs.yaml +0 -0
  17. {python_arango-8.2.1 → python_arango-8.2.2}/CONTRIBUTING.md +0 -0
  18. {python_arango-8.2.1 → python_arango-8.2.2}/LICENSE +0 -0
  19. {python_arango-8.2.1 → python_arango-8.2.2}/MANIFEST.in +0 -0
  20. {python_arango-8.2.1 → python_arango-8.2.2}/README.md +0 -0
  21. {python_arango-8.2.1 → python_arango-8.2.2}/arango/__init__.py +0 -0
  22. {python_arango-8.2.1 → python_arango-8.2.2}/arango/api.py +0 -0
  23. {python_arango-8.2.1 → python_arango-8.2.2}/arango/aql.py +0 -0
  24. {python_arango-8.2.1 → python_arango-8.2.2}/arango/client.py +0 -0
  25. {python_arango-8.2.1 → python_arango-8.2.2}/arango/connection.py +0 -0
  26. {python_arango-8.2.1 → python_arango-8.2.2}/arango/cursor.py +0 -0
  27. {python_arango-8.2.1 → python_arango-8.2.2}/arango/errno.py +0 -0
  28. {python_arango-8.2.1 → python_arango-8.2.2}/arango/executor.py +0 -0
  29. {python_arango-8.2.1 → python_arango-8.2.2}/arango/formatter.py +0 -0
  30. {python_arango-8.2.1 → python_arango-8.2.2}/arango/foxx.py +0 -0
  31. {python_arango-8.2.1 → python_arango-8.2.2}/arango/graph.py +0 -0
  32. {python_arango-8.2.1 → python_arango-8.2.2}/arango/http.py +0 -0
  33. {python_arango-8.2.1 → python_arango-8.2.2}/arango/job.py +0 -0
  34. {python_arango-8.2.1 → python_arango-8.2.2}/arango/pregel.py +0 -0
  35. {python_arango-8.2.1 → python_arango-8.2.2}/arango/py.typed +0 -0
  36. {python_arango-8.2.1 → python_arango-8.2.2}/arango/replication.py +0 -0
  37. {python_arango-8.2.1 → python_arango-8.2.2}/arango/resolver.py +0 -0
  38. {python_arango-8.2.1 → python_arango-8.2.2}/arango/response.py +0 -0
  39. {python_arango-8.2.1 → python_arango-8.2.2}/arango/result.py +0 -0
  40. {python_arango-8.2.1 → python_arango-8.2.2}/arango/typings.py +0 -0
  41. {python_arango-8.2.1 → python_arango-8.2.2}/arango/utils.py +0 -0
  42. {python_arango-8.2.1 → python_arango-8.2.2}/arango/wal.py +0 -0
  43. {python_arango-8.2.1 → python_arango-8.2.2}/docs/Makefile +0 -0
  44. {python_arango-8.2.1 → python_arango-8.2.2}/docs/admin.rst +0 -0
  45. {python_arango-8.2.1 → python_arango-8.2.2}/docs/analyzer.rst +0 -0
  46. {python_arango-8.2.1 → python_arango-8.2.2}/docs/aql.rst +0 -0
  47. {python_arango-8.2.1 → python_arango-8.2.2}/docs/async.rst +0 -0
  48. {python_arango-8.2.1 → python_arango-8.2.2}/docs/auth.rst +0 -0
  49. {python_arango-8.2.1 → python_arango-8.2.2}/docs/backup.rst +0 -0
  50. {python_arango-8.2.1 → python_arango-8.2.2}/docs/batch.rst +0 -0
  51. {python_arango-8.2.1 → python_arango-8.2.2}/docs/certificates.rst +0 -0
  52. {python_arango-8.2.1 → python_arango-8.2.2}/docs/cluster.rst +0 -0
  53. {python_arango-8.2.1 → python_arango-8.2.2}/docs/collection.rst +0 -0
  54. {python_arango-8.2.1 → python_arango-8.2.2}/docs/compression.rst +0 -0
  55. {python_arango-8.2.1 → python_arango-8.2.2}/docs/conf.py +0 -0
  56. {python_arango-8.2.1 → python_arango-8.2.2}/docs/contributing.rst +0 -0
  57. {python_arango-8.2.1 → python_arango-8.2.2}/docs/cursor.rst +0 -0
  58. {python_arango-8.2.1 → python_arango-8.2.2}/docs/database.rst +0 -0
  59. {python_arango-8.2.1 → python_arango-8.2.2}/docs/document.rst +0 -0
  60. {python_arango-8.2.1 → python_arango-8.2.2}/docs/errno.rst +0 -0
  61. {python_arango-8.2.1 → python_arango-8.2.2}/docs/errors.rst +0 -0
  62. {python_arango-8.2.1 → python_arango-8.2.2}/docs/graph.rst +0 -0
  63. {python_arango-8.2.1 → python_arango-8.2.2}/docs/http.rst +0 -0
  64. {python_arango-8.2.1 → python_arango-8.2.2}/docs/index.rst +0 -0
  65. {python_arango-8.2.1 → python_arango-8.2.2}/docs/indexes.rst +0 -0
  66. {python_arango-8.2.1 → python_arango-8.2.2}/docs/logging.rst +0 -0
  67. {python_arango-8.2.1 → python_arango-8.2.2}/docs/make.bat +0 -0
  68. {python_arango-8.2.1 → python_arango-8.2.2}/docs/overload.rst +0 -0
  69. {python_arango-8.2.1 → python_arango-8.2.2}/docs/overview.rst +0 -0
  70. {python_arango-8.2.1 → python_arango-8.2.2}/docs/pregel.rst +0 -0
  71. {python_arango-8.2.1 → python_arango-8.2.2}/docs/replication.rst +0 -0
  72. {python_arango-8.2.1 → python_arango-8.2.2}/docs/requirements.txt +0 -0
  73. {python_arango-8.2.1 → python_arango-8.2.2}/docs/schema.rst +0 -0
  74. {python_arango-8.2.1 → python_arango-8.2.2}/docs/serializer.rst +0 -0
  75. {python_arango-8.2.1 → python_arango-8.2.2}/docs/simple.rst +0 -0
  76. {python_arango-8.2.1 → python_arango-8.2.2}/docs/specs.rst +0 -0
  77. {python_arango-8.2.1 → python_arango-8.2.2}/docs/static/logo.png +0 -0
  78. {python_arango-8.2.1 → python_arango-8.2.2}/docs/task.rst +0 -0
  79. {python_arango-8.2.1 → python_arango-8.2.2}/docs/threading.rst +0 -0
  80. {python_arango-8.2.1 → python_arango-8.2.2}/docs/transaction.rst +0 -0
  81. {python_arango-8.2.1 → python_arango-8.2.2}/docs/user.rst +0 -0
  82. {python_arango-8.2.1 → python_arango-8.2.2}/docs/view.rst +0 -0
  83. {python_arango-8.2.1 → python_arango-8.2.2}/docs/wal.rst +0 -0
  84. {python_arango-8.2.1 → python_arango-8.2.2}/pyproject.toml +0 -0
  85. {python_arango-8.2.1 → python_arango-8.2.2}/python_arango.egg-info/SOURCES.txt +0 -0
  86. {python_arango-8.2.1 → python_arango-8.2.2}/python_arango.egg-info/dependency_links.txt +0 -0
  87. {python_arango-8.2.1 → python_arango-8.2.2}/python_arango.egg-info/requires.txt +0 -0
  88. {python_arango-8.2.1 → python_arango-8.2.2}/python_arango.egg-info/top_level.txt +0 -0
  89. {python_arango-8.2.1 → python_arango-8.2.2}/setup.cfg +0 -0
  90. {python_arango-8.2.1 → python_arango-8.2.2}/setup.py +0 -0
  91. {python_arango-8.2.1 → python_arango-8.2.2}/starter.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-arango
3
- Version: 8.2.1
3
+ Version: 8.2.2
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>
@@ -33,7 +33,7 @@ class Backup(ApiGroup): # pragma: no cover
33
33
  :type backup_id: str
34
34
  :return: Backup details.
35
35
  :rtype: dict
36
- :raise arango.exceptions.BackupGetError: If delete fails.
36
+ :raise arango.exceptions.BackupGetError: If the operation fails.
37
37
  """
38
38
  request = Request(
39
39
  method="post",
@@ -261,7 +261,7 @@ class Cluster(ApiGroup): # pragma: no cover
261
261
 
262
262
  :return: List of endpoints.
263
263
  :rtype: [str]
264
- :raise arango.exceptions.ServerEndpointsError: If retrieval fails.
264
+ :raise arango.exceptions.ClusterEndpointsError: If retrieval fails.
265
265
  """
266
266
  request = Request(method="get", endpoint="/_api/cluster/endpoints")
267
267
 
@@ -537,10 +537,18 @@ class Collection(ApiGroup):
537
537
  def load(self) -> Result[bool]:
538
538
  """Load the collection into memory.
539
539
 
540
+ .. note::
541
+ The load function is deprecated from version 3.8.0 onwards and is a
542
+ no-op from version 3.9.0 onwards. It should no longer be used, as it
543
+ may be removed in a future version of ArangoDB.
544
+
540
545
  :return: True if collection was loaded successfully.
541
546
  :rtype: bool
542
547
  :raise arango.exceptions.CollectionLoadError: If operation fails.
543
548
  """
549
+ m = "The load function is deprecated from version 3.8.0 onwards and is a no-op from version 3.9.0 onwards." # noqa: E501
550
+ warn(m, DeprecationWarning, stacklevel=2)
551
+
544
552
  request = Request(method="put", endpoint=f"/_api/collection/{self.name}/load")
545
553
 
546
554
  def response_handler(resp: Response) -> bool:
@@ -553,10 +561,18 @@ class Collection(ApiGroup):
553
561
  def unload(self) -> Result[bool]:
554
562
  """Unload the collection from memory.
555
563
 
564
+ .. note::
565
+ The unload function is deprecated from version 3.8.0 onwards and is a
566
+ no-op from version 3.9.0 onwards. It should no longer be used, as it
567
+ may be removed in a future version of ArangoDB.
568
+
556
569
  :return: True if collection was unloaded successfully.
557
570
  :rtype: bool
558
571
  :raise arango.exceptions.CollectionUnloadError: If operation fails.
559
572
  """
573
+ m = "The unload function is deprecated from version 3.8.0 onwards and is a no-op from version 3.9.0 onwards." # noqa: E501
574
+ warn(m, DeprecationWarning, stacklevel=2)
575
+
560
576
  request = Request(method="put", endpoint=f"/_api/collection/{self.name}/unload")
561
577
 
562
578
  def response_handler(resp: Response) -> bool:
@@ -27,6 +27,7 @@ from arango.exceptions import (
27
27
  AsyncJobListError,
28
28
  CollectionCreateError,
29
29
  CollectionDeleteError,
30
+ CollectionKeyGeneratorsError,
30
31
  CollectionListError,
31
32
  DatabaseCompactError,
32
33
  DatabaseCreateError,
@@ -44,6 +45,7 @@ from arango.exceptions import (
44
45
  PermissionResetError,
45
46
  PermissionUpdateError,
46
47
  ServerAvailableOptionsGetError,
48
+ ServerCheckAvailabilityError,
47
49
  ServerCurrentOptionsGetError,
48
50
  ServerDetailsError,
49
51
  ServerEchoError,
@@ -444,7 +446,7 @@ class Database(ApiGroup):
444
446
  :type force: bool
445
447
  :return: Server license.
446
448
  :rtype: dict
447
- :raise arango.exceptions.ServerLicenseError: If retrieval fails.
449
+ :raise arango.exceptions.ServerLicenseSetError: If retrieval fails.
448
450
  """
449
451
  request = Request(
450
452
  method="put",
@@ -480,6 +482,25 @@ class Database(ApiGroup):
480
482
 
481
483
  return self._execute(request, response_handler)
482
484
 
485
+ def check_availability(self) -> Result[str]:
486
+ """Return ArangoDB server availability mode.
487
+
488
+ :return: Server availability mode ("readonly" or "default").
489
+ :rtype: str
490
+ :raise arango.exceptions.ServerCheckAvailabilityError: If retrieval fails.
491
+ """
492
+ request = Request(
493
+ method="get",
494
+ endpoint="/_admin/server/availability",
495
+ )
496
+
497
+ def response_handler(resp: Response) -> str:
498
+ if not resp.is_success:
499
+ raise ServerCheckAvailabilityError(resp, request)
500
+ return str(resp.body["mode"])
501
+
502
+ return self._execute(request, response_handler)
503
+
483
504
  def compact(
484
505
  self,
485
506
  change_level: Optional[bool] = None,
@@ -1068,6 +1089,7 @@ class Database(ApiGroup):
1068
1089
 
1069
1090
  :return: Server metrics in Prometheus format.
1070
1091
  :rtype: str
1092
+ :raise arango.exceptions.ServerMetricsError: If operation fails.
1071
1093
  """
1072
1094
  request = Request(method="get", endpoint="/_admin/metrics/v2")
1073
1095
 
@@ -1623,6 +1645,23 @@ class Database(ApiGroup):
1623
1645
 
1624
1646
  return self._execute(request, response_handler)
1625
1647
 
1648
+ def key_generators(self) -> Result[List[str]]:
1649
+ """Returns the available key generators for collections.
1650
+
1651
+ :return: List of available key generators.
1652
+ :rtype: [str]
1653
+ :raise arango.exceptions.CollectionKeyGeneratorsError: If retrieval fails.
1654
+ """ # noqa: E501
1655
+ request = Request(method="get", endpoint="/_api/key-generators")
1656
+
1657
+ def response_handler(resp: Response) -> List[str]:
1658
+ if not resp.is_success:
1659
+ raise CollectionKeyGeneratorsError(resp, request)
1660
+ result: List[str] = resp.body["keyGenerators"]
1661
+ return result
1662
+
1663
+ return self._execute(request, response_handler)
1664
+
1626
1665
  ####################
1627
1666
  # Graph Management #
1628
1667
  ####################
@@ -298,6 +298,10 @@ class CollectionTruncateError(ArangoServerError):
298
298
  """Failed to truncate collection."""
299
299
 
300
300
 
301
+ class CollectionKeyGeneratorsError(ArangoServerError):
302
+ """Failed to retrieve key generators."""
303
+
304
+
301
305
  class CollectionLoadError(ArangoServerError):
302
306
  """Failed to load collection."""
303
307
 
@@ -650,6 +654,10 @@ class ServerTimeError(ArangoServerError):
650
654
  """Failed to retrieve server system time."""
651
655
 
652
656
 
657
+ class ServerCheckAvailabilityError(ArangoServerError):
658
+ """Failed to retrieve server availability mode."""
659
+
660
+
653
661
  class ServerEchoError(ArangoServerError):
654
662
  """Failed to retrieve details on last request."""
655
663
 
@@ -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.2.1"
15
+ driver_version = "8.2.2"
16
16
  driver_header = "python-arango/" + driver_version + " (" + flags + ")"
17
17
  normalized_headers: Headers = {
18
18
  "charset": "utf-8",
@@ -83,9 +83,9 @@ information, refer to `ArangoDB manual`_.
83
83
  foxx.readme(service_mount)
84
84
  foxx.swagger(service_mount)
85
85
  foxx.download(service_mount)
86
- foxx.commit(service_mount)
86
+ foxx.commit()
87
87
  foxx.scripts(service_mount)
88
- foxx.run_script(service_mount, 'setup', [])
88
+ foxx.run_script(service_mount, 'setup', {})
89
89
  foxx.run_tests(service_mount, reporter='xunit', output_format='xml')
90
90
 
91
91
  # Delete a service.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-arango
3
- Version: 8.2.1
3
+ Version: 8.2.2
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