基于图形的数据挖掘工具

curious的Python项目详细描述


https://travis-ci.org/ginkgobioworks/curious.svg?branch=master

好奇遍历关系数据库中的关系。好奇的 查询允许用户探索对象之间的关系,遍历 递归关系,并在松散连接的数据库之间跳转。 好奇还为对象提供了一个json接口。用户和 程序员可以在分析脚本和 应用。

好奇支持以数据为中心的应用程序构建模型;好奇 查询公开规范化的关系数据,减少用户界面对用户界面的依赖性 提供非规范化数据的特定API端点。更改什么数据 用户界面不再需要更改特定于用户界面的端点。

好奇可以很好地处理具有许多关系的深层数据模型。一个 好奇的查询可以遍历10个类似外键的关系 很有效率。好奇的查询总是对对象集进行操作,并且可以 通过与大量对象的关系连接少量对象 然后通过另一种关系 对象再次设置为较小的集合。例如,把书给作者送到国家 居住地。与graphql不同,奇怪的输出关系 对象,而不是不断增长的JSON表示树 物体。

示例

Book.last(10) Book.author_set Author.country(continent__name="North America")

查询语言

查询语言允许通过识别模型之间的关系来遍历模型, 通过django模型中的外键,或任意id映射函数。好奇的询问 是一组用空格分隔的术语,通过关系将模型连接在一起。

使用这些关系原语可以有几种“连接”:

  • 传统的内部连接Book Book.author_set
  • a左外连接Book.last(10) ?(Book.author_set)
  • 循环连接:Parent.children_*

此外,在连接的每个阶段,都可能发生筛选操作:

  • Django field lookupsBook Book.author_set(id__in=[2,3,4])
  • 筛选
  • 按子查询筛选:Book +(Book.author_set(id__in=[2,3,4]))
  • 按排除子查询过滤Book -(Book.author_set(id__in=[2,3,4]))

最后,关系可以生成计数

  • 计数Book Book.author_set__count

配置好奇

import myapp.models
from curious import model_registry

def register():
  model_registry.register(myapp.models)

然后在django应用程序启动时包含register

使用好奇

关闭CSRF。将其部署为django应用程序。

编写自定义关系

使用filter和deferred to real函数。

开发

需要Docker。使用提供的docker-compose.yml文件和makefile启动容器 通过运行make image。这将为您的用户创建一个具有正确git配置的图像, 所以很容易释放。您应该运行的所有命令都定义为 Makefile作为目标。除了image之外的所有目标都应该在 Docker容器,但可以从主机运行,方法是将-ext附加到它们上。为了 例如,要运行测试,可以从容器内部调用make test,也可以从主机调用make test-ext

如果在开发期间修改静态资产,可以使用 build_assetsmake task,或者通过调用python setup.py build_assets

./make test-ext

展开

标记提交的部署通过travis ci自动发生在pypi上。碰撞并部署新的 版本,运行make bump/[foo]-ext,其中[foo]majorminorpatch。那么 git push origin --tags master

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在未知属性上的PUT和POST失败会引发不同的行为   java无法使GWTRPC正常工作   java如何在安卓中更改一个特定视图的主题?   机器学习为什么改变了java中等式的两面?   java继承和重定向标准输出   java为什么Clojure中嵌套循环/重复速度慢?   使用JavaParser解析Java代码并查找父节点的语句类型   java读取类的方法并在arraylist中存储Web服务的路径名   java模板聚合匹配和投影一个没有id的字段   java为什么给定数组不返回false   java如何链接JLabel和JSpinner以调整大小   在java中,当过滤器只返回一个对象时,如何使用流和过滤器将值填充到对象中   java为什么使用getInstance   如何得到我的。运行java命令的bat文件