基于Jinja模板引擎的textX生成器框架

textX-jinja的Python项目详细描述


Build statusCode test coverageDocumentation Status

文本X jinja

基于Jinja的框架 textX发电机。如果需要生成 textX模型中基于模板的文件集。在

如何使用?在

  1. 创建一个包含文件和文件夹的文件夹,其结构类似于 想要生成。每个文件可以是一个Jinja模板(应该以.jinja结尾) 扩展)。在

  2. 文件名可以包含格式为__<varible name>__的变量部分 (变量名周围有双下划线)。文件名的这些部分将 替换为生成器上下文中的变量值。如果 变量是iterable,则将为每个对象创建一个文件。那样的话, 文件名中的替换值将由函数创建 map_names(如果给定)或对象本身的{}。目标将是 在模板中的名称为obj(对iterables的支持仍然是 在制品!)。如果变量是bool类型,则如果 变量值是False。在

  3. 在textX项目中注册一个生成器(参见 registration)。在

    fromtextximportgeneratorfromtextxjinjaimporttextx_jinja_generator@generator('mylang','mytarget')defmygenerator(metamodel,model,output_path,overwrite,debug):# template directorytemplate_folder=os.path.join(os.path.dirname(__file__),'templates')# create config dict with all variables that should be accessible# by templatesconfig={'some_variable':'some value'}# Optionally provide Jinja filtersdefstriptabs(s):returnre.sub(r'^[ \t]+','',s,flags=re.M)filters={'striptabs':striptabs}# call the generatortextx_jinja_generator(template_folder,output_path,config,overwrite,filters)
  4. 安装您的项目(建议使用Python虚拟环境):

    ^{pr2}$ 在
  5. 像往常一样运行textX生成器:

    $ textx generate ...
    

生成器将使用template文件夹使用Jinja呈现文件 模板引擎。模板文件夹中不是Jinja的所有文件 模板(不以.jinja'扩展名结尾)将被复制到 目标文件夹未更改(文件名中的变量替换仍然适用)。在

作为其用法的完整示例,请参见startproject generator in textX-dev projectstartproject命令的模板是here。在

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

推荐PyPI第三方库


热门话题
java无法从spring resttemplate访问sms网关   使用spark上下文方法参数的java并行化集合不正确   java中ReadLock的并发检查副本   java基于属性比较两个列表是否具有相同的元素   字符串Java文本块:缩进前缀中的制表符和空格的混合   java如何将带有@SpringBootApplication的maven模块作为测试范围中的依赖项添加到另一个maven模块   我需要一些关于在Java中使用2个jar文件的帮助   mysql JPA Java Spring Boot执行查找/连接表   java对话框选择具有特定名称的文件   java如何修复Spring工具套件4中的端口8080错误?   Java中的apache poi Excel阅读器   java如何在tomcat访问日志中记录线程上下文值   java有一种方法可以创建类<T>的实例,该类将类作为传递泛型的构造函数中的参数   默认情况下,java GORM onetomany映射执行即时抓取   java不能在安卓中接受全局变量   统计系统的java MongoDB异步驱动程序排名   java如何解析:无法解析插件“org.springframework.ide.eclipse.ui”?   用Java从一副牌中随机抽取5张牌   javaapachecamel动态消费者   java如何克服使用Flood Fill 4算法时的“薄边界”问题?