python-arango 8.2.6__tar.gz → 8.3.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 (93) hide show
  1. {python_arango-8.2.6 → python_arango-8.3.1}/.pre-commit-config.yaml +1 -1
  2. {python_arango-8.2.6 → python_arango-8.3.1}/PKG-INFO +4 -4
  3. {python_arango-8.2.6 → python_arango-8.3.1}/arango/aql.py +6 -0
  4. {python_arango-8.2.6 → python_arango-8.3.1}/arango/collection.py +2 -0
  5. {python_arango-8.2.6 → python_arango-8.3.1}/arango/connection.py +2 -2
  6. {python_arango-8.2.6 → python_arango-8.3.1}/arango/database.py +3 -0
  7. {python_arango-8.2.6 → python_arango-8.3.1}/arango/formatter.py +5 -1
  8. python_arango-8.3.1/arango/version.py +1 -0
  9. {python_arango-8.2.6 → python_arango-8.3.1}/docs/schema.rst +1 -4
  10. {python_arango-8.2.6 → python_arango-8.3.1}/pyproject.toml +4 -3
  11. {python_arango-8.2.6 → python_arango-8.3.1}/python_arango.egg-info/PKG-INFO +4 -4
  12. {python_arango-8.2.6 → python_arango-8.3.1}/python_arango.egg-info/requires.txt +3 -3
  13. python_arango-8.2.6/arango/version.py +0 -1
  14. {python_arango-8.2.6 → python_arango-8.3.1}/.circleci/config.yml +0 -0
  15. {python_arango-8.2.6 → python_arango-8.3.1}/.github/workflows/codeql.yaml +0 -0
  16. {python_arango-8.2.6 → python_arango-8.3.1}/.github/workflows/docs.yaml +0 -0
  17. {python_arango-8.2.6 → python_arango-8.3.1}/.github/workflows/pypi.yaml +0 -0
  18. {python_arango-8.2.6 → python_arango-8.3.1}/.gitignore +0 -0
  19. {python_arango-8.2.6 → python_arango-8.3.1}/.readthedocs.yaml +0 -0
  20. {python_arango-8.2.6 → python_arango-8.3.1}/CONTRIBUTING.md +0 -0
  21. {python_arango-8.2.6 → python_arango-8.3.1}/LICENSE +0 -0
  22. {python_arango-8.2.6 → python_arango-8.3.1}/MANIFEST.in +0 -0
  23. {python_arango-8.2.6 → python_arango-8.3.1}/README.md +0 -0
  24. {python_arango-8.2.6 → python_arango-8.3.1}/arango/__init__.py +0 -0
  25. {python_arango-8.2.6 → python_arango-8.3.1}/arango/api.py +0 -0
  26. {python_arango-8.2.6 → python_arango-8.3.1}/arango/backup.py +0 -0
  27. {python_arango-8.2.6 → python_arango-8.3.1}/arango/client.py +0 -0
  28. {python_arango-8.2.6 → python_arango-8.3.1}/arango/cluster.py +0 -0
  29. {python_arango-8.2.6 → python_arango-8.3.1}/arango/cursor.py +0 -0
  30. {python_arango-8.2.6 → python_arango-8.3.1}/arango/errno.py +0 -0
  31. {python_arango-8.2.6 → python_arango-8.3.1}/arango/exceptions.py +0 -0
  32. {python_arango-8.2.6 → python_arango-8.3.1}/arango/executor.py +0 -0
  33. {python_arango-8.2.6 → python_arango-8.3.1}/arango/foxx.py +0 -0
  34. {python_arango-8.2.6 → python_arango-8.3.1}/arango/graph.py +0 -0
  35. {python_arango-8.2.6 → python_arango-8.3.1}/arango/http.py +0 -0
  36. {python_arango-8.2.6 → python_arango-8.3.1}/arango/job.py +0 -0
  37. {python_arango-8.2.6 → python_arango-8.3.1}/arango/pregel.py +0 -0
  38. {python_arango-8.2.6 → python_arango-8.3.1}/arango/py.typed +0 -0
  39. {python_arango-8.2.6 → python_arango-8.3.1}/arango/replication.py +0 -0
  40. {python_arango-8.2.6 → python_arango-8.3.1}/arango/request.py +0 -0
  41. {python_arango-8.2.6 → python_arango-8.3.1}/arango/resolver.py +0 -0
  42. {python_arango-8.2.6 → python_arango-8.3.1}/arango/response.py +0 -0
  43. {python_arango-8.2.6 → python_arango-8.3.1}/arango/result.py +0 -0
  44. {python_arango-8.2.6 → python_arango-8.3.1}/arango/typings.py +0 -0
  45. {python_arango-8.2.6 → python_arango-8.3.1}/arango/utils.py +0 -0
  46. {python_arango-8.2.6 → python_arango-8.3.1}/arango/wal.py +0 -0
  47. {python_arango-8.2.6 → python_arango-8.3.1}/docs/Makefile +0 -0
  48. {python_arango-8.2.6 → python_arango-8.3.1}/docs/admin.rst +0 -0
  49. {python_arango-8.2.6 → python_arango-8.3.1}/docs/analyzer.rst +0 -0
  50. {python_arango-8.2.6 → python_arango-8.3.1}/docs/aql.rst +0 -0
  51. {python_arango-8.2.6 → python_arango-8.3.1}/docs/async.rst +0 -0
  52. {python_arango-8.2.6 → python_arango-8.3.1}/docs/auth.rst +0 -0
  53. {python_arango-8.2.6 → python_arango-8.3.1}/docs/backup.rst +0 -0
  54. {python_arango-8.2.6 → python_arango-8.3.1}/docs/batch.rst +0 -0
  55. {python_arango-8.2.6 → python_arango-8.3.1}/docs/certificates.rst +0 -0
  56. {python_arango-8.2.6 → python_arango-8.3.1}/docs/cluster.rst +0 -0
  57. {python_arango-8.2.6 → python_arango-8.3.1}/docs/collection.rst +0 -0
  58. {python_arango-8.2.6 → python_arango-8.3.1}/docs/compression.rst +0 -0
  59. {python_arango-8.2.6 → python_arango-8.3.1}/docs/conf.py +0 -0
  60. {python_arango-8.2.6 → python_arango-8.3.1}/docs/contributing.rst +0 -0
  61. {python_arango-8.2.6 → python_arango-8.3.1}/docs/cursor.rst +0 -0
  62. {python_arango-8.2.6 → python_arango-8.3.1}/docs/database.rst +0 -0
  63. {python_arango-8.2.6 → python_arango-8.3.1}/docs/document.rst +0 -0
  64. {python_arango-8.2.6 → python_arango-8.3.1}/docs/errno.rst +0 -0
  65. {python_arango-8.2.6 → python_arango-8.3.1}/docs/errors.rst +0 -0
  66. {python_arango-8.2.6 → python_arango-8.3.1}/docs/foxx.rst +0 -0
  67. {python_arango-8.2.6 → python_arango-8.3.1}/docs/graph.rst +0 -0
  68. {python_arango-8.2.6 → python_arango-8.3.1}/docs/http.rst +0 -0
  69. {python_arango-8.2.6 → python_arango-8.3.1}/docs/index.rst +0 -0
  70. {python_arango-8.2.6 → python_arango-8.3.1}/docs/indexes.rst +0 -0
  71. {python_arango-8.2.6 → python_arango-8.3.1}/docs/logging.rst +0 -0
  72. {python_arango-8.2.6 → python_arango-8.3.1}/docs/make.bat +0 -0
  73. {python_arango-8.2.6 → python_arango-8.3.1}/docs/overload.rst +0 -0
  74. {python_arango-8.2.6 → python_arango-8.3.1}/docs/overview.rst +0 -0
  75. {python_arango-8.2.6 → python_arango-8.3.1}/docs/pregel.rst +0 -0
  76. {python_arango-8.2.6 → python_arango-8.3.1}/docs/replication.rst +0 -0
  77. {python_arango-8.2.6 → python_arango-8.3.1}/docs/requirements.txt +0 -0
  78. {python_arango-8.2.6 → python_arango-8.3.1}/docs/serializer.rst +0 -0
  79. {python_arango-8.2.6 → python_arango-8.3.1}/docs/simple.rst +0 -0
  80. {python_arango-8.2.6 → python_arango-8.3.1}/docs/specs.rst +0 -0
  81. {python_arango-8.2.6 → python_arango-8.3.1}/docs/static/logo.png +0 -0
  82. {python_arango-8.2.6 → python_arango-8.3.1}/docs/task.rst +0 -0
  83. {python_arango-8.2.6 → python_arango-8.3.1}/docs/threading.rst +0 -0
  84. {python_arango-8.2.6 → python_arango-8.3.1}/docs/transaction.rst +0 -0
  85. {python_arango-8.2.6 → python_arango-8.3.1}/docs/user.rst +0 -0
  86. {python_arango-8.2.6 → python_arango-8.3.1}/docs/view.rst +0 -0
  87. {python_arango-8.2.6 → python_arango-8.3.1}/docs/wal.rst +0 -0
  88. {python_arango-8.2.6 → python_arango-8.3.1}/python_arango.egg-info/SOURCES.txt +0 -0
  89. {python_arango-8.2.6 → python_arango-8.3.1}/python_arango.egg-info/dependency_links.txt +0 -0
  90. {python_arango-8.2.6 → python_arango-8.3.1}/python_arango.egg-info/top_level.txt +0 -0
  91. {python_arango-8.2.6 → python_arango-8.3.1}/setup.cfg +0 -0
  92. {python_arango-8.2.6 → python_arango-8.3.1}/setup.py +0 -0
  93. {python_arango-8.2.6 → python_arango-8.3.1}/starter.sh +0 -0
