获得TypeError的Dragonfly IntegerRef:'NoneType'对象不可调用错误

时间:2016-01-10 00:56:26

标签: python python-dragonfly

尝试使用Python 2.7在Windows 10中使用dragonfly。我有一个示例模块,我试图让我工作,但我得到以下错误:

Traceback (most recent call last):
  File "C:\NatLink\NatLink\MacroSystem\core\natlinkmain.py", line 304, in loadFile
    imp.load_module(modName,fndFile,fndName,fndDesc)
  File "C:\Users\jarrett\projects\natlink\_test.py", line 3, in <module>
    class ExampleRule2(MappingRule):
  File "C:\Users\jarrett\projects\natlink\_test.py", line 20, in ExampleRule2
    IntegerRef("n", 1, 20),
  File "C:\Python27\lib\site-packages\dragonfly-0.6.5-py2.7.egg\dragonfly\grammar\number.py", line 75, in __init__
    element = self._element_type(None, min, max)
TypeError: 'NoneType' object is not callable

生成此错误的代码是:

from dragonfly.all import Grammar, CompoundRule, MappingRule, Key, Text, IntegerRef, Dictation

class ExampleRule2(MappingRule):
    mapping  = {
                "[feed] address [bar]":                Key("a-d"),
                "subscribe [[to] [this] feed]":        Key("a-u"),
                "paste [feed] address":                Key("a-d, c-v, enter"),
                "feeds | feed (list | window | win)":  Key("a-d, tab:2, s-tab"),
                "down [<n>] (feed | feeds)":           Key("a-d, tab:2, s-tab, down:%(n)d"),
                "up [<n>] (feed | feeds)":             Key("a-d, tab:2, s-tab, up:%(n)d"),
                "open [item]":                         Key("a-d, tab:2, c-s"),
                "newer [<n>]":                         Key("a-d, tab:2, up:%(n)d"),
                "older [<n>]":                         Key("a-d, tab:2, down:%(n)d"),
                "mark all [as] read":                  Key("cs-r"),
                "mark all [as] unread":                Key("cs-u"),
                "search [bar]":                        Key("a-s"),
                "search [for] <text>":                 Key("a-s") + Text("%(text)s\n"),
               }
    extras   = [
                IntegerRef("n", 1, 20),
                Dictation("text"),
               ]
    defaults = {
                "n": 1,
               }

# Create a grammar which contains and loads the command rule.
grammar = Grammar("example grammar")
grammar.add_rule(ExampleRule2())
grammar.load()

有谁知道我可能做错了什么?

1 个答案:

答案 0 :(得分:1)

事实证明这是我的语言问题 - 我的语言设置为蜻蜓natlink引擎中未定义的语言。

手动添加语言后,一切正常。