[docs]classFeatureSet:""" An implementation of features as loaded from an ISUPPORT server directive. Each feature is loaded into an attribute of the same name (but lowercased to match Python sensibilities). >>> f = FeatureSet() >>> f.load(['target', 'PREFIX=(abc)+-/', 'your message sir']) >>> f.prefix == {'+': 'a', '-': 'b', '/': 'c'} True Order of prefix is relevant, so it is retained. >>> tuple(f.prefix) ('+', '-', '/') >>> f.load_feature('CHANMODES=foo,bar,baz') >>> f.chanmodes ['foo', 'bar', 'baz'] """def__init__(self):self._set_rfc1459_prefixes()def_set_rfc1459_prefixes(self):"install standard (RFC1459) prefixes"self.set('PREFIX',{'@':'o','+':'v'})
[docs]defset(self,name,value=True):"set a feature value"setattr(self,name.lower(),value)