python项目的命令行管理器+交互式shell

manage的Python项目详细描述


===
管理
=
===
---------------------------------
用于python项目的命令行管理器+交互式shell图片::https://img.shields.io/pypi/v/manage.svg
:目标:https://pypi.python.org/pypi/manage

…图片::https://img.shields.io/travis/rochacbruno/manage.svg
:目标:https://travis ci.org/rochacbruno/manage

…图片::https://readthedocs.org/projects/manage/badge/?version=latest
:目标:https://manage.readthedocs.io/en/latest/?徽章=最新
:alt:文档状态

…图片::https://pyup.io/repos/github/rochacbruno/manage/shield.svg
:目标:https://pyup.io/repos/github/rochacbruno/manage/
:alt:updates



*免费软件:isc许可证
*文档:https://manage.readthedocs.io.



在python项目中添加一个**命令行管理器**,它还带有一个带有ipython支持的交互式shell。

代码块:console

$pip install manage
$cd/my_project_root_folder
$manage init
creating manage.yml….

CTS应加载到**外壳**

…注意:

windows用户可能需要安装正确版本的pyyaml,具体取决于您称之为操作系统的版本,
可安装在:https://pypi.python.org/pypi/pyyaml
**中,或者考虑使用linux,不要担心,因为一切正常。l在Linux中,除了游戏、photoshop和独立游戏:)**


shell
===


**例如:"欢迎来到我的贝壳!"**而且您还可以
指定一些要自动导入到shell上下文中的对象,这样当您进入shell时,
项目的公共对象已经可用。

还可以指定要运行的自定义函数或要运行的基于字符串的代码块,这对ini很有用t并配置对象。


:代码:`manage shell`可以通过传递选项启动不同的控制台

-:代码:`manage shell--ipython`-这是默认值(如果安装了ipython)
-:代码:`manage shell--ptpython`
-:代码:`manage shell--bpython`
-:代码:`manage shell--python`-这是**默认的python控制台**,包括对autocomplete的支持。(在没有安装其他应用程序时将是默认设置)

它用:

代码块:yaml

project\u name:my awesome project
help\u text:
这是{project\u name}交互式shell!
shell:
控制台:bpython
readline_enabled:false;macos没有readline completion支持
横幅:
enabled:true
消息:"欢迎使用{project_name}shell!"
自动导入:
显示:true
对象:
我的系统配置设置:
我的系统。我的模块。我的类:
我的系统。我的模块。其他类:
as:niceclass
系统路径:
as:sp
初始化:
插入:
参数:
-0
-/path/to/be/added/automatically/to/sys/path
初始化脚本:
来自my_system.config导入设置
打印("初始化设置…")
settings.configure()




,然后上面的**manage.yaml**将给您一个这样的外壳:

。代码块:console

$manage shell
正在初始化设置…
欢迎使用我很棒的项目shell!
自动导入:['sp','settings','myclass','niceclass']
>;>;niceclass。<;tab>;启用自动完成功能| ascicast image::https://asciema.org/a/51042.png
:target:https://asciema.org/a/51042


查看更多示例:


https://github.com/rochacbruno/manage/tree/master/examples/

著名的**海军命运**示例(用于docopt和click)位于:

https://github.com/rochacbruno/manage/tree/master/examples/naval/>



custom commands
==br/>

有时需要在项目中添加自定义命令
例如:向系统添加用户的命令:


$manage create_user--name=bruno--passwd=1234
创建用户…

**manage有一些不同的方法供您定义自定义命令,
n使用项目模块中定义的**单击命令**,
您也可以使用项目中任何地方定义的**函数**命令,
,如果确实需要,可以在**manage.yml**文件中定义**内联命令**。使用自定义的点击命令模块(单个文件)
——代码块::python

myproject/commands.py
导入单击
@click.command()
@click.option('--name')
@click.option('--passwd')
定义创建用户(name,passwd):
"创建新用户"
click.echo('创建用户…')
mysystem.user.create(name,password)



您的**manage.yml**或**.manage.yml**并指定自定义命令模块。

…代码块::yaml

代码块::console


$manage--help

命令:
create嫒user create a new user
debug显示解析后的管理文件
init初始化当前的管理shell…
shell使用click嫒commands包(多个文件)运行上下文为



------------------------------


