python-arango 8.0.0__tar.gz → 8.1.1__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.1}/.github/workflows/docs.yaml +3 -2
  2. {python_arango-8.0.0 → python_arango-8.1.1}/.readthedocs.yaml +1 -0
  3. {python_arango-8.0.0 → python_arango-8.1.1}/PKG-INFO +1 -2
  4. {python_arango-8.0.0 → python_arango-8.1.1}/arango/cluster.py +55 -0
  5. {python_arango-8.0.0 → python_arango-8.1.1}/arango/collection.py +4 -4
  6. {python_arango-8.0.0 → python_arango-8.1.1}/arango/database.py +54 -2
  7. {python_arango-8.0.0 → python_arango-8.1.1}/arango/exceptions.py +8 -0
  8. {python_arango-8.0.0 → python_arango-8.1.1}/arango/executor.py +5 -0
  9. {python_arango-8.0.0 → python_arango-8.1.1}/arango/formatter.py +6 -0
  10. {python_arango-8.0.0 → python_arango-8.1.1}/arango/request.py +1 -1
  11. {python_arango-8.0.0 → python_arango-8.1.1}/docs/admin.rst +1 -1
  12. {python_arango-8.0.0 → python_arango-8.1.1}/docs/conf.py +3 -0
  13. {python_arango-8.0.0 → python_arango-8.1.1}/pyproject.toml +0 -1
  14. {python_arango-8.0.0 → python_arango-8.1.1}/python_arango.egg-info/PKG-INFO +1 -2
  15. {python_arango-8.0.0 → python_arango-8.1.1}/python_arango.egg-info/requires.txt +0 -1
  16. {python_arango-8.0.0 → python_arango-8.1.1}/starter.sh +1 -1
  17. {python_arango-8.0.0 → python_arango-8.1.1}/.circleci/config.yml +0 -0
  18. {python_arango-8.0.0 → python_arango-8.1.1}/.github/workflows/codeql.yaml +0 -0
  19. {python_arango-8.0.0 → python_arango-8.1.1}/.github/workflows/pypi.yaml +0 -0
  20. {python_arango-8.0.0 → python_arango-8.1.1}/.gitignore +0 -0
  21. {python_arango-8.0.0 → python_arango-8.1.1}/.pre-commit-config.yaml +0 -0
  22. {python_arango-8.0.0 → python_arango-8.1.1}/CONTRIBUTING.md +0 -0
  23. {python_arango-8.0.0 → python_arango-8.1.1}/LICENSE +0 -0
  24. {python_arango-8.0.0 → python_arango-8.1.1}/MANIFEST.in +0 -0
  25. {python_arango-8.0.0 → python_arango-8.1.1}/README.md +0 -0
  26. {python_arango-8.0.0 → python_arango-8.1.1}/arango/__init__.py +0 -0
  27. {python_arango-8.0.0 → python_arango-8.1.1}/arango/api.py +0 -0
  28. {python_arango-8.0.0 → python_arango-8.1.1}/arango/aql.py +0 -0
  29. {python_arango-8.0.0 → python_arango-8.1.1}/arango/backup.py +0 -0
  30. {python_arango-8.0.0 → python_arango-8.1.1}/arango/client.py +0 -0
  31. {python_arango-8.0.0 → python_arango-8.1.1}/arango/connection.py +0 -0
  32. {python_arango-8.0.0 → python_arango-8.1.1}/arango/cursor.py +0 -0
  33. {python_arango-8.0.0 → python_arango-8.1.1}/arango/errno.py +0 -0
  34. {python_arango-8.0.0 → python_arango-8.1.1}/arango/foxx.py +0 -0
  35. {python_arango-8.0.0 → python_arango-8.1.1}/arango/graph.py +0 -0
  36. {python_arango-8.0.0 → python_arango-8.1.1}/arango/http.py +0 -0
  37. {python_arango-8.0.0 → python_arango-8.1.1}/arango/job.py +0 -0
  38. {python_arango-8.0.0 → python_arango-8.1.1}/arango/pregel.py +0 -0
  39. {python_arango-8.0.0 → python_arango-8.1.1}/arango/py.typed +0 -0
  40. {python_arango-8.0.0 → python_arango-8.1.1}/arango/replication.py +0 -0
  41. {python_arango-8.0.0 → python_arango-8.1.1}/arango/resolver.py +0 -0
  42. {python_arango-8.0.0 → python_arango-8.1.1}/arango/response.py +0 -0
  43. {python_arango-8.0.0 → python_arango-8.1.1}/arango/result.py +0 -0
  44. {python_arango-8.0.0 → python_arango-8.1.1}/arango/typings.py +0 -0
  45. {python_arango-8.0.0 → python_arango-8.1.1}/arango/utils.py +0 -0
  46. {python_arango-8.0.0 → python_arango-8.1.1}/arango/wal.py +0 -0
  47. {python_arango-8.0.0 → python_arango-8.1.1}/docs/Makefile +0 -0
  48. {python_arango-8.0.0 → python_arango-8.1.1}/docs/analyzer.rst +0 -0
  49. {python_arango-8.0.0 → python_arango-8.1.1}/docs/aql.rst +0 -0
  50. {python_arango-8.0.0 → python_arango-8.1.1}/docs/async.rst +0 -0
  51. {python_arango-8.0.0 → python_arango-8.1.1}/docs/auth.rst +0 -0
  52. {python_arango-8.0.0 → python_arango-8.1.1}/docs/backup.rst +0 -0
  53. {python_arango-8.0.0 → python_arango-8.1.1}/docs/batch.rst +0 -0
  54. {python_arango-8.0.0 → python_arango-8.1.1}/docs/certificates.rst +0 -0
  55. {python_arango-8.0.0 → python_arango-8.1.1}/docs/cluster.rst +0 -0
  56. {python_arango-8.0.0 → python_arango-8.1.1}/docs/collection.rst +0 -0
  57. {python_arango-8.0.0 → python_arango-8.1.1}/docs/compression.rst +0 -0
  58. {python_arango-8.0.0 → python_arango-8.1.1}/docs/contributing.rst +0 -0
  59. {python_arango-8.0.0 → python_arango-8.1.1}/docs/cursor.rst +0 -0
  60. {python_arango-8.0.0 → python_arango-8.1.1}/docs/database.rst +0 -0
  61. {python_arango-8.0.0 → python_arango-8.1.1}/docs/document.rst +0 -0
  62. {python_arango-8.0.0 → python_arango-8.1.1}/docs/errno.rst +0 -0
  63. {python_arango-8.0.0 → python_arango-8.1.1}/docs/errors.rst +0 -0
  64. {python_arango-8.0.0 → python_arango-8.1.1}/docs/foxx.rst +0 -0
  65. {python_arango-8.0.0 → python_arango-8.1.1}/docs/graph.rst +0 -0
  66. {python_arango-8.0.0 → python_arango-8.1.1}/docs/http.rst +0 -0
  67. {python_arango-8.0.0 → python_arango-8.1.1}/docs/index.rst +0 -0
  68. {python_arango-8.0.0 → python_arango-8.1.1}/docs/indexes.rst +0 -0
  69. {python_arango-8.0.0 → python_arango-8.1.1}/docs/logging.rst +0 -0
  70. {python_arango-8.0.0 → python_arango-8.1.1}/docs/make.bat +0 -0
  71. {python_arango-8.0.0 → python_arango-8.1.1}/docs/overload.rst +0 -0
  72. {python_arango-8.0.0 → python_arango-8.1.1}/docs/overview.rst +0 -0
  73. {python_arango-8.0.0 → python_arango-8.1.1}/docs/pregel.rst +0 -0
  74. {python_arango-8.0.0 → python_arango-8.1.1}/docs/replication.rst +0 -0
  75. {python_arango-8.0.0 → python_arango-8.1.1}/docs/requirements.txt +0 -0
  76. {python_arango-8.0.0 → python_arango-8.1.1}/docs/schema.rst +0 -0
  77. {python_arango-8.0.0 → python_arango-8.1.1}/docs/serializer.rst +0 -0
  78. {python_arango-8.0.0 → python_arango-8.1.1}/docs/simple.rst +0 -0
  79. {python_arango-8.0.0 → python_arango-8.1.1}/docs/specs.rst +0 -0
  80. {python_arango-8.0.0 → python_arango-8.1.1}/docs/static/logo.png +0 -0
  81. {python_arango-8.0.0 → python_arango-8.1.1}/docs/task.rst +0 -0
  82. {python_arango-8.0.0 → python_arango-8.1.1}/docs/threading.rst +0 -0
  83. {python_arango-8.0.0 → python_arango-8.1.1}/docs/transaction.rst +0 -0
  84. {python_arango-8.0.0 → python_arango-8.1.1}/docs/user.rst +0 -0
  85. {python_arango-8.0.0 → python_arango-8.1.1}/docs/view.rst +0 -0
  86. {python_arango-8.0.0 → python_arango-8.1.1}/docs/wal.rst +0 -0
  87. {python_arango-8.0.0 → python_arango-8.1.1}/python_arango.egg-info/SOURCES.txt +0 -0
  88. {python_arango-8.0.0 → python_arango-8.1.1}/python_arango.egg-info/dependency_links.txt +0 -0
  89. {python_arango-8.0.0 → python_arango-8.1.1}/python_arango.egg-info/top_level.txt +0 -0
  90. {python_arango-8.0.0 → python_arango-8.1.1}/setup.cfg +0 -0
  91. {python_arango-8.0.0 → python_arango-8.1.1}/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.1
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
 