@@ -34,7 +34,7 @@ repos:
34
34
  - id: flake8
35
35
 
36
36
  - repo: https://github.com/pre-commit/mirrors-mypy
37
- rev: v0.991
37
+ rev: v1.15.0
38
38
  hooks:
39
39
  - id: mypy
40
40
  files: ^arango/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-arango
3
- Version: 8.2.6
3
+ Version: 8.3.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>
@@ -45,13 +45,13 @@ License-File: LICENSE
45
45
  Requires-Dist: urllib3>=1.26.0
46
46
  Requires-Dist: requests
47
47
  Requires-Dist: requests_toolbelt
48
- Requires-Dist: PyJWT
48
+ Requires-Dist: PyJWT>=2.10.0
49
49
  Requires-Dist: packaging>=23.1
50
50
  Provides-Extra: dev
51
51
  Requires-Dist: black==26.1.0; extra == "dev"
52
52
  Requires-Dist: flake8==7.3.0; extra == "dev"
53
- Requires-Dist: isort>=5.10.1; extra == "dev"
54
- Requires-Dist: mypy>=0.942; extra == "dev"
53
+ Requires-Dist: isort==5.10.1; extra == "dev"
54
+ Requires-Dist: mypy==1.15.0; extra == "dev"
55
55
  Requires-Dist: mock; extra == "dev"
