gremlinpython 3.6.8__py3-none-any.whl

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 (37) hide show
  1. gremlin_python/__init__.py +20 -0
  2. gremlin_python/__version__.py +20 -0
  3. gremlin_python/driver/__init__.py +20 -0
  4. gremlin_python/driver/aiohttp/__init__.py +18 -0
  5. gremlin_python/driver/aiohttp/transport.py +242 -0
  6. gremlin_python/driver/client.py +206 -0
  7. gremlin_python/driver/connection.py +106 -0
  8. gremlin_python/driver/driver_remote_connection.py +183 -0
  9. gremlin_python/driver/protocol.py +259 -0
  10. gremlin_python/driver/remote_connection.py +84 -0
  11. gremlin_python/driver/request.py +25 -0
  12. gremlin_python/driver/resultset.py +100 -0
  13. gremlin_python/driver/serializer.py +294 -0
  14. gremlin_python/driver/transport.py +45 -0
  15. gremlin_python/driver/useragent.py +37 -0
  16. gremlin_python/process/__init__.py +20 -0
  17. gremlin_python/process/anonymous_traversal.py +64 -0
  18. gremlin_python/process/graph_traversal.py +2301 -0
  19. gremlin_python/process/strategies.py +239 -0
  20. gremlin_python/process/translator.py +297 -0
  21. gremlin_python/process/traversal.py +875 -0
  22. gremlin_python/statics.py +117 -0
  23. gremlin_python/structure/__init__.py +20 -0
  24. gremlin_python/structure/graph.py +134 -0
  25. gremlin_python/structure/io/__init__.py +20 -0
  26. gremlin_python/structure/io/graphbinaryV1.py +1153 -0
  27. gremlin_python/structure/io/graphsonV2d0.py +646 -0
  28. gremlin_python/structure/io/graphsonV3d0.py +766 -0
  29. gremlin_python/structure/io/util.py +60 -0
  30. gremlinpython-3.6.8.data/data/LICENSE +202 -0
  31. gremlinpython-3.6.8.data/data/NOTICE +5 -0
  32. gremlinpython-3.6.8.dist-info/LICENSE +202 -0
  33. gremlinpython-3.6.8.dist-info/METADATA +147 -0
  34. gremlinpython-3.6.8.dist-info/NOTICE +5 -0
  35. gremlinpython-3.6.8.dist-info/RECORD +37 -0
  36. gremlinpython-3.6.8.dist-info/WHEEL +5 -0
  37. gremlinpython-3.6.8.dist-info/top_level.txt +1 -0