@@ -15,6 +15,7 @@ from arango.exceptions import (
15
15
  ClusterServerRoleError,
16
16
  ClusterServerStatisticsError,
17
17
  ClusterServerVersionError,
18
+ ClusterVpackSortMigrationError,
18
19
  )
19
20
  from arango.formatter import format_body
20
21
  from arango.request import Request
@@ -444,3 +445,57 @@ class Cluster(ApiGroup): # pragma: no cover
444
445
  return result
445
446
 
446
447
  return self._execute(request, response_handler)
448
+
449
+ def vpack_sort_migration_status(self) -> Result[Json]:
450
+ """Query the status of the vpack sorting migration.
451
+
452
+ :return: Status of the VPack sort migration.
453
+ :rtype: dict
454
+ """
455
+ request = Request(
456
+ method="get", endpoint="/_admin/cluster/vpackSortMigration/status"
457
+ )
458
+
459
+ def response_handler(resp: Response) -> Json:
460
+ if not resp.is_success:
461
+ raise ClusterVpackSortMigrationError(resp, request)
462
+ result: Json = resp.body["result"]
463
+ return result
464
+
465
+ return self._execute(request, response_handler)
466
+
467
+ def vpack_sort_migration_index_check(self) -> Result[Json]:
468
+ """Check for indexes impacted by the sorting behavior before 3.12.2.
469
+
470
+ :return: Status of indexes.
471
+ :rtype: dict
472
+ """
473
+ request = Request(
474
+ method="get", endpoint="/_admin/cluster/vpackSortMigration/check"
475
+ )
476
+
477
+ def response_handler(resp: Response) -> Json:
478
+ if not resp.is_success:
479
+ raise ClusterVpackSortMigrationError(resp, request)
480
+ result: Json = resp.body["result"]
481
+ return result
482
+
483
+ return self._execute(request, response_handler)
484
+
485
+ def migrate_vpack_sorting(self) -> Result[Json]:
486
+ """Migrate instances to the new VPack sorting behavior.
487
+
488
+ :return: Status of the VPack sort migration.
489
+ :rtype: dict
490
+ """
491
+ request = Request(
492
+ method="put", endpoint="/_admin/cluster/vpackSortMigration/migrate"
493
+ )
494
+
495
+ def response_handler(resp: Response) -> Json:
496
+ if not resp.is_success:
497
+ raise ClusterVpackSortMigrationError(resp, request)
498
+ result: Json = resp.body["result"]
499
+ return result
500
+
501
+ return self._execute(request, response_handler)
@@ -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,
@@ -934,7 +935,9 @@ class Database(ApiGroup):
934
935
 
