gremlinpython 3.8.1__tar.gz → 3.8.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.
- {gremlinpython-3.8.1/gremlinpython.egg-info → gremlinpython-3.8.2}/PKG-INFO +6 -2
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/__init__.py +1 -1
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/useragent.py +1 -1
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/process/strategies.py +7 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/process/traversal.py +1 -1
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/structure/graph.py +12 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/structure/io/graphbinaryV1.py +19 -13
- {gremlinpython-3.8.1 → gremlinpython-3.8.2/gremlinpython.egg-info}/PKG-INFO +6 -2
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/pyproject.toml +6 -2
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/LICENSE +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/MANIFEST.in +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/NOTICE +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/README.rst +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/__init__.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/aiohttp/__init__.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/aiohttp/transport.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/client.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/connection.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/driver_remote_connection.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/protocol.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/remote_connection.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/request.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/resultset.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/serializer.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/transport.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/process/__init__.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/process/anonymous_traversal.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/process/graph_traversal.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/process/translator.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/statics.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/structure/__init__.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/structure/io/__init__.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/structure/io/graphsonV2d0.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/structure/io/graphsonV3d0.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/structure/io/util.py +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlinpython.egg-info/SOURCES.txt +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlinpython.egg-info/dependency_links.txt +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlinpython.egg-info/requires.txt +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlinpython.egg-info/top_level.txt +0 -0
- {gremlinpython-3.8.1 → gremlinpython-3.8.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gremlinpython
|
|
3
|
-
Version: 3.8.
|
|
3
|
+
Version: 3.8.2
|
|
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,11 @@ 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
|
-
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Requires-Python: <3.14,>=3.10
|
|
13
17
|
Description-Content-Type: text/x-rst
|
|
14
18
|
License-File: LICENSE
|
|
15
19
|
License-File: NOTICE
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
#
|
|
19
19
|
import platform
|
|
20
20
|
|
|
21
|
-
gremlin_version = "3.8.
|
|
21
|
+
gremlin_version = "3.8.2" # 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 .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.'
|
|
@@ -201,7 +202,13 @@ class PathRetractionStrategy(TraversalStrategy):
|
|
|
201
202
|
|
|
202
203
|
class ProductiveByStrategy(TraversalStrategy):
|
|
203
204
|
def __init__(self, productiveKeys=None):
|
|
205
|
+
warnings.warn(
|
|
206
|
+
"ProductiveByStrategy is deprecated as of 3.7.7, not replaced. It was added as a temporary way to "
|
|
207
|
+
"mimic pre-3.5.0 null processing behavior.",
|
|
208
|
+
DeprecationWarning)
|
|
204
209
|
TraversalStrategy.__init__(self, fqcn=optimization_namespace + 'ProductiveByStrategy')
|
|
210
|
+
if productiveKeys is not None:
|
|
211
|
+
self.configuration["productiveKeys"] = productiveKeys
|
|
205
212
|
|
|
206
213
|
|
|
207
214
|
class CountStrategy(TraversalStrategy):
|
|
@@ -700,7 +700,7 @@ class PeerPressure(object):
|
|
|
700
700
|
|
|
701
701
|
propertyName = "~tinkerpop.peerPressure.propertyName"
|
|
702
702
|
|
|
703
|
-
property_name = "~tinkerpop.
|
|
703
|
+
property_name = "~tinkerpop.peerPressure.propertyName"
|
|
704
704
|
|
|
705
705
|
times = "~tinkerpop.peerPressure.times"
|
|
706
706
|
|
|
@@ -42,6 +42,18 @@ class Element(object):
|
|
|
42
42
|
def __hash__(self):
|
|
43
43
|
return hash(self.id)
|
|
44
44
|
|
|
45
|
+
def property_map(self):
|
|
46
|
+
"""Groups this element's properties by key.
|
|
47
|
+
|
|
48
|
+
Returns a dict of property key -> list of property objects (an empty
|
|
49
|
+
dict when this element has no properties). ``self.properties`` is a
|
|
50
|
+
flat list where each item exposes ``.key``.
|
|
51
|
+
"""
|
|
52
|
+
result = {}
|
|
53
|
+
for p in self.properties:
|
|
54
|
+
result.setdefault(p.key, []).append(p)
|
|
55
|
+
return result
|
|
56
|
+
|
|
45
57
|
|
|
46
58
|
class Vertex(Element):
|
|
47
59
|
def __init__(self, id, label="vertex", properties=None):
|
|
@@ -119,6 +119,9 @@ class DataType(Enum):
|
|
|
119
119
|
|
|
120
120
|
NULL_BYTES = [DataType.null.value, 0x01]
|
|
121
121
|
|
|
122
|
+
# null type code as a plain int, so the per-read null check skips the aenum lookup
|
|
123
|
+
_NULL = DataType.null.value
|
|
124
|
+
|
|
122
125
|
|
|
123
126
|
def _make_packer(format_string):
|
|
124
127
|
packer = struct.Struct(format_string)
|
|
@@ -188,6 +191,9 @@ class GraphBinaryReader(object):
|
|
|
188
191
|
self.deserializers = _deserializers.copy()
|
|
189
192
|
if deserializer_map:
|
|
190
193
|
self.deserializers.update(deserializer_map)
|
|
194
|
+
# Mirror of self.deserializers keyed by int type code instead of DataType.
|
|
195
|
+
# Avoids the per-read DataType(bt) call, whose aenum construction negatively affects performance on large results.
|
|
196
|
+
self._deserializer_by_type_code = {dt.value: des.objectify for dt, des in self.deserializers.items()}
|
|
191
197
|
|
|
192
198
|
def read_object(self, b):
|
|
193
199
|
if isinstance(b, bytearray):
|
|
@@ -198,11 +204,15 @@ class GraphBinaryReader(object):
|
|
|
198
204
|
def to_object(self, buff, data_type=None, nullable=True):
|
|
199
205
|
if data_type is None:
|
|
200
206
|
bt = uint8_unpack(buff.read(1))
|
|
201
|
-
if bt ==
|
|
207
|
+
if bt == _NULL:
|
|
202
208
|
if nullable:
|
|
203
209
|
buff.read(1)
|
|
204
210
|
return None
|
|
205
|
-
|
|
211
|
+
try:
|
|
212
|
+
objectify = self._deserializer_by_type_code[bt]
|
|
213
|
+
except KeyError:
|
|
214
|
+
raise ValueError("%r is not a valid DataType" % bt) from None
|
|
215
|
+
return objectify(buff, self, nullable)
|
|
206
216
|
else:
|
|
207
217
|
return self.deserializers[data_type].objectify(buff, self, nullable)
|
|
208
218
|
|
|
@@ -291,17 +301,13 @@ class BigIntIO(_GraphBinaryTypeIO):
|
|
|
291
301
|
|
|
292
302
|
@classmethod
|
|
293
303
|
def write_bigint(cls, obj, to_extend):
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
# handle negative
|
|
302
|
-
b = obj.to_bytes(length, byteorder='big', signed=True)
|
|
303
|
-
to_extend.extend(int32_pack(length))
|
|
304
|
-
to_extend.extend(b)
|
|
304
|
+
# Compute the minimal signed two's-complement byte length, matching the
|
|
305
|
+
# Java reference serializer (BigInteger.toByteArray()).
|
|
306
|
+
bit_length = obj.bit_length() if obj >= 0 else (obj + 1).bit_length()
|
|
307
|
+
length = bit_length // 8 + 1
|
|
308
|
+
b = obj.to_bytes(length, byteorder='big', signed=True)
|
|
309
|
+
to_extend.extend(int32_pack(length))
|
|
310
|
+
to_extend.extend(b)
|
|
305
311
|
return to_extend
|
|
306
312
|
|
|
307
313
|
@classmethod
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gremlinpython
|
|
3
|
-
Version: 3.8.
|
|
3
|
+
Version: 3.8.2
|
|
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,11 @@ 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
|
-
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Requires-Python: <3.14,>=3.10
|
|
13
17
|
Description-Content-Type: text/x-rst
|
|
14
18
|
License-File: LICENSE
|
|
15
19
|
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.10"
|
|
29
|
+
requires-python = ">=3.10,<3.14"
|
|
30
30
|
dependencies = [
|
|
31
31
|
"nest_asyncio",
|
|
32
32
|
"aiohttp>=3.8.0,<4.0.0",
|
|
@@ -38,7 +38,11 @@ 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.10",
|
|
43
|
+
"Programming Language :: Python :: 3.11",
|
|
44
|
+
"Programming Language :: Python :: 3.12",
|
|
45
|
+
"Programming Language :: Python :: 3.13"
|
|
42
46
|
]
|
|
43
47
|
|
|
44
48
|
[project.urls]
|
|
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
|
{gremlinpython-3.8.1 → gremlinpython-3.8.2}/gremlin_python/driver/driver_remote_connection.py
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
|