@@ -0,0 +1,2301 @@
1
+ #
2
+ # Licensed to the Apache Software Foundation (ASF) under one
3
+ # or more contributor license agreements. See the NOTICE file
4
+ # distributed with this work for additional information
5
+ # regarding copyright ownership. The ASF licenses this file
6
+ # to you under the Apache License, Version 2.0 (the
7
+ # "License"); you may not use this file except in compliance
8
+ # with the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing,
13
+ # software distributed under the License is distributed on an
14
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ # KIND, either express or implied. See the License for the
16
+ # specific language governing permissions and limitations
17
+ # under the License.
18
+ #
19
+ import logging
20
+ import sys
21
+ import copy
22
+ import warnings
23
+ from threading import Lock
24
+ from .traversal import Traversal
25
+ from .traversal import TraversalStrategies
26
+ from .strategies import VertexProgramStrategy, OptionsStrategy
27
+ from .traversal import Bytecode
28
+ from ..driver.remote_connection import RemoteStrategy
29
+ from .. import statics
30
+ from ..statics import long
31
+
32
+ log = logging.getLogger("gremlinpython")
33
+
34
+ __author__ = 'Stephen Mallette (http://stephen.genoprime.com), Lyndon Bauto (lyndonb@bitquilltech.com)'
35
+
36
+
37
+ class GraphTraversalSource(object):
38
+ def __init__(self, graph, traversal_strategies, bytecode=None):
39
+ log.info("Creating GraphTraversalSource.")
40
+ self.graph = graph
41
+ self.traversal_strategies = traversal_strategies
42
+ if bytecode is None:
43
+ bytecode = Bytecode()
44
+ self.bytecode = bytecode
45
+ self.graph_traversal = GraphTraversal
46
+ self.remote_connection = None
47
+
48
+ def __repr__(self):
49
+ return "graphtraversalsource[" + str(self.graph) + "]"
50
+
51
+ def get_graph_traversal_source(self):
52
+ return self.__class__(self.graph, TraversalStrategies(self.traversal_strategies), Bytecode(self.bytecode))
53
+
54
+ def get_graph_traversal(self):
55
+ return self.graph_traversal(self.graph, self.traversal_strategies, Bytecode(self.bytecode))
56
+
57
+ def withBulk(self, *args):
58
+ warnings.warn(
59
+ "gremlin_python.process.GraphTraversalSource.withBulk will be replaced by "
60
+ "gremlin_python.process.GraphTraversalSource.with_bulk.",
61
+ DeprecationWarning)
62
+ return self.with_bulk(*args)
63
+
64
+ def with_bulk(self, *args):
65
+ source = self.get_graph_traversal_source()
66
+ source.bytecode.add_source("withBulk", *args)
67
+ return source
68
+
69
+ def withPath(self, *args):
70
+ warnings.warn(
71
+ "gremlin_python.process.GraphTraversalSource.withPath will be replaced by "
72
+ "gremlin_python.process.Traversal.with_path.",
73
+ DeprecationWarning)
74
+ return self.with_path(*args)
75
+
76
+ def with_path(self, *args):
77
+ source = self.get_graph_traversal_source()
78
+ source.bytecode.add_source("withPath", *args)
79
+ return source
80
+
81
+ def withSack(self, *args):
82
+ warnings.warn(
83
+ "gremlin_python.process.GraphTraversalSource.withSack will be replaced by "
84
+ "gremlin_python.process.GraphTraversalSource.with_sack.",
85
+ DeprecationWarning)
86
+ return self.with_sack(*args)
87
+
88
+ def with_sack(self, *args):
89
+ source = self.get_graph_traversal_source()
90
+ source.bytecode.add_source("withSack", *args)
91
+ return source
92
+
93
+ def withSideEffect(self, *args):
94
+ warnings.warn(
95
+ "gremlin_python.process.GraphTraversalSource.with_side_effect will be replaced by "
96
+ "gremlin_python.process.GraphTraversalSource.with_sack.",
97
+ DeprecationWarning)
98
+ return self.with_side_effect(*args)
99
+
100
+ def with_side_effect(self, *args):
101
+ source = self.get_graph_traversal_source()
102
+ source.bytecode.add_source("withSideEffect", *args)
103
+ return source
104
+
105
+ def withStrategies(self, *args):
106
+ warnings.warn(
107
+ "gremlin_python.process.GraphTraversalSource.withStrategies will be replaced by "
108
+ "gremlin_python.process.GraphTraversalSource.with_strategies.",
109
+ DeprecationWarning)
110
+ return self.with_strategies(*args)
111
+
112
+ def with_strategies(self, *args):
113
+ source = self.get_graph_traversal_source()
114
+ source.bytecode.add_source("withStrategies", *args)
115
+ return source
116
+
117
+ def withoutStrategies(self, *args):
118
+ warnings.warn(
119
+ "gremlin_python.process.GraphTraversalSource.withoutStrategies will be replaced by "
120
+ "gremlin_python.process.GraphTraversalSource.without_strategies.",
121
+ DeprecationWarning)
122
+ return self.without_strategies(*args)
123
+
124
+ def without_strategies(self, *args):
125
+ source = self.get_graph_traversal_source()
126
+ source.bytecode.add_source("withoutStrategies", *args)
127
+ return source
128
+
129
+ def with_(self, k, v=None):
130
+ source = self.get_graph_traversal_source()
131
+ options_strategy = next((x for x in source.bytecode.source_instructions
132
+ if x[0] == "withStrategies" and type(x[1]) is OptionsStrategy), None)
133
+
134
+ val = True if v is None else v
135
+ if options_strategy is None:
136
+ options_strategy = OptionsStrategy({k: val})
137
+ source = self.with_strategies(options_strategy)
138
+ else:
139
+ options_strategy[1].configuration[k] = val
140
+
141
+ return source
142
+
143
+ def withRemote(self, remote_connection):
144
+ warnings.warn(
145
+ "gremlin_python.process.GraphTraversalSource.withRemote will be replaced by "
146
+ "gremlin_python.process.GraphTraversalSource.with_remote.",
147
+ DeprecationWarning)
148
+ return self.with_remote(remote_connection)
149
+
150
+ def with_remote(self, remote_connection):
151
+ source = self.get_graph_traversal_source()
152
+ source.traversal_strategies.add_strategies([RemoteStrategy(remote_connection)])
153
+ self.remote_connection = remote_connection
154
+ return source
155
+
156
+ def tx(self):
157
+ # In order to keep the constructor unchanged within 3.5.x we can try to pop the RemoteConnection out of the
158
+ # TraversalStrategies. keeping this unchanged will allow user DSLs to not take a break.
159
+ # This is the same strategy as gremlin-javascript.
160
+ # TODO https://issues.apache.org/jira/browse/TINKERPOP-2664: refactor this to be nicer in 3.6.0 when
161
+ # we can take a breaking change
162
+ remote_connection = next((x.remote_connection for x in self.traversal_strategies.traversal_strategies if
163
+ x.fqcn == "py:RemoteStrategy"), None)
164
+
165
+ if remote_connection is None:
166
+ raise Exception("Error, remote connection is required for transaction.")
167
+
168
+ # You can't do g.tx().begin().tx() i.e child transactions are not supported.
169
+ if remote_connection and remote_connection.is_session_bound():
170
+ raise Exception("This TraversalSource is already bound to a transaction - child transactions are not "
171
+ "supported")
172
+ return Transaction(self, remote_connection)
173
+
174
+ def withComputer(self, graph_computer=None, workers=None, result=None, persist=None, vertices=None,
175
+ edges=None, configuration=None):
176
+ warnings.warn(
177
+ "gremlin_python.process.GraphTraversalSource.withComputer will be replaced by "
178
+ "gremlin_python.process.GraphTraversalSource.with_computer.",
179
+ DeprecationWarning)
180
+ return self.with_computer(graph_computer, workers, result, persist, vertices, edges, configuration)
181
+
182
+ def with_computer(self, graph_computer=None, workers=None, result=None, persist=None, vertices=None,
183
+ edges=None, configuration=None):
184
+ return self.with_strategies(
185
+ VertexProgramStrategy(graph_computer, workers, result, persist, vertices, edges, configuration))
186
+
187
+ def E(self, *args):
188
+ traversal = self.get_graph_traversal()
189
+ traversal.bytecode.add_step("E", *args)
190
+ return traversal
191
+
192
+ def V(self, *args):
193
+ traversal = self.get_graph_traversal()
194
+ traversal.bytecode.add_step("V", *args)
195
+ return traversal
196
+
197
+ def addE(self, *args):
198
+ warnings.warn(
199
+ "gremlin_python.process.GraphTraversalSource.addE will be replaced by "
200
+ "gremlin_python.process.GraphTraversalSource.add_e.",
201
+ DeprecationWarning)
202
+ return self.add_e(*args)
203
+
204
+ def add_e(self, *args):
205
+ traversal = self.get_graph_traversal()
206
+ traversal.bytecode.add_step("addE", *args)
207
+ return traversal
208
+
209
+ def addV(self, *args):
210
+ warnings.warn(
211
+ "gremlin_python.process.GraphTraversalSource.addV will be replaced by "
212
+ "gremlin_python.process.GraphTraversalSource.add_v.",
213
+ DeprecationWarning)
214
+ return self.add_v(*args)
215
+
216
+ def add_v(self, *args):
217
+ traversal = self.get_graph_traversal()
218
+ traversal.bytecode.add_step("addV", *args)
219
+ return traversal
220
+
221
+ def merge_v(self, *args):
222
+ traversal = self.get_graph_traversal()
223
+ traversal.bytecode.add_step("mergeV", *args)
224
+ return traversal
225
+
226
+ def merge_e(self, *args):
227
+ traversal = self.get_graph_traversal()
228
+ traversal.bytecode.add_step("mergeE", *args)
229
+ return traversal
230
+
231
+ def inject(self, *args):
232
+ traversal = self.get_graph_traversal()
233
+ traversal.bytecode.add_step("inject", *args)
234
+ return traversal
235
+
236
+ def io(self, *args):
237
+ traversal = self.get_graph_traversal()
238
+ traversal.bytecode.add_step("io", *args)
239
+ return traversal
240
+
241
+ def call(self, *args):
242
+ traversal = self.get_graph_traversal()
243
+ traversal.bytecode.add_step("call", *args)
244
+ return traversal
245
+
246
+
247
+ class GraphTraversal(Traversal):
248
+ def __init__(self, graph, traversal_strategies, bytecode):
249
+ super(GraphTraversal, self).__init__(graph, traversal_strategies, bytecode)
250
+
251
+ def __getitem__(self, index):
252
+ if isinstance(index, int):
253
+ return self.range_(long(index), long(index + 1))
254
+ elif isinstance(index, slice):
255
+ low = long(0) if index.start is None else long(index.start)
256
+ high = long(sys.maxsize) if index.stop is None else long(index.stop)
257
+ if low == long(0):
258
+ return self.limit(high)
259
+ else:
260
+ return self.range_(low, high)
261
+ else:
262
+ raise TypeError("Index must be int or slice")
263
+
264
+ def __getattr__(self, key):
265
+ if key.startswith('__'):
266
+ raise AttributeError(
267
+ 'Python magic methods or keys starting with double underscore cannot be used for Gremlin sugar - prefer values(' + key + ')')
268
+ return self.values(key)
269
+
270
+ def clone(self):
271
+ return GraphTraversal(self.graph, self.traversal_strategies, copy.deepcopy(self.bytecode))
272
+
273
+ def V(self, *args):
274
+ self.bytecode.add_step("V", *args)
275
+ return self
276
+
277
+ def addE(self, *args):
278
+ warnings.warn(
279
+ "gremlin_python.process.GraphTraversal.addE will be replaced by "
280
+ "gremlin_python.process.GraphTraversal.add_e.",
281
+ DeprecationWarning)
282
+ return self.add_e(*args)
283
+
284
+ def add_e(self, *args):
285
+ self.bytecode.add_step("addE", *args)
286
+ return self
287
+
288
+ def addV(self, *args):
289
+ warnings.warn(
290
+ "gremlin_python.process.GraphTraversalSource.addV will be replaced by "
291
+ "gremlin_python.process.GraphTraversalSource.add_v.",
292
+ DeprecationWarning)
293
+ return self.add_v(*args)
294
+
295
+ def add_v(self, *args):
296
+ self.bytecode.add_step("addV", *args)
297
+ return self
298
+
299
+ def aggregate(self, *args):
300
+ self.bytecode.add_step("aggregate", *args)
301
+ return self
302
+
303
+ def and_(self, *args):
304
+ self.bytecode.add_step("and", *args)
305
+ return self
306
+
307
+ def as_(self, *args):
308
+ self.bytecode.add_step("as", *args)
309
+ return self
310
+
311
+ def barrier(self, *args):
312
+ self.bytecode.add_step("barrier", *args)
313
+ return self
314
+
315
+ def both(self, *args):
316
+ self.bytecode.add_step("both", *args)
317
+ return self
318
+
319
+ def bothE(self, *args):
320
+ warnings.warn(
321
+ "gremlin_python.process.GraphTraversalSource.bothE will be replaced by "
322
+ "gremlin_python.process.GraphTraversalSource.both_e.",
323
+ DeprecationWarning)
324
+ return self.both_e(*args)
325
+
326
+ def both_e(self, *args):
327
+ self.bytecode.add_step("bothE", *args)
328
+ return self
329
+
330
+ def bothV(self, *args):
331
+ warnings.warn(
332
+ "gremlin_python.process.GraphTraversalSource.bothV will be replaced by "
333
+ "gremlin_python.process.GraphTraversalSource.both_v.",
334
+ DeprecationWarning)
335
+ return self.both_v(*args)
336
+
337
+ def both_v(self, *args):
338
+ self.bytecode.add_step("bothV", *args)
339
+ return self
340
+
341
+ def branch(self, *args):
342
+ self.bytecode.add_step("branch", *args)
343
+ return self
344
+
345
+ def by(self, *args):
346
+ self.bytecode.add_step("by", *args)
347
+ return self
348
+
349
+ def call(self, *args):
350
+ self.bytecode.add_step("call", *args)
351
+ return self
352
+
353
+ def cap(self, *args):
354
+ self.bytecode.add_step("cap", *args)
355
+ return self
356
+
357
+ def choose(self, *args):
358
+ self.bytecode.add_step("choose", *args)
359
+ return self
360
+
361
+ def coalesce(self, *args):
362
+ self.bytecode.add_step("coalesce", *args)
363
+ return self
364
+
365
+ def coin(self, *args):
366
+ self.bytecode.add_step("coin", *args)
367
+ return self
368
+
369
+ def connectedComponent(self, *args):
370
+ warnings.warn(
371
+ "gremlin_python.process.GraphTraversalSource.connectedComponent will be replaced by "
372
+ "gremlin_python.process.GraphTraversalSource.connected_component.",
373
+ DeprecationWarning)
374
+ return self.connected_component(*args)
375
+
376
+ def connected_component(self, *args):
377
+ self.bytecode.add_step("connectedComponent", *args)
378
+ return self
379
+
380
+ def constant(self, *args):
381
+ self.bytecode.add_step("constant", *args)
382
+ return self
383
+
384
+ def count(self, *args):
385
+ self.bytecode.add_step("count", *args)
386
+ return self
387
+
388
+ def cyclicPath(self, *args):
389
+ warnings.warn(
390
+ "gremlin_python.process.GraphTraversalSource.cyclicPath will be replaced by "
391
+ "gremlin_python.process.GraphTraversalSource.cyclic_path.",
392
+ DeprecationWarning)
393
+ return self.cyclic_path(*args)
394
+
395
+ def cyclic_path(self, *args):
396
+ self.bytecode.add_step("cyclicPath", *args)
397
+ return self
398
+
399
+ def dedup(self, *args):
400
+ self.bytecode.add_step("dedup", *args)
401
+ return self
402
+
403
+ def drop(self, *args):
404
+ self.bytecode.add_step("drop", *args)
405
+ return self
406
+
407
+ def element(self, *args):
408
+ self.bytecode.add_step("element", *args)
409
+ return self
410
+
411
+ def elementMap(self, *args):
412
+ warnings.warn(
413
+ "gremlin_python.process.GraphTraversalSource.elementMap will be replaced by "
414
+ "gremlin_python.process.GraphTraversalSource.element_map.",
415
+ DeprecationWarning)
416
+ return self.element_map(*args)
417
+
418
+ def element_map(self, *args):
419
+ self.bytecode.add_step("elementMap", *args)
420
+ return self
421
+
422
+ def emit(self, *args):
423
+ self.bytecode.add_step("emit", *args)
424
+ return self
425
+
426
+ def fail(self, *args):
427
+ self.bytecode.add_step("fail", *args)
428
+ return self
429
+
430
+ def filter_(self, *args):
431
+ self.bytecode.add_step("filter", *args)
432
+ return self
433
+
434
+ def flatMap(self, *args):
435
+ warnings.warn(
436
+ "gremlin_python.process.GraphTraversalSource.flatMap will be replaced by "
437
+ "gremlin_python.process.GraphTraversalSource.flat_map.",
438
+ DeprecationWarning)
439
+ return self.flat_map(*args)
440
+
441
+ def flat_map(self, *args):
442
+ self.bytecode.add_step("flatMap", *args)
443
+ return self
444
+
445
+ def fold(self, *args):
446
+ self.bytecode.add_step("fold", *args)
447
+ return self
448
+
449
+ def from_(self, *args):
450
+ self.bytecode.add_step("from", *args)
451
+ return self
452
+
453
+ def group(self, *args):
454
+ self.bytecode.add_step("group", *args)
455
+ return self
456
+
457
+ def groupCount(self, *args):
458
+ warnings.warn(
459
+ "gremlin_python.process.GraphTraversalSource.groupCount will be replaced by "
460
+ "gremlin_python.process.GraphTraversalSource.group_count.",
461
+ DeprecationWarning)
462
+ return self.group_count(*args)
463
+
464
+ def group_count(self, *args):
465
+ self.bytecode.add_step("groupCount", *args)
466
+ return self
467
+
468
+ def has(self, *args):
469
+ self.bytecode.add_step("has", *args)
470
+ return self
471
+
472
+ def hasId(self, *args):
473
+ warnings.warn(
474
+ "gremlin_python.process.GraphTraversalSource.hasId will be replaced by "
475
+ "gremlin_python.process.GraphTraversalSource.has_id.",
476
+ DeprecationWarning)
477
+ return self.has_id(*args)
478
+
479
+ def has_id(self, *args):
480
+ self.bytecode.add_step("hasId", *args)
481
+ return self
482
+
483
+ def hasKey(self, *args):
484
+ warnings.warn(
485
+ "gremlin_python.process.GraphTraversalSource.hasKey will be replaced by "
486
+ "gremlin_python.process.GraphTraversalSource.has_key.",
487
+ DeprecationWarning)
488
+ return self.has_key_(*args)
489
+
490
+ def has_key_(self, *args):
491
+ self.bytecode.add_step("hasKey", *args)
492
+ return self
493
+
494
+ def hasLabel(self, *args):
495
+ warnings.warn(
496
+ "gremlin_python.process.GraphTraversalSource.hasLabel will be replaced by "
497
+ "gremlin_python.process.GraphTraversalSource.has_label.",
498
+ DeprecationWarning)
499
+ return self.has_label(*args)
500
+
501
+ def has_label(self, *args):
502
+ self.bytecode.add_step("hasLabel", *args)
503
+ return self
504
+
505
+ def hasNot(self, *args):
506
+ warnings.warn(
507
+ "gremlin_python.process.GraphTraversalSource.hasNot will be replaced by "
508
+ "gremlin_python.process.GraphTraversalSource.has_not.",
509
+ DeprecationWarning)
510
+ return self.has_not(*args)
511
+
512
+ def has_not(self, *args):
513
+ self.bytecode.add_step("hasNot", *args)
514
+ return self
515
+
516
+ def hasValue(self, *args):
517
+ warnings.warn(
518
+ "gremlin_python.process.GraphTraversalSource.hasValue will be replaced by "
519
+ "gremlin_python.process.GraphTraversalSource.has_value.",
520
+ DeprecationWarning)
521
+ return self.has_value(*args)
522
+
523
+ def has_value(self, *args):
524
+ self.bytecode.add_step("hasValue", *args)
525
+ return self
526
+
527
+ def id_(self, *args):
528
+ self.bytecode.add_step("id", *args)
529
+ return self
530
+
531
+ def identity(self, *args):
532
+ self.bytecode.add_step("identity", *args)
533
+ return self
534
+
535
+ def inE(self, *args):
536
+ warnings.warn(
537
+ "gremlin_python.process.GraphTraversalSource.inE will be replaced by "
538
+ "gremlin_python.process.GraphTraversalSource.in_e.",
539
+ DeprecationWarning)
540
+ return self.in_e(*args)
541
+
542
+ def in_e(self, *args):
543
+ self.bytecode.add_step("inE", *args)
544
+ return self
545
+
546
+ def inV(self, *args):
547
+ warnings.warn(
548
+ "gremlin_python.process.GraphTraversalSource.inV will be replaced by "
549
+ "gremlin_python.process.GraphTraversalSource.in_v.",
550
+ DeprecationWarning)
551
+ return self.in_v(*args)
552
+
553
+ def in_v(self, *args):
554
+ self.bytecode.add_step("inV", *args)
555
+ return self
556
+
557
+ def in_(self, *args):
558
+ self.bytecode.add_step("in", *args)
559
+ return self
560
+
561
+ def index(self, *args):
562
+ self.bytecode.add_step("index", *args)
563
+ return self
564
+
565
+ def inject(self, *args):
566
+ self.bytecode.add_step("inject", *args)
567
+ return self
568
+
569
+ def is_(self, *args):
570
+ self.bytecode.add_step("is", *args)
571
+ return self
572
+
573
+ def key(self, *args):
574
+ self.bytecode.add_step("key", *args)
575
+ return self
576
+
577
+ def label(self, *args):
578
+ self.bytecode.add_step("label", *args)
579
+ return self
580
+
581
+ def limit(self, *args):
582
+ self.bytecode.add_step("limit", *args)
583
+ return self
584
+
585
+ def local(self, *args):
586
+ self.bytecode.add_step("local", *args)
587
+ return self
588
+
589
+ def loops(self, *args):
590
+ self.bytecode.add_step("loops", *args)
591
+ return self
592
+
593
+ def map(self, *args):
594
+ self.bytecode.add_step("map", *args)
595
+ return self
596
+
597
+ def match(self, *args):
598
+ self.bytecode.add_step("match", *args)
599
+ return self
600
+
601
+ def math(self, *args):
602
+ self.bytecode.add_step("math", *args)
603
+ return self
604
+
605
+ def max_(self, *args):
606
+ self.bytecode.add_step("max", *args)
607
+ return self
608
+
609
+ def mean(self, *args):
610
+ self.bytecode.add_step("mean", *args)
611
+ return self
612
+
613
+ def merge_e(self, *args):
614
+ self.bytecode.add_step("mergeE", *args)
615
+ return self
616
+
617
+ def merge_v(self, *args):
618
+ self.bytecode.add_step("mergeV", *args)
619
+ return self
620
+
621
+ def min_(self, *args):
622
+ self.bytecode.add_step("min", *args)
623
+ return self
624
+
625
+ def none(self, *args):
626
+ self.bytecode.add_step("none", *args)
627
+ return self
628
+
629
+ def not_(self, *args):
630
+ self.bytecode.add_step("not", *args)
631
+ return self
632
+
633
+ def option(self, *args):
634
+ self.bytecode.add_step("option", *args)
635
+ return self
636
+
637
+ def optional(self, *args):
638
+ self.bytecode.add_step("optional", *args)
639
+ return self
640
+
641
+ def or_(self, *args):
642
+ self.bytecode.add_step("or", *args)
643
+ return self
644
+
645
+ def order(self, *args):
646
+ self.bytecode.add_step("order", *args)
647
+ return self
648
+
649
+ def otherV(self, *args):
650
+ warnings.warn(
651
+ "gremlin_python.process.GraphTraversalSource.otherV will be replaced by "
652
+ "gremlin_python.process.GraphTraversalSource.other_v.",
653
+ DeprecationWarning)
654
+ return self.other_v(*args)
655
+
656
+ def other_v(self, *args):
657
+ self.bytecode.add_step("otherV", *args)
658
+ return self
659
+
660
+ def out(self, *args):
661
+ self.bytecode.add_step("out", *args)
662
+ return self
663
+
664
+ def outE(self, *args):
665
+ warnings.warn(
666
+ "gremlin_python.process.GraphTraversalSource.outE will be replaced by "
667
+ "gremlin_python.process.GraphTraversalSource.out_e.",
668
+ DeprecationWarning)
669
+ return self.out_e(*args)
670
+
671
+ def out_e(self, *args):
672
+ self.bytecode.add_step("outE", *args)
673
+ return self
674
+
675
+ def outV(self, *args):
676
+ warnings.warn(
677
+ "gremlin_python.process.GraphTraversalSource.outV will be replaced by "
678
+ "gremlin_python.process.GraphTraversalSource.out_v.",
679
+ DeprecationWarning)
680
+ return self.out_v(*args)
681
+
682
+ def out_v(self, *args):
683
+ self.bytecode.add_step("outV", *args)
684
+ return self
685
+
686
+ def pageRank(self, *args):
687
+ warnings.warn(
688
+ "gremlin_python.process.GraphTraversalSource.pageRank will be replaced by "
689
+ "gremlin_python.process.GraphTraversalSource.page_rank.",
690
+ DeprecationWarning)
691
+ return self.page_rank(*args)
692
+
693
+ def page_rank(self, *args):
694
+ self.bytecode.add_step("pageRank", *args)
695
+ return self
696
+
697
+ def path(self, *args):
698
+ self.bytecode.add_step("path", *args)
699
+ return self
700
+
701
+ def peerPressure(self, *args):
702
+ warnings.warn(
703
+ "gremlin_python.process.GraphTraversalSource.peerPressure will be replaced by "
704
+ "gremlin_python.process.GraphTraversalSource.peer_pressure.",
705
+ DeprecationWarning)
706
+ return self.peer_pressure(*args)
707
+
708
+ def peer_pressure(self, *args):
709
+ self.bytecode.add_step("peerPressure", *args)
710
+ return self
711
+
712
+ def profile(self, *args):
713
+ self.bytecode.add_step("profile", *args)
714
+ return self
715
+
716
+ def program(self, *args):
717
+ self.bytecode.add_step("program", *args)
718
+ return self
719
+
720
+ def project(self, *args):
721
+ self.bytecode.add_step("project", *args)
722
+ return self
723
+
724
+ def properties(self, *args):
725
+ self.bytecode.add_step("properties", *args)
726
+ return self
727
+
728
+ def property(self, *args):
729
+ self.bytecode.add_step("property", *args)
730
+ return self
731
+
732
+ def propertyMap(self, *args):
733
+ warnings.warn(
734
+ "gremlin_python.process.GraphTraversalSource.propertyMap will be replaced by "
735
+ "gremlin_python.process.GraphTraversalSource.property_map.",
736
+ DeprecationWarning)
737
+ return self.property_map(*args)
738
+
739
+ def property_map(self, *args):
740
+ self.bytecode.add_step("propertyMap", *args)
741
+ return self
742
+
743
+ def range_(self, *args):
744
+ self.bytecode.add_step("range", *args)
745
+ return self
746
+
747
+ def read(self, *args):
748
+ self.bytecode.add_step("read", *args)
749
+ return self
750
+
751
+ def repeat(self, *args):
752
+ self.bytecode.add_step("repeat", *args)
753
+ return self
754
+
755
+ def sack(self, *args):
756
+ self.bytecode.add_step("sack", *args)
757
+ return self
758
+
759
+ def sample(self, *args):
760
+ self.bytecode.add_step("sample", *args)
761
+ return self
762
+
763
+ def select(self, *args):
764
+ self.bytecode.add_step("select", *args)
765
+ return self
766
+
767
+ def shortestPath(self, *args):
768
+ warnings.warn(
769
+ "gremlin_python.process.GraphTraversalSource.shortestPath will be replaced by "
770
+ "gremlin_python.process.GraphTraversalSource.shortest_path.",
771
+ DeprecationWarning)
772
+ return self.shortest_path(*args)
773
+
774
+ def shortest_path(self, *args):
775
+ self.bytecode.add_step("shortestPath", *args)
776
+ return self
777
+
778
+ def sideEffect(self, *args):
779
+ warnings.warn(
780
+ "gremlin_python.process.GraphTraversalSource.sideEffect will be replaced by "
781
+ "gremlin_python.process.GraphTraversalSource.side_effect.",
782
+ DeprecationWarning)
783
+ return self.side_effect(*args)
784
+
785
+ def side_effect(self, *args):
786
+ self.bytecode.add_step("sideEffect", *args)
787
+ return self
788
+
789
+ def simplePath(self, *args):
790
+ warnings.warn(
791
+ "gremlin_python.process.GraphTraversalSource.simplePath will be replaced by "
792
+ "gremlin_python.process.GraphTraversalSource.simple_path.",
793
+ DeprecationWarning)
794
+ return self.simple_path(*args)
795
+
796
+ def simple_path(self, *args):
797
+ self.bytecode.add_step("simplePath", *args)
798
+ return self
799
+
800
+ def skip(self, *args):
801
+ self.bytecode.add_step("skip", *args)
802
+ return self
803
+
804
+ def store(self, *args):
805
+ self.bytecode.add_step("store", *args)
806
+ return self
807
+
808
+ def subgraph(self, *args):
809
+ self.bytecode.add_step("subgraph", *args)
810
+ return self
811
+
812
+ def sum_(self, *args):
813
+ self.bytecode.add_step("sum", *args)
814
+ return self
815
+
816
+ def tail(self, *args):
817
+ self.bytecode.add_step("tail", *args)
818
+ return self
819
+
820
+ def timeLimit(self, *args):
821
+ warnings.warn(
822
+ "gremlin_python.process.GraphTraversalSource.timeLimit will be replaced by "
823
+ "gremlin_python.process.GraphTraversalSource.time_limit.",
824
+ DeprecationWarning)
825
+ return self.time_limit(*args)
826
+
827
+ def time_limit(self, *args):
828
+ self.bytecode.add_step("timeLimit", *args)
829
+ return self
830
+
831
+ def times(self, *args):
832
+ self.bytecode.add_step("times", *args)
833
+ return self
834
+
835
+ def to(self, *args):
836
+ self.bytecode.add_step("to", *args)
837
+ return self
838
+
839
+ def toE(self, *args):
840
+ warnings.warn(
841
+ "gremlin_python.process.GraphTraversalSource.toE will be replaced by "
842
+ "gremlin_python.process.GraphTraversalSource.to_e.",
843
+ DeprecationWarning)
844
+ return self.to_e(*args)
845
+
846
+ def to_e(self, *args):
847
+ self.bytecode.add_step("toE", *args)
848
+ return self
849
+
850
+ def toV(self, *args):
851
+ warnings.warn(
852
+ "gremlin_python.process.GraphTraversalSource.toV will be replaced by "
853
+ "gremlin_python.process.GraphTraversalSource.to_v.",
854
+ DeprecationWarning)
855
+ return self.to_v(*args)
856
+
857
+ def to_v(self, *args):
858
+ self.bytecode.add_step("toV", *args)
859
+ return self
860
+
861
+ def tree(self, *args):
862
+ self.bytecode.add_step("tree", *args)
863
+ return self
864
+
865
+ def unfold(self, *args):
866
+ self.bytecode.add_step("unfold", *args)
867
+ return self
868
+
869
+ def union(self, *args):
870
+ self.bytecode.add_step("union", *args)
871
+ return self
872
+
873
+ def until(self, *args):
874
+ self.bytecode.add_step("until", *args)
875
+ return self
876
+
877
+ def value(self, *args):
878
+ self.bytecode.add_step("value", *args)
879
+ return self
880
+
881
+ def valueMap(self, *args):
882
+ warnings.warn(
883
+ "gremlin_python.process.GraphTraversalSource.valueMap will be replaced by "
884
+ "gremlin_python.process.GraphTraversalSource.value_map.",
885
+ DeprecationWarning)
886
+ return self.value_map(*args)
887
+
888
+ def value_map(self, *args):
889
+ self.bytecode.add_step("valueMap", *args)
890
+ return self
891
+
892
+ def values(self, *args):
893
+ self.bytecode.add_step("values", *args)
894
+ return self
895
+
896
+ def where(self, *args):
897
+ self.bytecode.add_step("where", *args)
898
+ return self
899
+
900
+ def with_(self, *args):
901
+ self.bytecode.add_step("with", *args)
902
+ return self
903
+
904
+ def write(self, *args):
905
+ self.bytecode.add_step("write", *args)
906
+ return self
907
+
908
+
909
+ class MagicType(type):
910
+
911
+ def __getattr__(cls, k):
912
+ if k.startswith('__'):
913
+ raise AttributeError(
914
+ 'Python magic methods or keys starting with double underscore cannot be used for Gremlin sugar - prefer values(' + k + ')')
915
+ return __.values(k)
916
+
917
+
918
+ class __(object, metaclass=MagicType):
919
+ graph_traversal = GraphTraversal
920
+
921
+ @classmethod
922
+ def start(cls):
923
+ return GraphTraversal(None, None, Bytecode())
924
+
925
+ @classmethod
926
+ def __(cls, *args):
927
+ return __.inject(*args)
928
+
929
+ @classmethod
930
+ def V(cls, *args):
931
+ return cls.graph_traversal(None, None, Bytecode()).V(*args)
932
+
933
+ @classmethod
934
+ def addE(cls, *args):
935
+ warnings.warn(
936
+ "gremlin_python.process.__.addE will be replaced by "
937
+ "gremlin_python.process.__.add_e.",
938
+ DeprecationWarning)
939
+ return cls.add_e(*args)
940
+
941
+ @classmethod
942
+ def add_e(cls, *args):
943
+ return cls.graph_traversal(None, None, Bytecode()).add_e(*args)
944
+
945
+ @classmethod
946
+ def addV(cls, *args):
947
+ warnings.warn(
948
+ "gremlin_python.process.__.addV will be replaced by "
949
+ "gremlin_python.process.__.add_v.",
950
+ DeprecationWarning)
951
+ return cls.add_v(*args)
952
+
953
+ @classmethod
954
+ def add_v(cls, *args):
955
+ return cls.graph_traversal(None, None, Bytecode()).add_v(*args)
956
+
957
+ @classmethod
958
+ def aggregate(cls, *args):
959
+ return cls.graph_traversal(None, None, Bytecode()).aggregate(*args)
960
+
961
+ @classmethod
962
+ def and_(cls, *args):
963
+ return cls.graph_traversal(None, None, Bytecode()).and_(*args)
964
+
965
+ @classmethod
966
+ def as_(cls, *args):
967
+ return cls.graph_traversal(None, None, Bytecode()).as_(*args)
968
+
969
+ @classmethod
970
+ def barrier(cls, *args):
971
+ return cls.graph_traversal(None, None, Bytecode()).barrier(*args)
972
+
973
+ @classmethod
974
+ def both(cls, *args):
975
+ return cls.graph_traversal(None, None, Bytecode()).both(*args)
976
+
977
+ @classmethod
978
+ def bothE(cls, *args):
979
+ warnings.warn(
980
+ "gremlin_python.process.__.bothE will be replaced by "
981
+ "gremlin_python.process.__.both_e.",
982
+ DeprecationWarning)
983
+ return cls.both_e(*args)
984
+
985
+ @classmethod
986
+ def both_e(cls, *args):
987
+ return cls.graph_traversal(None, None, Bytecode()).both_e(*args)
988
+
989
+ @classmethod
990
+ def bothV(cls, *args):
991
+ warnings.warn(
992
+ "gremlin_python.process.__.bothV will be replaced by "
993
+ "gremlin_python.process.__.both_v.",
994
+ DeprecationWarning)
995
+ return cls.both_v(*args)
996
+
997
+ @classmethod
998
+ def both_v(cls, *args):
999
+ return cls.graph_traversal(None, None, Bytecode()).both_v(*args)
1000
+
1001
+ @classmethod
1002
+ def branch(cls, *args):
1003
+ return cls.graph_traversal(None, None, Bytecode()).branch(*args)
1004
+
1005
+ @classmethod
1006
+ def call(cls, *args):
1007
+ return cls.graph_traversal(None, None, Bytecode()).call(*args)
1008
+
1009
+ @classmethod
1010
+ def cap(cls, *args):
1011
+ return cls.graph_traversal(None, None, Bytecode()).cap(*args)
1012
+
1013
+ @classmethod
1014
+ def choose(cls, *args):
1015
+ return cls.graph_traversal(None, None, Bytecode()).choose(*args)
1016
+
1017
+ @classmethod
1018
+ def coalesce(cls, *args):
1019
+ return cls.graph_traversal(None, None, Bytecode()).coalesce(*args)
1020
+
1021
+ @classmethod
1022
+ def coin(cls, *args):
1023
+ return cls.graph_traversal(None, None, Bytecode()).coin(*args)
1024
+
1025
+ @classmethod
1026
+ def constant(cls, *args):
1027
+ return cls.graph_traversal(None, None, Bytecode()).constant(*args)
1028
+
1029
+ @classmethod
1030
+ def count(cls, *args):
1031
+ return cls.graph_traversal(None, None, Bytecode()).count(*args)
1032
+
1033
+ @classmethod
1034
+ def cyclicPath(cls, *args):
1035
+ warnings.warn(
1036
+ "gremlin_python.process.__.cyclicPath will be replaced by "
1037
+ "gremlin_python.process.__.cyclic_path.",
1038
+ DeprecationWarning)
1039
+ return cls.cyclic_path(*args)
1040
+
1041
+ @classmethod
1042
+ def cyclic_path(cls, *args):
1043
+ return cls.graph_traversal(None, None, Bytecode()).cyclic_path(*args)
1044
+
1045
+ @classmethod
1046
+ def dedup(cls, *args):
1047
+ return cls.graph_traversal(None, None, Bytecode()).dedup(*args)
1048
+
1049
+ @classmethod
1050
+ def drop(cls, *args):
1051
+ return cls.graph_traversal(None, None, Bytecode()).drop(*args)
1052
+
1053
+ @classmethod
1054
+ def element(cls, *args):
1055
+ return cls.graph_traversal(None, None, Bytecode()).element(*args)
1056
+
1057
+ @classmethod
1058
+ def elementMap(cls, *args):
1059
+ warnings.warn(
1060
+ "gremlin_python.process.__.elementMap will be replaced by "
1061
+ "gremlin_python.process.__.element_map.",
1062
+ DeprecationWarning)
1063
+ return cls.element_map(*args)
1064
+
1065
+ @classmethod
1066
+ def element_map(cls, *args):
1067
+ return cls.graph_traversal(None, None, Bytecode()).element_map(*args)
1068
+
1069
+ @classmethod
1070
+ def emit(cls, *args):
1071
+ return cls.graph_traversal(None, None, Bytecode()).emit(*args)
1072
+
1073
+ @classmethod
1074
+ def fail(cls, *args):
1075
+ return cls.graph_traversal(None, None, Bytecode()).fail(*args)
1076
+
1077
+ @classmethod
1078
+ def filter_(cls, *args):
1079
+ return cls.graph_traversal(None, None, Bytecode()).filter_(*args)
1080
+
1081
+ @classmethod
1082
+ def flatMap(cls, *args):
1083
+ warnings.warn(
1084
+ "gremlin_python.process.__.flatMap will be replaced by "
1085
+ "gremlin_python.process.__.flat_map.",
1086
+ DeprecationWarning)
1087
+ return cls.flat_map(*args)
1088
+
1089
+ @classmethod
1090
+ def flat_map(cls, *args):
1091
+ return cls.graph_traversal(None, None, Bytecode()).flat_map(*args)
1092
+
1093
+ @classmethod
1094
+ def fold(cls, *args):
1095
+ return cls.graph_traversal(None, None, Bytecode()).fold(*args)
1096
+
1097
+ @classmethod
1098
+ def group(cls, *args):
1099
+ return cls.graph_traversal(None, None, Bytecode()).group(*args)
1100
+
1101
+ @classmethod
1102
+ def groupCount(cls, *args):
1103
+ warnings.warn(
1104
+ "gremlin_python.process.__.groupCount will be replaced by "
1105
+ "gremlin_python.process.__.group_count.",
1106
+ DeprecationWarning)
1107
+ return cls.group_count(*args)
1108
+
1109
+ @classmethod
1110
+ def group_count(cls, *args):
1111
+ return cls.graph_traversal(None, None, Bytecode()).group_count(*args)
1112
+
1113
+ @classmethod
1114
+ def has(cls, *args):
1115
+ return cls.graph_traversal(None, None, Bytecode()).has(*args)
1116
+
1117
+ @classmethod
1118
+ def hasId(cls, *args):
1119
+ warnings.warn(
1120
+ "gremlin_python.process.__.hasId will be replaced by "
1121
+ "gremlin_python.process.__.has_id.",
1122
+ DeprecationWarning)
1123
+ return cls.has_id(*args)
1124
+
1125
+ @classmethod
1126
+ def has_id(cls, *args):
1127
+ return cls.graph_traversal(None, None, Bytecode()).has_id(*args)
1128
+
1129
+ @classmethod
1130
+ def hasKey(cls, *args):
1131
+ warnings.warn(
1132
+ "gremlin_python.process.__.hasKey will be replaced by "
1133
+ "gremlin_python.process.__.has_key.",
1134
+ DeprecationWarning)
1135
+ return cls.has_key_(*args)
1136
+
1137
+ @classmethod
1138
+ def has_key_(cls, *args):
1139
+ return cls.graph_traversal(None, None, Bytecode()).has_key_(*args)
1140
+
1141
+ @classmethod
1142
+ def hasLabel(cls, *args):
1143
+ warnings.warn(
1144
+ "gremlin_python.process.__.hasLabel will be replaced by "
1145
+ "gremlin_python.process.__.has_label.",
1146
+ DeprecationWarning)
1147
+ return cls.has_label(*args)
1148
+
1149
+ @classmethod
1150
+ def has_label(cls, *args):
1151
+ return cls.graph_traversal(None, None, Bytecode()).has_label(*args)
1152
+
1153
+ @classmethod
1154
+ def hasNot(cls, *args):
1155
+ warnings.warn(
1156
+ "gremlin_python.process.__.hasNot will be replaced by "
1157
+ "gremlin_python.process.__.has_not.",
1158
+ DeprecationWarning)
1159
+ return cls.has_not(*args)
1160
+
1161
+ @classmethod
1162
+ def has_not(cls, *args):
1163
+ return cls.graph_traversal(None, None, Bytecode()).has_not(*args)
1164
+
1165
+ @classmethod
1166
+ def hasValue(cls, *args):
1167
+ warnings.warn(
1168
+ "gremlin_python.process.__.hasValue will be replaced by "
1169
+ "gremlin_python.process.__.has_value.",
1170
+ DeprecationWarning)
1171
+ return cls.has_value(*args)
1172
+
1173
+ @classmethod
1174
+ def has_value(cls, *args):
1175
+ return cls.graph_traversal(None, None, Bytecode()).has_value(*args)
1176
+
1177
+ @classmethod
1178
+ def id_(cls, *args):
1179
+ return cls.graph_traversal(None, None, Bytecode()).id_(*args)
1180
+
1181
+ @classmethod
1182
+ def identity(cls, *args):
1183
+ return cls.graph_traversal(None, None, Bytecode()).identity(*args)
1184
+
1185
+ @classmethod
1186
+ def inE(cls, *args):
1187
+ warnings.warn(
1188
+ "gremlin_python.process.__.inE will be replaced by "
1189
+ "gremlin_python.process.__.in_e.",
1190
+ DeprecationWarning)
1191
+ return cls.in_e(*args)
1192
+
1193
+ @classmethod
1194
+ def in_e(cls, *args):
1195
+ return cls.graph_traversal(None, None, Bytecode()).in_e(*args)
1196
+
1197
+ @classmethod
1198
+ def inV(cls, *args):
1199
+ warnings.warn(
1200
+ "gremlin_python.process.__.inV will be replaced by "
1201
+ "gremlin_python.process.__.in_v.",
1202
+ DeprecationWarning)
1203
+ return cls.in_v(*args)
1204
+
1205
+ @classmethod
1206
+ def in_v(cls, *args):
1207
+ return cls.graph_traversal(None, None, Bytecode()).in_v(*args)
1208
+
1209
+ @classmethod
1210
+ def in_(cls, *args):
1211
+ return cls.graph_traversal(None, None, Bytecode()).in_(*args)
1212
+
1213
+ @classmethod
1214
+ def index(cls, *args):
1215
+ return cls.graph_traversal(None, None, Bytecode()).index(*args)
1216
+
1217
+ @classmethod
1218
+ def inject(cls, *args):
1219
+ return cls.graph_traversal(None, None, Bytecode()).inject(*args)
1220
+
1221
+ @classmethod
1222
+ def is_(cls, *args):
1223
+ return cls.graph_traversal(None, None, Bytecode()).is_(*args)
1224
+
1225
+ @classmethod
1226
+ def key(cls, *args):
1227
+ return cls.graph_traversal(None, None, Bytecode()).key(*args)
1228
+
1229
+ @classmethod
1230
+ def label(cls, *args):
1231
+ return cls.graph_traversal(None, None, Bytecode()).label(*args)
1232
+
1233
+ @classmethod
1234
+ def limit(cls, *args):
1235
+ return cls.graph_traversal(None, None, Bytecode()).limit(*args)
1236
+
1237
+ @classmethod
1238
+ def local(cls, *args):
1239
+ return cls.graph_traversal(None, None, Bytecode()).local(*args)
1240
+
1241
+ @classmethod
1242
+ def loops(cls, *args):
1243
+ return cls.graph_traversal(None, None, Bytecode()).loops(*args)
1244
+
1245
+ @classmethod
1246
+ def map(cls, *args):
1247
+ return cls.graph_traversal(None, None, Bytecode()).map(*args)
1248
+
1249
+ @classmethod
1250
+ def match(cls, *args):
1251
+ return cls.graph_traversal(None, None, Bytecode()).match(*args)
1252
+
1253
+ @classmethod
1254
+ def math(cls, *args):
1255
+ return cls.graph_traversal(None, None, Bytecode()).math(*args)
1256
+
1257
+ @classmethod
1258
+ def max_(cls, *args):
1259
+ return cls.graph_traversal(None, None, Bytecode()).max_(*args)
1260
+
1261
+ @classmethod
1262
+ def mean(cls, *args):
1263
+ return cls.graph_traversal(None, None, Bytecode()).mean(*args)
1264
+
1265
+ @classmethod
1266
+ def merge_e(cls, *args):
1267
+ return cls.graph_traversal(None, None, Bytecode()).merge_e(*args)
1268
+
1269
+ @classmethod
1270
+ def merge_v(cls, *args):
1271
+ return cls.graph_traversal(None, None, Bytecode()).merge_v(*args)
1272
+
1273
+ @classmethod
1274
+ def min_(cls, *args):
1275
+ return cls.graph_traversal(None, None, Bytecode()).min_(*args)
1276
+
1277
+ @classmethod
1278
+ def not_(cls, *args):
1279
+ return cls.graph_traversal(None, None, Bytecode()).not_(*args)
1280
+
1281
+ @classmethod
1282
+ def optional(cls, *args):
1283
+ return cls.graph_traversal(None, None, Bytecode()).optional(*args)
1284
+
1285
+ @classmethod
1286
+ def or_(cls, *args):
1287
+ return cls.graph_traversal(None, None, Bytecode()).or_(*args)
1288
+
1289
+ @classmethod
1290
+ def order(cls, *args):
1291
+ return cls.graph_traversal(None, None, Bytecode()).order(*args)
1292
+
1293
+ @classmethod
1294
+ def otherV(cls, *args):
1295
+ warnings.warn(
1296
+ "gremlin_python.process.__.otherV will be replaced by "
1297
+ "gremlin_python.process.__.other_v.",
1298
+ DeprecationWarning)
1299
+ return cls.other_v(*args)
1300
+
1301
+ @classmethod
1302
+ def other_v(cls, *args):
1303
+ return cls.graph_traversal(None, None, Bytecode()).other_v(*args)
1304
+
1305
+ @classmethod
1306
+ def out(cls, *args):
1307
+ return cls.graph_traversal(None, None, Bytecode()).out(*args)
1308
+
1309
+ @classmethod
1310
+ def outE(cls, *args):
1311
+ warnings.warn(
1312
+ "gremlin_python.process.__.outE will be replaced by "
1313
+ "gremlin_python.process.__.out_e.",
1314
+ DeprecationWarning)
1315
+ return cls.out_e(*args)
1316
+
1317
+ @classmethod
1318
+ def out_e(cls, *args):
1319
+ return cls.graph_traversal(None, None, Bytecode()).out_e(*args)
1320
+
1321
+ @classmethod
1322
+ def outV(cls, *args):
1323
+ warnings.warn(
1324
+ "gremlin_python.process.__.outV will be replaced by "
1325
+ "gremlin_python.process.__.out_v.",
1326
+ DeprecationWarning)
1327
+ return cls.out_v(*args)
1328
+
1329
+ @classmethod
1330
+ def out_v(cls, *args):
1331
+ return cls.graph_traversal(None, None, Bytecode()).out_v(*args)
1332
+
1333
+ @classmethod
1334
+ def path(cls, *args):
1335
+ return cls.graph_traversal(None, None, Bytecode()).path(*args)
1336
+
1337
+ @classmethod
1338
+ def project(cls, *args):
1339
+ return cls.graph_traversal(None, None, Bytecode()).project(*args)
1340
+
1341
+ @classmethod
1342
+ def properties(cls, *args):
1343
+ return cls.graph_traversal(None, None, Bytecode()).properties(*args)
1344
+
1345
+ @classmethod
1346
+ def property(cls, *args):
1347
+ return cls.graph_traversal(None, None, Bytecode()).property(*args)
1348
+
1349
+ @classmethod
1350
+ def propertyMap(cls, *args):
1351
+ warnings.warn(
1352
+ "gremlin_python.process.__.propertyMap will be replaced by "
1353
+ "gremlin_python.process.__.property_map.",
1354
+ DeprecationWarning)
1355
+ return cls.property_map(*args)
1356
+
1357
+ @classmethod
1358
+ def property_map(cls, *args):
1359
+ return cls.graph_traversal(None, None, Bytecode()).property_map(*args)
1360
+
1361
+ @classmethod
1362
+ def range_(cls, *args):
1363
+ return cls.graph_traversal(None, None, Bytecode()).range_(*args)
1364
+
1365
+ @classmethod
1366
+ def repeat(cls, *args):
1367
+ return cls.graph_traversal(None, None, Bytecode()).repeat(*args)
1368
+
1369
+ @classmethod
1370
+ def sack(cls, *args):
1371
+ return cls.graph_traversal(None, None, Bytecode()).sack(*args)
1372
+
1373
+ @classmethod
1374
+ def sample(cls, *args):
1375
+ return cls.graph_traversal(None, None, Bytecode()).sample(*args)
1376
+
1377
+ @classmethod
1378
+ def select(cls, *args):
1379
+ return cls.graph_traversal(None, None, Bytecode()).select(*args)
1380
+
1381
+ @classmethod
1382
+ def sideEffect(cls, *args):
1383
+ warnings.warn(
1384
+ "gremlin_python.process.__.sideEffect will be replaced by "
1385
+ "gremlin_python.process.__.side_effect.",
1386
+ DeprecationWarning)
1387
+ return cls.side_effect(*args)
1388
+
1389
+ @classmethod
1390
+ def side_effect(cls, *args):
1391
+ return cls.graph_traversal(None, None, Bytecode()).side_effect(*args)
1392
+
1393
+ @classmethod
1394
+ def simplePath(cls, *args):
1395
+ warnings.warn(
1396
+ "gremlin_python.process.__.simplePath will be replaced by "
1397
+ "gremlin_python.process.__.simple_path.",
1398
+ DeprecationWarning)
1399
+ return cls.simple_path(*args)
1400
+
1401
+ @classmethod
1402
+ def simple_path(cls, *args):
1403
+ return cls.graph_traversal(None, None, Bytecode()).simple_path(*args)
1404
+
1405
+ @classmethod
1406
+ def skip(cls, *args):
1407
+ return cls.graph_traversal(None, None, Bytecode()).skip(*args)
1408
+
1409
+ @classmethod
1410
+ def store(cls, *args):
1411
+ return cls.graph_traversal(None, None, Bytecode()).store(*args)
1412
+
1413
+ @classmethod
1414
+ def subgraph(cls, *args):
1415
+ return cls.graph_traversal(None, None, Bytecode()).subgraph(*args)
1416
+
1417
+ @classmethod
1418
+ def sum_(cls, *args):
1419
+ return cls.graph_traversal(None, None, Bytecode()).sum_(*args)
1420
+
1421
+ @classmethod
1422
+ def tail(cls, *args):
1423
+ return cls.graph_traversal(None, None, Bytecode()).tail(*args)
1424
+
1425
+ @classmethod
1426
+ def timeLimit(cls, *args):
1427
+ warnings.warn(
1428
+ "gremlin_python.process.__.timeLimit will be replaced by "
1429
+ "gremlin_python.process.__.time_limit.",
1430
+ DeprecationWarning)
1431
+ return cls.time_limit(*args)
1432
+
1433
+ @classmethod
1434
+ def time_limit(cls, *args):
1435
+ return cls.graph_traversal(None, None, Bytecode()).time_limit(*args)
1436
+
1437
+ @classmethod
1438
+ def times(cls, *args):
1439
+ return cls.graph_traversal(None, None, Bytecode()).times(*args)
1440
+
1441
+ @classmethod
1442
+ def to(cls, *args):
1443
+ return cls.graph_traversal(None, None, Bytecode()).to(*args)
1444
+
1445
+ @classmethod
1446
+ def toE(cls, *args):
1447
+ warnings.warn(
1448
+ "gremlin_python.process.__.toE will be replaced by "
1449
+ "gremlin_python.process.__.to_e.",
1450
+ DeprecationWarning)
1451
+ return cls.to_e(*args)
1452
+
1453
+ @classmethod
1454
+ def to_e(cls, *args):
1455
+ return cls.graph_traversal(None, None, Bytecode()).to_e(*args)
1456
+
1457
+ @classmethod
1458
+ def toV(cls, *args):
1459
+ warnings.warn(
1460
+ "gremlin_python.process.__.toV will be replaced by "
1461
+ "gremlin_python.process.__.to_v.",
1462
+ DeprecationWarning)
1463
+ return cls.to_v(*args)
1464
+
1465
+ @classmethod
1466
+ def to_v(cls, *args):
1467
+ return cls.graph_traversal(None, None, Bytecode()).to_v(*args)
1468
+
1469
+ @classmethod
1470
+ def tree(cls, *args):
1471
+ return cls.graph_traversal(None, None, Bytecode()).tree(*args)
1472
+
1473
+ @classmethod
1474
+ def unfold(cls, *args):
1475
+ return cls.graph_traversal(None, None, Bytecode()).unfold(*args)
1476
+
1477
+ @classmethod
1478
+ def union(cls, *args):
1479
+ return cls.graph_traversal(None, None, Bytecode()).union(*args)
1480
+
1481
+ @classmethod
1482
+ def until(cls, *args):
1483
+ return cls.graph_traversal(None, None, Bytecode()).until(*args)
1484
+
1485
+ @classmethod
1486
+ def value(cls, *args):
1487
+ return cls.graph_traversal(None, None, Bytecode()).value(*args)
1488
+
1489
+ @classmethod
1490
+ def valueMap(cls, *args):
1491
+ warnings.warn(
1492
+ "gremlin_python.process.__.valueMap will be replaced by "
1493
+ "gremlin_python.process.__.value_map.",
1494
+ DeprecationWarning)
1495
+ return cls.value_map(*args)
1496
+
1497
+ @classmethod
1498
+ def value_map(cls, *args):
1499
+ return cls.graph_traversal(None, None, Bytecode()).value_map(*args)
1500
+
1501
+ @classmethod
1502
+ def values(cls, *args):
1503
+ return cls.graph_traversal(None, None, Bytecode()).values(*args)
1504
+
1505
+ @classmethod
1506
+ def where(cls, *args):
1507
+ return cls.graph_traversal(None, None, Bytecode()).where(*args)
1508
+
1509
+
1510
+ # Class to handle transactions.
1511
+ class Transaction:
1512
+
1513
+ def __init__(self, g, remote_connection):
1514
+ self._g = g
1515
+ self._session_based_connection = None
1516
+ self._remote_connection = remote_connection
1517
+ self.__is_open = False
1518
+ self.__mutex = Lock()
1519
+
1520
+ # Begins transaction.
1521
+ def begin(self):
1522
+ with self.__mutex:
1523
+ # Verify transaction is not open.
1524
+ self.__verify_transaction_state(False, "Transaction already started on this object")
1525
+
1526
+ # Create new session using the remote connection.
1527
+ self._session_based_connection = self._remote_connection.create_session()
1528
+ self.__is_open = True
1529
+
1530
+ # Set the session as a remote strategy within the traversal strategy.
1531
+ traversal_strategy = TraversalStrategies()
1532
+ traversal_strategy.add_strategies([RemoteStrategy(self._session_based_connection)])
1533
+
1534
+ # Return new GraphTraversalSource.
1535
+ return GraphTraversalSource(self._g.graph, traversal_strategy, self._g.bytecode)
1536
+
1537
+ # Rolls transaction back.
1538
+ def rollback(self):
1539
+ with self.__mutex:
1540
+ # Verify transaction is open, close session and return result of transaction's rollback.
1541
+ self.__verify_transaction_state(True, "Cannot rollback a transaction that is not started.")
1542
+ return self.__close_session(self._session_based_connection.rollback())
1543
+
1544
+ # Commits the current transaction.
1545
+ def commit(self):
1546
+ with self.__mutex:
1547
+ # Verify transaction is open, close session and return result of transaction's commit.
1548
+ self.__verify_transaction_state(True, "Cannot commit a transaction that is not started.")
1549
+ return self.__close_session(self._session_based_connection.commit())
1550
+
1551
+ # Closes session.
1552
+ def close(self):
1553
+ with self.__mutex:
1554
+ # Verify transaction is open.
1555
+ self.__verify_transaction_state(True, "Cannot close a transaction that has previously been closed.")
1556
+ self.__close_session(None)
1557
+
1558
+ # Return whether or not transaction is open.
1559
+ # Allow camelcase function here to keep api consistent with other languages.
1560
+ def isOpen(self):
1561
+ warnings.warn(
1562
+ "gremlin_python.process.Transaction.isOpen will be replaced by "
1563
+ "gremlin_python.process.Transaction.is_open.",
1564
+ DeprecationWarning)
1565
+ return self.is_open()
1566
+
1567
+ def is_open(self):
1568
+ # if the underlying DriverRemoteConnection is closed then the Transaction can't be open
1569
+ if (self._session_based_connection and self._session_based_connection.is_closed()) or \
1570
+ self._remote_connection.is_closed():
1571
+ self.__is_open = False
1572
+
1573
+ return self.__is_open
1574
+
1575
+ def __verify_transaction_state(self, state, error_message):
1576
+ if self.__is_open != state:
1577
+ raise Exception(error_message)
1578
+
1579
+ def __close_session(self, session):
1580
+ self.__is_open = False
1581
+ self._remote_connection.remove_session(self._session_based_connection)
1582
+ return session
1583
+
1584
+
1585
+ def V(*args):
1586
+ return __.V(*args)
1587
+
1588
+
1589
+ def addE(*args):
1590
+ return __.add_e(*args)
1591
+
1592
+
1593
+ def add_e(*args):
1594
+ return __.add_e(*args)
1595
+
1596
+
1597
+ def addV(*args):
1598
+ return __.add_v(*args)
1599
+
1600
+
1601
+ def add_v(*args):
1602
+ return __.add_v(*args)
1603
+
1604
+
1605
+ def aggregate(*args):
1606
+ return __.aggregate(*args)
1607
+
1608
+
1609
+ def and_(*args):
1610
+ return __.and_(*args)
1611
+
1612
+
1613
+ def as_(*args):
1614
+ return __.as_(*args)
1615
+
1616
+
1617
+ def barrier(*args):
1618
+ return __.barrier(*args)
1619
+
1620
+
1621
+ def both(*args):
1622
+ return __.both(*args)
1623
+
1624
+
1625
+ def bothE(*args):
1626
+ return __.both_e(*args)
1627
+
1628
+
1629
+ def both_e(*args):
1630
+ return __.both_e(*args)
1631
+
1632
+
1633
+ def bothV(*args):
1634
+ return __.both_v(*args)
1635
+
1636
+
1637
+ def both_v(*args):
1638
+ return __.both_v(*args)
1639
+
1640
+
1641
+ def branch(*args):
1642
+ return __.branch(*args)
1643
+
1644
+
1645
+ def call(*args):
1646
+ return __.call(*args)
1647
+
1648
+
1649
+ def cap(*args):
1650
+ return __.cap(*args)
1651
+
1652
+
1653
+ def choose(*args):
1654
+ return __.choose(*args)
1655
+
1656
+
1657
+ def coalesce(*args):
1658
+ return __.coalesce(*args)
1659
+
1660
+
1661
+ def coin(*args):
1662
+ return __.coin(*args)
1663
+
1664
+
1665
+ def constant(*args):
1666
+ return __.constant(*args)
1667
+
1668
+
1669
+ def count(*args):
1670
+ return __.count(*args)
1671
+
1672
+
1673
+ def cyclicPath(*args):
1674
+ return __.cyclic_path(*args)
1675
+
1676
+
1677
+ def cyclic_path(*args):
1678
+ return __.cyclic_path(*args)
1679
+
1680
+
1681
+ def dedup(*args):
1682
+ return __.dedup(*args)
1683
+
1684
+
1685
+ def drop(*args):
1686
+ return __.drop(*args)
1687
+
1688
+
1689
+ def element(*args):
1690
+ return __.element(*args)
1691
+
1692
+
1693
+ def elementMap(*args):
1694
+ return __.element_map(*args)
1695
+
1696
+
1697
+ def element_map(*args):
1698
+ return __.element_map(*args)
1699
+
1700
+
1701
+ def emit(*args):
1702
+ return __.emit(*args)
1703
+
1704
+
1705
+ def fail(*args):
1706
+ return __.fail(*args)
1707
+
1708
+
1709
+ def filter_(*args):
1710
+ return __.filter_(*args)
1711
+
1712
+
1713
+ def flatMap(*args):
1714
+ return __.flat_map(*args)
1715
+
1716
+
1717
+ def flat_map(*args):
1718
+ return __.flat_map(*args)
1719
+
1720
+
1721
+ def fold(*args):
1722
+ return __.fold(*args)
1723
+
1724
+
1725
+ def group(*args):
1726
+ return __.group(*args)
1727
+
1728
+
1729
+ def groupCount(*args):
1730
+ return __.group_count(*args)
1731
+
1732
+
1733
+ def group_count(*args):
1734
+ return __.group_count(*args)
1735
+
1736
+
1737
+ def has(*args):
1738
+ return __.has(*args)
1739
+
1740
+
1741
+ def hasId(*args):
1742
+ return __.has_id(*args)
1743
+
1744
+
1745
+ def has_id(*args):
1746
+ return __.has_id(*args)
1747
+
1748
+
1749
+ def hasKey(*args):
1750
+ return __.has_key_(*args)
1751
+
1752
+
1753
+ def has_key_(*args):
1754
+ return __.has_key_(*args)
1755
+
1756
+
1757
+ def hasLabel(*args):
1758
+ return __.has_label(*args)
1759
+
1760
+
1761
+ def has_label(*args):
1762
+ return __.has_label(*args)
1763
+
1764
+
1765
+ def hasNot(*args):
1766
+ return __.has_not(*args)
1767
+
1768
+
1769
+ def has_not(*args):
1770
+ return __.has_not(*args)
1771
+
1772
+
1773
+ def hasValue(*args):
1774
+ return __.has_value(*args)
1775
+
1776
+
1777
+ def has_value(*args):
1778
+ return __.has_value(*args)
1779
+
1780
+
1781
+ def id_(*args):
1782
+ return __.id_(*args)
1783
+
1784
+
1785
+ def identity(*args):
1786
+ return __.identity(*args)
1787
+
1788
+
1789
+ def inE(*args):
1790
+ return __.in_e(*args)
1791
+
1792
+
1793
+ def in_e(*args):
1794
+ return __.in_e(*args)
1795
+
1796
+
1797
+ def inV(*args):
1798
+ return __.in_v(*args)
1799
+
1800
+
1801
+ def in_v(*args):
1802
+ return __.in_v(*args)
1803
+
1804
+
1805
+ def in_(*args):
1806
+ return __.in_(*args)
1807
+
1808
+
1809
+ def index(*args):
1810
+ return __.index(*args)
1811
+
1812
+
1813
+ def inject(*args):
1814
+ return __.inject(*args)
1815
+
1816
+
1817
+ def is_(*args):
1818
+ return __.is_(*args)
1819
+
1820
+
1821
+ def key(*args):
1822
+ return __.key(*args)
1823
+
1824
+
1825
+ def label(*args):
1826
+ return __.label(*args)
1827
+
1828
+
1829
+ def limit(*args):
1830
+ return __.limit(*args)
1831
+
1832
+
1833
+ def local(*args):
1834
+ return __.local(*args)
1835
+
1836
+
1837
+ def loops(*args):
1838
+ return __.loops(*args)
1839
+
1840
+
1841
+ def map(*args):
1842
+ return __.map(*args)
1843
+
1844
+
1845
+ def match(*args):
1846
+ return __.match(*args)
1847
+
1848
+
1849
+ def math(*args):
1850
+ return __.math(*args)
1851
+
1852
+
1853
+ def max_(*args):
1854
+ return __.max_(*args)
1855
+
1856
+
1857
+ def mean(*args):
1858
+ return __.mean(*args)
1859
+
1860
+
1861
+ def merge_e(*args):
1862
+ return __.merge_e(*args)
1863
+
1864
+
1865
+ def merge_v(*args):
1866
+ return __.merge_v(*args)
1867
+
1868
+
1869
+ def min_(*args):
1870
+ return __.min_(*args)
1871
+
1872
+
1873
+ def not_(*args):
1874
+ return __.not_(*args)
1875
+
1876
+
1877
+ def optional(*args):
1878
+ return __.optional(*args)
1879
+
1880
+
1881
+ def or_(*args):
1882
+ return __.or_(*args)
1883
+
1884
+
1885
+ def order(*args):
1886
+ return __.order(*args)
1887
+
1888
+
1889
+ def otherV(*args):
1890
+ return __.other_v(*args)
1891
+
1892
+
1893
+ def other_v(*args):
1894
+ return __.other_v(*args)
1895
+
1896
+
1897
+ def out(*args):
1898
+ return __.out(*args)
1899
+
1900
+
1901
+ def outE(*args):
1902
+ return __.out_e(*args)
1903
+
1904
+
1905
+ def out_e(*args):
1906
+ return __.out_e(*args)
1907
+
1908
+
1909
+ def outV(*args):
1910
+ return __.out_v(*args)
1911
+
1912
+
1913
+ def out_v(*args):
1914
+ return __.out_v(*args)
1915
+
1916
+
1917
+ def path(*args):
1918
+ return __.path(*args)
1919
+
1920
+
1921
+ def project(*args):
1922
+ return __.project(*args)
1923
+
1924
+
1925
+ def properties(*args):
1926
+ return __.properties(*args)
1927
+
1928
+
1929
+ def property(*args):
1930
+ return __.property(*args)
1931
+
1932
+
1933
+ def propertyMap(*args):
1934
+ return __.property_map(*args)
1935
+
1936
+
1937
+ def property_map(*args):
1938
+ return __.property_map(*args)
1939
+
1940
+
1941
+ def range_(*args):
1942
+ return __.range_(*args)
1943
+
1944
+
1945
+ def repeat(*args):
1946
+ return __.repeat(*args)
1947
+
1948
+
1949
+ def sack(*args):
1950
+ return __.sack(*args)
1951
+
1952
+
1953
+ def sample(*args):
1954
+ return __.sample(*args)
1955
+
1956
+
1957
+ def select(*args):
1958
+ return __.select(*args)
1959
+
1960
+
1961
+ def sideEffect(*args):
1962
+ return __.side_effect(*args)
1963
+
1964
+
1965
+ def side_effect(*args):
1966
+ return __.side_effect(*args)
1967
+
1968
+
1969
+ def simplePath(*args):
1970
+ return __.simple_path(*args)
1971
+
1972
+
1973
+ def simple_path(*args):
1974
+ return __.simple_path(*args)
1975
+
1976
+
1977
+ def skip(*args):
1978
+ return __.skip(*args)
1979
+
1980
+
1981
+ def store(*args):
1982
+ return __.store(*args)
1983
+
1984
+
1985
+ def subgraph(*args):
1986
+ return __.subgraph(*args)
1987
+
1988
+
1989
+ def sum_(*args):
1990
+ return __.sum_(*args)
1991
+
1992
+
1993
+ def tail(*args):
1994
+ return __.tail(*args)
1995
+
1996
+
1997
+ def timeLimit(*args):
1998
+ return __.time_limit(*args)
1999
+
2000
+
2001
+ def time_limit(*args):
2002
+ return __.time_limit(*args)
2003
+
2004
+
2005
+ def times(*args):
2006
+ return __.times(*args)
2007
+
2008
+
2009
+ def to(*args):
2010
+ return __.to(*args)
2011
+
2012
+
2013
+ def toE(*args):
2014
+ return __.to_e(*args)
2015
+
2016
+
2017
+ def to_e(*args):
2018
+ return __.to_e(*args)
2019
+
2020
+
2021
+ def toV(*args):
2022
+ return __.to_v(*args)
2023
+
2024
+
2025
+ def to_v(*args):
2026
+ return __.to_v(*args)
2027
+
2028
+
2029
+ def tree(*args):
2030
+ return __.tree(*args)
2031
+
2032
+
2033
+ def unfold(*args):
2034
+ return __.unfold(*args)
2035
+
2036
+
2037
+ def union(*args):
2038
+ return __.union(*args)
2039
+
2040
+
2041
+ def until(*args):
2042
+ return __.until(*args)
2043
+
2044
+
2045
+ def value(*args):
2046
+ return __.value(*args)
2047
+
2048
+
2049
+ def valueMap(*args):
2050
+ return __.value_map(*args)
2051
+
2052
+
2053
+ def value_map(*args):
2054
+ return __.value_map(*args)
2055
+
2056
+
2057
+ def values(*args):
2058
+ return __.values(*args)
2059
+
2060
+
2061
+ def where(*args):
2062
+ return __.where(*args)
2063
+
2064
+
2065
+ statics.add_static('V', V)
2066
+
2067
+ statics.add_static('addE', addE)
2068
+
2069
+ statics.add_static('add_E', add_e)
2070
+
2071
+ statics.add_static('addV', addV)
2072
+
2073
+ statics.add_static('add_v', add_v)
2074
+
2075
+ statics.add_static('aggregate', aggregate)
2076
+
2077
+ statics.add_static('and_', and_)
2078
+
2079
+ statics.add_static('as_', as_)
2080
+
2081
+ statics.add_static('barrier', barrier)
2082
+
2083
+ statics.add_static('both', both)
2084
+
2085
+ statics.add_static('bothE', bothE)
2086
+
2087
+ statics.add_static('both_e', both_e)
2088
+
2089
+ statics.add_static('bothV', bothV)
2090
+
2091
+ statics.add_static('both_v', both_v)
2092
+
2093
+ statics.add_static('branch', branch)
2094
+
2095
+ statics.add_static('call', call)
2096
+
2097
+ statics.add_static('cap', cap)
2098
+
2099
+ statics.add_static('choose', choose)
2100
+
2101
+ statics.add_static('coalesce', coalesce)
2102
+
2103
+ statics.add_static('coin', coin)
2104
+
2105
+ statics.add_static('constant', constant)
2106
+
2107
+ statics.add_static('count', count)
2108
+
2109
+ statics.add_static('cyclicPath', cyclicPath)
2110
+
2111
+ statics.add_static('cyclicpath', cyclic_path)
2112
+
2113
+ statics.add_static('dedup', dedup)
2114
+
2115
+ statics.add_static('drop', drop)
2116
+
2117
+ statics.add_static('element', element)
2118
+
2119
+ statics.add_static('elementMap', elementMap)
2120
+
2121
+ statics.add_static('element_map', element_map)
2122
+
2123
+ statics.add_static('emit', emit)
2124
+
2125
+ statics.add_static('fail', fail)
2126
+
2127
+ statics.add_static('filter_', filter_)
2128
+
2129
+ statics.add_static('flatMap', flatMap)
2130
+
2131
+ statics.add_static('flat_map', flat_map)
2132
+
2133
+ statics.add_static('fold', fold)
2134
+
2135
+ statics.add_static('group', group)
2136
+
2137
+ statics.add_static('groupCount', groupCount)
2138
+
2139
+ statics.add_static('group_count', group_count)
2140
+
2141
+ statics.add_static('has', has)
2142
+
2143
+ statics.add_static('hasId', hasId)
2144
+
2145
+ statics.add_static('has_id', has_id)
2146
+
2147
+ statics.add_static('hasKey', hasKey)
2148
+
2149
+ statics.add_static('has_key', has_key_)
2150
+
2151
+ statics.add_static('hasLabel', hasLabel)
2152
+
2153
+ statics.add_static('has_label', has_label)
2154
+
2155
+ statics.add_static('hasNot', hasNot)
2156
+
2157
+ statics.add_static('has_not', has_not)
2158
+
2159
+ statics.add_static('hasValue', hasValue)
2160
+
2161
+ statics.add_static('has_value', has_value)
2162
+
2163
+ statics.add_static('id_', id_)
2164
+
2165
+ statics.add_static('identity', identity)
2166
+
2167
+ statics.add_static('inE', inE)
2168
+
2169
+ statics.add_static('in_e', in_e)
2170
+
2171
+ statics.add_static('in_v', in_v)
2172
+
2173
+ statics.add_static('in_', in_)
2174
+
2175
+ statics.add_static('index', index)
2176
+
2177
+ statics.add_static('inject', inject)
2178
+
2179
+ statics.add_static('is_', is_)
2180
+
2181
+ statics.add_static('key', key)
2182
+
2183
+ statics.add_static('label', label)
2184
+
2185
+ statics.add_static('limit', limit)
2186
+
2187
+ statics.add_static('local', local)
2188
+
2189
+ statics.add_static('loops', loops)
2190
+
2191
+ statics.add_static('map', map)
2192
+
2193
+ statics.add_static('match', match)
2194
+
2195
+ statics.add_static('math', math)
2196
+
2197
+ statics.add_static('max_', max_)
2198
+
2199
+ statics.add_static('mean', mean)
2200
+
2201
+ statics.add_static('merge_e', merge_e)
2202
+
2203
+ statics.add_static('merge_v', merge_v)
2204
+
2205
+ statics.add_static('min_', min_)
2206
+
2207
+ statics.add_static('not_', not_)
2208
+
2209
+ statics.add_static('optional', optional)
2210
+
2211
+ statics.add_static('or_', or_)
2212
+
2213
+ statics.add_static('order', order)
2214
+
2215
+ statics.add_static('otherV', otherV)
2216
+
2217
+ statics.add_static('other_v', other_v)
2218
+
2219
+ statics.add_static('out', out)
2220
+
2221
+ statics.add_static('outE', outE)
2222
+
2223
+ statics.add_static('out_e', out_e)
2224
+
2225
+ statics.add_static('outV', outV)
2226
+
2227
+ statics.add_static('out_v', out_v)
2228
+
2229
+ statics.add_static('path', path)
2230
+
2231
+ statics.add_static('project', project)
2232
+
2233
+ statics.add_static('properties', properties)
2234
+
2235
+ statics.add_static('property', property)
2236
+
2237
+ statics.add_static('propertyMap', propertyMap)
2238
+
2239
+ statics.add_static('property_map', property_map)
2240
+
2241
+ statics.add_static('range_', range_)
2242
+
2243
+ statics.add_static('repeat', repeat)
2244
+
2245
+ statics.add_static('sack', sack)
2246
+
2247
+ statics.add_static('sample', sample)
2248
+
2249
+ statics.add_static('select', select)
2250
+
2251
+ statics.add_static('sideEffect', sideEffect)
2252
+
2253
+ statics.add_static('side_effect', side_effect)
2254
+
2255
+ statics.add_static('simplePath', simplePath)
2256
+
2257
+ statics.add_static('simple_path', simple_path)
2258
+
2259
+ statics.add_static('skip', skip)
2260
+
2261
+ statics.add_static('store', store)
2262
+
2263
+ statics.add_static('subgraph', subgraph)
2264
+
2265
+ statics.add_static('sum_', sum_)
2266
+
2267
+ statics.add_static('tail', tail)
2268
+
2269
+ statics.add_static('timeLimit', timeLimit)
2270
+
2271
+ statics.add_static('time_limit', time_limit)
2272
+
2273
+ statics.add_static('times', times)
2274
+
2275
+ statics.add_static('to', to)
2276
+
2277
+ statics.add_static('toE', toE)
2278
+
2279
+ statics.add_static('to_e', to_e)
2280
+
2281
+ statics.add_static('toV', toV)
2282
+
2283
+ statics.add_static('to_v', to_v)
2284
+
2285
+ statics.add_static('tree', tree)
2286
+
2287
+ statics.add_static('unfold', unfold)
2288
+
2289
+ statics.add_static('union', union)
2290
+
2291
+ statics.add_static('until', until)
2292
+
2293
+ statics.add_static('value', value)
2294
+
2295
+ statics.add_static('valueMap', valueMap)
2296
+
2297
+ statics.add_static('value_map', value_map)
2298
+
2299
+ statics.add_static('values', values)
2300
+
2301
+ statics.add_static('where', where)