56
56
  Requires-Dist: pre-commit>=2.17.0; extra == "dev"
57
57
  Requires-Dist: pytest>=7.1.1; extra == "dev"
@@ -579,6 +579,7 @@ class AQL(ApiGroup):
579
579
  enabled: Optional[bool] = None,
580
580
  max_slow_queries: Optional[int] = None,
581
581
  slow_query_threshold: Optional[int] = None,
582
+ slow_streaming_query_threshold: Optional[int] = None,
582
583
  max_query_string_length: Optional[int] = None,
583
584
  track_bind_vars: Optional[bool] = None,
584
585
  track_slow_queries: Optional[bool] = None,
@@ -593,6 +594,9 @@ class AQL(ApiGroup):
593
594
  :param slow_query_threshold: Runtime threshold (in seconds) for treating a
594
595
  query as slow.
595
596
  :type slow_query_threshold: int
597
+ :param slow_streaming_query_threshold: Runtime threshold (in seconds) for
598
+ treating a streaming query as slow.
599
+ :type slow_query_threshold: int
596
600
  :param max_query_string_length: Max query string length (in bytes) tracked.
597
601
  :type max_query_string_length: int
598
602
  :param track_bind_vars: If set to True, track bind variables used in queries.
@@ -614,6 +618,8 @@ class AQL(ApiGroup):
614
618
  data["maxQueryStringLength"] = max_query_string_length
