将sql转换为sqlalchemy表达式

sqlitis的Python项目详细描述


https://travis-ci.org/pglass/sqlitis.svg?branch=masterhttps://img.shields.io/pypi/v/sqlitis.svghttps://img.shields.io/pypi/pyversions/sqlitis.svg

sqlitis

这是一个将普通sql查询转换为sqlalchemy表达式的工具。它可以从命令行或作为库使用。

这将转换为SQLAlchemy expression language。它不支持sqlalchemy orm。

$ pip install sqlitis

示例

将select查询转换为sqlachemy表达式:

$ sqlitis 'select foo.name, bar.value from foo join bar'select([foo.c.name, bar.c.value]).select_from(foo.join(bar))

转换联接:

$ sqlitis 'foo join bar on foo.id = bar.foo_id and (foo.val < 100 or bar.val < 100)'
foo.join(bar, and_(foo.c.id == bar.c.foo_id, or_(foo.c.val < 100, bar.c.val < 100)))

运行测试

这个存储库包括一个数据驱动的测试套件以及样式检查(使用flake8)和自动代码格式化(使用yapf)。

用毒物来进行测试。

$ pip install tox
### Run everything
$ tox
### Run just the unit/functional tests
$ tox -e py27
### Run just style/formatting checks
$ tox -e flake8

yapf用于自动修复代码样式/格式错误。它将重新格式化您的代码。

### Auto-fix style/formatting checks
$ tox -e yapf

有三种类型的测试:

  • 内部模型的单元测试
  • 核心函数的单元测试
  • 对sqlite数据库执行生成的sqlalchemy表达式的函数测试。

大多数测试都是从tests/data.json中的数据生成的。

SQL支持清单

  • []选择
    • [X]星:^{TT2}$
    • [X]多列:^{TT3}$
    • [X]限定列名:^{TT4}$
    • [X]列别名:^{TT5}$
    • []加入
      • [X]普通联接:^{TT6}$
      • [X]内部连接:^{TT7}$
      • []左/右连接
      • []外部连接
    • [X]ON子句:^{TT8}$
    • [X]接合(和/或):^{TT9}$
    • [X]从子查询中选择:^{TT10}$
    • [X]其中:^{TT11}$
    • [X]介于:^{TT12}$
    • [X]选择Distinct:^{TT13}$
    • []聚合函数(sum,avg,count,min,max):SELECT COUNT(*) FROM foo
    • []分组依据:^{TT15}$
    • []喜欢
    • []限制/偏移量
    • []按
  • []插入
  • []更新
  • []删除

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

推荐PyPI第三方库


热门话题
java出现编译错误,我不理解   java在gnu-trove库中是否有任何有序映射?   java Servlet应该有映射,但找不到Servlet   java时间和第二期显示1:10,而不是13:10   java Play Framework 1.2.7 Heroku更新崩溃   线程“main”java中的opencsv异常。lang.NoClassDefFoundError:org/apache/commons/lang3/ObjectUtils   selenium在java中隐藏警告消息   java使用ID引用将JSON实体反序列化为POJO   java无法在JRE 8中加载字体   一个线程中的异常/错误会使整个应用程序停止吗?   java访问重复子规则的元素标签;e、 g.用ANTLR解析(1,2,3)中的a   java如何从平移旋转中找到新坐标   使用HTML Java小程序托管jar文件存在安全问题   java如何按频率而不是字母顺序排列字符串数组   java清除bufferedReader和块以获得更多输入   java解密SAML2断言