gpt4 book ai didi

python - 是否可以从 python 中的字节码生成 gremlin 查询

转载 作者:行者123 更新时间:2023-12-01 08:10:45 25 4
gpt4 key购买 nike

是否可以从字节码生成gremlin脚本?

我正在开发一个 POC,需要通过 Gremlin API 查询图形 Azure CosmosDB 数据库。

目前,Azure CosmosDB 不支持字节码。 Azure开发团队有started working on this但到目前为止尚未发布发布时间表。

我想准备工作代码,当字节码支持普遍可用时,将来需要最少的重构。

基于Apache TinkerPop docs ,提交 Gremlin 查询有两种方式:字节码和脚本

# script
client = Client('ws://localhost:8182/gremlin', 'g')
list = client.submit("g.V().has('person','name',name).out('knows')",{'name': 'marko'}).all()

# bytecode
g = traversal().withRemote(DriverRemoteConnection('ws://localhost:8182/gremlin','g'))
list = g.V().has("person","name","marko").out("knows").toList()

在我看来,“字节码方式”效率更高(语法检查、IDE intellisens 等),而且我有兴趣创建 DSL (领域特定语言)。

是否可以使用 Fluent api 并将其序列化为字符串,类似于以下方式:

client = Client('ws://localhost:8182/gremlin', 'g')
g = traversal()
q = g.V().has("person","name","marko").out("knows").toString()
list = client.submit(q).all()

我正在使用 python 3.5 和 gremlinpython 3.4.0

最佳答案

绝对可以从字节码生成遍历的字符串表示形式。 TinkerPop 已经为 Groovy 和 Python 脚本做到了这一点(出于各种原因,主要是为了测试,但它还有其他用途,例如支持字节码中的 lambda 和其他实用目的)。我们通过 ScriptTranslator 实现来实现这一点,其中有一个用于 Groovy两个 Python (其中一个实际上是 Jython )。当然,问题是所有这些 ScriptTranslator 实例在技术上都是针对 JVM 的,听起来您需要一些针对 native Python 的东西。

也许您可以检查 PythonTranslator 代码并在 native Python 中实现它?它基本上只是一堆 if-then 和字符串连接。

关于python - 是否可以从 python 中的字节码生成 gremlin 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55269352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com