935
936
  return self._execute(request, response_handler)
936
937
 
937
- def log_levels(self, server_id: Optional[str] = None) -> Result[Json]:
938
+ def log_levels(
939
+ self, server_id: Optional[str] = None, with_appenders: Optional[bool] = None
940
+ ) -> Result[Json]:
938
941
  """Return current logging levels.
939
942
 
940
943
  :param server_id: Forward log level to a specific server. This makes it
@@ -942,12 +945,16 @@ class Database(ApiGroup):
942
945
  JWT authentication whereas Coordinators also support authentication
943
946
  using usernames and passwords.
944
947
  :type server_id: str
948
+ :param with_appenders: Include appenders in the response.
949
+ :type with_appenders: bool
945
950
  :return: Current logging levels.
946
951
  :rtype: dict
947
952
  """
948
953
  params: Params = {}
949
954
  if server_id is not None:
950
955
  params["serverId"] = server_id
956
+ if with_appenders is not None:
957
+ params["withAppenders"] = with_appenders
951
958
 
952
959
  request = Request(method="get", endpoint="/_admin/log/level", params=params)
953
960
 
@@ -960,7 +967,10 @@ class Database(ApiGroup):
960
967
  return self._execute(request, response_handler)
961
968
 
962
969
  def set_log_levels(
963
- self, server_id: Optional[str] = None, **kwargs: Dict[str, Any]
970
+ self,
971
+ server_id: Optional[str] = None,
972
+ with_appenders: Optional[bool] = None,
973
+ **kwargs: Dict[str, Any],
964
974
  ) -> Result[Json]:
