gremlinpython 3.7.6__tar.gz → 3.7.7__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 (40) hide show
  1. {gremlinpython-3.7.6/gremlinpython.egg-info → gremlinpython-3.7.7}/PKG-INFO +7 -2
  2. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/__init__.py +1 -1
  3. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/useragent.py +1 -1
  4. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/process/strategies.py +7 -0
  5. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/process/traversal.py +1 -1
  6. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/structure/io/graphbinaryV1.py +19 -13
  7. {gremlinpython-3.7.6 → gremlinpython-3.7.7/gremlinpython.egg-info}/PKG-INFO +7 -2
  8. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/pyproject.toml +7 -2
  9. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/LICENSE +0 -0
  10. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/MANIFEST.in +0 -0
  11. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/NOTICE +0 -0
  12. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/README.rst +0 -0
  13. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/__init__.py +0 -0
  14. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/aiohttp/__init__.py +0 -0
  15. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/aiohttp/transport.py +0 -0
  16. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/client.py +0 -0
  17. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/connection.py +0 -0
  18. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/driver_remote_connection.py +0 -0
  19. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/protocol.py +0 -0
  20. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/remote_connection.py +0 -0
  21. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/request.py +0 -0
  22. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/resultset.py +0 -0
  23. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/serializer.py +0 -0
  24. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/driver/transport.py +0 -0
  25. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/process/__init__.py +0 -0
  26. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/process/anonymous_traversal.py +0 -0
  27. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/process/graph_traversal.py +0 -0
  28. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/process/translator.py +0 -0
  29. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/statics.py +0 -0
  30. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/structure/__init__.py +0 -0
  31. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/structure/graph.py +0 -0
  32. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/structure/io/__init__.py +0 -0
  33. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/structure/io/graphsonV2d0.py +0 -0
  34. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/structure/io/graphsonV3d0.py +0 -0
  35. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlin_python/structure/io/util.py +0 -0
  36. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlinpython.egg-info/SOURCES.txt +0 -0
  37. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlinpython.egg-info/dependency_links.txt +0 -0
  38. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlinpython.egg-info/requires.txt +0 -0
  39. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/gremlinpython.egg-info/top_level.txt +0 -0
  40. {gremlinpython-3.7.6 → gremlinpython-3.7.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gremlinpython
3
- Version: 3.7.6
3
+ Version: 3.7.7
4
4
  Summary: Gremlin-Python for Apache TinkerPop
5
5
  Maintainer-email: Apache TinkerPop <dev@tinkerpop.apache.org>
6
6
  License: Apache 2
@@ -9,7 +9,12 @@ Classifier: Intended Audience :: Developers
9
9
  Classifier: License :: OSI Approved :: Apache Software License
10
10
  Classifier: Natural Language :: English
11
11
  Classifier: Programming Language :: Python :: 3
12
- Requires-Python: >=3.9
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Requires-Python: <3.14,>=3.9
13
18
  Description-Content-Type: text/x-rst
14
19
  License-File: LICENSE
15
20
  License-File: NOTICE
@@ -18,4 +18,4 @@
18
18
  #
19
19
 
20
20
  __author__ = 'Marko A. Rodriguez (http://markorodriguez.com)'
21
- __version__ = '3.7.6'
21
+ __version__ = '3.7.7' # Do not touch, updated automatically from maven
@@ -18,7 +18,7 @@
18
18
  #
19
19
  import platform
20
20
 
21
- gremlin_version = "3.7.6" # DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
21
+ gremlin_version = "3.7.7" # DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
22
22
 
23
23
  def _generate_user_agent():
24
24
  application_name = "NotAvailable"
@@ -20,6 +20,7 @@
20
20
  __author__ = 'Marko A. Rodriguez (http://markorodriguez.com)'
21
21
 
22
22
  from gremlin_python.process.traversal import TraversalStrategy
23
+ import warnings
23
24
 
24
25
  base_namespace = 'org.apache.tinkerpop.gremlin.process.traversal.strategy.'
25
26
  decoration_namespace = base_namespace + 'decoration.'
@@ -187,7 +188,13 @@ class PathRetractionStrategy(TraversalStrategy):
187
188
 
188
189
  class ProductiveByStrategy(TraversalStrategy):
189
190
  def __init__(self, productiveKeys=None):
191
+ warnings.warn(
192
+ "ProductiveByStrategy is deprecated as of 3.7.7, not replaced. It was added as a temporary way to "
193
+ "mimic pre-3.5.0 null processing behavior.",
194
+ DeprecationWarning)
190
195
  TraversalStrategy.__init__(self, fqcn=optimization_namespace + 'ProductiveByStrategy')
196
+ if productiveKeys is not None:
197
+ self.configuration["productiveKeys"] = productiveKeys
191
198
 
192
199
 
193
200
  class CountStrategy(TraversalStrategy):
@@ -658,7 +658,7 @@ class PeerPressure(object):
658
658
 
659
659
  propertyName = "~tinkerpop.peerPressure.propertyName"
660
660
 
661
- property_name = "~tinkerpop.pageRank.propertyName"
661
+ property_name = "~tinkerpop.peerPressure.propertyName"
662
662
 
663
663
  times = "~tinkerpop.peerPressure.times"
664
664
 
@@ -118,6 +118,9 @@ class DataType(Enum):
118
118
 
119
119
  NULL_BYTES = [DataType.null.value, 0x01]
120
120
 
121
+ # null type code as a plain int, so the per-read null check skips the aenum lookup
122
+ _NULL = DataType.null.value
123
+
121
124
 
122
125
  def _make_packer(format_string):
123
126
  packer = struct.Struct(format_string)
@@ -187,6 +190,9 @@ class GraphBinaryReader(object):
187
190
  self.deserializers = _deserializers.copy()
188
191
  if deserializer_map:
189
192
  self.deserializers.update(deserializer_map)
193
+ # Mirror of self.deserializers keyed by int type code instead of DataType.
194
+ # Avoids the per-read DataType(bt) call, whose aenum construction negatively affects performance on large results.
195
+ self._deserializer_by_type_code = {dt.value: des.objectify for dt, des in self.deserializers.items()}
190
196
 
191
197
  def read_object(self, b):
192
198
  if isinstance(b, bytearray):
@@ -197,11 +203,15 @@ class GraphBinaryReader(object):
197
203
  def to_object(self, buff, data_type=None, nullable=True):
198
204
  if data_type is None:
199
205
  bt = uint8_unpack(buff.read(1))
200
- if bt == DataType.null.value:
206
+ if bt == _NULL:
201
207
  if nullable:
202
208
  buff.read(1)
203
209
  return None
204
- return self.deserializers[DataType(bt)].objectify(buff, self, nullable)
210
+ try:
211
+ objectify = self._deserializer_by_type_code[bt]
212
+ except KeyError:
213
+ raise ValueError("%r is not a valid DataType" % bt) from None
214
+ return objectify(buff, self, nullable)
205
215
  else:
206
216
  return self.deserializers[data_type].objectify(buff, self, nullable)
207
217
 
@@ -290,17 +300,13 @@ class BigIntIO(_GraphBinaryTypeIO):
290
300
 
291
301
  @classmethod
292
302
  def write_bigint(cls, obj, to_extend):
293
- length = (obj.bit_length() + 7) // 8
294
- if obj > 0:
295
- b = obj.to_bytes(length, byteorder='big')
296
- to_extend.extend(int32_pack(length + 1))
297
- to_extend.extend(int8_pack(0))
298
- to_extend.extend(b)
299
- else:
300
- # handle negative
301
- b = obj.to_bytes(length, byteorder='big', signed=True)
302
- to_extend.extend(int32_pack(length))
303
- to_extend.extend(b)
303
+ # Compute the minimal signed two's-complement byte length, matching the
304
+ # Java reference serializer (BigInteger.toByteArray()).
305
+ bit_length = obj.bit_length() if obj >= 0 else (obj + 1).bit_length()
306
+ length = bit_length // 8 + 1
307
+ b = obj.to_bytes(length, byteorder='big', signed=True)
308
+ to_extend.extend(int32_pack(length))
309
+ to_extend.extend(b)
304
310
  return to_extend
305
311
 
306
312
  @classmethod
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gremlinpython
3
- Version: 3.7.6
3
+ Version: 3.7.7
4
4
  Summary: Gremlin-Python for Apache TinkerPop
5
5
  Maintainer-email: Apache TinkerPop <dev@tinkerpop.apache.org>
6
6
  License: Apache 2
@@ -9,7 +9,12 @@ Classifier: Intended Audience :: Developers
9
9
  Classifier: License :: OSI Approved :: Apache Software License
10
10
  Classifier: Natural Language :: English
11
11
  Classifier: Programming Language :: Python :: 3
12
- Requires-Python: >=3.9
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Requires-Python: <3.14,>=3.9
13
18
  Description-Content-Type: text/x-rst
14
19
  License-File: LICENSE
15
20
  License-File: NOTICE
@@ -26,7 +26,7 @@ description = "Gremlin-Python for Apache TinkerPop"
26
26
  readme = {file = "README.rst", content-type = "text/x-rst"}
27
27
  license = {text = "Apache 2"}
28
28
  maintainers = [{name = "Apache TinkerPop", email = "dev@tinkerpop.apache.org"}]
29
- requires-python = ">=3.9"
29
+ requires-python = ">=3.9,<3.14"
30
30
  dependencies = [
31
31
  "nest_asyncio",
32
32
  "aiohttp>=3.8.0,<4.0.0",
@@ -38,7 +38,12 @@ classifiers = [
38
38
  "Intended Audience :: Developers",
39
39
  "License :: OSI Approved :: Apache Software License",
40
40
  "Natural Language :: English",
41
- "Programming Language :: Python :: 3"
41
+ "Programming Language :: Python :: 3",
42
+ "Programming Language :: Python :: 3.9",
43
+ "Programming Language :: Python :: 3.10",
44
+ "Programming Language :: Python :: 3.11",
45
+ "Programming Language :: Python :: 3.12",
46
+ "Programming Language :: Python :: 3.13"
42
47
  ]
43
48
 
44
49
  [project.urls]
File without changes
File without changes
File without changes
File without changes
File without changes