通过python元编程技巧实现基于类的fabric脚本

fabriclassed的Python项目详细描述


####简介

我们有几个面料脚本违反了干燥。基于类的fabric脚本可以解决这个问题。
这是一种将fabric任务定义为类中的方法而不是模块级函数的技巧。
这种基于类的方法提供了继承和方法重写的好处。


从fabriclassed.base导入base fabric、djangofibric、virtualenvfabric初始化
从fabric导入api作为fab

class fabric(basefabric):
远程项目路径='/local/path/to/my project'
本地项目路径='/remote/path/to/myproject'

def fab任务(self):
“我的网站任务”
fab.local('echo“hello world”')

运行fab-l给出:

```
$fab-l
可用的命令:

搜索目录中的源代码字符串…
任务我的网站任务
````

task
[localhost]local:echo“hello world”
hello world


done.
`````

您可以将这两个too一起使用,也可以单独使用。

fabric类的示例具有一系列属性:

``python
from fabriclassed import initialize
from fabriclassed.base import basefabric,djangofbric,virtualenvfabric
from fabric.api import lcd,local

class fabric(basefabric,djangofbric,VirtualLenvFabric:
Search\u dirs=[]


hosts=['webweb.com']
remote\u project路径='/local/path/to/my\u project'
local\u project路径='/remote/path/to/my\u project'


django设置
managefile\u path='/manage.py'
manage manage.py
manage.py
test默认应用程序='我的主django应用程序的名称。
test_settings='设置测试特殊文件'
shell_plus=true
devserver_port=8000
devserver_params='
fixtures_dir='fixtures'
fixtures_format='json'
fixtures_map=(
'sites.site',


virtualenv settings
使用virtualenv=true
virtualenv dir=“env”
已修补的应用程序=[
已修补的虚拟应用程序列表
]
diff目录=“My_relative_to_project_diff_dir”
应用程序目录=“My_relative_project_apps_dir”

uu all_uuu=initialize(fabric(),_ name_u)
```


running fab-l给出:

```
可用命令:

dev运行django的dev server
diff_u转储修补应用程序的遍历映射,并使diff fil…
patch walk-over“diffs”目录并修补每个应用程序在目录中的源代码搜索字符串…
sh运行django的standart shell或django_extent的shell…
symlink从“apps”目录创建symlink到网站包或…
测试运行django的测试。参数可以是应用程序名,n..
更新设备将远程设备放置到生产存储库中,获取…
````

```

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

推荐PyPI第三方库


热门话题
java在jframe中模糊的背景上创建一个透明的矩形   java和super之间有区别。getX()和简单的x?   使用ant的java删除eclipse项目   java找不到。txt文件?   多线程Java wait()notify()   带按钮的java透明控件   java Android Studio 3无法构建我的项目   性能最佳(最快且节省内存)的Java收集/数据结构,可同时插入和删除项   spring+hibernate集成中的java ClassNotFoundException   java如何在Android上建立异步URL连接?   java当我选择contacts选项卡时,选项卡栏消失了   java根据数据库中的日期获取结果,不考虑时间   java如何访问WebChromeClient中的方法?   java如何在安卓中使用两行列表项?   spring Swagger Java日期格式验证引发异常