[Twisted-Python] Unknown constants

Glyph glyph at twistedmatrix.com
Thu Dec 29 18:28:17 EST 2011


On Dec 26, 2011, at 12:21 PM, Ralph Meijer wrote:

> Hi,
> 
> I've been looking into using twisted.python.constants for representing 
> the status codes of the XMPP Multi-User Chat protocol [1]. I will have 
> objects representing messages, of which one of the attributes is 
> 'mucStatuses', a set of status codes. This works out great for the 
> initial set of available status codes. The protocol is parsed, and the 
> status codes are represented by the ValueConstant instances returned by 
> lookupByValue.
> 
> However, not all of the possible codes can be known up-front, as the 
> protocol allows for registering new ones without changing the 
> specification itself. Eventually, applications will receive status codes 
> that are not (yet?) part of the set of defined constants in the 
> implementation, and application developers (that do know about new 
> codes) will want to handle these.
> 
> A possible remedy to would be to register new status codes from the 
> application itself. My first try of just adding a new attribute to the 
> class fails because they are not 'realized' as the _enumerants are cached.
> 
> I can imagine this also goes for unknown HTTP methods and HTTP status 
> codes, used as examples in the documentation. Any suggestions on how to 
> handle such unknown constants?
> 
> 
> [1] <http://xmpp.org/extensions/xep-0045.html#statuscodes>

twisted.python.constants is a work in progress; there are many planned features that it doesn't have yet.  Perhaps you should simply add the feature that you want - the ability to adding new attributes to the class?

-glyph




More information about the Twisted-Python mailing list