为所有内容创建包模板
sushi的Python项目详细描述
寿司
寿司是基于模板的包生成器。足够每次创建相同的包结构。为烧瓶,django或每一个你想要的样板创建自定义配方!
寿司可以学习/取消学习/升级你想要的每一个食谱。就像菜谱的包装经理。 你必须给每一本你想做寿司的食谱(储存库),所有的食谱都会提供给你。
当然,您可以很容易地创建自己的食谱,因为它们是github存储库。
功能
- 基于Jinja2为所有内容创建模板
- 每次都部署相同的程序
- 制作烧瓶的特定配方,django,…
- 使用助手(插件)以避免浪费时间
- 自动git init您的包
寿司支持助手(扩展)和有很容易创建。已经有一些扩展,如git。
快速启动
安装
pip install sushi
见见厨师
如果这是你第一次做寿司,你的食谱一定是空的。 您可以将我的个人食谱添加到您的中,以便发现寿司:
Sushi » sushi cookbook-add socketubs/sushi-recipes ==> Add socketubs/sushi-recipes cookbook Cloning into 'socketubs/recipes'... remote: Counting objects: 126, done. remote: Compressing objects: 100% (84/84), done. remote: Total 126 (delta 46), reused 108 (delta 28) Receiving objects: 100% (126/126), 44.95 KiB, done. Resolving deltas: 100% (46/46), done. ==> Done
第一个配方
在我的食谱上列出所有可用的食谱:
Sushi » sushi all ==> Recipes available socketubs/recipes/advanced socketubs/recipes/basic socketubs/recipes/django socketubs/recipes/flask socketubs/recipes/helper
例如,学习basicone。
Sushi » sushi learn basic ==> Learn given recipe ==> Done
部署它!
Tests » sushi craft MyApp --recipe=basic ==> Craft your project => Recipe: basic ==> Call helpers ==> Done
配置
查看您的配置文件:~/.sushi/sushi.conf。
创建自己的配方
说明
如果你想创建自己的菜谱,你必须在我的菜谱上创建一个请求,或者在Github上创建自己的菜谱。
菜谱是简单的folder档案,有一个基本的 结构,但文件中包含Jinja2代码。
如何
这是我的advanced配方的树示例:
tree advanced advanced ├── .gitignore ├── README.md ├── __app__ │ ├── __init__.py │ ├── cli.py │ ├── core.py │ └── logger.py ├── bin │ └── __app__ └── setup.py
所有文件都将由jinja2解析,下面列出的所有标记都将被替换。
文件名只有一个关键字需要知道:__app__将是 替换为格式化的模块名。
对于文件渲染:
Keyword | Value |
{{ app }} | Your app name |
{{ license }} | Your favorite license (according to OpenDefinition) |
{{ license_content }} | Url to favorite license |
{{ username }} | Operating system username |
{{ firstname }} | Your firstname |
{{ lastname }} | Your lastname |
{{ year }} | Year |
{{ day }} | Day |
{{ month }} | Month |
{{ hour }} | Hour |
{{ minute }} | Minute |
{{ second }} | Second |
{{ date }} | Date (2012-09-01 16:55) |
以及可以添加到配置文件中的每个值 settings节。
创建自己的助手[重写]
说明
助手是寿司扩展,它们将在完成后运行。 呈现你的食谱。
如何
您的模块名必须是sushi_ext_name,它将被这样调用 sushi_ext_name.run(dst),wichdst是配方将 是渲染器。
您的助手可以像这样使用sushi.coreapi:
>>> from sushi.core import conf >>> conf.get('settings', 'license') 'agpl-v3' >>> conf.get('paths', 'sushi_recipes') '/Users/socketubs/.sushi/recipes' >>> from sushi.env import get_env >>> get_env('my_package') {'username': 'socketubs', 'license_content': u'http://www.opensource.org/licenses/agpl-v3.html', 'hour': 21, 'day': 2, 'minute': 0, 'month': 9, 'second': 4, 'year': 2012, 'firstname': '## Set firstname', 'lastname': '## Set lastname', 'module': 'my_package', 'date': '2012-09-02 21:00', 'name': 'my_package', 'license': 'agpl-v3', 'email': '## Set email'}
当然conf对象是ConfigParser,所以您可以询问 帮助用户在其配置文件中设置变量。
历史记录
0.2
- 如果未检测到模板,则启动程序
- 在删除时确认
- 在init上添加–template选项
- 在templates dir中添加默认示例和高级示例
- 在PYPI上发布
- 新的扩展系统
0.1
- 初始版本
- 添加/删除/列出模板
- 初始化包