python readline的上下文敏感完成列表

时间:2013-12-10 11:36:33

标签: python readline

我向用户询问一串cypher并使用readline标签自动完成来提供选项,但是想要使用几个不同的选项列表,具体取决于它的cypher语句位。

简化的密码字符串如下所示:

(node_name:LABEL1:LABEL2 {key1: value1, key2: value2})

我想要的是有一个标签的完成列表,以及每个不同属性键的值列表字典,例如:

{key1: [option1, option2, option3], key2: [foo, bar, baz]}

是否有办法让换行符(或其他类似的库)知道它在cypher字符串中的位置,以便它只在标签列表中显示标签列表中的选项,并且只显示相应键列表中的选项用户正在编写属性。

编辑: This页面提供了使用带有readline的常规语法的示例。它似乎回答了我的问题所以我正在回答这个问题。

2 个答案:

答案 0 :(得分:2)

查看python标准库中的rlcompleter模块。我最近自己使用过这种技术。请参阅(示例):https://bitbucket.org/prologic/mio-lang/src/tip/mio/state.py#cl-30

答案 1 :(得分:0)

This页面解释了使用带有readline的常规语法。