gremlinpython 3.6.6__tar.gz → 3.6.8__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.6.8/NOTICE +5 -0
- {gremlinpython-3.6.6/gremlinpython.egg-info → gremlinpython-3.6.8}/PKG-INFO +5 -2
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/__version__.py +2 -2
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/aiohttp/transport.py +8 -2
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/client.py +4 -2
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/connection.py +17 -6
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/driver_remote_connection.py +3 -1
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/protocol.py +24 -22
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/serializer.py +1 -1
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/useragent.py +1 -1
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/process/graph_traversal.py +1 -1
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/process/traversal.py +2 -2
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/structure/io/graphsonV2d0.py +25 -1
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/structure/io/graphsonV3d0.py +27 -1
- {gremlinpython-3.6.6 → gremlinpython-3.6.8/gremlinpython.egg-info}/PKG-INFO +5 -2
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlinpython.egg-info/requires.txt +1 -1
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/setup.cfg +0 -3
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/setup.py +7 -9
- gremlinpython-3.6.6/NOTICE +0 -5
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/LICENSE +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/MANIFEST.in +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/README.rst +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/__init__.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/__init__.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/aiohttp/__init__.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/remote_connection.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/request.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/resultset.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/transport.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/process/__init__.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/process/anonymous_traversal.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/process/strategies.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/process/translator.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/statics.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/structure/__init__.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/structure/graph.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/structure/io/__init__.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/structure/io/graphbinaryV1.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/structure/io/util.py +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlinpython.egg-info/SOURCES.txt +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlinpython.egg-info/dependency_links.txt +0 -0
- {gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlinpython.egg-info/top_level.txt +0 -0
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: gremlinpython
|
|
3
|
-
Version: 3.6.
|
|
3
|
+
Version: 3.6.8
|
|
4
4
|
Summary: Gremlin-Python for Apache TinkerPop
|
|
5
|
-
Home-page:
|
|
5
|
+
Home-page: https://tinkerpop.apache.org
|
|
6
|
+
Maintainer: Apache TinkerPop
|
|
7
|
+
Maintainer-email: dev@tinkerpop.apache.org
|
|
6
8
|
License: Apache 2
|
|
7
9
|
Platform: UNKNOWN
|
|
8
10
|
Classifier: Intended Audience :: Developers
|
|
9
11
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
10
12
|
Classifier: Natural Language :: English
|
|
11
13
|
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Requires-Python: >=3.9
|
|
12
15
|
Description-Content-Type: text/x-rst
|
|
13
16
|
Provides-Extra: kerberos
|
|
14
17
|
Provides-Extra: ujson
|
|
@@ -29,7 +29,8 @@ __author__ = 'Lyndon Bauto (lyndonb@bitquilltech.com)'
|
|
|
29
29
|
class AiohttpTransport(AbstractBaseTransport):
|
|
30
30
|
nest_asyncio_applied = False
|
|
31
31
|
|
|
32
|
-
def __init__(self, call_from_event_loop=None, read_timeout=None, write_timeout=None,
|
|
32
|
+
def __init__(self, call_from_event_loop=None, read_timeout=None, write_timeout=None, enable_compression=False,
|
|
33
|
+
**kwargs):
|
|
33
34
|
if call_from_event_loop is not None and call_from_event_loop and not AiohttpTransport.nest_asyncio_applied:
|
|
34
35
|
"""
|
|
35
36
|
The AiohttpTransport implementation uses the asyncio event loop. Because of this, it cannot be called
|
|
@@ -50,10 +51,13 @@ class AiohttpTransport(AbstractBaseTransport):
|
|
|
50
51
|
self._aiohttp_kwargs = kwargs
|
|
51
52
|
self._write_timeout = write_timeout
|
|
52
53
|
self._read_timeout = read_timeout
|
|
54
|
+
self._enable_compression = enable_compression
|
|
53
55
|
if "max_content_length" in self._aiohttp_kwargs:
|
|
54
56
|
self._aiohttp_kwargs["max_msg_size"] = self._aiohttp_kwargs.pop("max_content_length")
|
|
55
57
|
if "ssl_options" in self._aiohttp_kwargs:
|
|
56
58
|
self._aiohttp_kwargs["ssl"] = self._aiohttp_kwargs.pop("ssl_options")
|
|
59
|
+
if self._enable_compression and "compress" not in self._aiohttp_kwargs:
|
|
60
|
+
self._aiohttp_kwargs["compress"] = 15 # enable per-message deflate compression with 32k sliding window size
|
|
57
61
|
|
|
58
62
|
def __del__(self):
|
|
59
63
|
# Close will only actually close if things are left open, so this is safe to call.
|
|
@@ -211,7 +215,9 @@ class AiohttpHTTPTransport(AbstractBaseTransport):
|
|
|
211
215
|
# Inner function to perform async read.
|
|
212
216
|
async def async_read():
|
|
213
217
|
async with async_timeout.timeout(self._read_timeout):
|
|
214
|
-
return await self._http_req_resp.read()
|
|
218
|
+
return {"content": await self._http_req_resp.read(),
|
|
219
|
+
"ok": self._http_req_resp.ok,
|
|
220
|
+
"status": self._http_req_resp.status}
|
|
215
221
|
|
|
216
222
|
return self._loop.run_until_complete(async_read())
|
|
217
223
|
|
|
@@ -44,7 +44,8 @@ class Client:
|
|
|
44
44
|
transport_factory=None, pool_size=None, max_workers=None,
|
|
45
45
|
message_serializer=None, username="", password="",
|
|
46
46
|
kerberized_service="", headers=None, session=None,
|
|
47
|
-
enable_user_agent_on_connect=True,
|
|
47
|
+
enable_user_agent_on_connect=True, enable_compression=False,
|
|
48
|
+
**transport_kwargs):
|
|
48
49
|
log.info("Creating Client with url '%s'", url)
|
|
49
50
|
|
|
50
51
|
# check via url that we are using http protocol
|
|
@@ -55,6 +56,7 @@ class Client:
|
|
|
55
56
|
self._headers = headers
|
|
56
57
|
self._enable_user_agent_on_connect = enable_user_agent_on_connect
|
|
57
58
|
self._traversal_source = traversal_source
|
|
59
|
+
self._enable_compression = enable_compression
|
|
58
60
|
if not self._use_http and "max_content_length" not in transport_kwargs:
|
|
59
61
|
transport_kwargs["max_content_length"] = 10 * 1024 * 1024
|
|
60
62
|
if message_serializer is None:
|
|
@@ -77,7 +79,7 @@ class Client:
|
|
|
77
79
|
if self._use_http:
|
|
78
80
|
return AiohttpHTTPTransport(**transport_kwargs)
|
|
79
81
|
else:
|
|
80
|
-
return AiohttpTransport(**transport_kwargs)
|
|
82
|
+
return AiohttpTransport(enable_compression=enable_compression, **transport_kwargs)
|
|
81
83
|
self._transport_factory = transport_factory
|
|
82
84
|
if protocol_factory is None:
|
|
83
85
|
def protocol_factory():
|
|
@@ -39,9 +39,7 @@ class Connection:
|
|
|
39
39
|
self._inited = False
|
|
40
40
|
self._enable_user_agent_on_connect = enable_user_agent_on_connect
|
|
41
41
|
if self._enable_user_agent_on_connect:
|
|
42
|
-
|
|
43
|
-
self._headers = dict()
|
|
44
|
-
self._headers[useragent.userAgentHeader] = useragent.userAgent
|
|
42
|
+
self.__add_header(useragent.userAgentHeader, useragent.userAgent)
|
|
45
43
|
|
|
46
44
|
def connect(self):
|
|
47
45
|
if self._transport:
|
|
@@ -58,10 +56,11 @@ class Connection:
|
|
|
58
56
|
def write(self, request_message):
|
|
59
57
|
if not self._inited:
|
|
60
58
|
self.connect()
|
|
61
|
-
request_id = str(uuid.uuid4())
|
|
62
59
|
if request_message.args.get("requestId"):
|
|
63
|
-
request_id = request_message.args.get("requestId")
|
|
64
|
-
uuid.UUID(request_id)
|
|
60
|
+
request_id = str(request_message.args.get("requestId"))
|
|
61
|
+
uuid.UUID(request_id) # Checks for proper UUID or else server will return an error.
|
|
62
|
+
else:
|
|
63
|
+
request_id = str(uuid.uuid4())
|
|
65
64
|
result_set = resultset.ResultSet(queue.Queue(), request_id)
|
|
66
65
|
self._results[request_id] = result_set
|
|
67
66
|
# Create write task
|
|
@@ -93,3 +92,15 @@ class Connection:
|
|
|
93
92
|
break
|
|
94
93
|
finally:
|
|
95
94
|
self._pool.put_nowait(self)
|
|
95
|
+
|
|
96
|
+
def __add_header(self, key, value):
|
|
97
|
+
if self._headers is None:
|
|
98
|
+
self._headers = dict()
|
|
99
|
+
# Headers may be a list of pairs
|
|
100
|
+
if isinstance(self._headers, list):
|
|
101
|
+
for pair in self._headers:
|
|
102
|
+
if pair[0] == key:
|
|
103
|
+
self._headers.remove(pair)
|
|
104
|
+
self._headers.append((key, value))
|
|
105
|
+
else:
|
|
106
|
+
self._headers[key] = value
|
{gremlinpython-3.6.6 → gremlinpython-3.6.8}/gremlin_python/driver/driver_remote_connection.py
RENAMED
|
@@ -39,7 +39,7 @@ class DriverRemoteConnection(RemoteConnection):
|
|
|
39
39
|
username="", password="", kerberized_service='',
|
|
40
40
|
message_serializer=None, graphson_reader=None,
|
|
41
41
|
graphson_writer=None, headers=None, session=None,
|
|
42
|
-
enable_user_agent_on_connect=True, **transport_kwargs):
|
|
42
|
+
enable_user_agent_on_connect=True, enable_compression=False, **transport_kwargs):
|
|
43
43
|
log.info("Creating DriverRemoteConnection with url '%s'", str(url))
|
|
44
44
|
self.__url = url
|
|
45
45
|
self.__traversal_source = traversal_source
|
|
@@ -56,6 +56,7 @@ class DriverRemoteConnection(RemoteConnection):
|
|
|
56
56
|
self.__headers = headers
|
|
57
57
|
self.__session = session
|
|
58
58
|
self.__enable_user_agent_on_connect = enable_user_agent_on_connect
|
|
59
|
+
self.__enable_compression = enable_compression
|
|
59
60
|
self.__transport_kwargs = transport_kwargs
|
|
60
61
|
|
|
61
62
|
# keeps a list of sessions that have been spawned from this DriverRemoteConnection
|
|
@@ -78,6 +79,7 @@ class DriverRemoteConnection(RemoteConnection):
|
|
|
78
79
|
headers=headers,
|
|
79
80
|
session=session,
|
|
80
81
|
enable_user_agent_on_connect=enable_user_agent_on_connect,
|
|
82
|
+
enable_compression=enable_compression,
|
|
81
83
|
**transport_kwargs)
|
|
82
84
|
self._url = self._client._url
|
|
83
85
|
self._traversal_source = self._client._traversal_source
|
|
@@ -223,35 +223,37 @@ class GremlinServerHTTPProtocol(AbstractBaseProtocol):
|
|
|
223
223
|
|
|
224
224
|
self._transport.write(message)
|
|
225
225
|
|
|
226
|
-
def data_received(self,
|
|
226
|
+
def data_received(self, response, results_dict):
|
|
227
227
|
# if Gremlin Server cuts off then we get a None for the message
|
|
228
|
-
if
|
|
228
|
+
if response is None:
|
|
229
229
|
log.error("Received empty message from server.")
|
|
230
230
|
raise GremlinServerError({'code': 500,
|
|
231
231
|
'message': 'Server disconnected - please try to reconnect', 'attributes': {}})
|
|
232
232
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
return status_code
|
|
245
|
-
elif status_code in [200, 206]:
|
|
246
|
-
result_set.stream.put_nowait(data)
|
|
247
|
-
if status_code == 200:
|
|
248
|
-
result_set.status_attributes = message['status']['attributes']
|
|
233
|
+
if response['ok']:
|
|
234
|
+
message = self._message_serializer.deserialize_message(response['content'])
|
|
235
|
+
request_id = message['requestId']
|
|
236
|
+
result_set = results_dict[request_id] if request_id in results_dict else ResultSet(None, None)
|
|
237
|
+
status_code = message['status']['code']
|
|
238
|
+
aggregate_to = message['result']['meta'].get('aggregateTo', 'list')
|
|
239
|
+
data = message['result']['data']
|
|
240
|
+
result_set.aggregate_to = aggregate_to
|
|
241
|
+
|
|
242
|
+
if status_code == 204:
|
|
243
|
+
result_set.stream.put_nowait([])
|
|
249
244
|
del results_dict[request_id]
|
|
250
|
-
|
|
245
|
+
return status_code
|
|
246
|
+
elif status_code in [200, 206]:
|
|
247
|
+
result_set.stream.put_nowait(data)
|
|
248
|
+
if status_code == 200:
|
|
249
|
+
result_set.status_attributes = message['status']['attributes']
|
|
250
|
+
del results_dict[request_id]
|
|
251
|
+
return status_code
|
|
251
252
|
else:
|
|
252
253
|
# This message is going to be huge and kind of hard to read, but in the event of an error,
|
|
253
254
|
# it can provide invaluable info, so space it out appropriately.
|
|
254
255
|
log.error("\r\nReceived error message '%s'\r\n\r\nWith results dictionary '%s'",
|
|
255
|
-
str(
|
|
256
|
-
|
|
257
|
-
|
|
256
|
+
str(response['content']), str(results_dict))
|
|
257
|
+
body = json.loads(response['content'])
|
|
258
|
+
del results_dict[body['requestId']]
|
|
259
|
+
raise GremlinServerError({'code': response['status'], 'message': body['message'], 'attributes': {}})
|
|
@@ -240,7 +240,7 @@ class GraphBinarySerializersV1(object):
|
|
|
240
240
|
def finalize_message(self, message, mime_len, mime_type):
|
|
241
241
|
ba = bytearray()
|
|
242
242
|
|
|
243
|
-
request_id = uuid.UUID(message['requestId'])
|
|
243
|
+
request_id = uuid.UUID(str(message['requestId']))
|
|
244
244
|
ba.extend(self.header_pack(mime_len, mime_type, 0x81,
|
|
245
245
|
(request_id.int >> 64) & self.max_int64, request_id.int & self.max_int64))
|
|
246
246
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
#
|
|
19
19
|
import platform
|
|
20
20
|
|
|
21
|
-
gremlin_version = "3.6.
|
|
21
|
+
gremlin_version = "3.6.8" # DO NOT MODIFY - Configured automatically by Maven Replacer Plugin
|
|
22
22
|
|
|
23
23
|
def _generate_user_agent():
|
|
24
24
|
application_name = "NotAvailable"
|
|
@@ -1538,7 +1538,7 @@ class Transaction:
|
|
|
1538
1538
|
def rollback(self):
|
|
1539
1539
|
with self.__mutex:
|
|
1540
1540
|
# Verify transaction is open, close session and return result of transaction's rollback.
|
|
1541
|
-
self.__verify_transaction_state(True, "Cannot
|
|
1541
|
+
self.__verify_transaction_state(True, "Cannot rollback a transaction that is not started.")
|
|
1542
1542
|
return self.__close_session(self._session_based_connection.rollback())
|
|
1543
1543
|
|
|
1544
1544
|
# Commits the current transaction.
|
|
@@ -207,9 +207,9 @@ statics.add_static('shuffle', Order.shuffle)
|
|
|
207
207
|
statics.add_static('asc', Order.asc)
|
|
208
208
|
statics.add_static('desc', Order.desc)
|
|
209
209
|
|
|
210
|
-
Pick = Enum('Pick', '
|
|
210
|
+
Pick = Enum('Pick', ' any_ none')
|
|
211
211
|
|
|
212
|
-
statics.add_static('
|
|
212
|
+
statics.add_static('any_', Pick.any_)
|
|
213
213
|
statics.add_static('none', Pick.none)
|
|
214
214
|
|
|
215
215
|
Pop = Enum('Pop', ' all_ first last mixed')
|
|
@@ -30,7 +30,7 @@ from aenum import Enum
|
|
|
30
30
|
from isodate import parse_duration, duration_isoformat
|
|
31
31
|
|
|
32
32
|
from gremlin_python import statics
|
|
33
|
-
from gremlin_python.statics import FloatType, FunctionType, IntType, LongType, TypeType, SingleByte, ByteBufferType, SingleChar
|
|
33
|
+
from gremlin_python.statics import FloatType, FunctionType, ShortType, IntType, LongType, TypeType, SingleByte, ByteBufferType, SingleChar
|
|
34
34
|
from gremlin_python.process.traversal import Binding, Bytecode, P, TextP, Traversal, Traverser, TraversalStrategy
|
|
35
35
|
from gremlin_python.structure.graph import Edge, Property, Vertex, VertexProperty, Path
|
|
36
36
|
from gremlin_python.structure.io.util import SymbolUtil
|
|
@@ -498,6 +498,30 @@ class Int32IO(Int64IO):
|
|
|
498
498
|
return GraphSONUtil.typed_value(cls.graphson_base_type, n)
|
|
499
499
|
|
|
500
500
|
|
|
501
|
+
class Int16IO(Int64IO):
|
|
502
|
+
python_type = ShortType
|
|
503
|
+
graphson_type = "gx:Int16"
|
|
504
|
+
graphson_base_type = "Int16"
|
|
505
|
+
|
|
506
|
+
@classmethod
|
|
507
|
+
def dictify(cls, n, writer):
|
|
508
|
+
# if we exceed Java int range then we need a long
|
|
509
|
+
if isinstance(n, bool):
|
|
510
|
+
return n
|
|
511
|
+
elif n < -9223372036854775808 or n > 9223372036854775807:
|
|
512
|
+
return GraphSONUtil.typed_value("BigInteger", str(n), "gx")
|
|
513
|
+
elif n < -2147483648 or n > 2147483647:
|
|
514
|
+
return GraphSONUtil.typed_value("Int64", n)
|
|
515
|
+
elif n < -32768 or n > 32767:
|
|
516
|
+
return GraphSONUtil.typed_value("Int32", n)
|
|
517
|
+
else:
|
|
518
|
+
return GraphSONUtil.typed_value(cls.graphson_base_type, n, "gx")
|
|
519
|
+
|
|
520
|
+
@classmethod
|
|
521
|
+
def objectify(cls, v, _):
|
|
522
|
+
return int.__new__(ShortType, v)
|
|
523
|
+
|
|
524
|
+
|
|
501
525
|
class ByteIO(_NumberIO):
|
|
502
526
|
python_type = SingleByte
|
|
503
527
|
graphson_type = "gx:Byte"
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# KIND, either express or implied. See the License for the
|
|
15
15
|
# specific language governing permissions and limitations
|
|
16
16
|
# under the License.
|
|
17
|
+
|
|
17
18
|
import calendar
|
|
18
19
|
import datetime
|
|
19
20
|
import json
|
|
@@ -28,7 +29,7 @@ from aenum import Enum
|
|
|
28
29
|
from isodate import parse_duration, duration_isoformat
|
|
29
30
|
|
|
30
31
|
from gremlin_python import statics
|
|
31
|
-
from gremlin_python.statics import FloatType, FunctionType, IntType, LongType, TypeType, DictType, ListType, SetType, SingleByte, ByteBufferType, SingleChar
|
|
32
|
+
from gremlin_python.statics import FloatType, FunctionType, ShortType, IntType, LongType, TypeType, DictType, ListType, SetType, SingleByte, ByteBufferType, SingleChar
|
|
32
33
|
from gremlin_python.process.traversal import Binding, Bytecode, Direction, P, TextP, Traversal, Traverser, TraversalStrategy, T
|
|
33
34
|
from gremlin_python.structure.graph import Edge, Property, Vertex, VertexProperty, Path
|
|
34
35
|
from gremlin_python.structure.io.util import HashableDict, SymbolUtil
|
|
@@ -596,6 +597,31 @@ class Int32IO(Int64IO):
|
|
|
596
597
|
else:
|
|
597
598
|
return GraphSONUtil.typed_value(cls.graphson_base_type, n)
|
|
598
599
|
|
|
600
|
+
|
|
601
|
+
class Int16IO(Int64IO):
|
|
602
|
+
python_type = ShortType
|
|
603
|
+
graphson_type = "gx:Int16"
|
|
604
|
+
graphson_base_type = "Int16"
|
|
605
|
+
|
|
606
|
+
@classmethod
|
|
607
|
+
def dictify(cls, n, writer):
|
|
608
|
+
# if we exceed Java int range then we need a long
|
|
609
|
+
if isinstance(n, bool):
|
|
610
|
+
return n
|
|
611
|
+
elif n < -9223372036854775808 or n > 9223372036854775807:
|
|
612
|
+
return GraphSONUtil.typed_value("BigInteger", str(n), "gx")
|
|
613
|
+
elif n < -2147483648 or n > 2147483647:
|
|
614
|
+
return GraphSONUtil.typed_value("Int64", n)
|
|
615
|
+
elif n < -32768 or n > 32767:
|
|
616
|
+
return GraphSONUtil.typed_value("Int32", n)
|
|
617
|
+
else:
|
|
618
|
+
return GraphSONUtil.typed_value(cls.graphson_base_type, n, "gx")
|
|
619
|
+
|
|
620
|
+
@classmethod
|
|
621
|
+
def objectify(cls, v, _):
|
|
622
|
+
return int.__new__(ShortType, v)
|
|
623
|
+
|
|
624
|
+
|
|
599
625
|
class ByteIO(_NumberIO):
|
|
600
626
|
python_type = SingleByte
|
|
601
627
|
graphson_type = "gx:Byte"
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: gremlinpython
|
|
3
|
-
Version: 3.6.
|
|
3
|
+
Version: 3.6.8
|
|
4
4
|
Summary: Gremlin-Python for Apache TinkerPop
|
|
5
|
-
Home-page:
|
|
5
|
+
Home-page: https://tinkerpop.apache.org
|
|
6
|
+
Maintainer: Apache TinkerPop
|
|
7
|
+
Maintainer-email: dev@tinkerpop.apache.org
|
|
6
8
|
License: Apache 2
|
|
7
9
|
Platform: UNKNOWN
|
|
8
10
|
Classifier: Intended Audience :: Developers
|
|
9
11
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
10
12
|
Classifier: Natural Language :: English
|
|
11
13
|
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Requires-Python: >=3.9
|
|
12
15
|
Description-Content-Type: text/x-rst
|
|
13
16
|
Provides-Extra: kerberos
|
|
14
17
|
Provides-Extra: ujson
|
|
@@ -18,7 +18,6 @@ under the License.
|
|
|
18
18
|
"""
|
|
19
19
|
import codecs
|
|
20
20
|
import os
|
|
21
|
-
import sys
|
|
22
21
|
import time
|
|
23
22
|
from setuptools import setup
|
|
24
23
|
|
|
@@ -48,13 +47,10 @@ install_requires = [
|
|
|
48
47
|
'nest_asyncio',
|
|
49
48
|
'aiohttp>=3.8.0,<4.0.0',
|
|
50
49
|
'aenum>=1.4.5,<4.0.0',
|
|
51
|
-
'
|
|
52
|
-
'
|
|
50
|
+
'isodate>=0.6.0,<1.0.0',
|
|
51
|
+
'async-timeout>=4.0.3,<5.0.0'
|
|
53
52
|
]
|
|
54
53
|
|
|
55
|
-
if sys.version_info < (3, 5):
|
|
56
|
-
install_requires += ['pyparsing>=2.4.7,<3.0.0']
|
|
57
|
-
|
|
58
54
|
setup(
|
|
59
55
|
name='gremlinpython',
|
|
60
56
|
version=version,
|
|
@@ -62,8 +58,10 @@ setup(
|
|
|
62
58
|
'gremlin_python.driver.aiohttp', 'gremlin_python.process',
|
|
63
59
|
'gremlin_python.structure', 'gremlin_python.structure.io'],
|
|
64
60
|
license='Apache 2',
|
|
65
|
-
url='
|
|
61
|
+
url='https://tinkerpop.apache.org',
|
|
66
62
|
description='Gremlin-Python for Apache TinkerPop',
|
|
63
|
+
maintainer='Apache TinkerPop',
|
|
64
|
+
maintainer_email='dev@tinkerpop.apache.org',
|
|
67
65
|
long_description=codecs.open("README.rst", "r", "UTF-8").read(),
|
|
68
66
|
long_description_content_type='text/x-rst',
|
|
69
67
|
test_suite="tests",
|
|
@@ -74,7 +72,6 @@ setup(
|
|
|
74
72
|
],
|
|
75
73
|
tests_require=[
|
|
76
74
|
'pytest>=4.6.4,<7.2.0',
|
|
77
|
-
'mock>=3.0.5,<5.0.0',
|
|
78
75
|
'radish-bdd==0.13.4',
|
|
79
76
|
'PyHamcrest>=1.9.0,<3.0.0'
|
|
80
77
|
],
|
|
@@ -88,5 +85,6 @@ setup(
|
|
|
88
85
|
"License :: OSI Approved :: Apache Software License",
|
|
89
86
|
"Natural Language :: English",
|
|
90
87
|
"Programming Language :: Python :: 3"
|
|
91
|
-
]
|
|
88
|
+
],
|
|
89
|
+
python_requires='>=3.9'
|
|
92
90
|
)
|
gremlinpython-3.6.6/NOTICE
DELETED
|
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
|