一个简单的基于jinja2的参数模板器

fyoo的Python项目详细描述


PyPI PackageDocumentation StatusGit tagTest statusCode coverage

Fyoo是一个简单的参数模板化程序,它围绕着一个命令。 几乎所有的事情都存在,不是时候我们 开始在我们的管道中使用它们吗?最好的数据 流代码是您不必编写的代码。在

安装

pip install fyoo

基本用法

Fyoo可以在--之后为子命令的参数提供上下文。 该子命令的所有参数都将成为预呈现的jinja2模板。在

Fyoo允许您在几个 方法,--fyoo-set是最简单和最容易开始的 有。在

^{pr2}$

这不仅仅是简单的bash替换,因为 当参数为 在进程开始之前。在

现在让我们使用这个sql模板文件。在

{%-ifnottable%}{{throw("'table' required")}}{%-endif%}selectcount(*)from{{table}}{%-ifcondition%}where({{condition}}){%-endif%}

模板文件内容作为bash参数传递,但是 fyoo在将模板传递给sqllite3子命令之前呈现模板。在

-v/--verbose标志将在运行之前显示可执行文件 它。在

fyoo \
  --verbose \
  --jinja-template-folder ./tests/sql \
  --set table=Employee \
  --set condition='lower(Title) like "%sales%"'\
  -- \
sqlite3 \
'examples/Chinook_Sqlite.sqlite'\
'{% include "count.sql.jinja" %}'\
  -csv
# ["sqlite3", "examples/Chinook_Sqlite.sqlite", "\nselect count(*) as c\nfrom Employee\nwhere (lower(Title) like \"%sales%\")", "-csv"]
# 4

警告

只传递你信任的上下文!否则你可能会离开你自己 对Command Injection完全开放。Fyoo适用于you 仍然直接控制模板上下文。在

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

推荐PyPI第三方库


热门话题
java JNI和取消异步任务   java整数n作为List<String>的第二个参数传递。子列表(fromIndex,toIndex),但是stacktrace说toIndex在Kotlin中是n+2   如何在Java中正确嵌套多个ArrayList/Maps?   在嵌套条件语句中比较数组中的值时,java List没有打印正确的值   从CRON作业运行java代码   JRE使用jvisualvm检测到java致命错误   java将字符添加到BufferedReader中   带有枚举的java单例与带有双重检查锁定的单例   Java中的编译器构造基类的更改会影响子类的字节码吗?   Java作为Windows服务用户数据路径   java clone():ArrayList。克隆人()我认为它是一个肤浅的复制品   在jfilechooser多文件选择器启用中打开对话框后,java文件将显示所选文件   java在常用的操作方法中使用反射可以吗?   java ReloadableResourceBundleMessageSource。getMessage()不使用我给它的参数