控制台提示

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:白色;
字体粗体;
}

。选项。默认值{
颜色:黄色;
}

。选项。选项键{
颜色:黄色;
}

。选项。分隔符{
颜色:黄色;
字体粗体:较浅;
}

。选项值{
颜色:白色;
字体粗体;
}

。选项。操作{
颜色:洋红色;
字体粗体;
}


。选项。选择{
颜色:白色;
}

```

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

推荐PyPI第三方库


热门话题
java Gradle嵌套项目配置   java一些mipmap没有显示   java如何使用按钮设置值以在wicket中输入文本   可分页的java自定义排序参数   java Android AdMob NoSuchMethodError:没有静态方法zzand()   java安卓工作室;启动到USB设备(手机),已安装但无法打开   java如何使用jsoup从HTML解析表   java如何自动生成arraylist?   java定制外观和感觉Nimbus   在Java中使用气泡排序对24位数组进行排序   java我无法将javafx与spring集成   java Play 2.7 http请求post请求   Java哈希表在“put”期间用新密钥覆盖现有密钥   如何找到java更新版本?