From aa02ecd1544c5fe7f5b3b82aa3b79da0e30da6e3 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Tue, 27 Jul 2010 02:07:22 -0400 Subject: Added notes/ideas/comments on things that can be cleaned/simplified or needs to be expanded before the 1.0 release. --- todo1.0 | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 todo1.0 diff --git a/todo1.0 b/todo1.0 new file mode 100644 index 00000000..5e9a43e1 --- /dev/null +++ b/todo1.0 @@ -0,0 +1,153 @@ +Atom stanza? Should stanzas for plugins go in sleekxmpp.stanza or sleekxmpp.plugins.stanza? + +sleekxmpp.stanza __all__ out of date? + +stanza.error could be cleaned up, use _delSubText, etc + +stanza.htmlim could use _delSubText, etc. Why not msg['html']['body'] instead of msg['html']['html']? + +Unify timeout values - maybe xmlstream.stanzabase.TIMEOUT? + +Need to use registerStanzaPlugin in rootstanza instead of the manual steps + +Is exceptions.XMPPError raised anywhere? grep says no, is it still needed? + +Extra tostring method in xmlstream. Maybe modify the tostring/ packages to accept a stream and top namespace instead of assuming a stanza object? Change ElementBase __str__ to pass its stream object to new function instead of extending ToString. + +Move tostring and tostring26 to be a single package with import switch in a __init__.py that selects appropriate file to import. + +Remove thread remains from handler classes. + +Clarify what is meant by 'instream' for a handler. + +Allow for XPath matching to use basic [@att="value"] filter. <- eek? Alternative is to use xml mask, but those are longer. + +ElementBase sub_items not subitem? + +Only import cElementTree in stanzabase, everything else reference that. Would make using lxml instead of cElementTree easier if needed. + +*XMPP needs to use JID class instead of lots of fields. + +BaseXMPP set_jid, makeIqQuery, getjidresource, getjidbare not needed + +Is BaseXMPP.send used anywhere? + +Make top level examples folder, put example.py, component_example.py there. Maybe even the disco browser too. + +__getitem__ should be in BaseXMPP. get too, or remove it? + +xmlstreammod in ComponentXMPP can be removed, just use XMLStream. + +Why CamelCase and underscore_names? Document semantics. + +Make the common classes available using __init__.py + +Need to unit test stanzabase/elementbase. Heavily. + +conn_tests and sleekxmpp/tests and sleekxmpp/xmlstresm/test.* -> convert to either unit tests, or at least put in same place + +Update setup.py - github url, version # + + + +-- PEP8 - all files + +Need to use spaces + +Docstrings are lacking. Need to document attributes and return values. + +Organize imports + +Use absolute, not relative imports + +Fix one-liner if statements + +Line length limit of 79 characters + + + +-- Plugins + +--- xep_0004 + +Need more unit tests + +--- xep_0009 + +Need stanza objects + +Need unit tests + +--- xep_0045 + +Need to use stanza objects + +A few TODO comments for checking roles and using defaults + +Need unit tests + +--- xep_0050 + +Need unit tests + +Need stanza objects - use new xep_0004 + +--- xep_0060 + +Need unit tests + +Need to use existing stanza objects + +--- xep_0078 + +Is it useful still? + +Need stanza objects/unit tests + +--- xep_0086 + +Is there a way to automate setting error codes? + +Seems like this should be part of the error stanza by default + +Use stanza objects + +--- xep_0092 + +Stanza objects + +Unit tests + +--- xep_0199 + +Stanza objects + +Unit tests + +Clean commented code + + + +-- Documentation + +Document the Zen/Tao/Whatever of SleekXMPP to explain design goals and decisions + +Write architecture description + +XMPP:TDG needs to be rewritten. + +Need to update docs that reference old JID attributes of sleekxmpp objects + +Page describing new JID class + +Message page needs updating + +Iq page needs to be written + +Make guides to go with example.py and component_example.py + +Page on xmlstream.matchers + +Page on xmlstream.handlers, especially waiters + +Page on using xmlstream.scheduler -- cgit v1.2.3