615
619
  if slow_query_threshold is not None:
616
620
  data["slowQueryThreshold"] = slow_query_threshold
621
+ if slow_streaming_query_threshold is not None:
622
+ data["slowStreamingQueryThreshold"] = slow_streaming_query_threshold
617
623
  if track_bind_vars is not None:
618
624
  data["trackBindVars"] = track_bind_vars
619
625
  if track_slow_queries is not None:
@@ -400,6 +400,8 @@ class Collection(ApiGroup):
400
400
  if sync is not None:
401
401
  data["waitForSync"] = sync
402
402
  if schema is not None:
403
+ if not isinstance(schema, dict) or len(schema) == 0:
404
+ raise ValueError("schema parameter must be a non-empty dict")
403
405
  data["schema"] = schema
404
406
  if replication_factor is not None:
405
407
  data["replicationFactor"] = replication_factor
@@ -464,7 +464,7 @@ class JwtConnection(BaseConnection):
464
464
  "verify_iat": True,
465
465
  "verify_exp": True,
466
466
  "verify_signature": False,
467
- },
467
+ }, # type: ignore[arg-type]
468
468
  )
469
469
  except ExpiredSignatureError:
470
470
  raise JWTExpiredError("JWT token is expired")
@@ -554,7 +554,7 @@ class JwtSuperuserConnection(BaseConnection):
554
554
  "verify_iat": True,
555
555
  "verify_exp": True,
556
556
  "verify_signature": False,
557
- },
557
+ }, # type: ignore[arg-type]
558
558
  )
559
559
  except ExpiredSignatureError:
560
560
  raise JWTExpiredError("JWT token is expired")
@@ -1668,6 +1668,7 @@ class Database(ApiGroup):
1668
1668
  :return: Standard collection API wrapper.
1669
1669
  :rtype: arango.collection.StandardCollection
1670
1670
  :raise arango.exceptions.CollectionCreateError: If create fails.
1671
+ :raise ValueError: If parameters are invalid.
1671
1672
  """
1672
1673
  key_options: Json = {"type": key_generator, "allowUserKeys": user_keys}
1673
1674
  if key_generator == "autoincrement":
@@ -1698,6 +1699,8 @@ class Database(ApiGroup):
1698
1699
  if write_concern is not None:
1699
1700
  data["writeConcern"] = write_concern
1700
1701
  if schema is not None:
1702
+ if not isinstance(schema, dict) or len(schema) == 0:
1703
+ raise ValueError("schema parameter must be a non-empty dict")
1701
1704
  data["schema"] = schema
1702
1705
  if computedValues is not None:
1703
1706
  data["computedValues"] = computedValues
@@ -375,6 +375,10 @@ def format_aql_query(body: Json) -> Json:
375
375
  result["modification_query"] = body["modificationQuery"]
376
376
  if "warnings" in body:
377
377
  result["warnings"] = body["warnings"]
378
+
379
+ if "exitCode" in body:
380
+ result["exit_code"] = body["exitCode"]
381
+
378
382
  return verify_format(body, result)
379
383
 
380
384
 
@@ -1112,7 +1116,7 @@ def format_backup_dbserver(body: Json) -> Json:
1112
1116
  :return: Formatted body.
1113
1117
  :rtype: dict
1114
1118
  """
