python-arango-async 1.2.2__tar.gz → 1.2.3__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_async-1.2.2 → python_arango_async-1.2.3}/.circleci/config.yml +21 -5
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/.github/workflows/pypi.yaml +2 -2
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/PKG-INFO +3 -3
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/README.md +1 -1
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/aql.py +9 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/cluster.py +4 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/database.py +26 -2
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/foxx.py +5 -1
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/typings.py +6 -1
- python_arango_async-1.2.3/arangoasync/version.py +1 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/aql.rst +4 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/cluster.rst +0 -4
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/foxx.rst +4 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/graph.rst +1 -1
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/overview.rst +1 -1
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/task.rst +4 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/pyproject.toml +1 -1
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/python_arango_async.egg-info/PKG-INFO +3 -3
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/python_arango_async.egg-info/SOURCES.txt +3 -1
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/python_arango_async.egg-info/requires.txt +1 -1
- python_arango_async-1.2.3/starter.sh +84 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/conftest.py +12 -11
- python_arango_async-1.2.3/tests/static/cluster-4.0.conf +15 -0
- python_arango_async-1.2.3/tests/static/single-4.0.conf +14 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_aql.py +10 -2
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_cluster.py +6 -4
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_database.py +16 -14
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_foxx.py +5 -1
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_task.py +5 -1
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_transaction.py +5 -1
- python_arango_async-1.2.2/arangoasync/version.py +0 -1
- python_arango_async-1.2.2/starter.sh +0 -60
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/.github/workflows/codeql.yaml +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/.github/workflows/docs.yaml +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/.gitignore +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/.pre-commit-config.yaml +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/.readthedocs.yaml +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/CONTRIBUTING.md +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/LICENSE +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/__init__.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/auth.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/backup.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/client.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/collection.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/compression.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/connection.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/cursor.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/errno.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/exceptions.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/executor.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/graph.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/http.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/job.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/logger.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/replication.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/request.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/resolver.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/response.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/result.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/arangoasync/serialization.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/admin.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/analyzer.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/async.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/authentication.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/backup.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/certificates.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/collection.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/compression.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/conf.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/cursor.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/database.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/document.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/errno.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/errors.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/helpers.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/http.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/index.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/indexes.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/logging.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/migration.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/serialization.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/specs.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/static/logo.png +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/transaction.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/user.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/docs/view.rst +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/python_arango_async.egg-info/dependency_links.txt +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/python_arango_async.egg-info/top_level.txt +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/setup.cfg +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/setup.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/__init__.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/helpers.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/static/cluster-3.12.conf +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/static/keyfile +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/static/service.zip +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/static/single-3.12.conf +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_analyzer.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_async.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_backup.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_client.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_collection.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_compression.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_connection.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_cursor.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_document.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_graph.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_http.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_resolver.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_typings.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_user.py +0 -0
- {python_arango_async-1.2.2 → python_arango_async-1.2.3}/tests/test_view.py +0 -0
|
@@ -4,7 +4,7 @@ executors:
|
|
|
4
4
|
python-container:
|
|
5
5
|
docker:
|
|
6
6
|
- image: cimg/python:3.12
|
|
7
|
-
resource_class: small
|
|
7
|
+
resource_class: arangodb/small-amd64
|
|
8
8
|
python-vm:
|
|
9
9
|
machine:
|
|
10
10
|
image: ubuntu-2404:current
|
|
@@ -15,18 +15,34 @@ workflows:
|
|
|
15
15
|
jobs:
|
|
16
16
|
- lint
|
|
17
17
|
- test:
|
|
18
|
-
name:
|
|
18
|
+
name: Python (<< matrix.python_version >>) - ArangoDB (enterprise, << matrix.arangodb_version >> << matrix.arangodb_config >>)
|
|
19
19
|
matrix:
|
|
20
20
|
parameters:
|
|
21
|
-
python_version: ["3.
|
|
21
|
+
python_version: ["3.13"]
|
|
22
22
|
arangodb_config: ["single", "cluster"]
|
|
23
23
|
arangodb_license: ["enterprise"]
|
|
24
24
|
arangodb_version: ["3.12"]
|
|
25
|
+
- test:
|
|
26
|
+
name: Python (<< matrix.python_version >>) - ArangoDB (enterprise-preview, << matrix.arangodb_version >> << matrix.arangodb_config >>)
|
|
27
|
+
matrix:
|
|
28
|
+
parameters:
|
|
29
|
+
python_version: ["3.13"]
|
|
30
|
+
arangodb_config: ["single", "cluster"]
|
|
31
|
+
arangodb_license: ["enterprise-preview"]
|
|
32
|
+
arangodb_version: ["4.0-nightly"]
|
|
33
|
+
- test:
|
|
34
|
+
name: Python (<< matrix.python_version >>) - ArangoDB (enterprise, 3.12 cluster)
|
|
35
|
+
matrix:
|
|
36
|
+
parameters:
|
|
37
|
+
python_version: ["3.10", "3.11", "3.12"]
|
|
38
|
+
arangodb_config: ["cluster"]
|
|
39
|
+
arangodb_license: ["enterprise"]
|
|
40
|
+
arangodb_version: ["3.12"]
|
|
25
41
|
|
|
26
42
|
jobs:
|
|
27
43
|
lint:
|
|
28
44
|
executor: python-container
|
|
29
|
-
resource_class: small
|
|
45
|
+
resource_class: arangodb/small-amd64
|
|
30
46
|
steps:
|
|
31
47
|
- checkout
|
|
32
48
|
- run:
|
|
@@ -86,7 +102,7 @@ jobs:
|
|
|
86
102
|
args+=("--cluster" "--port=8539" "--port=8549")
|
|
87
103
|
fi
|
|
88
104
|
|
|
89
|
-
if [ << parameters.arangodb_license >> != "enterprise" ]; then
|
|
105
|
+
if [ << parameters.arangodb_license >> != "enterprise" ] && [ << parameters.arangodb_license >> != "enterprise-preview" ]; then
|
|
90
106
|
args+=("--skip" "enterprise")
|
|
91
107
|
fi
|
|
92
108
|
|
|
@@ -31,10 +31,10 @@ jobs:
|
|
|
31
31
|
env:
|
|
32
32
|
TWINE_USERNAME: __token__
|
|
33
33
|
TWINE_PASSWORD: ${{ secrets.PYPI_TEST_TOKEN }}
|
|
34
|
-
run: twine upload --repository testpypi dist/*
|
|
34
|
+
run: twine upload --verbose --repository testpypi dist/*
|
|
35
35
|
|
|
36
36
|
- name: Publish to PyPI
|
|
37
37
|
env:
|
|
38
38
|
TWINE_USERNAME: __token__
|
|
39
39
|
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
|
|
40
|
-
run: twine upload --repository pypi dist/*
|
|
40
|
+
run: twine upload --verbose --repository pypi dist/*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-arango-async
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.3
|
|
4
4
|
Summary: Async Python Driver for ArangoDB
|
|
5
5
|
Author-email: Alexandru Petenchea <alexandru.petenchea@arangodb.com>, Anthony Mahanna <anthony.mahanna@arangodb.com>
|
|
6
6
|
Maintainer-email: Alexandru Petenchea <alexandru.petenchea@arangodb.com>, Anthony Mahanna <anthony.mahanna@arangodb.com>
|
|
@@ -26,7 +26,7 @@ Requires-Dist: multidict>=6.0
|
|
|
26
26
|
Requires-Dist: pyjwt>=2.10.0
|
|
27
27
|
Provides-Extra: dev
|
|
28
28
|
Requires-Dist: aiofiles>=24.1.0; extra == "dev"
|
|
29
|
-
Requires-Dist: black==26.1
|
|
29
|
+
Requires-Dist: black==26.3.1; extra == "dev"
|
|
30
30
|
Requires-Dist: flake8==7.3.0; extra == "dev"
|
|
31
31
|
Requires-Dist: isort>=5.10.1; extra == "dev"
|
|
32
32
|
Requires-Dist: mypy==1.15.0; extra == "dev"
|
|
@@ -169,7 +169,7 @@ async def main():
|
|
|
169
169
|
# Traverse the graph in outbound direction, breath-first.
|
|
170
170
|
query = """
|
|
171
171
|
FOR v, e, p IN 1..3 OUTBOUND 'students/01' GRAPH 'school'
|
|
172
|
-
OPTIONS {
|
|
172
|
+
OPTIONS { order: 'bfs', uniqueVertices: 'global' }
|
|
173
173
|
RETURN {vertex: v, edge: e, path: p}
|
|
174
174
|
"""
|
|
175
175
|
|
|
@@ -127,7 +127,7 @@ async def main():
|
|
|
127
127
|
# Traverse the graph in outbound direction, breath-first.
|
|
128
128
|
query = """
|
|
129
129
|
FOR v, e, p IN 1..3 OUTBOUND 'students/01' GRAPH 'school'
|
|
130
|
-
OPTIONS {
|
|
130
|
+
OPTIONS { order: 'bfs', uniqueVertices: 'global' }
|
|
131
131
|
RETURN {vertex: v, edge: e, path: p}
|
|
132
132
|
"""
|
|
133
133
|
|
|
@@ -678,6 +678,9 @@ class AQL:
|
|
|
678
678
|
async def functions(self, namespace: Optional[str] = None) -> Result[Jsons]:
|
|
679
679
|
"""List the registered used-defined AQL functions.
|
|
680
680
|
|
|
681
|
+
Warning:
|
|
682
|
+
AQL User Functions are no longer available in ArangoDB 4.0.
|
|
683
|
+
|
|
681
684
|
Args:
|
|
682
685
|
namespace (str | None): Returns all registered AQL user functions from
|
|
683
686
|
the specified namespace.
|
|
@@ -718,6 +721,9 @@ class AQL:
|
|
|
718
721
|
) -> Result[Json]:
|
|
719
722
|
"""Registers a user-defined AQL function (UDF) written in JavaScript.
|
|
720
723
|
|
|
724
|
+
Warning:
|
|
725
|
+
AQL User Functions are no longer available in ArangoDB 4.0.
|
|
726
|
+
|
|
721
727
|
Args:
|
|
722
728
|
name (str): Name of the function.
|
|
723
729
|
code (str): JavaScript code of the function.
|
|
@@ -756,6 +762,9 @@ class AQL:
|
|
|
756
762
|
) -> Result[Json]:
|
|
757
763
|
"""Remove a user-defined AQL function.
|
|
758
764
|
|
|
765
|
+
Warning:
|
|
766
|
+
AQL User Functions are no longer available in ArangoDB 4.0.
|
|
767
|
+
|
|
759
768
|
Args:
|
|
760
769
|
name (str): Name of the function.
|
|
761
770
|
group (bool | None): If set to `True`, the function name is treated
|
|
@@ -64,6 +64,10 @@ class Cluster:
|
|
|
64
64
|
async def statistics(self, db_server: str) -> Result[Json]:
|
|
65
65
|
"""Queries the statistics of the given DB-Server.
|
|
66
66
|
|
|
67
|
+
Warning:
|
|
68
|
+
DB-Server statistics are no longer available in ArangoDB 4.0.
|
|
69
|
+
Use :meth:`arangoasync.database.Database.metrics` instead.
|
|
70
|
+
|
|
67
71
|
Args:
|
|
68
72
|
db_server (str): The ID of the DB-Server.
|
|
69
73
|
|
|
@@ -234,6 +234,9 @@ class Database:
|
|
|
234
234
|
def foxx(self) -> Foxx:
|
|
235
235
|
"""Return Foxx API wrapper.
|
|
236
236
|
|
|
237
|
+
Warning:
|
|
238
|
+
Foxx microservice features are no longer available in ArangoDB 4.0.
|
|
239
|
+
|
|
237
240
|
Returns:
|
|
238
241
|
arangoasync.foxx.Foxx: Foxx API wrapper.
|
|
239
242
|
"""
|
|
@@ -2429,6 +2432,9 @@ class Database:
|
|
|
2429
2432
|
async def tasks(self) -> Result[Jsons]:
|
|
2430
2433
|
"""Fetches all existing tasks from the server.
|
|
2431
2434
|
|
|
2435
|
+
Warning:
|
|
2436
|
+
Tasks are no longer available in ArangoDB 4.0.
|
|
2437
|
+
|
|
2432
2438
|
Returns:
|
|
2433
2439
|
list: List of currently active server tasks.
|
|
2434
2440
|
|
|
@@ -2451,6 +2457,9 @@ class Database:
|
|
|
2451
2457
|
async def task(self, task_id: str) -> Result[Json]:
|
|
2452
2458
|
"""Return the details of an active server task.
|
|
2453
2459
|
|
|
2460
|
+
Warning:
|
|
2461
|
+
Tasks are no longer available in ArangoDB 4.0.
|
|
2462
|
+
|
|
2454
2463
|
Args:
|
|
2455
2464
|
task_id (str) -> Server task ID.
|
|
2456
2465
|
|
|
@@ -2484,6 +2493,9 @@ class Database:
|
|
|
2484
2493
|
) -> Result[Json]:
|
|
2485
2494
|
"""Create a new task.
|
|
2486
2495
|
|
|
2496
|
+
Warning:
|
|
2497
|
+
Tasks are no longer available in ArangoDB 4.0.
|
|
2498
|
+
|
|
2487
2499
|
Args:
|
|
2488
2500
|
command (str): The JavaScript code to be executed.
|
|
2489
2501
|
task_id (str | None): Optional task ID. If not provided, the server will
|
|
@@ -2542,6 +2554,9 @@ class Database:
|
|
|
2542
2554
|
) -> Result[bool]:
|
|
2543
2555
|
"""Delete a server task.
|
|
2544
2556
|
|
|
2557
|
+
Warning:
|
|
2558
|
+
Tasks are no longer available in ArangoDB 4.0.
|
|
2559
|
+
|
|
2545
2560
|
Args:
|
|
2546
2561
|
task_id (str): Task ID.
|
|
2547
2562
|
ignore_missing (bool): If `True`, do not raise an exception if the
|
|
@@ -2909,6 +2924,9 @@ class Database:
|
|
|
2909
2924
|
async def reload_routing(self) -> None:
|
|
2910
2925
|
"""Reload the routing information.
|
|
2911
2926
|
|
|
2927
|
+
Warning:
|
|
2928
|
+
Route reloading is no longer available in ArangoDB 4.0.
|
|
2929
|
+
|
|
2912
2930
|
Raises:
|
|
2913
2931
|
ServerReloadRoutingError: If the operation fails.
|
|
2914
2932
|
|
|
@@ -2926,6 +2944,9 @@ class Database:
|
|
|
2926
2944
|
async def echo(self, body: Optional[Json] = None) -> Result[Json]:
|
|
2927
2945
|
"""Return an object with the servers request information.
|
|
2928
2946
|
|
|
2947
|
+
Warning:
|
|
2948
|
+
Request echoing is no longer available in ArangoDB 4.0.
|
|
2949
|
+
|
|
2929
2950
|
Args:
|
|
2930
2951
|
body (dict | None): Optional body of the request.
|
|
2931
2952
|
|
|
@@ -2952,6 +2973,9 @@ class Database:
|
|
|
2952
2973
|
async def execute(self, command: str) -> Result[Any]:
|
|
2953
2974
|
"""Execute raw Javascript command on the server.
|
|
2954
2975
|
|
|
2976
|
+
Warning:
|
|
2977
|
+
Javascript command execution is no longer available in ArangoDB 4.0.
|
|
2978
|
+
|
|
2955
2979
|
Args:
|
|
2956
2980
|
command (str): Javascript command to execute.
|
|
2957
2981
|
|
|
@@ -3004,7 +3028,7 @@ class Database:
|
|
|
3004
3028
|
ServerMetricsError: If the operation fails.
|
|
3005
3029
|
|
|
3006
3030
|
References:
|
|
3007
|
-
- `metrics-api
|
|
3031
|
+
- `metrics-api <https://docs.arango.ai/arangodb/stable/develop/http-api/monitoring/metrics/#metrics-api>`__
|
|
3008
3032
|
""" # noqa: E501
|
|
3009
3033
|
params: Params = {}
|
|
3010
3034
|
if server_id is not None:
|
|
@@ -3012,7 +3036,7 @@ class Database:
|
|
|
3012
3036
|
|
|
3013
3037
|
request = Request(
|
|
3014
3038
|
method=Method.GET,
|
|
3015
|
-
endpoint="/_admin/metrics
|
|
3039
|
+
endpoint="/_admin/metrics",
|
|
3016
3040
|
params=params,
|
|
3017
3041
|
)
|
|
3018
3042
|
|
|
@@ -34,7 +34,11 @@ from arangoasync.typings import Json, Jsons, Params, RequestHeaders
|
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
class Foxx:
|
|
37
|
-
"""Foxx API wrapper.
|
|
37
|
+
"""Foxx API wrapper.
|
|
38
|
+
|
|
39
|
+
Warning:
|
|
40
|
+
Foxx microservice features are no longer available in ArangoDB 4.0.
|
|
41
|
+
"""
|
|
38
42
|
|
|
39
43
|
def __init__(self, executor: ApiExecutor) -> None:
|
|
40
44
|
self._executor = executor
|
|
@@ -12,6 +12,7 @@ from typing import (
|
|
|
12
12
|
TypeAlias,
|
|
13
13
|
cast,
|
|
14
14
|
)
|
|
15
|
+
from warnings import warn
|
|
15
16
|
|
|
16
17
|
from multidict import CIMultiDictProxy, MultiDict
|
|
17
18
|
|
|
@@ -564,7 +565,7 @@ class DatabaseProperties(JsonWrapper):
|
|
|
564
565
|
|
|
565
566
|
@property
|
|
566
567
|
def path(self) -> Optional[str]:
|
|
567
|
-
"""The filesystem path of the current database."""
|
|
568
|
+
"""The filesystem path of the current database. Removed in ArangoDB 4.0."""
|
|
568
569
|
return self._data.get("path")
|
|
569
570
|
|
|
570
571
|
@property
|
|
@@ -677,6 +678,8 @@ class CollectionProperties(JsonWrapper):
|
|
|
677
678
|
|
|
678
679
|
@property
|
|
679
680
|
def status_string(self) -> Optional[str]:
|
|
681
|
+
m = "statusString attribute has been removed in ArangoDB 4.0"
|
|
682
|
+
warn(m, DeprecationWarning, stacklevel=2)
|
|
680
683
|
return self._data.get("statusString")
|
|
681
684
|
|
|
682
685
|
@property
|
|
@@ -701,6 +704,8 @@ class CollectionProperties(JsonWrapper):
|
|
|
701
704
|
|
|
702
705
|
@property
|
|
703
706
|
def status(self) -> CollectionStatus:
|
|
707
|
+
m = "status attribute has been removed in ArangoDB 4.0"
|
|
708
|
+
warn(m, DeprecationWarning, stacklevel=2)
|
|
704
709
|
return CollectionStatus.from_int(self._data["status"])
|
|
705
710
|
|
|
706
711
|
@property
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.2.3"
|
|
@@ -90,6 +90,10 @@ See :class:`arangoasync.aql.AQL` for API specification.
|
|
|
90
90
|
AQL User Functions
|
|
91
91
|
==================
|
|
92
92
|
|
|
93
|
+
.. warning::
|
|
94
|
+
AQL User Functions are no longer available in ArangoDB 4.0.
|
|
95
|
+
|
|
96
|
+
|
|
93
97
|
**AQL User Functions** are custom functions you define in Javascript to extend
|
|
94
98
|
AQL functionality. They are somewhat similar to SQL procedures.
|
|
95
99
|
|
|
@@ -24,10 +24,6 @@ and architecture, refer to `ArangoDB Manual`_.
|
|
|
24
24
|
# Cluster health
|
|
25
25
|
health = await cluster.health()
|
|
26
26
|
|
|
27
|
-
# DB-Server statistics
|
|
28
|
-
db_server = "PRMR-2716c9d0-4b22-4c66-ba3d-f9cd3143e52b"
|
|
29
|
-
stats = await cluster.statistics(db_server)
|
|
30
|
-
|
|
31
27
|
# Cluster endpoints
|
|
32
28
|
endpoints = await cluster.endpoints()
|
|
33
29
|
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
Foxx
|
|
2
2
|
----
|
|
3
3
|
|
|
4
|
+
.. warning::
|
|
5
|
+
Foxx microservice features are no longer available in ArangoDB 4.0.
|
|
6
|
+
|
|
7
|
+
|
|
4
8
|
**Foxx** is a microservice framework which lets you define custom HTTP endpoints
|
|
5
9
|
that extend ArangoDB's REST API. For more information, refer to `ArangoDB Manual`_.
|
|
6
10
|
|
|
@@ -405,7 +405,7 @@ over edges and vertices using various algorithms.
|
|
|
405
405
|
# Traverse 1 to 3 hops from the vertex "teachers/jon",
|
|
406
406
|
query = """
|
|
407
407
|
FOR v, e, p IN 1..3 OUTBOUND 'teachers/jon' GRAPH 'school'
|
|
408
|
-
OPTIONS {
|
|
408
|
+
OPTIONS { order: 'bfs', uniqueVertices: 'global' }
|
|
409
409
|
RETURN {vertex: v, edge: e, path: p}
|
|
410
410
|
"""
|
|
411
411
|
|
|
@@ -116,7 +116,7 @@ Another example with `graphs`_:
|
|
|
116
116
|
# Traverse the graph in outbound direction, breath-first.
|
|
117
117
|
query = """
|
|
118
118
|
FOR v, e, p IN 1..3 OUTBOUND 'students/01' GRAPH 'school'
|
|
119
|
-
OPTIONS {
|
|
119
|
+
OPTIONS { order: 'bfs', uniqueVertices: 'global' }
|
|
120
120
|
RETURN {vertex: v, edge: e, path: p}
|
|
121
121
|
"""
|
|
122
122
|
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
Tasks
|
|
2
2
|
-----
|
|
3
3
|
|
|
4
|
+
.. warning::
|
|
5
|
+
Tasks are no longer available in ArangoDB 4.0.
|
|
6
|
+
|
|
7
|
+
|
|
4
8
|
ArangoDB can schedule user-defined Javascript snippets as one-time or periodic
|
|
5
9
|
(re-scheduled after each execution) tasks. Tasks are executed in the context of
|
|
6
10
|
the database they are defined in.
|
{python_arango_async-1.2.2 → python_arango_async-1.2.3}/python_arango_async.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-arango-async
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.3
|
|
4
4
|
Summary: Async Python Driver for ArangoDB
|
|
5
5
|
Author-email: Alexandru Petenchea <alexandru.petenchea@arangodb.com>, Anthony Mahanna <anthony.mahanna@arangodb.com>
|
|
6
6
|
Maintainer-email: Alexandru Petenchea <alexandru.petenchea@arangodb.com>, Anthony Mahanna <anthony.mahanna@arangodb.com>
|
|
@@ -26,7 +26,7 @@ Requires-Dist: multidict>=6.0
|
|
|
26
26
|
Requires-Dist: pyjwt>=2.10.0
|
|
27
27
|
Provides-Extra: dev
|
|
28
28
|
Requires-Dist: aiofiles>=24.1.0; extra == "dev"
|
|
29
|
-
Requires-Dist: black==26.1
|
|
29
|
+
Requires-Dist: black==26.3.1; extra == "dev"
|
|
30
30
|
Requires-Dist: flake8==7.3.0; extra == "dev"
|
|
31
31
|
Requires-Dist: isort>=5.10.1; extra == "dev"
|
|
32
32
|
Requires-Dist: mypy==1.15.0; extra == "dev"
|
|
@@ -169,7 +169,7 @@ async def main():
|
|
|
169
169
|
# Traverse the graph in outbound direction, breath-first.
|
|
170
170
|
query = """
|
|
171
171
|
FOR v, e, p IN 1..3 OUTBOUND 'students/01' GRAPH 'school'
|
|
172
|
-
OPTIONS {
|
|
172
|
+
OPTIONS { order: 'bfs', uniqueVertices: 'global' }
|
|
173
173
|
RETURN {vertex: v, edge: e, path: p}
|
|
174
174
|
"""
|
|
175
175
|
|
{python_arango_async-1.2.2 → python_arango_async-1.2.3}/python_arango_async.egg-info/SOURCES.txt
RENAMED
|
@@ -101,6 +101,8 @@ tests/test_typings.py
|
|
|
101
101
|
tests/test_user.py
|
|
102
102
|
tests/test_view.py
|
|
103
103
|
tests/static/cluster-3.12.conf
|
|
104
|
+
tests/static/cluster-4.0.conf
|
|
104
105
|
tests/static/keyfile
|
|
105
106
|
tests/static/service.zip
|
|
106
|
-
tests/static/single-3.12.conf
|
|
107
|
+
tests/static/single-3.12.conf
|
|
108
|
+
tests/static/single-4.0.conf
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Starts a local ArangoDB server or cluster (community or enterprise).
|
|
4
|
+
# Useful for testing the python-arango driver against a local ArangoDB setup.
|
|
5
|
+
|
|
6
|
+
# Usage:
|
|
7
|
+
# ./starter.sh [single|cluster] [community|enterprise|enterprise-preview] [version]
|
|
8
|
+
# ./starter.sh [single|cluster] [image[:tag]]
|
|
9
|
+
# Example:
|
|
10
|
+
# ./starter.sh cluster enterprise 3.12.4
|
|
11
|
+
# ./starter.sh single enterprise-preview 4.0-nightly
|
|
12
|
+
# ./starter.sh single arangodb/enterprise-preview:4.0-nightly
|
|
13
|
+
|
|
14
|
+
setup="${1:-single}"
|
|
15
|
+
image="${2:-community}"
|
|
16
|
+
version="${3:-latest}"
|
|
17
|
+
|
|
18
|
+
extra_ports=""
|
|
19
|
+
if [ "$setup" == "single" ]; then
|
|
20
|
+
echo ""
|
|
21
|
+
elif [ "$setup" == "cluster" ]; then
|
|
22
|
+
extra_ports="-p 8539:8539 -p 8549:8549"
|
|
23
|
+
else
|
|
24
|
+
echo "Invalid argument. Please provide either 'single' or 'cluster'."
|
|
25
|
+
exit 1
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
image_ref=""
|
|
29
|
+
if [[ "$image" == */* ]]; then
|
|
30
|
+
if [[ "$image" == *:* ]]; then
|
|
31
|
+
image_ref="$image"
|
|
32
|
+
if [ "$version" == "latest" ]; then
|
|
33
|
+
version="${image##*:}"
|
|
34
|
+
fi
|
|
35
|
+
else
|
|
36
|
+
image_ref="$image:$version"
|
|
37
|
+
fi
|
|
38
|
+
elif [ "$image" == "community" ]; then
|
|
39
|
+
image_ref="arangodb/arangodb:$version"
|
|
40
|
+
elif [ "$image" == "enterprise" ]; then
|
|
41
|
+
image_ref="arangodb/enterprise:$version"
|
|
42
|
+
elif [ "$image" == "enterprise-preview" ]; then
|
|
43
|
+
image_ref="arangodb/enterprise-preview:$version"
|
|
44
|
+
else
|
|
45
|
+
echo "Invalid argument. Please provide 'community', 'enterprise', 'enterprise-preview', or a full image reference."
|
|
46
|
+
exit 1
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
if [ "$version" == "latest" ]; then
|
|
50
|
+
conf_file="${setup}-3.12"
|
|
51
|
+
elif [[ "$version" =~ ^([0-9]+\.[0-9]+) ]]; then
|
|
52
|
+
conf_file="${setup}-${BASH_REMATCH[1]}"
|
|
53
|
+
else
|
|
54
|
+
conf_file="${setup}-${version}"
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
if [ ! -f "tests/static/$conf_file.conf" ]; then
|
|
58
|
+
echo "Missing configuration file: tests/static/$conf_file.conf"
|
|
59
|
+
exit 1
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
docker run -d \
|
|
63
|
+
--name arango \
|
|
64
|
+
-p 8528:8528 \
|
|
65
|
+
-p 8529:8529 \
|
|
66
|
+
$extra_ports \
|
|
67
|
+
-v "$(pwd)/tests/static/":/tests/static \
|
|
68
|
+
-v /tmp:/tmp \
|
|
69
|
+
"$image_ref" \
|
|
70
|
+
/bin/sh -c "arangodb --configuration=/tests/static/$conf_file.conf"
|
|
71
|
+
|
|
72
|
+
if [ $? -ne 0 ]; then
|
|
73
|
+
echo "ERROR starter failed to start container"
|
|
74
|
+
exit 1
|
|
75
|
+
fi
|
|
76
|
+
|
|
77
|
+
wget --quiet --waitretry=1 --tries=120 -O - http://localhost:8528/version | jq
|
|
78
|
+
if [ $? -eq 0 ]; then
|
|
79
|
+
echo "OK starter ready"
|
|
80
|
+
exit 0
|
|
81
|
+
else
|
|
82
|
+
echo "ERROR starter not ready, giving up"
|
|
83
|
+
exit 1
|
|
84
|
+
fi
|
|
@@ -294,18 +294,19 @@ async def teardown():
|
|
|
294
294
|
verify=False,
|
|
295
295
|
)
|
|
296
296
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
297
|
+
if global_data.db_version < version.parse("4.0.0"):
|
|
298
|
+
# Remove all tasks
|
|
299
|
+
test_tasks = [
|
|
300
|
+
task
|
|
301
|
+
for task in await sys_db.tasks()
|
|
302
|
+
if task["name"].startswith("test_task")
|
|
303
|
+
]
|
|
304
|
+
await asyncio.gather(
|
|
305
|
+
*(
|
|
306
|
+
sys_db.delete_task(task["id"], ignore_missing=True)
|
|
307
|
+
for task in test_tasks
|
|
308
|
+
)
|
|
307
309
|
)
|
|
308
|
-
)
|
|
309
310
|
|
|
310
311
|
# Remove all test users.
|
|
311
312
|
tst_users = [
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
[starter]
|
|
2
|
+
mode = cluster
|
|
3
|
+
local = true
|
|
4
|
+
address = 0.0.0.0
|
|
5
|
+
port = 8528
|
|
6
|
+
|
|
7
|
+
[auth]
|
|
8
|
+
jwt-secret = /tests/static/keyfile
|
|
9
|
+
|
|
10
|
+
[args]
|
|
11
|
+
all.database.password = passwd
|
|
12
|
+
all.vector-index = true
|
|
13
|
+
all.database.extended-names = true
|
|
14
|
+
all.log.api-enabled = true
|
|
15
|
+
all.server.options-api = admin
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[starter]
|
|
2
|
+
mode = single
|
|
3
|
+
address = 0.0.0.0
|
|
4
|
+
port = 8528
|
|
5
|
+
|
|
6
|
+
[auth]
|
|
7
|
+
jwt-secret = /tests/static/keyfile
|
|
8
|
+
|
|
9
|
+
[args]
|
|
10
|
+
all.database.password = passwd
|
|
11
|
+
all.vector-index = true
|
|
12
|
+
all.database.extended-names = true
|
|
13
|
+
all.log.api-enabled = true
|
|
14
|
+
all.server.options-api = admin
|
|
@@ -91,14 +91,19 @@ async def test_list_queries(superuser, db, bad_db):
|
|
|
91
91
|
long_running_task = asyncio.create_task(aql.execute("RETURN SLEEP(10)"))
|
|
92
92
|
time.sleep(1)
|
|
93
93
|
|
|
94
|
+
queries = list()
|
|
94
95
|
for _ in range(10):
|
|
95
96
|
queries = await aql.queries()
|
|
96
97
|
if len(queries) > 0:
|
|
97
98
|
break
|
|
99
|
+
time.sleep(1)
|
|
100
|
+
|
|
101
|
+
if len(queries) == 0:
|
|
102
|
+
warnings.warn("No queries found in the list!")
|
|
98
103
|
|
|
99
104
|
# Only superuser can list all queries from all databases.
|
|
100
105
|
all_queries = await superuser.aql.queries(all_queries=True)
|
|
101
|
-
assert
|
|
106
|
+
assert isinstance(all_queries, list)
|
|
102
107
|
|
|
103
108
|
# Only test no-throws.
|
|
104
109
|
_ = await aql.slow_queries()
|
|
@@ -304,7 +309,10 @@ async def test_cache_plan_management(db, bad_db, doc_col, docs, db_version):
|
|
|
304
309
|
|
|
305
310
|
|
|
306
311
|
@pytest.mark.asyncio
|
|
307
|
-
async def test_aql_function_management(db, bad_db):
|
|
312
|
+
async def test_aql_function_management(db_version, db, bad_db):
|
|
313
|
+
if db_version >= version.parse("4.0.0"):
|
|
314
|
+
pytest.skip("Javascript is not available in ArangoDB v4.0")
|
|
315
|
+
|
|
308
316
|
fn_group = "functions::temperature"
|
|
309
317
|
fn_name_1 = "functions::temperature::celsius_to_fahrenheit"
|
|
310
318
|
fn_body_1 = "function (celsius) { return celsius * 1.8 + 32; }"
|
|
@@ -60,15 +60,17 @@ async def test_cluster(
|
|
|
60
60
|
health = await cluster.health()
|
|
61
61
|
assert "Health" in health
|
|
62
62
|
|
|
63
|
-
# DB-Server statistics
|
|
64
63
|
db_server = None
|
|
65
64
|
for server in health["Health"]:
|
|
66
65
|
if server.startswith("PRMR"):
|
|
67
66
|
db_server = server
|
|
68
67
|
break
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
|
|
69
|
+
if db_version < version.parse("4.0.0"):
|
|
70
|
+
# DB-Server statistics
|
|
71
|
+
assert db_server is not None, f"No DB server found in {health}"
|
|
72
|
+
stats = await cluster.statistics(db_server)
|
|
73
|
+
assert "enabled" in stats
|
|
72
74
|
|
|
73
75
|
# Cluster endpoints
|
|
74
76
|
endpoints = await cluster.endpoints()
|
|
@@ -90,7 +90,7 @@ async def test_database_misc_methods(
|
|
|
90
90
|
|
|
91
91
|
# Version
|
|
92
92
|
v = await sys_db.version()
|
|
93
|
-
assert v["version"]
|
|
93
|
+
assert isinstance(v["version"], str)
|
|
94
94
|
with pytest.raises(ServerVersionError):
|
|
95
95
|
await bad_db.version()
|
|
96
96
|
|
|
@@ -152,19 +152,20 @@ async def test_database_misc_methods(
|
|
|
152
152
|
with pytest.raises(ServerShutdownProgressError):
|
|
153
153
|
await bad_db.shutdown_progress()
|
|
154
154
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
155
|
+
if db_version < version.parse("4.0.0"):
|
|
156
|
+
with pytest.raises(ServerReloadRoutingError):
|
|
157
|
+
await bad_db.reload_routing()
|
|
158
|
+
await sys_db.reload_routing()
|
|
158
159
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
160
|
+
with pytest.raises(ServerEchoError):
|
|
161
|
+
await bad_db.echo()
|
|
162
|
+
result = await sys_db.echo()
|
|
163
|
+
assert isinstance(result, dict)
|
|
163
164
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
165
|
+
with pytest.raises(ServerExecuteError):
|
|
166
|
+
await bad_db.execute("return 1")
|
|
167
|
+
result = await sys_db.execute("return 1")
|
|
168
|
+
assert result == 1
|
|
168
169
|
|
|
169
170
|
with pytest.raises(DatabaseCompactError):
|
|
170
171
|
await bad_db.compact()
|
|
@@ -176,10 +177,11 @@ async def test_database_misc_methods(
|
|
|
176
177
|
|
|
177
178
|
# Custom Request
|
|
178
179
|
request = Request(
|
|
179
|
-
method=Method.
|
|
180
|
+
method=Method.GET,
|
|
181
|
+
endpoint="/_api/version",
|
|
180
182
|
)
|
|
181
183
|
response = await sys_db.request(request)
|
|
182
|
-
assert json.loads(response.raw_body)
|
|
184
|
+
assert "version" in json.loads(response.raw_body)
|
|
183
185
|
|
|
184
186
|
if "enterprise" not in skip_tests and db_version >= version.parse("3.12.0"):
|
|
185
187
|
# API calls
|
|
@@ -4,6 +4,7 @@ import json
|
|
|
4
4
|
import aiofiles
|
|
5
5
|
import aiohttp
|
|
6
6
|
import pytest
|
|
7
|
+
from packaging import version
|
|
7
8
|
|
|
8
9
|
from arangoasync.exceptions import (
|
|
9
10
|
FoxxCommitError,
|
|
@@ -34,7 +35,10 @@ service_name = "test"
|
|
|
34
35
|
|
|
35
36
|
|
|
36
37
|
@pytest.mark.asyncio
|
|
37
|
-
async def test_foxx(db, bad_db, skip_tests, foxx_path):
|
|
38
|
+
async def test_foxx(db_version, db, bad_db, skip_tests, foxx_path):
|
|
39
|
+
if db_version >= version.parse("4.0.0"):
|
|
40
|
+
pytest.skip("Foxx API has been removed in ArangoDB v4.0")
|
|
41
|
+
|
|
38
42
|
if "foxx" in skip_tests:
|
|
39
43
|
pytest.skip("Skipping Foxx tests")
|
|
40
44
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import pytest
|
|
2
|
+
from packaging import version
|
|
2
3
|
|
|
3
4
|
from arangoasync.exceptions import (
|
|
4
5
|
TaskCreateError,
|
|
@@ -10,10 +11,13 @@ from tests.helpers import generate_task_id, generate_task_name
|
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
@pytest.mark.asyncio
|
|
13
|
-
async def test_task_management(sys_db, bad_db, skip_tests):
|
|
14
|
+
async def test_task_management(db_version, sys_db, bad_db, skip_tests):
|
|
14
15
|
# This test intentionally uses the system database because cleaning up tasks is
|
|
15
16
|
# easier there.
|
|
16
17
|
|
|
18
|
+
if db_version >= version.parse("4.0.0"):
|
|
19
|
+
pytest.skip("The tasks feature is deprecated and removed in ArangoDB v4.0")
|
|
20
|
+
|
|
17
21
|
if "task" in skip_tests:
|
|
18
22
|
pytest.skip("Skipping task tests")
|
|
19
23
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
|
|
3
3
|
import pytest
|
|
4
|
+
from packaging import version
|
|
4
5
|
|
|
5
6
|
from arangoasync.database import TransactionDatabase
|
|
6
7
|
from arangoasync.errno import BAD_PARAMETER, FORBIDDEN, TRANSACTION_NOT_FOUND
|
|
@@ -14,10 +15,13 @@ from arangoasync.exceptions import (
|
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
@pytest.mark.asyncio
|
|
17
|
-
async def test_transaction_execute_raw(db, doc_col, docs, skip_tests):
|
|
18
|
+
async def test_transaction_execute_raw(db, doc_col, docs, skip_tests, db_version):
|
|
18
19
|
if "js-transactions" in skip_tests:
|
|
19
20
|
pytest.skip("Skipping JS transaction tests")
|
|
20
21
|
|
|
22
|
+
if db_version >= version.parse("4.0"):
|
|
23
|
+
pytest.skip("Javascript transactions are no longer supported in ArangoDB 4.0")
|
|
24
|
+
|
|
21
25
|
# Test a valid JS transaction
|
|
22
26
|
doc = docs[0]
|
|
23
27
|
key = doc["_key"]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.2.2"
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# Starts a local ArangoDB server or cluster (community or enterprise).
|
|
4
|
-
# Useful for testing the python-arango driver against a local ArangoDB setup.
|
|
5
|
-
|
|
6
|
-
# Usage:
|
|
7
|
-
# ./starter.sh [single|cluster] [community|enterprise] [version]
|
|
8
|
-
# Example:
|
|
9
|
-
# ./starter.sh cluster enterprise 3.12.4
|
|
10
|
-
|
|
11
|
-
setup="${1:-single}"
|
|
12
|
-
license="${2:-community}"
|
|
13
|
-
version="${3:-latest}"
|
|
14
|
-
|
|
15
|
-
extra_ports=""
|
|
16
|
-
if [ "$setup" == "single" ]; then
|
|
17
|
-
echo ""
|
|
18
|
-
elif [ "$setup" == "cluster" ]; then
|
|
19
|
-
extra_ports="-p 8539:8539 -p 8549:8549"
|
|
20
|
-
else
|
|
21
|
-
echo "Invalid argument. Please provide either 'single' or 'cluster'."
|
|
22
|
-
exit 1
|
|
23
|
-
fi
|
|
24
|
-
|
|
25
|
-
image_name=""
|
|
26
|
-
if [ "$license" == "community" ]; then
|
|
27
|
-
image_name="arangodb"
|
|
28
|
-
elif [ "$license" == "enterprise" ]; then
|
|
29
|
-
image_name="enterprise"
|
|
30
|
-
else
|
|
31
|
-
echo "Invalid argument. Please provide either 'community' or 'enterprise'."
|
|
32
|
-
exit 1
|
|
33
|
-
fi
|
|
34
|
-
|
|
35
|
-
if [ "$version" == "latest" ]; then
|
|
36
|
-
conf_file="${setup}-3.12"
|
|
37
|
-
elif [[ "$version" == *.*.* ]]; then
|
|
38
|
-
conf_file="${setup}-${version%.*}"
|
|
39
|
-
else
|
|
40
|
-
conf_file="${setup}-${version}"
|
|
41
|
-
fi
|
|
42
|
-
|
|
43
|
-
docker run -d \
|
|
44
|
-
--name arango \
|
|
45
|
-
-p 8528:8528 \
|
|
46
|
-
-p 8529:8529 \
|
|
47
|
-
$extra_ports \
|
|
48
|
-
-v "$(pwd)/tests/static/":/tests/static \
|
|
49
|
-
-v /tmp:/tmp \
|
|
50
|
-
"arangodb/$image_name:$version" \
|
|
51
|
-
/bin/sh -c "arangodb --configuration=/tests/static/$conf_file.conf"
|
|
52
|
-
|
|
53
|
-
wget --quiet --waitretry=1 --tries=120 -O - http://localhost:8528/version | jq
|
|
54
|
-
if [ $? -eq 0 ]; then
|
|
55
|
-
echo "OK starter ready"
|
|
56
|
-
exit 0
|
|
57
|
-
else
|
|
58
|
-
echo "ERROR starter not ready, giving up"
|
|
59
|
-
exit 1
|
|
60
|
-
fi
|
|
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
|
{python_arango_async-1.2.2 → python_arango_async-1.2.3}/python_arango_async.egg-info/top_level.txt
RENAMED
|
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
|