TINKERPOP-1860 Added deserializer for T in gremlin-python This allowed valueMap(true) to start working.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/6f1b8be8 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/6f1b8be8 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/6f1b8be8 Branch: refs/heads/TINKERPOP-1860-master Commit: 6f1b8be8ea28908de60ee4df4c201d15b755ab4a Parents: 13f1adb Author: Stephen Mallette <[email protected]> Authored: Mon Jan 8 09:19:00 2018 -0500 Committer: Stephen Mallette <[email protected]> Committed: Mon Jan 8 09:19:00 2018 -0500 ---------------------------------------------------------------------- .../gremlin_python/structure/io/graphsonV3d0.py | 10 +++++++- gremlin-test/features/map/ValueMap.feature | 24 ++++++++++---------- 2 files changed, 21 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6f1b8be8/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py ---------------------------------------------------------------------- diff --git a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py index 265b227..5539448 100644 --- a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py +++ b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphsonV3d0.py @@ -27,7 +27,7 @@ from aenum import Enum from gremlin_python import statics from gremlin_python.statics import FloatType, FunctionType, IntType, LongType, TypeType, DictType, ListType, SetType -from gremlin_python.process.traversal import Binding, Bytecode, P, Traversal, Traverser, TraversalStrategy +from gremlin_python.process.traversal import Binding, Bytecode, P, Traversal, Traverser, TraversalStrategy, T from gremlin_python.structure.graph import Edge, Property, Vertex, VertexProperty, Path # When we fall back to a superclass's serializer, we iterate over this map. @@ -534,3 +534,11 @@ class PathDeserializer(_GraphSONTypeIO): @classmethod def objectify(cls, d, reader): return Path(reader.toObject(d["labels"]), reader.toObject(d["objects"])) + + +class TDeserializer(_GraphSONTypeIO): + graphson_type = "g:T" + + @classmethod + def objectify(cls, d, reader): + return T[d] http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6f1b8be8/gremlin-test/features/map/ValueMap.feature ---------------------------------------------------------------------- diff --git a/gremlin-test/features/map/ValueMap.feature b/gremlin-test/features/map/ValueMap.feature index 0860b15..c851e53 100644 --- a/gremlin-test/features/map/ValueMap.feature +++ b/gremlin-test/features/map/ValueMap.feature @@ -42,12 +42,12 @@ Feature: Step - valueMap() When iterated to list Then the result should be unordered | result | - | m[{"id": "v[marko].id", "label": "person", "name": ["marko"], "age": [29]}] | - | m[{"id": "v[josh].id", "label": "person", "name": ["josh"], "age": [32]}] | - | m[{"id": "v[peter].id", "label": "person", "name": ["peter"], "age": [35]}] | - | m[{"id": "v[vadas].id", "label": "person", "name": ["vadas"], "age": [27]}] | - | m[{"id": "v[lop].id", "label": "software", "name": ["lop"], "lang": ["java"]}] | - | m[{"id": "v[ripple].id", "label": "software", "name": ["ripple"], "lang": ["java"]}] | + | m[{"t[id]": "v[marko].id", "t[label]": "person", "name": ["marko"], "age": [29]}] | + | m[{"t[id]": "v[josh].id", "t[label]": "person", "name": ["josh"], "age": [32]}] | + | m[{"t[id]": "v[peter].id", "t[label]": "person", "name": ["peter"], "age": [35]}] | + | m[{"t[id]": "v[vadas].id", "t[label]": "person", "name": ["vadas"], "age": [27]}] | + | m[{"t[id]": "v[lop].id", "t[label]": "software", "name": ["lop"], "lang": ["java"]}] | + | m[{"t[id]": "v[ripple].id", "t[label]": "software", "name": ["ripple"], "lang": ["java"]}] | Scenario: g_V_valueMapXname_ageX Given the modern graph @@ -74,12 +74,12 @@ Feature: Step - valueMap() When iterated to list Then the result should be unordered | result | - | m[{"id": "v[marko].id", "label": "person", "name": ["marko"], "age": [29]}] | - | m[{"id": "v[josh].id", "label": "person", "name": ["josh"], "age": [32]}] | - | m[{"id": "v[peter].id", "label": "person", "name": ["peter"], "age": [35]}] | - | m[{"id": "v[vadas].id", "label": "person", "name": ["vadas"], "age": [27]}] | - | m[{"id": "v[lop].id", "label": "software", "name": ["lop"]}] | - | m[{"id": "v[ripple].id", "label": "software", "name": ["ripple"]}] | + | m[{"t[id]": "v[marko].id", "t[label]": "person", "name": ["marko"], "age": [29]}] | + | m[{"t[id]": "v[josh].id", "t[label]": "person", "name": ["josh"], "age": [32]}] | + | m[{"t[id]": "v[peter].id", "t[label]": "person", "name": ["peter"], "age": [35]}] | + | m[{"t[id]": "v[vadas].id", "t[label]": "person", "name": ["vadas"], "age": [27]}] | + | m[{"t[id]": "v[lop].id", "t[label]": "software", "name": ["lop"]}] | + | m[{"t[id]": "v[ripple].id", "t[label]": "software", "name": ["ripple"]}] | Scenario: g_VX1X_outXcreatedX_valueMap Given the modern graph
