(self, desc, cb = None)
| 59 | self.send(k) |
| 60 | |
| 61 | def register(self, desc, cb = None): |
| 62 | if isinstance(desc, dict): |
| 63 | for k, v in desc.items(): |
| 64 | self.register(k, v) |
| 65 | else: |
| 66 | if desc == '<match>': |
| 67 | self.on_match(cb) |
| 68 | elif desc == '<nomatch>': |
| 69 | self.on_nomatch(cb) |
| 70 | elif desc == '<any>': |
| 71 | self.on_key(cb) |
| 72 | else: |
| 73 | ms = map(key.Matcher, desc.split(' ')) |
| 74 | if not ms: |
| 75 | return |
| 76 | t = self._top |
| 77 | for m in ms: |
| 78 | if m not in t: |
| 79 | t[m] = ({}, []) |
| 80 | t, cbs = t[m] |
| 81 | cbs.append(cb) |
| 82 | |
| 83 | def unregister(self, desc, cb = None): |
| 84 | ms = map(key.Matcher, desc.split(' ')) |
no test coverage detected