通常有不同的文件来保存命令,因此您可能更喜欢有
a**commands/**包和其中的一些**python**模块来保存命令。

代码块::python

myproject/commands/user.py
import单击
@click.command()
@click.option('--name')
@click.option('--passwd')
def create_user(name,passwd):
"创建新用户"
click.echo("创建用户…")
mysystem.user.create(name,password)

代码块::python

myproject/commands/system.py
import单击
@click.command()
def clear\cache():
"清除系统缓存"
click.echo('缓存将被删除…)
mysystem.cache.clear()

第.

…代码块::yaml

代码块:console

$manage--help

命令:
create\u用户创建新用户
clear\u缓存清除系统缓存
debug显示解析后的管理文件
init初始化当前的管理shell…
shell运行上下文为


所以你可以定制它。代码块::yaml

单击命令:
-模块:命令。系统
配置:
清除缓存:
名称:重置缓存
帮助文本:重置缓存
-模块:命令。用户
配置:
创建用户:
名称:新建_用户
帮助\文本:这将创建具有不同名称空间的新用户

代码块::yaml

namespaced:true
单击命令:
-module:commands

代码块::console


$manage--help

命令:
user_create_user create a new user
system_clear_cache clear the system cache
debug显示当前解析的管理文件
init初始化管理shell…
shell运行上下文为

的python shell,甚至可以分别为每个模块自定义命名空间
---------------------------------

…注意:如果**namespaced**为true,则所有命令都将使用namespaced,设置为false以便分别定义



。代码块::yaml

代码块::console


$manage--help

命令:
user_create_user create a new user
sys_clear_cache clear the system cache
debug显示当前解析的管理文件
init初始化管理shell…
shell runs上下文为



>2的python shell。在manage file中直接定义内联命令有时命令非常简单,以至于您不希望(或不希望)有一个自定义模块,
,因此您可以将所有命令直接放入yaml文件。

代码块::yaml

inline_命令:
-名称:清除缓存
help_文本:执行内联代码以清除缓存
上下文:
-sys
-pprint
-选项:
--天:
默认值:100
代码:
pprint.pprint({'clean_days':days,'path':sys.path})



代码块::console


$manage--help

命令:
clear\u cache执行内联代码以清除缓存
debug显示已解析的管理文件
init在当前初始化管理shell…
shell运行带有上下文的python shell



,您可以使用

运行。代码块:console

$manage clear_cache——第15天


3天。使用常规函数作为命令
代码块:python代码块::yaml

function_命令:
-函数:my_system.functions.create_user
名称:new_user
帮助文本:创建新用户
选项:
--名称:
必需:true
--密码:
必需:true



代码块::console


$manage--help

命令:
new_user create new user
debug显示解析后的管理文件
init初始化当前的管理shell…
shell运行上下文为

$manage new的python shell_ user--name=bruno--password=1234
创建用户bruno



**,不需要获取单独的包并在yaml中配置所有内容,只需使用ipython即可。此外,ipython配置有更多的选项和功能。
-所以我说:很好!**如果你不喜欢,就不要用它!**

credits
==

-这是受**django的manage.py命令的启发**
-这是基于click\br/>-这个包是用cookiecutter和"audreyr/cookiecutter py package"项目模板创建的。

_点击:http://click.pocoo.org
。_ Cookiecutter:https://github.com/audreyr/Cookiecutter
。_` audreyr/cookiecutter pypackage`:https://github.com/audreyr/cookiecutter pypackage


==
==
==history
===



<0.1.12(2016-08-15)
----
*由于macos兼容,readline是可选的模块导入
*多个"as"名称

<0.1.10(2016-07-04)
----
*bpython添加


0.1.9(2016-07-03)
----
*bpython添加


0.1.8(2016-07-03)
----
*python 3 dict fixes

<0.1.7(2016-06-26)
---——
*py3的exec错误修复

>0.1.6(2016-06-26)
——
——
*exec错误修复

<0.1.5(2016-06-25)
——
——
*添加了对命令收集器的支持(请参阅Quokka CMS)

0.1.4(2016-06-22)
——
*修复丢失的deps

0.1.3(2016-06-19)
----
*支持函数指令

<0.1.2(2016-06-17)
----
*支持内联指令


>0.1.1(2016-06-14)
----
*支持自定义和隐藏管理文件

0.1.0(2016-06-09)
-——

*PYPI上的第一个版本。

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

推荐PyPI第三方库


热门话题
java JavaFX触控事件未触发Ubuntu 20.04触控笔记本电脑   java如何在AWT中关闭窗口?   java Dagger 2:注入具有构造函数参数的成员   创建对象的Java调用类   对象我想在A.java中添加两个数字,并在B.java中打印结果(如何?)   java如何使用AWS SDK for Android从数字海洋空间下载图像?   java Facebook sdk 4.0.1无法使用Android studio获取某些字段   4分钟后web应用程序(Angular 8和Rest API)中的java自动会话超时   在Eclipse for Java EE developers edition中禁用HTML警告   java按字母顺序排列字符串我错过了什么明显的东西吗?   java在Jshell中println和printf有什么不同