David M. Brown created TINKERPOP-1561: -----------------------------------------
Summary: gremiln-python GraphSONWriter doesn't properly serialize long in Python 3.5 Key: TINKERPOP-1561 URL: https://issues.apache.org/jira/browse/TINKERPOP-1561 Project: TinkerPop Issue Type: Bug Components: language-variant Affects Versions: 3.2.3 Environment: Python 3.5 Reporter: David M. Brown Because `long` doesn't exist in Python 3, we created a simple wrapper that inherits from `int` to fill the void. After the last changes to the gremlin-python `graphson` module, this inheritance causes our longs to be serialized as `Int32`. For example: ```python from gremlin_python.statics import long from gremlin_python.structure.io.graphson import GraphSONWriter writer = GraphSONWriter() writer.toDict(1) {'@type': 'g:Int32', '@value': 1} writer.toDict(long(1)) {'@type': 'g:Int32', '@value': 1} ``` This should be an easy fix. As far as I can see there are two main approaches: 1. Combine the `Int64I0` and `Int32IO` classes and perform an instance check for long in the `dictify()` method; or, 2. Implement a `long` type that doesn't inherit from int. Here we would probably want to define a variety of methods so our `long` emulates Python's numeric object. Does anyone have an opinion on a preferred approach? I would probably go with the first approach, but either could work. -- This message was sent by Atlassian JIRA (v6.3.4#6332)