summaryrefslogtreecommitdiff
path: root/poezio/core/structs.py
diff options
context:
space:
mode:
authorEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>2015-11-26 01:02:07 +0000
committerEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>2016-06-11 20:49:46 +0100
commitbfb02d64a88bf9ca0bbd78cf389c9c648adbf725 (patch)
tree958c11b8287e80edc13ee19a14016e2db150c6ac /poezio/core/structs.py
parent721756c5c1512e05f44637afe22b25506889d62a (diff)
downloadpoezio-bfb02d64a88bf9ca0bbd78cf389c9c648adbf725.tar.gz
poezio-bfb02d64a88bf9ca0bbd78cf389c9c648adbf725.tar.bz2
poezio-bfb02d64a88bf9ca0bbd78cf389c9c648adbf725.tar.xz
poezio-bfb02d64a88bf9ca0bbd78cf389c9c648adbf725.zip
Make poezio.core.struct more Cython-friendly.
Status and Command are now slotted classes instead of namedtuples, which led to a few changes to access them with their named parameters instead of as a tuple. “short” being a C type, I renamed Command.short into Command.short_desc, which is more explicit anyway. I also renamed possible_show into POSSIBLE_SHOW, as it is a module-level constant dict.
Diffstat (limited to 'poezio/core/structs.py')
-rw-r--r--poezio/core/structs.py37
1 files changed, 26 insertions, 11 deletions
diff --git a/poezio/core/structs.py b/poezio/core/structs.py
index 4ce0ef43..82effd48 100644
--- a/poezio/core/structs.py
+++ b/poezio/core/structs.py
@@ -1,7 +1,9 @@
"""
Module defining structures useful to the core class and related methods
"""
-import collections
+
+__all__ = ['ERROR_AND_STATUS_CODES', 'DEPRECATED_ERRORS', 'POSSIBLE_SHOW',
+ 'Status', 'Command']
# http://xmpp.org/extensions/xep-0045.html#errorstatus
ERROR_AND_STATUS_CODES = {
@@ -36,14 +38,27 @@ DEPRECATED_ERRORS = {
'510': 'Disconnected',
}
-possible_show = {'available':None,
- 'chat':'chat',
- 'away':'away',
- 'afk':'away',
- 'dnd':'dnd',
- 'busy':'dnd',
- 'xa':'xa'
- }
+POSSIBLE_SHOW = {
+ 'available': None,
+ 'chat': 'chat',
+ 'away': 'away',
+ 'afk': 'away',
+ 'dnd': 'dnd',
+ 'busy': 'dnd',
+ 'xa': 'xa'
+}
+
+class Status:
+ __slots__ = ('show', 'message')
+ def __init__(self, show, message):
+ self.show = show
+ self.message = message
-Status = collections.namedtuple('Status', 'show message')
-Command = collections.namedtuple('Command', 'func desc comp short usage')
+class Command:
+ __slots__ = ('func', 'desc', 'comp', 'short_desc', 'usage')
+ def __init__(self, func, desc, comp, short_desc, usage):
+ self.func = func
+ self.desc = desc
+ self.comp = comp
+ self.short_desc = short_desc
+ self.usage = usage