1115
- return {"status": body["Status"]}
1119
+ return {"status": body.get("Status")}
1116
1120
 
1117
1121
 
1118
1122
  def format_backup_transfer(body: Json) -> Json:
@@ -0,0 +1 @@
1
+ __version__ = "8.3.1"
@@ -3,7 +3,7 @@ Schema Validation
3
3
 
4
4
  ArangoDB supports document validation using JSON schemas. You can use this
5
5
  feature by providing a schema during collection creation using the ``schema``
6
- parameter.
6
+ parameter. It must not be an empty ``dict```.
7
7
 
8
8
  **Example:**
9
9
 
@@ -37,6 +37,3 @@ parameter.
37
37
 
38
38
  # Modify the schema.
39
39
  employees.configure(schema=my_schema)
40
-
41
- # Remove the schema.
42
- employees.configure(schema={})
@@ -38,7 +38,7 @@ dependencies = [
38
38
  "urllib3>=1.26.0",
39
39
  "requests",
40
40
  "requests_toolbelt",
41
- "PyJWT",
41
+ "PyJWT>=2.10.0",
42
42
  "packaging>=23.1",
43
43
  ]
44
44
 
@@ -49,8 +49,8 @@ version = { attr = "arango.version.__version__" }
49
49
  dev = [
50
50
  "black==26.1.0",
51
51
  "flake8==7.3.0",
52
- "isort>=5.10.1",
53
- "mypy>=0.942",
52
+ "isort==5.10.1",
53
+ "mypy==1.15.0",
54
54
  "mock",
55
55
  "pre-commit>=2.17.0",
56
56
  "pytest>=7.1.1",
@@ -90,5 +90,6 @@ profile = "black"
90
90
  [tool.mypy]
91
91
  warn_return_any = true
92
92
  warn_unused_configs = true
93
+ warn_unused_ignores = false
93
94
  ignore_missing_imports = true
94
95
  strict = true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-arango
3
- Version: 8.2.6
3
+ Version: 8.3.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>
@@ -45,13 +45,13 @@ License-File: LICENSE
45
45
  Requires-Dist: urllib3>=1.26.0
46
46
  Requires-Dist: requests
47
47
  Requires-Dist: requests_toolbelt
48
- Requires-Dist: PyJWT
48
+ Requires-Dist: PyJWT>=2.10.0
49
49
  Requires-Dist: packaging>=23.1
50
50
  Provides-Extra: dev
51
51
  Requires-Dist: black==26.1.0; extra == "dev"
52
52
  Requires-Dist: flake8==7.3.0; extra == "dev"
53
- Requires-Dist: isort>=5.10.1; extra == "dev"
54
- Requires-Dist: mypy>=0.942; extra == "dev"
53
+ Requires-Dist: isort==5.10.1; extra == "dev"
54
+ Requires-Dist: mypy==1.15.0; extra == "dev"
55
55
  Requires-Dist: mock; extra == "dev"
56
56
  Requires-Dist: pre-commit>=2.17.0; extra == "dev"
57
57
  Requires-Dist: pytest>=7.1.1; extra == "dev"
@@ -1,14 +1,14 @@
1
1
  urllib3>=1.26.0
2
2
  requests
3
3
  requests_toolbelt
4
- PyJWT
4
+ PyJWT>=2.10.0
5
5
  packaging>=23.1
6
6
 
7
7
  [dev]
8
8
  black==26.1.0
9
9
  flake8==7.3.0
10
- isort>=5.10.1
11
- mypy>=0.942
10
+ isort==5.10.1
11
+ mypy==1.15.0
12
12
  mock
13
13
  pre-commit>=2.17.0
14
14
  pytest>=7.1.1
@@ -1 +0,0 @@
1
- __version__ = "8.2.6"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes