极简的代码生成器 Agen

MIT
Python
跨平台
2016-03-21
李宇飞

 一个极简的代码生成器,可以嵌进你自己的项目中。

Latest Version Travis CI Status Codecov Status Doc Status

    特性

  • 简化到不能再简化的API

  • 支持自定义 Jinja Env

  • 可以作为命令行工具使用

无模版

agen 本身并不提供任何代码模版,只是提供一种能力,将代码模版化。如果需要使用已有的公开模版,请通过另一个优秀的开源库 Cookiecutter 。

为什么?

    agen 十分轻量级,可以在几分钟内完美集成到你自己的项目中。

    我非常喜爱 Cookiecutter 这个非常酷的项目,但它的绝大多数功能对我来说太重了。

    安装

    使用 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

    目录生成

    假设我们有下面这样的目录:

directory
├── __init__.py
└── {{key}}.py

    调用 generate_dir 函数:

generate_dir('directory', 'mydir', {'key': 'value'})

    将生成

mydir
├── __init__.py
└── value.py

每一个纯文本文件都会被模版引擎渲染,context {'key': 'value'} 也会在渲染时被自动传递。

加载中

评论(0)

暂无评论

暂无资讯

暂无问答

实践 Neutron FWaaS - 每天5分钟玩转 OpenStack(118)

前面我们学习了 FWaaS 的理论知识,今天将通过实验来学习 FWaaS。

2016/11/28 06:18
109
0
用谷歌浏览器来当手机模拟器

在谷歌网上应用商店搜索User-Agen,然后安装该插件即可

2014/03/13 09:30
65
0
Mac真的就安全吗?恶意插件清除记

写在前面 按tonymacx86上的配制配的黑苹果,在家里也有家人用下,主要就是上下QQ,看看视频,听下音乐。前几天用chrome发现每个页面打开或是刷新后点击都会打开或一个广告页面,刚开始还以...

2015/05/12 11:19
1K
0
hello flume (Ubuntu 下 flume1.5单机版安装以及简单入门示例)

1,下载最新的flume安装包: wget http://www.apache.org/dist/flume/stable/apache-flume-1.5.2-bin.tar.gz 2,在安装目录解压: tar -zxvf apache-flume-1.5.2-bin.tar.gz 3,设置环境变量 ...

2015/04/17 17:51
22
0
FWaaS 实践: 允许 ssh - 每天5分钟玩转 OpenStack(119)

上一节应用了无规则的虚拟防火墙,不允许任何流量通过。 今天我们会在防火墙中添加一条规则,允许 ssh。 最后我们会对安全组和 FWaaS 作个比较。

2016/11/30 06:40
90
0
Debian policy --虚拟包

“ 最近读Debian policy过程中,发现对virtual package这个概念不是太清楚,简单的查了一下资料,稍微理解了一点虚拟包是一种什么样的存在。 ”

2016/03/28 13:51
43
1
nosql mongodb 数据库 笔记

1、安装好mongodb后,设置数据库存储位置时候,路径不能有空格,否则不能成功。设置数据库存储地址:mongod --dpath=d:\mongodb\ 2、输入mongo命令打开shell,其实这个shell就是mongodb的客户...

2016/11/27 11:09
57
0
unix/linux共享内存应用

共享内存是系统出于多个进程之间通讯的考虑,而预留的的一块内存区。在/proc/sys/kernel/目录下,记录着共享内存的一些限制,如一 个共享内存区的最大字节数shmmax,系统范围内最大共享内存区...

2013/06/09 13:25
216
0
如何导入已有的外部数据库

我们平时见到的 android 数据库操作一般都是在程序开始时创建一个空的数据库,然后再进行相关操作。如果我们需要使用一个已有数据的数据库怎么办呢?   我们都知道 android系统 下数据库应...

2012/11/10 23:39
87
0
日志采集中的关键技术分析

概述 日志从最初面向人类演变到现在的面向机器发生了巨大的变化。最初的日志主要的消费者是软件工程师,他们通过读取日志来排查问题,如今,大量机器日夜处理日志数据以生成可读性的报告以此...

2018/06/20 09:35
37
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部