架构#
本文档应有助于开始修改代码。另请参阅develop.md以获取开发者命令,以及CONTRIBUTING.md以了解社区指南。
客户端/服务器数据处理工具#
PyGraphistry 是一个主要用于以下目的的 Python 客户端库:
在PyData中加载,或将非PyData转换为PyData
为图形形状和视觉编码设置声明性绑定
将其转换为实时、可嵌入的Graphistry可视化
它也越来越多地用于中间计算和更深入地访问Graphistry API。然而,这些不应妨碍主要用例。
目前它主要使用Pandas,并逐渐迁移到基于Arrow和RAPIDS.ai的内部实现。
功能#
大多数用户交互是功能性的,其中每个.bind()都会创建一个新的Graphistry对象,该对象是被链式调用的对象的克隆。因此,大多数调用都有一个廉价的.copy(),用于浅层不可变绑定。
账户相关设置通常是全局的,但可以在局部功能上进行覆盖。
DetaFrames: 惰性 vs. 急切#
在plot()调用时,延迟绑定的数据会被具体化为上传处理所需的格式,例如,API=3将需要将pandas数据框转换为Arrow。
数据库连接器应在加载时转换为Pandas,或者更好的是Arrow。这使得可以使用._nodes和._edges进行即时分析。
插件#
新代码越来越多地被放入单独的文件中:
Graphistry API:Arrow便利类以匹配Graphistry服务器API。每种实体类型通常有不同的类型。这些正在编写以允许独立使用。
每个连接器:这些应该是单独的文件并且是独立的。为了方便起见,它们的
connect()和query()方法可以添加到全局命名空间中。例如:g.bolt(...).cypher(...).plot()。方法旨在用于基于Notebook的检查。例如,调用
g.cypher应该指导用户使用可用的参数和使用示例。