tableau是用于构建测试设备和种子数据的helper类的集合。
tableau的Python项目详细描述
tableau是用于构建测试设备和种子数据的helper类的集合。
没有任何预定义模式的模型组合。模型对象关系通过值注释自动推导:
from tableau import Datum foo = Datum( 'Foo', ('id'), # schema name / identifiers id=1, field_a=1, field_b=2, collection=one_to_many([ Datum( 'Bar', auto('id'), # id will be automagically generated by the walker field_c=1 ), Datum( 'Bar', auto('id'), field_c=1 ), ], referring_fields='foo_id' ) )
以ORM不可知的方式将模型对象图导出到普通的ANSI SQL语句:
import sys from tableau import Datum, DataSuite, DataWalker from tableau.sql import SQLGenerator # ... suite = DataSuite() DataWalker(suite)(foo) SQLGenerator(sys.stdout, encoding='utf-8')(suite)
以上生成以下SQL语句:
INSERT INTO `Foo` (`id`, `field_a`, `field_b`) VALUES (1, 1, 2); INSERT INTO `Bar` (`id`, `field_c`, `foo_id`) VALUES (1, 1, 1), (2, 1, 1);
from tableau.sqla import newSADatum # metadata = ... # Base = ... # session = ... class Foo(Base): __tablename__ = 'foos' id = Column(Integer, primary_key=True) field = Column(String) def some_model_specific_method(self): return self.field Datum = newSADatum(metadata, Base) datum = Datum( 'foos', ('id'), field='test' ) print datum.some_model_specific_method() # 'test' session.add(datum) # it can even be added to the session!
更改历史记录
- 0.0.0
- 未发布。
- 0.0.1
- 首次发布。没有医生!
- 0.0.2
- 支持映射到sqlalchemy表和声明类。 还是没有医生!
- 0.0.3
- 在0.0.2中修复关键错误。