python项目脚手架生成器。

basement的Python项目详细描述


#basebase是一个可扩展的小工具,用于基于胡子模板和配置文件中提供的公共数据生成python项目脚手架。它非常简单。




`"ment"是"basement"的缩写,因此完全相同。

基本功能非常有用,因为您可以自定义它!您可以添加自己的模板
(我们将在下一节中讨论)以及为
所有模板配置填充数据。我们将检查内置模板可以使用的数据,正如
以及内置模板是什么。


使用"click"创建一个简单的带有命令行界面的框架项目。
*`flask`:定义框架容器网站的模板。





将使用"app"模板生成"foo"项目。


basebase使用一个[toml](https://github.com/toml-lang/toml)配置
文件来定义这个数据。创建一个名为`~/.basement`的文件,其中包含如下内容:

``toml
full name="anthony grimes"
email="anemail@raynes.me"
github user="raynes"
license="mit"
```

让我们看看默认模板中的一个文件。这是"setup.py":

``python
"您的项目说明"

版本='0.1.0',
长描述=''{doc',
包=['{{project name}}',
作者='{{{{full name}',
作者电子邮件='{{email}',
url='https://github.com/{{github user}/{project name}',
许可证='{{license}',,
安装需要=要求

```

注意所有`{{}`的东西(胡子)?这些是胡子文物。当您基于这个模板创建一个项目时,它们将被映射到
配置文件中的键,并用那里的数据填充。如果我基于配置文件渲染
,我从setuptools得到:

```
anthony@lastlight:~/code/basement(master*)
$ment foobar
导入设置

open('requirements.txt')为f:
requirements=f.readlines()


setup(
name='foobar',
description="一个能做事情的项目!",
版本='0.1.0',
长描述='uuuu doc_uuu,
软件包=['foobar',
作者='anthony grimes',
作者电子邮件='anemail@raynes.me',
url='https://github.com/raynes/foobar',
许可证='mit',
安装需要=要求

```


` pystache`,库基底用来渲染胡子模板,通常
不喜欢被馈送二进制文件,而且您肯定不希望将巨大的
文件读入内存进行渲染!对于这些情况,basement
忽略文件的灵活机制。它的工作原理如下:

```
pass=['path/to/be/ignored/*']
````

`pass`可以出现在您的配置中,并且在呈现每个文件时,会使用python的're.search'函数对照正则表达式进行
。如果
任何模式都与该文件路径匹配,则会忽略该模式,只需将其传递到


如下一节所示。

所有
需要做的就是在`~/.basement templates`中创建一个目录,其中存储了所有
模板,并简单地用您想要的任何文件和内容填充它,
在您想要从配置中填充数据的任何位置添加胡子。

用您给出的basebase输出路径的basename填充。因此,如果运行"ment path/to/project",则您的
"项目名称"将是"project"。


模板py文件中的文件,这可能会导致
错误(由于某些原因,mustache不是有效的python语法;)。绕过
的方法是添加一个特殊扩展名:

````
foo.py.basebase template
````


这将阻止python编译文件,并且当
生成项目时,basebase将重命名它

另一个重要的特殊扩展名是`.basebase ignore`,它告诉basement
不要试图呈现文件的内容(尽管如果
文件名本身出现胡子,则会呈现这些胡子)。如果文件
包含{{}}胡子,但不希望对其进行呈现,则这非常有用。对于
示例,jinja templates。


您只需使用类似这样的toml部分:

``toml
full name="anthony grimes"
email="anemail@raynes.me"
github user="raynes"
license="mit"

[app]
license="epl"
```


"license"胡子将设置为"epl",而不是"mit"。通过执行相同的操作,您可以添加特定于您自己模板的配置,只需添加带有模板名称的节即可。



有一些更新机制。当你运行地下室时,它总是擦拭模板并重新添加它们。这意味着您*不能*对内置模板进行更改。如果要进行更改,则应创建新的
模板。

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

推荐PyPI第三方库


热门话题
java如何编写带有连接的动态JPA查询?   子列表上的java分区列表,其中相邻子列表的第一个和最后一个元素相同   java限定符注释方法找不到作为配置类的bean   java同时抛出主异常和子类型,有合适的方法吗?   LString将是一个链表类,它模仿标准的JavaString和StringBuilder类   spring上下文关闭时java停止ConcurrentTaskScheduler   Java继承基类使用派生类方法   java Google的zxing(斑马线)条形码库的位矩阵不是它应该位于的位置   java使用springhateoas反序列化包含(_链接和_嵌入)的JSON   java破坏者如何使用环形缓冲区读取文件?   java在Android中获得用户的日常路线?   javajenkins:依赖于其他工件/项目的构建作业   java家庭替换应用程序/视图网格使用哪种布局?   java如何从签名证书创建信任库和密钥库?