You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ke...@apache.org on 2026/04/22 16:02:33 UTC
(tinkerpop) 02/04: add missing test imports
This is an automated email from the ASF dual-hosted git repository.
kenhuuu pushed a commit to branch stringify-params
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit da806aed902ae97a3f48f0a4e0828195f6248970
Author: Ken Hu <10...@users.noreply.github.com>
AuthorDate: Tue Apr 21 22:24:42 2026 -0700
add missing test imports
---
.../tinkerpop/gremlin/jsr223/CoreImports.java | 3 +
gremlin-dotnet/build/generate.groovy | 1 +
.../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 1 +
gremlin-go/build/generate.groovy | 74 +++++++++++-----------
gremlin-go/driver/cucumber/gremlin.go | 12 ++--
.../scripts/groovy/generate.groovy | 51 +++++++--------
.../gremlin-javascript/test/cucumber/gremlin.js | 35 +++++-----
gremlin-python/build/generate.groovy | 4 +-
.../src/main/python/tests/feature/gremlin.py | 4 +-
9 files changed, 98 insertions(+), 87 deletions(-)
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
index 398652a889..4fe50ed633 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
@@ -326,8 +326,11 @@ public final class CoreImports {
CLASS_IMPORTS.add(Lambda.class);
CLASS_IMPORTS.add(java.util.Date.class);
CLASS_IMPORTS.add(java.time.OffsetDateTime.class);
+ CLASS_IMPORTS.add(java.time.Duration.class);
+ CLASS_IMPORTS.add(java.nio.ByteBuffer.class);
CLASS_IMPORTS.add(java.sql.Timestamp.class);
CLASS_IMPORTS.add(java.util.UUID.class);
+ CLASS_IMPORTS.add(java.util.Base64.class);
CLASS_IMPORTS.add(GremlinTranslator.class);
CLASS_IMPORTS.add(Translator.class);
diff --git a/gremlin-dotnet/build/generate.groovy b/gremlin-dotnet/build/generate.groovy
index 24bc271ad5..234dfb6950 100644
--- a/gremlin-dotnet/build/generate.groovy
+++ b/gremlin-dotnet/build/generate.groovy
@@ -61,6 +61,7 @@ radishGremlinFile.withWriter('UTF-8') { Writer writer ->
writer.writeLine('using System;\n' +
'using System.Numerics;\n' +
'using System.Collections.Generic;\n' +
+ 'using System.Xml;\n' +
'using Gremlin.Net.Structure;\n' +
'using Gremlin.Net.Process.Traversal;\n' +
'using Gremlin.Net.Process.Traversal.Strategy.Optimization;\n' +
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index d2ffc824b7..5f0d8a1c72 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -32,6 +32,7 @@
using System;
using System.Numerics;
using System.Collections.Generic;
+using System.Xml;
using Gremlin.Net.Structure;
using Gremlin.Net.Process.Traversal;
using Gremlin.Net.Process.Traversal.Strategy.Optimization;
diff --git a/gremlin-go/build/generate.groovy b/gremlin-go/build/generate.groovy
index 39bc209713..3069766aad 100644
--- a/gremlin-go/build/generate.groovy
+++ b/gremlin-go/build/generate.groovy
@@ -79,45 +79,45 @@ radishGremlinFile.withWriter('UTF-8') { Writer writer ->
if (staticTranslate.containsKey(k)) {
writer.writeLine(staticTranslate[k])
} else {
- writer.write(" ")
- writer.write("\"")
- writer.write(k)
- writer.write("\": {")
- def collected = v.collect {
- try {
- GremlinTranslator.translate(it, Translator.GO)
- } catch (ignored) {
- // fall back to the original gremlin-lang form for unsupported literals;
- // the scenario will be skipped at test runtime via tag exclusions
- GremlinTranslator.translate(it, Translator.LANGUAGE)
+ try {
+ def collected = v.collect { GremlinTranslator.translate(it, Translator.GO) }
+ writer.write(" ")
+ writer.write("\"")
+ writer.write(k)
+ writer.write("\": {")
+ def gremlinItty = collected.iterator()
+ while (gremlinItty.hasNext()) {
+ def t = gremlinItty.next()
+ writer.write("func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return ")
+ try {
+ writer.write(t.getTranslated().
+ replaceAll("xx([0-9]+)", "p[\"xx\$1\"]").
+ replaceAll("^-v([0-9]+)^-", "p[\"v\$1\"]"). // using ^- to avoid matching on g.io() tests - unexpected side-effect
+ replaceAll("vid([0-9]+)", "p[\"vid\$1\"]").
+ replaceAll("e([0-9]+)", "p[\"e\$1\"]").
+ replaceAll("eid([0-9]+)", "p[\"eid\$1\"]").
+ replace("l1", "p[\"l1\"]").
+ replace("l2", "p[\"l2\"]").
+ replace("pred1", "p[\"pred1\"]").
+ replace("c1", "p[\"c1\"]").
+ replace("c2", "p[\"c2\"]"))
+ } catch (ignored) {
+ // Putting these in place of not implemented functions
+ // TODO make sure all is supported
+ writer.write("nil")
+ }
+ writer.write("}")
+ if (gremlinItty.hasNext())
+ writer.write(', ')
}
+ writer.writeLine('}, ')
+ } catch (ignored) {
+ // emit a placeholder for scenarios with unsupported literals to keep the file
+ // syntactically valid; the scenario will be skipped at test runtime via tag exclusions
+ writer.write(" \"")
+ writer.write(k)
+ writer.writeLine("\": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return nil}}, ")
}
- def gremlinItty = collected.iterator()
- while (gremlinItty.hasNext()) {
- def t = gremlinItty.next()
- writer.write("func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return ")
- try {
- writer.write(t.getTranslated().
- replaceAll("xx([0-9]+)", "p[\"xx\$1\"]").
- replaceAll("^-v([0-9]+)^-", "p[\"v\$1\"]"). // using ^- to avoid matching on g.io() tests - unexpected side-effect
- replaceAll("vid([0-9]+)", "p[\"vid\$1\"]").
- replaceAll("e([0-9]+)", "p[\"e\$1\"]").
- replaceAll("eid([0-9]+)", "p[\"eid\$1\"]").
- replace("l1", "p[\"l1\"]").
- replace("l2", "p[\"l2\"]").
- replace("pred1", "p[\"pred1\"]").
- replace("c1", "p[\"c1\"]").
- replace("c2", "p[\"c2\"]"))
- } catch (ignored) {
- // Putting these in place of not implemented functions
- // TODO make sure all is supported
- writer.write("nil")
- }
- writer.write("}")
- if (gremlinItty.hasNext())
- writer.write(', ')
- }
- writer.writeLine('}, ')
}
}
writer.writeLine('}\n')
diff --git a/gremlin-go/driver/cucumber/gremlin.go b/gremlin-go/driver/cucumber/gremlin.go
index 386ebb3df9..02419ce829 100644
--- a/gremlin-go/driver/cucumber/gremlin.go
+++ b/gremlin-go/driver/cucumber/gremlin.go
@@ -209,12 +209,12 @@ var translationMap = map[string][]func(g *gremlingo.GraphTraversalSource, p map[
"g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_chooseXisXeqX12XX_constantXtwelveX_constantXotherXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.AddV("data").Property("int", 12)}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values("int").AsNumber(gremlingo.GType.Byte).Is(gremlingo.P.TypeOf(gremlingo.GType.Byte)).Choose(gremlingo.T__.Is(gremlingo.P.Eq( [...]
"g_injectX15X_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_groupCount": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(15).AsNumber(gremlingo.GType.Byte).Is(gremlingo.P.TypeOf(gremlingo.GType.Byte)).GroupCount()}},
"g_V_valuesXageX_isXtypeOfXGType_BYTEXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values("age").Is(gremlingo.P.TypeOf(gremlingo.GType.Byte))}},
- "g_injectXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.inject("a"c)}},
- "g_injectXescaped_quoteX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.inject("\""c)}},
- "g_injectXescaped_backslashX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.inject("\\"c)}},
- "g_injectXunicodeX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.inject("\u00E9"c)}},
- "g_valuesXinitialX_isXtypeOfXGType_CHARXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.addV("data").property("initial", "a"c)}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values("initial").Is(gremlingo.P.TypeOf(gremlingo.GType.Char))}},
- "g_injectXaX_isXeqXaXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.inject("a"c).is(P.eq("a"c))}},
+ "g_injectXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return nil}},
+ "g_injectXescaped_quoteX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return nil}},
+ "g_injectXescaped_backslashX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return nil}},
+ "g_injectXunicodeX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return nil}},
+ "g_valuesXinitialX_isXtypeOfXGType_CHARXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return nil}},
+ "g_injectXaX_isXeqXaXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return nil}},
"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.AddV("event").Property("datetime", time.Date(2023, 8, 8, 0, 0, 0, 0, time.FixedZone("UTC+00:00", 0)))}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values("datetime").Is(gremlingo.P.TypeOf(gremlingo.GType.DateTime))}},
"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_project_byXidentityX_byXdateAddXDT_dayX1XX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.AddV("event").Property("datetime", time.Date(2023, 8, 8, 0, 0, 0, 0, time.FixedZone("UTC+00:00", 0)))}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values("datetime").Is(gremlingo.P.TypeOf(gremlingo.GType.DateTime)).Project("orig [...]
"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_dateDiffXdatetimeX2023_08_10XX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.AddV("event").Property("datetime", time.Date(2023, 8, 8, 0, 0, 0, 0, time.FixedZone("UTC+00:00", 0)))}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values("datetime").Is(gremlingo.P.TypeOf(gremlingo.GType.DateTime)).DateDiff(time.Date(2023, [...]
diff --git a/gremlin-js/gremlin-javascript/scripts/groovy/generate.groovy b/gremlin-js/gremlin-javascript/scripts/groovy/generate.groovy
index bfde0e275b..1e43297acc 100644
--- a/gremlin-js/gremlin-javascript/scripts/groovy/generate.groovy
+++ b/gremlin-js/gremlin-javascript/scripts/groovy/generate.groovy
@@ -57,6 +57,7 @@ radishGremlinFile.withWriter('UTF-8') { Writer writer ->
'import * as graphTraversalModule from \'../../lib/process/graph-traversal.js\';\n' +
'import * as traversalModule from \'../../lib/process/traversal.js\';\n' +
'import * as uuid from \'uuid\';\n' +
+ 'import { Buffer } from \'buffer\';\n' +
'import { TraversalStrategies, VertexProgramStrategy, OptionsStrategy, PartitionStrategy, \n' +
' ReadOnlyStrategy, GraphFilterStrategy, SeedStrategy, SubgraphStrategy, ProductiveByStrategy, \n' +
' LambdaRestrictionStrategy, StandardVerificationStrategy, VertexProgramRestrictionStrategy, \n' +
@@ -103,33 +104,33 @@ radishGremlinFile.withWriter('UTF-8') { Writer writer ->
if (staticTranslate.containsKey(k)) {
writer.writeLine(staticTranslate[k])
} else {
- writer.write(" ")
- writer.write(k)
- writer.write(": [")
- def collected = v.collect {
- try {
- GremlinTranslator.translate(it, Translator.JAVASCRIPT)
- } catch (ignored) {
- // fall back to the original gremlin-lang form for unsupported literals;
- // the scenario will be skipped at test runtime via tag exclusions
- GremlinTranslator.translate(it, Translator.LANGUAGE)
+ try {
+ def collected = v.collect { GremlinTranslator.translate(it, Translator.JAVASCRIPT) }
+ writer.write(" ")
+ writer.write(k)
+ writer.write(": [")
+ def uniqueBindings = collected.collect { it.getParameters() }.flatten().unique()
+ def gremlinItty = collected.iterator()
+ while (gremlinItty.hasNext()) {
+ def t = gremlinItty.next()
+ writer.write("function({g")
+ if (!uniqueBindings.isEmpty()) {
+ writer.write(", ")
+ writer.write(uniqueBindings.join(", "))
+ }
+ writer.write("}) { return ")
+ writer.write(t.getTranslated())
+ writer.write(" }")
+ if (gremlinItty.hasNext()) writer.write(', ')
}
+ writer.writeLine('], ')
+ } catch (ignored) {
+ // emit a placeholder for scenarios with unsupported literals to keep the file
+ // syntactically valid; the scenario will be skipped at test runtime via tag exclusions
+ writer.write(" ")
+ writer.write(k)
+ writer.writeLine(": [function({g}) { return null }], ")
}
- def uniqueBindings = collected.collect { it.getParameters() }.flatten().unique()
- def gremlinItty = collected.iterator()
- while (gremlinItty.hasNext()) {
- def t = gremlinItty.next()
- writer.write("function({g")
- if (!uniqueBindings.isEmpty()) {
- writer.write(", ")
- writer.write(uniqueBindings.join(", "))
- }
- writer.write("}) { return ")
- writer.write(t.getTranslated())
- writer.write(" }")
- if (gremlinItty.hasNext()) writer.write(', ')
- }
- writer.writeLine('], ')
}
}
writer.writeLine('}\n')
diff --git a/gremlin-js/gremlin-javascript/test/cucumber/gremlin.js b/gremlin-js/gremlin-javascript/test/cucumber/gremlin.js
index 877d893312..e783569517 100644
--- a/gremlin-js/gremlin-javascript/test/cucumber/gremlin.js
+++ b/gremlin-js/gremlin-javascript/test/cucumber/gremlin.js
@@ -27,6 +27,7 @@
import * as graphTraversalModule from '../../lib/process/graph-traversal.js';
import * as traversalModule from '../../lib/process/traversal.js';
import * as uuid from 'uuid';
+import { Buffer } from 'buffer';
import { TraversalStrategies, VertexProgramStrategy, OptionsStrategy, PartitionStrategy,
ReadOnlyStrategy, GraphFilterStrategy, SeedStrategy, SubgraphStrategy, ProductiveByStrategy,
LambdaRestrictionStrategy, StandardVerificationStrategy, VertexProgramRestrictionStrategy,
@@ -240,12 +241,12 @@ const gremlins = {
g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_chooseXisXeqX12XX_constantXtwelveX_constantXotherXX: [function({g}) { return g.addV("data").property("int", 12) }, function({g}) { return g.V().values("int").asNumber(GType.byte).is(P.typeOf(GType.byte)).choose(__.is(P.eq(12)), __.constant("twelve"), __.constant("other")) }],
g_injectX15X_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_groupCount: [function({g}) { return g.inject(15).asNumber(GType.byte).is(P.typeOf(GType.byte)).groupCount() }],
g_V_valuesXageX_isXtypeOfXGType_BYTEXX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.byte)) }],
- g_injectXaX: [function({g}) { return g.inject("a"c) }],
- g_injectXescaped_quoteX: [function({g}) { return g.inject("\""c) }],
- g_injectXescaped_backslashX: [function({g}) { return g.inject("\\"c) }],
- g_injectXunicodeX: [function({g}) { return g.inject("\u00E9"c) }],
- g_valuesXinitialX_isXtypeOfXGType_CHARXX: [function({g}) { return g.addV("data").property("initial", "a"c) }, function({g}) { return g.V().values("initial").is(P.typeOf(GType.char)) }],
- g_injectXaX_isXeqXaXX: [function({g}) { return g.inject("a"c).is(P.eq("a"c)) }],
+ g_injectXaX: [function({g}) { return null }],
+ g_injectXescaped_quoteX: [function({g}) { return null }],
+ g_injectXescaped_backslashX: [function({g}) { return null }],
+ g_injectXunicodeX: [function({g}) { return null }],
+ g_valuesXinitialX_isXtypeOfXGType_CHARXX: [function({g}) { return null }],
+ g_injectXaX_isXeqXaXX: [function({g}) { return null }],
g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX: [function({g}) { return g.addV("event").property("datetime", new Date('2023-08-08T00:00Z')) }, function({g}) { return g.V().values("datetime").is(P.typeOf(GType.datetime)) }],
g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_project_byXidentityX_byXdateAddXDT_dayX1XX: [function({g}) { return g.addV("event").property("datetime", new Date('2023-08-08T00:00Z')) }, function({g}) { return g.V().values("datetime").is(P.typeOf(GType.datetime)).project("original", "nextDay").by(__.identity()).by(__.dateAdd(DT.day, 1)) }],
g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_dateDiffXdatetimeX2023_08_10XX: [function({g}) { return g.addV("event").property("datetime", new Date('2023-08-08T00:00Z')) }, function({g}) { return g.V().values("datetime").is(P.typeOf(GType.datetime)).dateDiff(new Date('2023-08-08T00:00:30Z')) }],
@@ -265,17 +266,17 @@ const gremlins = {
g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_order_byXascX: [function({g}) { return g.addV("data").property("double", 3.2).addV("data").property("double", 1.8).addV("data").property("double", 2.5) }, function({g}) { return g.V().values("double").is(P.typeOf(GType.double)).order().by(Order.asc) }],
g_injectX5_5dX_isXtypeOfXGType_DOUBLEXX_groupCount: [function({g}) { return g.inject(5.5).is(P.typeOf(GType.double)).groupCount() }],
g_V_valuesXageX_isXtypeOfXGType_DOUBLEXX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.double)) }],
- g_injectXDurationXPT2H30MXX: [function({g}) { return g.inject(Duration("PT2H30M")) }],
- g_injectXDurationXPT0SXX: [function({g}) { return g.inject(Duration("PT0S")) }],
- g_injectXDurationXPTneg30SXX: [function({g}) { return g.inject(Duration("PT-30S")) }],
- g_injectXDurationXnegPT30SXX: [function({g}) { return g.inject(Duration("-PT30S")) }],
- g_injectXDurationXPT0_5SXX: [function({g}) { return g.inject(Duration("PT0.5S")) }],
- g_injectXDurationXP1DT12HXX: [function({g}) { return g.inject(Duration("P1DT12H")) }],
- g_injectXDurationXP2DXX: [function({g}) { return g.inject(Duration("P2D")) }],
- g_injectXDurationXPT1H30M15SXX: [function({g}) { return g.inject(Duration("PT1H30M15S")) }],
- g_injectXDurationXPTneg0_5SXX: [function({g}) { return g.inject(Duration("PT-0.5S")) }],
- g_valuesXlengthX_isXtypeOfXGType_DURATIONXX: [function({g}) { return g.addV("data").property("length", Duration("PT2H30M")) }, function({g}) { return g.V().values("length").is(P.typeOf(GType.duration)) }],
- g_injectXDurationXPT2H30MXX_isXgtXDurationXPT1HXXX: [function({g}) { return g.inject(Duration("PT2H30M")).is(P.gt(Duration("PT1H"))) }],
+ g_injectXDurationXPT2H30MXX: [function({g}) { return null }],
+ g_injectXDurationXPT0SXX: [function({g}) { return null }],
+ g_injectXDurationXPTneg30SXX: [function({g}) { return null }],
+ g_injectXDurationXnegPT30SXX: [function({g}) { return null }],
+ g_injectXDurationXPT0_5SXX: [function({g}) { return null }],
+ g_injectXDurationXP1DT12HXX: [function({g}) { return null }],
+ g_injectXDurationXP2DXX: [function({g}) { return null }],
+ g_injectXDurationXPT1H30M15SXX: [function({g}) { return null }],
+ g_injectXDurationXPTneg0_5SXX: [function({g}) { return null }],
+ g_valuesXlengthX_isXtypeOfXGType_DURATIONXX: [function({g}) { return null }],
+ g_injectXDurationXPT2H30MXX_isXgtXDurationXPT1HXXX: [function({g}) { return null }],
g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX: [function({g}) { return g.addV("data").property("float", 2.5) }, function({g}) { return g.V().values("float").asNumber(GType.float).is(P.typeOf(GType.float)) }],
g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_mathXmulX2XX: [function({g}) { return g.addV("data").property("float", 3.0) }, function({g}) { return g.V().values("float").asNumber(GType.float).is(P.typeOf(GType.float)).math("_ * 2") }],
g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_isXeqX1_5XX: [function({g}) { return g.addV("data").property("float", 1.5) }, function({g}) { return g.V().values("float").asNumber(GType.float).is(P.typeOf(GType.float)).is(P.eq(1.5)) }],
diff --git a/gremlin-python/build/generate.groovy b/gremlin-python/build/generate.groovy
index aaa66090d5..e96964dbf6 100644
--- a/gremlin-python/build/generate.groovy
+++ b/gremlin-python/build/generate.groovy
@@ -55,9 +55,11 @@ radishGremlinFile.withWriter('UTF-8') { Writer writer ->
writer.writeLine(
'from radish import world\n' +
+ 'import base64\n' +
'import datetime\n' +
'import uuid\n' +
- 'from gremlin_python.statics import long, bigint, bigdecimal, GremlinType\n' +
+ 'from datetime import timedelta\n' +
+ 'from gremlin_python.statics import long, bigint, bigdecimal, SingleChar, GremlinType\n' +
'from gremlin_python.process.anonymous_traversal import traversal\n' +
'from gremlin_python.process.strategies import *\n' +
'from gremlin_python.process.traversal import TraversalStrategy\n' +
diff --git a/gremlin-python/src/main/python/tests/feature/gremlin.py b/gremlin-python/src/main/python/tests/feature/gremlin.py
index d1c1d1c70e..a70363dca8 100644
--- a/gremlin-python/src/main/python/tests/feature/gremlin.py
+++ b/gremlin-python/src/main/python/tests/feature/gremlin.py
@@ -25,9 +25,11 @@
from radish import world
+import base64
import datetime
import uuid
-from gremlin_python.statics import long, bigint, bigdecimal, GremlinType
+from datetime import timedelta
+from gremlin_python.statics import long, bigint, bigdecimal, SingleChar, GremlinType
from gremlin_python.process.anonymous_traversal import traversal
from gremlin_python.process.strategies import *
from gremlin_python.process.traversal import TraversalStrategy