You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2021/02/08 17:20:00 UTC

[jira] [Commented] (TINKERPOP-2395) Gremlin Python doesn't support list as keys in groupCount

    [ https://issues.apache.org/jira/browse/TINKERPOP-2395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17281223#comment-17281223 ] 

ASF GitHub Bot commented on TINKERPOP-2395:
-------------------------------------------

spmallette merged pull request #1383:
URL: https://github.com/apache/tinkerpop/pull/1383


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Gremlin Python doesn't support list as keys in groupCount
> ---------------------------------------------------------
>
>                 Key: TINKERPOP-2395
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2395
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: python
>    Affects Versions: 3.4.7
>            Reporter: Connor Skennerton
>            Assignee: Stephen Mallette
>            Priority: Major
>             Fix For: 3.5.0
>
>
> The following works fine in the console but fails when converted to python using gremlin-server 3.4.7.
> {code:java}
> graph = TinkerGraph.open()
> g = graph.traversal()
> g.addV('test').property(set, 'name', 'name1').property(set, 'name', 'name2')
> g.addV('test').property(set, 'name', 'name1').property(set, 'name', 'name2')
> g.addV('source').property(set, 'name', 'source')
> g.V(0L).as('0').V(3L).as('3').V(6L).as('6').addE('root').from('6').to('0').addE('root').from('6').to('3')
> g.V().has('name', 'source').out('root').groupCount().by(values('name').fold())
> ==>[[name1,name2]:2]
> {code}
> The stack trace from python is as follows
> {code:java}
>  File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/driver/connection.py", line 83, in _receive
>     status_code = self._protocol.data_received(data, self._results)
>   File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/driver/protocol.py", line 83, in data_received
>     message = self._message_serializer.deserialize_message(message)
>   File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/driver/serializer.py", line 163, in deserialize_message
>     return self._graphson_reader.toObject(msg)
>   File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/structure/io/graphsonV3d0.py", line 129, in toObject
>     return dict((self.toObject(k), self.toObject(v)) for k, v in obj.items())
>   File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/structure/io/graphsonV3d0.py", line 129, in <genexpr>
>     return dict((self.toObject(k), self.toObject(v)) for k, v in obj.items())
>   File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/structure/io/graphsonV3d0.py", line 129, in toObject
>     return dict((self.toObject(k), self.toObject(v)) for k, v in obj.items())
>   File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/structure/io/graphsonV3d0.py", line 129, in <genexpr>
>     return dict((self.toObject(k), self.toObject(v)) for k, v in obj.items())
>   File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/structure/io/graphsonV3d0.py", line 126, in toObject
>     return self.deserializers[obj[GraphSONUtil.TYPE_KEY]].objectify(obj[GraphSONUtil.VALUE_KEY], self)
>   File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/structure/io/graphsonV3d0.py", line 432, in objectify
>     new_list.append(reader.toObject(obj))
>   File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/structure/io/graphsonV3d0.py", line 126, in toObject
>     return self.deserializers[obj[GraphSONUtil.TYPE_KEY]].objectify(obj[GraphSONUtil.VALUE_KEY], self)
>   File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/structure/io/graphsonV3d0.py", line 269, in objectify
>     return Traverser(reader.toObject(d["value"]),
>   File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/structure/io/graphsonV3d0.py", line 126, in toObject
>     return self.deserializers[obj[GraphSONUtil.TYPE_KEY]].objectify(obj[GraphSONUtil.VALUE_KEY], self)
>   File "/Users/connor.skennerton/.pyenv/versions/dogma/lib/python3.6/site-packages/gremlin_python/structure/io/graphsonV3d0.py", line 484, in objectify
>     new_dict[reader.toObject(l[x])] = reader.toObject(l[x + 1])
> TypeError: unhashable type: 'list'
> {code}
> Converting the list to a tuple would allow python to use these values as dictionary keys



--
This message was sent by Atlassian Jira
(v8.3.4#803005)