965
975
  """Set the logging levels.
966
976
 
@@ -982,6 +992,8 @@ class Database(ApiGroup):
982
992
  JWT authentication whereas Coordinators also support authentication
983
993
  using usernames and passwords.
984
994
  :type server_id: str | None
995
+ :param with_appenders: Include appenders in the request.
996
+ :type with_appenders: bool | None
985
997
  :param kwargs: Logging levels.
986
998
  :type kwargs: Dict[str, Any]
987
999
  :return: New logging levels.
@@ -990,6 +1002,8 @@ class Database(ApiGroup):
990
1002
  params: Params = {}
991
1003
  if server_id is not None:
992
1004
  params["serverId"] = server_id
1005
+ if with_appenders is not None:
1006
+ params["withAppenders"] = with_appenders
993
1007
 
994
1008
  request = Request(
995
1009
  method="put", endpoint="/_admin/log/level", params=params, data=kwargs
@@ -1003,6 +1017,35 @@ class Database(ApiGroup):
1003
1017
 
1004
1018
  return self._execute(request, response_handler)
1005
1019
 
1020
+ def reset_log_levels(self, server_id: Optional[str] = None) -> Result[Json]:
1021
+ """Reset the logging levels.
1022
+
1023
+ Revert the server’s log level settings to the values they had at startup,
1024
+ as determined by the startup options specified on the command-line,
1025
+ a configuration file, and the factory defaults.
1026
+
1027
+ :param server_id: Forward log level to a specific server. This makes it
1028
+ easier to adjust the log levels in clusters because DB-Servers require
1029
+ JWT authentication whereas Coordinators also support authentication
1030
+ using usernames and passwords.
1031
+ :type server_id: str | None
1032
+ :return: New logging levels.
1033
+ :rtype: dict
1034
+ """
1035
+ params: Params = {}
1036
+ if server_id is not None:
1037
+ params["serverId"] = server_id
1038
+
1039
+ request = Request(method="delete", endpoint="/_admin/log/level", params=params)
1040
+
1041
+ def response_handler(resp: Response) -> Json:
1042
+ if not resp.is_success:
1043
+ raise ServerLogLevelResetError(resp, request)
1044
+ result: Json = resp.body
1045
+ return result
1046
+
1047
+ return self._execute(request, response_handler)
1048
+
1006
1049
  def reload_routing(self) -> Result[bool]:
1007
1050
  """Reload the routing information.
1008
1051
 
@@ -3020,6 +3063,7 @@ class StandardDatabase(Database):
3020
3063
  allow_implicit: Optional[bool] = None,
