You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2018/03/14 12:17:54 UTC

[7/7] tinkerpop git commit: Merge branch 'tp32' into tp33

Merge branch 'tp32' into tp33

Conflicts:
	gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/PythonTranslator.java


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0c6459d9
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0c6459d9
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0c6459d9

Branch: refs/heads/tp33
Commit: 0c6459d992f7c643e433e3482d676c7096288438
Parents: 9bd4d7f 1ea01ad
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Mar 14 08:14:54 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Mar 14 08:14:54 2018 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../jsr223/GremlinJythonScriptEngine.java       |  7 +--
 .../gremlin/python/jsr223/JythonTranslator.java | 28 +++++++++
 .../gremlin/python/jsr223/PythonTranslator.java | 35 ++++++-----
 .../python/jsr223/JythonTranslatorTest.java     | 63 ++++++++++++--------
 5 files changed, 89 insertions(+), 45 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0c6459d9/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --cc CHANGELOG.asciidoc
index bbae529,94ee24f..a5aac3d
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -283,9 -32,9 +283,10 @@@ image::https://raw.githubusercontent.co
  * Bumped to Jackson 2.9.4.
  * Improved performance of `JavaTranslator` by caching reflected methods required for traversal construction.
  * Added `idleConnectionTimeout` and `keepAliveInterval` to Gremlin Server that enables a "ping" and auto-close for seemingly dead clients.
+ * Fixed a bug where lambdas in `gremlin-python` would trigger a failure if steps using python-only symbols were present (such as `as_()`).
  * Fixed a bug in `NumberHelper` that led to wrong min/max results if numbers exceeded the Integer limits.
  * Delayed setting of the request identifier until `RequestMessage` construction by the builder.
 +* `ReferenceElement` avoids `UnsupportedOperationException` handling in construction thus improving performance.
  * Improved error messaging for failed serialization and deserialization of request/response messages.
  * Fixed handling of `Direction.BOTH` in `Messenger` implementations to pass the message to the opposite side of the `StarGraph`.
  * Removed hardcoded expectation in metrics serialization test suite as different providers may have different outputs.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0c6459d9/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0c6459d9/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/PythonTranslator.java
----------------------------------------------------------------------
diff --cc gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/PythonTranslator.java
index 568ca03,d8c73f0..b453cd7
--- a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/PythonTranslator.java
+++ b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/PythonTranslator.java
@@@ -107,14 -110,15 +108,14 @@@ public class PythonTranslator implement
          for (final Bytecode.Instruction instruction : bytecode.getInstructions()) {
              final String methodName = instruction.getOperator();
              final Object[] arguments = instruction.getArguments();
 -            if (IS_TESTING &&
 -                    instruction.getOperator().equals(TraversalSource.Symbols.withStrategies) &&
 -                    instruction.getArguments()[0].toString().contains("TranslationStrategy"))
 -                continue;
 -            else if (0 == arguments.length)
 +            if (0 == arguments.length)
-                 traversalScript.append(".").append(SymbolHelper.toPython(methodName)).append("()");
-             else if (methodName.equals("range") && 2 == arguments.length && ((Number) arguments[0]).intValue() != 0) {
+                 traversalScript.append(".").append(resolveSymbol(methodName)).append("()");
+             else if (methodName.equals("range") && 2 == arguments.length)
 -                traversalScript.append("[").append(arguments[0]).append(":").append(arguments[1]).append("]");
 +                if (((Number) arguments[0]).longValue() + 1 == ((Number) arguments[1]).longValue())
 +                    traversalScript.append("[").append(arguments[0]).append("]");
 +                else
 +                    traversalScript.append("[").append(arguments[0]).append(":").append(arguments[1]).append("]");
-             } else if (methodName.equals("limit") && 1 == arguments.length)
+             else if (methodName.equals("limit") && 1 == arguments.length)
                  traversalScript.append("[0:").append(arguments[0]).append("]");
              else if (methodName.equals("values") && 1 == arguments.length && traversalScript.length() > 3 && !STEP_NAMES.contains(arguments[0].toString()))
                  traversalScript.append(".").append(arguments[0]);