This is an automated email from the ASF dual-hosted git repository. xiazcy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 17be1a73f9eb3debb29f0363312c11ac0ae7e752 Merge: a55ed7173b 0ac0710e52 Author: xiazcy <[email protected]> AuthorDate: Thu Oct 30 15:36:53 2025 -0700 Merge branch '3.8-dev' CHANGELOG.asciidoc | 3 +++ docs/src/upgrade/release-3.8.x.asciidoc | 13 ++++++----- .../translator/PythonTranslateVisitor.java | 6 ++++- .../language/translator/GremlinTranslatorTest.java | 6 ++--- .../src/Gremlin.Net/Structure/Element.cs | 4 ++-- .../Structure/IO/GraphSON/EdgeDeserializer.cs | 3 ++- .../Structure/IO/GraphSON/VertexDeserializer.cs | 3 ++- .../IO/GraphSON/VertexPropertyDeserializer.cs | 2 +- .../DriverRemoteConnection/GraphTraversalTests.cs | 26 +++++++++------------- .../Structure/IO/GraphSON/GraphSONReaderTests.cs | 5 +++++ gremlin-python/build/generate.groovy | 2 +- gremlin-python/docker-compose.yml | 10 ++++----- .../src/main/python/gremlin_python/statics.py | 16 ++++++++++++- .../gremlin_python/structure/io/graphsonV4.py | 4 ++-- .../src/main/python/radish/feature_steps.py | 6 +++-- gremlin-python/src/main/python/radish/gremlin.py | 18 +++++++-------- .../python/tests/structure/io/test_graphsonV4.py | 4 ++-- .../src/main/python/tests/test_statics.py | 10 ++++----- 18 files changed, 84 insertions(+), 57 deletions(-) diff --cc gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java index c42df77556,f1859c7a97..f08355d1a2 --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java +++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java @@@ -329,28 -328,28 +329,28 @@@ public class GremlinTranslatorTest "g.with(string0, bigdecimal0)", "g.With(\"x\", (decimal) 1.0)", "g.With(\"x\", gremlingo.ParseBigDecimal(\"1.0\"))", - "g.with('x', 1.0g)", + "g.with('x', 1.0)", "g.with(\"x\", new BigDecimal(\"1.0\"))", "g.with_(\"x\", 1.0)", - "g.with_('x', 1.0)"}, + "g.with_('x', bigdecimal(1.0))"}, {"g.with('x', -1.0m)", null, "g.with(string0, bigdecimal0)", "g.With(\"x\", (decimal) -1.0)", "g.With(\"x\", gremlingo.ParseBigDecimal(\"-1.0\"))", - "g.with('x', -1.0g)", + "g.with('x', -1.0)", "g.with(\"x\", new BigDecimal(\"-1.0\"))", "g.with_(\"x\", -1.0)", - "g.with_('x', -1.0)"}, + "g.with_('x', bigdecimal(-1.0))"}, {"g.with('x', -1.0M)", "g.with('x', -1.0m)", "g.with(string0, bigdecimal0)", "g.With(\"x\", (decimal) -1.0)", "g.With(\"x\", gremlingo.ParseBigDecimal(\"-1.0\"))", - "g.with('x', -1.0g)", + "g.with('x', -1.0)", "g.with(\"x\", new BigDecimal(\"-1.0\"))", "g.with_(\"x\", -1.0)", - "g.with_('x', -1.0)"}, + "g.with_('x', bigdecimal(-1.0))"}, {"g.with('x', 1b)", null, "g.with(string0, byte0)", diff --cc gremlin-python/docker-compose.yml index 28bb770e89,9879ae8a0c..7c367138eb --- a/gremlin-python/docker-compose.yml +++ b/gremlin-python/docker-compose.yml @@@ -47,24 -50,29 +47,24 @@@ services volumes: - ${BUILD_DIR:-./src/main/python}:/python_app - ../gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features:/python_app/gremlin-test/features + - ../gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary:/python_app/gremlin-test/graphbinary + - ../gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson:/python_app/gremlin-test/graphson - ../docker/gremlin-test-server:/python_app/gremlin-test-server - - ../gremlin-tools/gremlin-socket-server/conf:/python_app/gremlin-socket-server/conf/ - environment: - DEBIAN_FRONTEND=noninteractive - - KRB5_CONFIG=./gremlin-test-server/krb5.conf - - KRB5CCNAME=./test-tkt.cc - - GREMLIN_SERVER_URL=ws://gremlin-server-test-python:{}/gremlin - - GREMLIN_SERVER_BASIC_AUTH_URL=wss://gremlin-server-test-python:{}/gremlin - - GREMLIN_SERVER_URL_HTTP=http://gremlin-server-test-python:{}/ - - GREMLIN_SERVER_BASIC_AUTH_URL_HTTP=https://gremlin-server-test-python:{}/ - - KRB_HOSTNAME=${KRB_HOSTNAME:-gremlin-server-test} - - GREMLIN_SOCKET_SERVER_URL=ws://gremlin-socket-server-python:{}/gremlin - - GREMLIN_SOCKET_SERVER_CONFIG_PATH=/python_app/gremlin-socket-server/conf/test-ws-gremlin.yaml + - GREMLIN_SERVER_URL=http://gremlin-server-test-python:{}/gremlin + - GREMLIN_SERVER_BASIC_AUTH_URL=https://gremlin-server-test-python:{}/gremlin + - IO_TEST_DIRECTORY=/python_app/gremlin-test/graphbinary/ + - IO_TEST_DIRECTORY_GRAPHSON=/python_app/gremlin-test/graphson/ working_dir: /python_app command: > - bash -c "apt-get update && apt-get -y install libkrb5-dev krb5-user - && echo 'password' | kinit stephen - && klist - && pip install .[test,kerberos] + bash -c "pip install .[test,kerberos] && pytest - && radish -f dots -e -t -b ./radish ./gremlin-test --tags='not DataBigDecimal' --user-data='serializer=application/vnd.graphbinary-v4.0' --user-data='bulked=true' - && radish -f dots -e -t -b ./radish ./gremlin-test --tags='not DataBigDecimal' --user-data='serializer=application/vnd.graphbinary-v4.0' --user-data='parameterize=true' - && radish -f dots -e -t -b ./radish ./gremlin-test --tags='not DataBigDecimal' --user-data='serializer=application/vnd.graphbinary-v4.0' - && radish -f dots -e -t -b ./radish ./gremlin-test --tags='not DataBigDecimal' --user-data='serializer=application/vnd.gremlin-v4.0+json' --user-data='parameterize=true' - && radish -f dots -e -t -b ./radish ./gremlin-test --tags='not DataBigDecimal' --user-data='serializer=application/vnd.gremlin-v4.0+json'; - && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.gremlin-v3.0+json' - && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.graphbinary-v1.0'; ++ && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.graphbinary-v4.0' --user-data='bulked=true' ++ && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.graphbinary-v4.0' --user-data='parameterize=true' ++ && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.graphbinary-v4.0' ++ && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.gremlin-v4.0+json' --user-data='parameterize=true' ++ && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.gremlin-v4.0+json'; EXIT_CODE=$$?; chown -R `stat -c "%u:%g" .` .; exit $$EXIT_CODE" depends_on: gremlin-server-test-python: diff --cc gremlin-python/src/main/python/gremlin_python/structure/io/graphsonV4.py index 2962692aac,99ed150dae..44fcf966c1 --- a/gremlin-python/src/main/python/gremlin_python/structure/io/graphsonV4.py +++ b/gremlin-python/src/main/python/gremlin_python/structure/io/graphsonV4.py @@@ -29,8 -29,9 +29,8 @@@ from aenum import Enu from isodate import parse_duration, duration_isoformat from gremlin_python import statics - from gremlin_python.statics import FloatType, BigDecimal, ShortType, IntType, LongType, TypeType, DictType, ListType, SetType, SingleByte, SingleChar, to_bigdecimal -from gremlin_python.statics import FloatType, FunctionType, ShortType, IntType, LongType, TypeType, DictType, ListType, \ - SetType, SingleByte, ByteBufferType, SingleChar, BigDecimal, bigdecimal -from gremlin_python.process.traversal import Binding, Bytecode, Direction, P, TextP, Traversal, Traverser, TraversalStrategy, T ++from gremlin_python.statics import FloatType, BigDecimal, ShortType, IntType, LongType, TypeType, DictType, ListType, SetType, SingleByte, SingleChar, bigdecimal +from gremlin_python.process.traversal import Direction, P, TextP, Traversal, Traverser, TraversalStrategy, T from gremlin_python.structure.graph import Edge, Property, Vertex, VertexProperty, Path from gremlin_python.structure.io.util import HashableDict, SymbolUtil diff --cc gremlin-python/src/main/python/tests/structure/io/test_graphsonV4.py index c7e19b870d,e882f5ca67..634b5657fc --- a/gremlin-python/src/main/python/tests/structure/io/test_graphsonV4.py +++ b/gremlin-python/src/main/python/tests/structure/io/test_graphsonV4.py @@@ -151,10 -160,10 +151,10 @@@ class TestGraphSONReader "@value": 123456789987654321123456789987654321 })) assert isinstance(x, BigDecimal) - assert to_bigdecimal(123456789987654321123456789987654321).value == x.value - assert bigdecimal('123456789987654321123456789987654321') == x ++ assert bigdecimal(123456789987654321123456789987654321).value == x.value ## x = self.graphson_reader.read_object(json.dumps({ - "@type": "gx:BigInteger", + "@type": "g:BigInteger", "@value": 31 })) assert isinstance(x, long) @@@ -391,9 -430,9 +391,9 @@@ class TestGraphSONWriter assert {"@type": "g:Double", "@value": "NaN"} == json.loads(self.graphson_writer.write_object(float('nan'))) assert {"@type": "g:Double", "@value": "Infinity"} == json.loads(self.graphson_writer.write_object(float('inf'))) assert {"@type": "g:Double", "@value": "-Infinity"} == json.loads(self.graphson_writer.write_object(float('-inf'))) - assert {"@type": "g:BigDecimal", "@value": "123.456789987654321123456789987654321"} == json.loads(self.graphson_writer.write_object(to_bigdecimal("123.456789987654321123456789987654321"))) - assert {"@type": "gx:BigDecimal", "@value": "123456789987654321123456789987654321"} == json.loads(self.graphson_writer.write_object(bigdecimal('123456789987654321123456789987654321'))) - assert {"@type": "gx:BigInteger", "@value": "123456789987654321123456789987654321"} == json.loads(self.graphson_writer.write_object(long(123456789987654321123456789987654321))) - assert {"@type": "gx:BigInteger", "@value": "123456789987654321123456789987654321"} == json.loads(self.graphson_writer.write_object(123456789987654321123456789987654321)) ++ assert {"@type": "g:BigDecimal", "@value": "123.456789987654321123456789987654321"} == json.loads(self.graphson_writer.write_object(bigdecimal("123.456789987654321123456789987654321"))) + assert {"@type": "g:BigInteger", "@value": "123456789987654321123456789987654321"} == json.loads(self.graphson_writer.write_object(long(123456789987654321123456789987654321))) + assert {"@type": "g:BigInteger", "@value": "123456789987654321123456789987654321"} == json.loads(self.graphson_writer.write_object(123456789987654321123456789987654321)) assert """true""" == self.graphson_writer.write_object(True) def test_enum(self):
