胚胎渲染器脚手架引擎

embryo的Python项目详细描述


#胚胎作为一个小型的内部工具开始为新项目搭建脚手架。当我和朋友开始更认真地使用它之后,它开始成形。在胚胎程序的上下文中,胚胎是一个简单的ol'目录,其中至少包含一个基本文件'tree.yml',它指定要在文件系统中创建或验证的文件和目录的模板名称和位置。除树文件外,胚胎还可以包含静态上下文、用于呈现文件的模板,以及用于自定义逻辑和转换的挂钩。


而用来呈现其文件的数据被写入“点”文件中的文件系统。每个胚胎都可以在运行时解析存储在其祖先和子目录中的元数据,并且它可以访问其他胚胎定义的自定义python方法。

例如,可以创建一个初始化新项目的胚胎,以及另一个为新组件生成源和测试文件的胚胎。当“新组件”胚胎运行时,它知道如何解析它所在项目的名称,因此在呈现其模板时可以生成正确的导入语句。

与现有的项目脚手架工具不同,模板文件不必以镜像树文件中定义的结构的方式布置在文件系统中。相反,您可以将所有模板直接存储在“templates”目录中,同时在树文件中修改它们的排列。

|-实体
单位
单位
单位
单位
单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-单位-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-自述-br/>-实体:
-account.py:实体(帐户)
-user.py:实体(用户)
-测试:
-test_account.py:unit_test(account)
-test_user.py:unit_test(user)

`````

注意模板是如何包含在“templates”目录的平面列表中的,同时,其中一些模板像“tree.yml”文件中的函数一样被调用。这些“函数”的“参数”是模板呈现上下文(python dict)中的顶级属性。上下文对象的这些元素可能包含jsonschemas,这些jsonschemas由“entity”和“unit-test”模板用于生成带有相应getter和setter的python类。

|-阿莫霍普尼科恩/
-readme.md
-setup.py
-un晶态的非晶态的独角兽/
-app.py
-ententities/
-account.py
-user.py
-test/
-test/
-test-account.py
-test.py
-test/
````





-test.py-test-user.py-user.py组成和嵌套
除了利用胚胎的自我意识和虚拟文件系统外,一个胚胎还可以在树文件中嵌套其他胚胎。例如,在新项目中初始化git存储库的胚胎可能有这样的树文件:

``yaml
--
-{{project{name}}:
-胚胎:git(python)
-{{project{snake}:
-app.py

```


请注意嵌套的git胚胎,它的调用类似于函数:`git(python)`。在这个例子中,我们假设git胚胎有一个`context.yml`文件,包含自定义规则,例如,为不同的项目类型生成`.gitignore'文件。作为技术说明,胚胎是在广度优先遍历中构建的。

任何python模块都将通过yapf进行格式化,因此您不必在试图获取模板文件以输出正确的python代码结构时过于紧张。

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

推荐PyPI第三方库


热门话题
Hibernate:jpamodelgen生成java而不是类   java如何在第二次活动结束后显示广告?   javascript如何在linux或windows上将java导出到jar   java One ArrayList添加了2个不同的选项   AmazonWeb服务如何在java中使用AWS Textract检索pdf中存在的表   java为什么RecycleView中的水平项在单击时不起作用?   java计算如果存在映射   java在捕获的组上应用正则表达式   如何使用Java在MySQL的同一个表中插入来自不同类的值   java字符串中最常见的字母(大写和小写)   Spring SessionBean实例正在由java中的多个用户共享   使用Spring Boot将@WebInitParam中的值外部化   java一创建线程就开始执行(多线程)   java是安卓所需的系统权限。意图行动给你打电话?