基于json表模式描述符生成sql表,加载和提取数据。
tableschema-sql的Python项目详细描述
表模式SQL PY
基于Table Schema描述符生成并加载sql表。
功能
- 实现
tableschema.Storage
接口 - 提供其他功能,如索引和更新
内容
开始
安装
包使用语义版本控制。这意味着主要版本可能包括破坏性更改。强烈建议在setup/requirements
文件中指定package
版本范围,例如package>=1.0,<2.0
。
pip install tableschema-sql
示例
本自述中的代码示例需要Python3.3+解释器。您可以在examples目录中看到更多示例。
fromtableschemaimportTablefromsqlalchemyimportcreate_engine# Load and save table to SQLengine=create_engine('sqlite://')table=Table('data.csv',schema='schema.json')table.save('data',storage='sql',engine=engine)
文档
这里描述了这个包的整个公共api,并遵循语义版本控制规则。本自述文件之外的所有内容都是私有api,可以在不通知任何新版本的情况下进行更改。
储存
包实现Tabular Storage接口(请参阅链接上的完整文档):
此驱动程序提供了一个附加的api:
Storage(engine, dbschema=None, prefix='', reflect_only=None, autoincrement=False)
engine (object)
-sqlalchemy
引擎dbschema (str)
-数据库架构的名称prefix (str)
-所有存储桶的前缀reflect_only (callable)
-一个布尔谓词,用于在反射时筛选表名列表autoincrement (bool)
-在开头添加自动递增列
storage.create(..., indexes_fields=None)
indexes_fields (str[])
-包含字段名的元组列表,或此类列表的列表
storage.write(..., keyed=False, as_generator=False, update_keys=None)
keyed (bool)
-接受键控行as_generator (bool)
-返回生成器以向客户端提供写入控制- {< CD17> } -更新,而不是插入,如果键值匹配现有行
贡献
该项目遵循Open Knowledge International coding standards。
建议的入门方法是创建和激活项目虚拟环境。 要将包和开发依赖项安装到活动环境中,请执行以下操作:
$ make install
要使用绒布和覆盖率运行测试:
$ make test
在pylama.ini
中配置的pylama
用于linting。在这个舞台上
安装到您的环境中,可以与更细粒度的控件分开使用
如文档-https://pylama.readthedocs.io/en/latest/中所述。
例如,按错误类型对结果排序:
$ pylama --sort <path>
使用tox.ini
中配置的tox
进行测试。
它已经安装到您的环境中,可以与文档-https://testrun.org/tox/latest/中描述的更细粒度的控件分开使用。
例如,根据python 2环境检查测试子集,增加了详细程度。
--
之后的所有位置参数和选项都将传递给py.test
:
tox -e py27 -- -v tests/<path>
在引擎盖下,tox
使用在pytest.ini
,coverage
中配置的pytest
。
以及mock
包。此软件包仅在毒物环境中可用。
更改日志
这里只描述了打破和最重要的变化。所有发布版本的完整变更日志和文档都可以在格式良好的commit history中找到。
v1.0
- 增加了对sqlite数据库的fk支持
v0.x
- 初始驱动程序实现。