Agen極簡的代碼生成器
一個極簡的代碼生成器,可以嵌進你自己的項目中。
-
自由軟件: MIT license
-
English Documentation: https://agen.readthedocs.com/en/
特性
-
簡化到不能再簡化的API
-
支持自定義 Jinja Env
-
可以作為命令行工具使用
無模版
agen 本身并不提供任何代碼模版,只是提供一種能力,將代碼模版化。如果需要使用已有的公開模版,請通過另一個優(yōu)秀的開源庫 Cookiecutter 。
為什么?
agen 十分輕量級,可以在幾分鐘內(nèi)完美集成到你自己的項目中。
我非常喜愛 Cookiecutter 這個非??岬捻椖?,但它的絕大多數(shù)功能對我來說太重了。
安裝
使用 pip 安裝:
pip install agen
從源代碼安裝:
clone https://github.com/yufeiminds/agen.git cd agen python setup.py install
快速指南
在 agen 中,使用 jinja2 作為模版引擎進行渲染,所以,任何 jinja2 模版的特性都可以在agen中使用。
文件生成
from agen import ( string_render, render, generate, generate_dir ) # Render text from a templated string string_render('{{key}}', {'key': 'value'}) > 'value' cat template.py > {{key}} # Render text from a template file render('template.py', {'key': 'value'}) > 'value' # Generate file from a template file generate('template.py', 'output.py', {'key': 'value'}) # Content of output.py value
目錄生成
假設(shè)我們有下面這樣的目錄:
directory
├── __init__.py
└── {{key}}.py
調(diào)用 generate_dir 函數(shù):
generate_dir('directory', 'mydir', {'key': 'value'})
將生成
mydir ├── __init__.py └── value.py
每一個純文本文件都會被模版引擎渲染,context {'key': 'value'} 也會在渲染時被自動傳遞。
評論
圖片
表情