3021
3064
  lock_timeout: Optional[int] = None,
3022
3065
  max_size: Optional[int] = None,
3066
+ skip_fast_lock_round: Optional[bool] = None,
3023
3067
  ) -> "TransactionDatabase":
3024
3068
  """Begin a transaction.
3025
3069
 
@@ -3043,6 +3087,9 @@ class StandardDatabase(Database):
3043
3087
  :type lock_timeout: int | None
3044
3088
  :param max_size: Max transaction size in bytes.
3045
3089
  :type max_size: int | None
3090
+ :param skip_fast_lock_round: Whether to disable fast locking for write
3091
+ operations.
3092
+ :type skip_fast_lock_round: bool | None
3046
3093
  :return: Database API wrapper object specifically for transactions.
3047
3094
  :rtype: arango.database.TransactionDatabase
3048
3095
  """
@@ -3055,6 +3102,7 @@ class StandardDatabase(Database):
3055
3102
  allow_implicit=allow_implicit,
3056
3103
  lock_timeout=lock_timeout,
3057
3104
  max_size=max_size,
3105
+ skip_fast_lock_round=skip_fast_lock_round,
3058
3106
  )
3059
3107
 
3060
3108
  def begin_controlled_execution(
@@ -3191,6 +3239,8 @@ class TransactionDatabase(Database):
3191
3239
  :param transaction_id: Initialize using an existing transaction instead of creating
3192
3240
  a new transaction.
3193
3241
  :type transaction_id: str | None
3242
+ :param skip_fast_lock_round: Whether to disable fast locking for write operations.
3243
+ :type skip_fast_lock_round: bool | None
3194
3244
  """
3195
3245
 
3196
3246
  def __init__(
@@ -3204,6 +3254,7 @@ class TransactionDatabase(Database):
3204
3254
  lock_timeout: Optional[int] = None,
3205
3255
  max_size: Optional[int] = None,
3206
3256
  transaction_id: Optional[str] = None,
3257
+ skip_fast_lock_round: Optional[bool] = None,
3207
3258
  ) -> None:
3208
3259
  self._executor: TransactionApiExecutor
3209
3260
  super().__init__(
@@ -3218,6 +3269,7 @@ class TransactionDatabase(Database):
3218
3269
  lock_timeout=lock_timeout,
3219
3270
  max_size=max_size,
3220
3271
  transaction_id=transaction_id,
3272
+ skip_fast_lock_round=skip_fast_lock_round,
3221
3273
  ),
3222
3274
  )
3223
3275
 
@@ -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
 
@@ -1043,6 +1047,10 @@ class ClusterRebalanceError(ArangoServerError):
1043
1047
  """Failed to execute cluster re-balancing operation (load/set)."""
1044
1048
 
1045
1049
 
1050
+ class ClusterVpackSortMigrationError(ArangoServerError):
1051
+ """Failed to execute vpack sort migration request."""
1052
+
1053
+
1046
1054
  ##################
1047
1055
  # JWT Exceptions #
1048
1056
  ##################
@@ -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(
@@ -365,6 +365,12 @@ def format_aql_query(body: Json) -> Json:
365
365
  # New in 3.11
366
366
  if "peakMemoryUsage" in body:
367
367
  result["peak_memory_usage"] = body["peakMemoryUsage"]
368
+
369
+ # New in 3.12.2
370
+ if "modificationQuery" in body:
371
+ result["modification_query"] = body["modificationQuery"]
372
+ if "warnings" in body:
373
+ result["warnings"] = body["warnings"]
368
374
  return verify_format(body, result)
369
375
 
370
376
 
@@ -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.1"
16
16
  driver_header = "python-arango/" + driver_version + " (" + flags + ")"
17
17
  normalized_headers: Headers = {
18
18
  "charset": "utf-8",
@@ -60,7 +60,7 @@ database.
60
60
  # Set the log .
61
61
  sys_db.set_log_levels(
62
62
  agency='DEBUG',
63
- collector='INFO',
63
+ deprecation='INFO',
64
64
  threads='WARNING'
65
65
  )
66
66
 
@@ -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.1
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