绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
用于TerminusDB和TerminusX的Python客户端
2022-04-18 14:44:38

TerminusDB是一个开源的图形数据库和文档存储。它允许您通过简单的文档API在强大的知识图谱中链接JSON文档。

TerminusX 是一个自助式数据平台,允许您构建、部署、执行、监视和共享版本化的数据产品。它建立在TerminusDB上。TerminusX处于公开测试阶段,您可以立即注册

要求

发行说明和早期版本

TerminusDB Client v10.0 可与 TerminusDB v10.0 和 TerminusX 配合使用。请查看 RELEASE_NOTES.md 以了解更改的内容。

安装

  • TerminusDB客户端可以使用pip从PyPI下载:python -m pip install terminusdb-client

这仅包括核心 Python Client (WOQLClient) 和 WOQLQuery。

如果要在基架 CLI 工具中使用 woqlDataframe 或导入和导出 csv 函数:

python -m pip install terminusdb-client[dataframe]

如果您要安装表单 zsh,则必须引用如下参数:

python -m pip install 'terminusdb-client[dataframe]'

  • 从源代码安装:

python -m pip install git+https://github.com/terminusdb/terminusdb-client-python.git

演示

客户端演示 gif

用法

Python 客户端

连接到服务器

连接到本地主机

from terminusdb_client import WOQLClient

client = WOQLClient("http://127.0.0.1:6363/")
client.connect()

连接到终端X

查看 TerminusX 的文档,了解如何将 API 令牌添加到环境变量

from terminusdb_client import WOQLClient

team="MyTeam"
client = WOQLClient(f"https://dashboard.terminusdb.com/{team}/")
client.connect(team="MyTeam", use_token=True)

创建数据库

client.create_database("MyDatabase")

创建架构

from terminusdb_client.woqlschema import WOQLSchema, DocumentTemplate, RandomKey

my_schema = WOQLSchema()

class Pet(DocumentTemplate):
    _schema = my_schema
    name: str
    species: str
    age: int
    weight: float

my_schema.commit(client)

创建和插入文档

my_dog = Pet(name="Honda", species="Huskey", age=3, weight=21.1)
my_cat = Pet(name="Tiger", species="Bengal cat", age=5, weight=4.5)
client.insert_document([my_dog, my_cat])

取回所有文档

print(list(client.get_all_documents()))
[{'@id': 'Pet/b5edacf854e34fe79c228a91e2af45fb', '@type': 'Pet', 'age': 5, 'name': 'Tiger', 'species': 'Bengal cat', 'weight': 4.5}, {'@id': 'Pet/cdbe3f6d49394b38b952ae315309256d', '@type': 'Pet', 'age': 3, 'name': 'Honda', 'species': 'Huskey', 'weight': 21.1}]

获取特定文档

print(list(client.query_document({"@type":"Pet", "age":5})))
[{'@id': 'Pet/145eb73966d14a1394f7cd5576d7d0b8', '@type': 'Pet', 'age': 5, 'name': 'Tiger', 'species': 'Bengal cat', 'weight': 4.5}]

删除数据库

client.delete_database("MyDatabase")

基础结构 CLI 工具

脚手架演示 gif

在目录中启动项目

$terminusdb startproject
Please enter a project name (this will also be the database name): mydb
Please enter a endpoint location (press enter to use localhost default) [http://127.0.0.1:6363/]:
config.json and schema.py created, please customize them to start your project.

导入名为grades.csv

$terminusdb importcsv grades.csv --na=error
0it [00:00, ?it/s]
Schema object Grades created with grades.csv inserted into database.
schema.py is updated with mydb schema.
1it [00:00,  1.00it/s]
Records in grades.csv inserted as type Grades into database with Lexical ids.

获取带查询的文档

terminusdb alldocs --type Grades -q grade="B-"
[{'@id': 'Grades/Android_Electric_087-65-4321_42.0_23.0_36.0_45.0_47.0_B-', '@type': 'Grades', 'final': 47.0, 'first_name': 'Electric', 'grade': 'B-', 'last_name': 'Android', 'ssn': '087-65-4321', 'test1': 42.0, 'test2': 23.0, 'test3': 36.0, 'test4': 45.0}, {'@id': 'Grades/Elephant_Ima_456-71-9012_45.0_1.0_78.0_88.0_77.0_B-', '@type': 'Grades', 'final': 77.0, 'first_name': 'Ima', 'grade': 'B-', 'last_name': 'Elephant', 'ssn': '456-71-9012', 'test1': 45.0, 'test2': 1.0, 'test3': 78.0, 'test4': 88.0}, {'@id': 'Grades/Franklin_Benny_234-56-2890_50.0_1.0_90.0_80.0_90.0_B-', '@type': 'Grades', 'final': 90.0, 'first_name': 'Benny', 'grade': 'B-', 'last_name': 'Franklin', 'ssn': '234-56-2890', 'test1': 50.0, 'test2': 1.0, 'test3': 90.0, 'test4': 80.0}]

删除数据库

$terminusdb deletedb
Do you want to delete 'mydb'? WARNING: This opertation is non-reversible. [y/N]: y
mydb deleted.

有关详细信息,请查看完整文档

教程

在我们的教程存储库中,有一个使用 Python 客户端的示例列表。首先,我们建议看看使用Jupyter notebook使用Python客户端创建TerminusDB图。

测试

  1. 克隆此存储库git clone https://github.com/terminusdb/terminusdb-client-python.git

  2. 使用诗歌安装所有开发依赖项

$ make init
  1. (a) 仅运行测试文件
$ poetry run pytest terminusdb_client/tests
  1. (b) 进行全面测试
$ poetry run tox -e test

或者你可以在诗歌外壳中运行测试,然后不需要使用poetry run

Documentation

Visit our TerminusDB Documentation for the full explanation of using TerminusDB.

Documentation specifically on the latest version of the Python Client can be found here.

Generating Documentation Locally using Sphinx

  1. Clone this repository git clone https://github.com/terminusdb/terminusdb-client-python.git

  2. Install all development dependencies

$ make init
  1. 将目录更改为文档
$ cd docs/
  1. 使用狮身人面像构建
$ make html

输出文件位于 下,在浏览器中打开以进行检查。docs/build/htmlindex.html

报告问题

如果遇到任何问题,请通过操作系统和环境设置、您正在使用的版本以及简单可重现的情况来报告这些问题

如果您有其他问题,可以在我们的社区论坛Discord服务器中提问。

社区

快来我们的不和谐服务器我们的论坛上访问我们。我们也在推特上

贡献

如果您先打开一个问题,以便我们可以知道发生了什么,那么,分叉此存储库并推送您的想法,那就太好了。不要忘记添加一些您添加的价值的测试。

有关详细信息,请查看 CONTRIBUTING.md

执照

Apache 许可证(版本 2.0)

版权所有 (c) 2019

分享好友

分享这个小栈给你的朋友们,一起进步吧。

TerminusDB
创建时间:2022-04-18 11:35:20
TerminusDB
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • LCR_
    专家
戳我,来吐槽~