控制台提示
promptl的Python项目详细描述
#立即
[![构建状态](https://travis-ci.org/aventurella/simultly.png?branch=master)(https://travis ci.org/aventurella/immitly)
一个小的python实用程序,帮助您构建可以使用css设置样式的命令行提示。
##v0.6.0
输入现在可以指定重复的键,并且将返回一个列表,例如:
`` python
来自即时导入控制台
来自即时导入窗体
form=form()
form.add.string(
'name',
'您的名字是什么?',
默认值为'ollie'
)
form.add.string(
'名称',
'您的其他名称是什么?',
默认值='potato'
)
form.add.int(
'number',
'pick a number'
console.run(form)
print(dict(form))
"数字":9
py2)会用换行和颜色代码做一些有趣的事情。部分色码问题
可能与"readline"有关,此报告的文档问题
re-ansi-escapes for readline(http://bugs.python.org/issue17337\msg183328)
http://bugs.python.org/issue17337
跳过通过
input/raw_input发送大部分提示,而是将其写入stdout。现在只有实际提示的单行
被发送到input/raw_input。这会出现
来解决问题。
v0.5.3
通知现在可以添加到表单中。控制台运行器的效果是简单地打印通知,然后继续表单中的下一个问题。当将表单转换为dict时,就像分支一样,
返回的数据中将不包括通知。
`` python
从即时导入控制台
从即时导入窗体
form=form()
form.add.notification('欢迎使用即时窗体')
form.add.string('最喜欢的狗','谁是您最喜欢的狗?',default='lucy')
form.add.notification('感谢您填写表单!')
console.run(form)
print(dict(form))
````
>;lucy
····
感谢您填写表格!
································在安装了Pyreadline的计算机上为字符串
和整数输入提供控制台呈现程序。在这种情况下,提示将显示如下:
```
您最喜欢的狗是谁?[露西]
>;
```
请注意,默认设置会附加到问题的末尾。
>;lucy
```
integer和基于字符串的提示是这样呈现的。
v0.5.1
为我们的windows朋友增添了一些爱。我们现在检查天气是否有readline可用
,如果没有,在这种情况下安装pyreadline。
\v0.5
\warning 0.5是向后不兼容的
这应该是一段时间内最后一次向后不兼容的更新。v0.5
重新设计了表单的运行方式。这样做是希望有一天我有时间诅咒或URWID实现。我们拭目以待。总的来说,
虽然它确实使不喜欢
默认表单呈现的人更容易确认,因为现在立即支持表单运行器。
什么是表单运行器?简单地说,在以前的版本中,您会调用:
`` python
form.run()
```
` v0.5将"form"对象视为一个集合,而
运行者会想出如何处理它。让我们看看上面"v0.5"中
的例子:
``python
v0.5+
from immitly import from
form immitly import console
form=form()
form.add.string("最喜欢的食物","你最喜欢的食物是什么?")
console.run(form)
```
几乎完全相同,但我们只是将表单交给
run来处理,而不是表单。
一些额外的更改,"立即输入"。*都被重命名为
并简化了。现在,它们基本上充当了输入类型的标记类。
它们帮助运行程序识别要生成的提示类型。
stringinput.build_prompt'等逻辑基本上被移到了
latest.renderers.console.stringprompt'中。如果您总是使用
快捷语法来修饰窗体:
``python
form.add.string(…)
form.add.bool(…)
form.add.int(…)
form.add.select(…)
form.add.multiselect(…)
```
,则无需担心任何问题,一切都应该对你有好处。如果您使用的是更详细的样式:
``python
form.add(
'age',
integerinput('您的年龄是多少?',
默认值=1)
)
````
最好总是使用
快捷键。
所有输入类型现在都接受"通知"这是一种方便的注释问题的方法。让我们看一个有通知的提示
和没有通知的相同提示。
首先,没有通知:
``python
from instally import from
form instally import console
form=form()
form.add.string('name',"你叫什么名字?",default='lucy')
console.run(form,prefix='[立即])
````
,将生成如下提示:
````
[立即]您的姓名是什么?
>;lucy
```
,
通知=("这有助于以后识别您的身份","识别很有趣!")
default='lucy')
console.run(form,prefix='[立即])
````
将生成如下提示:
````
[立即]您的名字是什么?
这将有助于以后识别您的身份
识别很有趣!
·····
>;lucy
```
但在用户输入之前,
可用的css样式也已更新以解释这些问题。
有关可用的默认样式,请参见下面的列表。
它们的样式将根据
通知和前缀样式:
`` python
从即时导入控制台
console.notification('hello world',prefix='[notice]',stylesheet=none)
```
将立即向sys.stdout写入消息。
(以前是choiceinput)和multiselectinput现在采用可调用的选项格式。默认情况下,此可调用项为
"立即.utils.numeric_options"。这将获取一个列表["foo","bar"]
,并返回一个列表:[(1,"foo"),(2,"bar")。因此,如果您只需要
数字作为您的选择或多选输入您不需要
担心,您可以免费获得它们。如果你用类似于"zip(range(1,3),['foo','bar'])的方式传递自己的
你就不再需要这样做了。事实上,这会给你带来麻烦,所以你应该用你的选择列表来代替它,新功能现在可以分支了。分支输入项接受一个可调用项,该项将
执行,并期望返回另一个"form"对象。这个'form`
对象将合并到添加分支的位置
的当前运行的表单中。可调用的签名如下:
`My_Branch_Building_Action(form,*args,**kwargs):`
姓名?"
其他:
branch.add.string('name','您的宠物叫什么名字?',default=name)
return branch
form=form()
form.add.int('age','您的年龄是多少?',default=age)
form.add.branch(handler,name='lucy')
form.run()
``
done_label="done")`
注意done_label是可选的。
样式显示中选择多个选项。它标记当前选定的项。如果用户选择
与已选择的选项相同,则将取消选择该选项。
"done_label"kwarg设置此处使用的值
默认设置为*done*。用户必须选择sentinel选项
,才能继续使用表单。
#按您希望问题出现的顺序添加问题
form.add.string('name',
'您的姓名是什么?',
默认值为'aubrey')
form.add.int('age',
'您的年龄是多少?',
默认值=1)
没有为choiceinput提供选项格式kwarg,因此它将使用默认的数值选项form.add.select('color',
'您最喜欢的颜色',
('red','green','blue'),
默认值=1)
form.add.bool('yaks','您喜欢牦牛吗?',default=true)
stylesheet=css.read())
print(form.age.value)
print(form.color.value)
如果form.age.value<;12:
print(form.food.value)
或者我们可以将整个表单转换为字典:
d=dict(form)
打印(d)
```
色差:
````
前:黑、红、绿、黄、蓝、洋红色、青色、白、复位。
后:黑、红、绿、黄、蓝、洋红色、青色、白、复位。
样式:暗、正常、亮,重置所有
```
,换句话说:
``css
。前缀{
颜色:白色;
背景颜色:蓝色;
}
`````
Font Weight属性按以下方式映射到Colorama样式值:
````
Font Weight:normal;->;style.normal
font weight:bold;->;style.bright
font weight:lighter;->;style.dim
`````
``````heads up
css解析器很快就进入了**非常**原始的状态。这就足以解析下面的内容,仅此而已。它决不是css规范的完整实现。下面的默认prompty样式表是包含在immitly中的默认样式表。这个样式表显示了一组详尽的选择器,可用于设置提示的样式。如果不在下面,则立即不支持它。
记住每个选择器都可以支持:
``css
颜色:<;值>;
背景颜色:<;值>;
字体粗细:<;/value>;
```
但如果你愿意的话,你也应该感到自由。
`` body``将设置默认颜色、字体粗细和背景颜色。
附加样式有效地层叠在body的顶部。
`.action`表示用户输入之前的cheveron显示。
`.input`是用户输入的样式。
`.notification.footer`是显示在
选择选项下面和通知之后的3个点的样式。
``css
body{
color:white;
字体粗细:normal;
}
。操作
颜色:洋红色;
字体粗体;
}
。输入{
颜色:白色;
字体粗体;
}
。前缀{
颜色:蓝色;
字体粗体;
}
。通知。标签{
颜色:白色;
字体粗细:粗体;
}
。通知。页脚{
颜色:白色;
字体粗细:正常;
}
。字符串。标签{
颜色:白色;
}
。字符串。默认包装纸{
颜色:白色;
字体粗体;
}
.string.默认值{
颜色:黄色;
}
.integer.标签{
颜色:白色;
}
.integer.默认包装{
颜色:白色;
字体粗体;
}
。整数。默认值{
颜色:黄色;
}
。布尔值。标签{
颜色:白色;
}
。布尔值。默认包装{
颜色:白色;
字体粗体;
}
。布尔值。默认值{
颜色:黄色;
}
。布尔值。其他值{
颜色:黄色;
}
。布尔值。分隔符{
颜色:白色;
字体粗体;
}
。选项。标签{
颜色:白色;
}
。选项。默认包装{
color:白色;
字体粗体;
}
。选项。默认值{
颜色:黄色;
}
。选项。选项键{
颜色:黄色;
}
。选项。分隔符{
颜色:黄色;
字体粗体:较浅;
}
。选项值{
颜色:白色;
字体粗体;
}
。选项。操作{
颜色:洋红色;
字体粗体;
}
。选项。选择{
颜色:白色;
}
```
[![构建状态](https://travis-ci.org/aventurella/simultly.png?branch=master)(https://travis ci.org/aventurella/immitly)
一个小的python实用程序,帮助您构建可以使用css设置样式的命令行提示。
##v0.6.0
输入现在可以指定重复的键,并且将返回一个列表,例如:
`` python
来自即时导入控制台
来自即时导入窗体
form=form()
form.add.string(
'name',
'您的名字是什么?',
默认值为'ollie'
)
form.add.string(
'名称',
'您的其他名称是什么?',
默认值='potato'
)
form.add.int(
'number',
'pick a number'
console.run(form)
print(dict(form))
"数字":9
py2)会用换行和颜色代码做一些有趣的事情。部分色码问题
可能与"readline"有关,此报告的文档问题
re-ansi-escapes for readline(http://bugs.python.org/issue17337\msg183328)
http://bugs.python.org/issue17337
跳过通过
input/raw_input发送大部分提示,而是将其写入stdout。现在只有实际提示的单行
被发送到input/raw_input。这会出现
来解决问题。
v0.5.3
通知现在可以添加到表单中。控制台运行器的效果是简单地打印通知,然后继续表单中的下一个问题。当将表单转换为dict时,就像分支一样,
返回的数据中将不包括通知。
`` python
从即时导入控制台
从即时导入窗体
form=form()
form.add.notification('欢迎使用即时窗体')
form.add.string('最喜欢的狗','谁是您最喜欢的狗?',default='lucy')
form.add.notification('感谢您填写表单!')
console.run(form)
print(dict(form))
````
>;lucy
····
感谢您填写表格!
································在安装了Pyreadline的计算机上为字符串
和整数输入提供控制台呈现程序。在这种情况下,提示将显示如下:
```
您最喜欢的狗是谁?[露西]
>;
```
请注意,默认设置会附加到问题的末尾。
>;lucy
```
integer和基于字符串的提示是这样呈现的。
v0.5.1
为我们的windows朋友增添了一些爱。我们现在检查天气是否有readline可用
,如果没有,在这种情况下安装pyreadline。
\v0.5
\warning 0.5是向后不兼容的
这应该是一段时间内最后一次向后不兼容的更新。v0.5
重新设计了表单的运行方式。这样做是希望有一天我有时间诅咒或URWID实现。我们拭目以待。总的来说,
虽然它确实使不喜欢
默认表单呈现的人更容易确认,因为现在立即支持表单运行器。
什么是表单运行器?简单地说,在以前的版本中,您会调用:
`` python
form.run()
```
` v0.5将"form"对象视为一个集合,而
运行者会想出如何处理它。让我们看看上面"v0.5"中
的例子:
``python
v0.5+
from immitly import from
form immitly import console
form=form()
form.add.string("最喜欢的食物","你最喜欢的食物是什么?")
console.run(form)
```
几乎完全相同,但我们只是将表单交给
run来处理,而不是表单。
一些额外的更改,"立即输入"。*都被重命名为
并简化了。现在,它们基本上充当了输入类型的标记类。
它们帮助运行程序识别要生成的提示类型。
stringinput.build_prompt'等逻辑基本上被移到了
latest.renderers.console.stringprompt'中。如果您总是使用
快捷语法来修饰窗体:
``python
form.add.string(…)
form.add.bool(…)
form.add.int(…)
form.add.select(…)
form.add.multiselect(…)
```
,则无需担心任何问题,一切都应该对你有好处。如果您使用的是更详细的样式:
``python
form.add(
'age',
integerinput('您的年龄是多少?',
默认值=1)
)
````
最好总是使用
快捷键。
所有输入类型现在都接受"通知"这是一种方便的注释问题的方法。让我们看一个有通知的提示
和没有通知的相同提示。
首先,没有通知:
``python
from instally import from
form instally import console
form=form()
form.add.string('name',"你叫什么名字?",default='lucy')
console.run(form,prefix='[立即])
````
,将生成如下提示:
````
[立即]您的姓名是什么?
>;lucy
```
,
通知=("这有助于以后识别您的身份","识别很有趣!")
default='lucy')
console.run(form,prefix='[立即])
````
将生成如下提示:
````
[立即]您的名字是什么?
这将有助于以后识别您的身份
识别很有趣!
·····
>;lucy
```
但在用户输入之前,
可用的css样式也已更新以解释这些问题。
有关可用的默认样式,请参见下面的列表。
它们的样式将根据
通知和前缀样式:
`` python
从即时导入控制台
console.notification('hello world',prefix='[notice]',stylesheet=none)
```
将立即向sys.stdout写入消息。
(以前是choiceinput)和multiselectinput现在采用可调用的选项格式。默认情况下,此可调用项为
"立即.utils.numeric_options"。这将获取一个列表["foo","bar"]
,并返回一个列表:[(1,"foo"),(2,"bar")。因此,如果您只需要
数字作为您的选择或多选输入您不需要
担心,您可以免费获得它们。如果你用类似于"zip(range(1,3),['foo','bar'])的方式传递自己的
你就不再需要这样做了。事实上,这会给你带来麻烦,所以你应该用你的选择列表来代替它,新功能现在可以分支了。分支输入项接受一个可调用项,该项将
执行,并期望返回另一个"form"对象。这个'form`
对象将合并到添加分支的位置
的当前运行的表单中。可调用的签名如下:
`My_Branch_Building_Action(form,*args,**kwargs):`
姓名?"
其他:
branch.add.string('name','您的宠物叫什么名字?',default=name)
return branch
form=form()
form.add.int('age','您的年龄是多少?',default=age)
form.add.branch(handler,name='lucy')
form.run()
``
done_label="done")`
注意done_label是可选的。
与已选择的选项相同,则将取消选择该选项。
"done_label"kwarg设置此处使用的值
默认设置为*done*。用户必须选择sentinel选项
,才能继续使用表单。
#按您希望问题出现的顺序添加问题
form.add.string('name',
'您的姓名是什么?',
默认值为'aubrey')
form.add.int('age',
'您的年龄是多少?',
默认值=1)
没有为choiceinput提供选项格式kwarg,因此它将使用默认的数值选项form.add.select('color',
'您最喜欢的颜色',
('red','green','blue'),
默认值=1)
form.add.bool('yaks','您喜欢牦牛吗?',default=true)
stylesheet=css.read())
print(form.age.value)
print(form.color.value)
如果form.age.value<;12:
print(form.food.value)
或者我们可以将整个表单转换为字典:
d=dict(form)
打印(d)
```
色差:
````
前:黑、红、绿、黄、蓝、洋红色、青色、白、复位。
后:黑、红、绿、黄、蓝、洋红色、青色、白、复位。
样式:暗、正常、亮,重置所有
```
,换句话说:
``css
。前缀{
颜色:白色;
背景颜色:蓝色;
}
`````
Font Weight属性按以下方式映射到Colorama样式值:
````
Font Weight:normal;->;style.normal
font weight:bold;->;style.bright
font weight:lighter;->;style.dim
`````
``````heads up
css解析器很快就进入了**非常**原始的状态。这就足以解析下面的内容,仅此而已。它决不是css规范的完整实现。下面的默认prompty样式表是包含在immitly中的默认样式表。这个样式表显示了一组详尽的选择器,可用于设置提示的样式。如果不在下面,则立即不支持它。
记住每个选择器都可以支持:
``css
颜色:<;值>;
背景颜色:<;值>;
字体粗细:<;/value>;
```
但如果你愿意的话,你也应该感到自由。
`` body``将设置默认颜色、字体粗细和背景颜色。
附加样式有效地层叠在body的顶部。
`.input`是用户输入的样式。
`.notification.footer`是显示在
选择选项下面和通知之后的3个点的样式。
``css
body{
color:white;
字体粗细:normal;
}
。操作
颜色:洋红色;
字体粗体;
}
。输入{
颜色:白色;
字体粗体;
}
。前缀{
颜色:蓝色;
字体粗体;
}
。通知。标签{
颜色:白色;
字体粗细:粗体;
}
。通知。页脚{
颜色:白色;
字体粗细:正常;
}
。字符串。标签{
颜色:白色;
}
。字符串。默认包装纸{
颜色:白色;
字体粗体;
}
.string.默认值{
颜色:黄色;
}
.integer.标签{
颜色:白色;
}
.integer.默认包装{
颜色:白色;
字体粗体;
}
。整数。默认值{
颜色:黄色;
}
。布尔值。标签{
颜色:白色;
}
。布尔值。默认包装{
颜色:白色;
字体粗体;
}
。布尔值。默认值{
颜色:黄色;
}
。布尔值。其他值{
颜色:黄色;
}
。布尔值。分隔符{
颜色:白色;
字体粗体;
}
。选项。标签{
颜色:白色;
}
。选项。默认包装{
color:白色;
字体粗体;
}
。选项。默认值{
颜色:黄色;
}
。选项。选项键{
颜色:黄色;
}
。选项。分隔符{
颜色:黄色;
字体粗体:较浅;
}
。选项值{
颜色:白色;
字体粗体;
}
。选项。操作{
颜色:洋红色;
字体粗体;
}
。选项。选择{
颜色:白色;
}
```