home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- __all__ = [
- 'CSSNamespaceRule']
- __docformat__ = 'restructuredtext'
- __version__ = '$Id: cssnamespacerule.py 1638 2009-01-13 20:39:33Z cthedot $'
- from cssutils.helper import Deprecated
- import cssrule
- import cssutils
- import xml.dom as xml
-
- class CSSNamespaceRule(cssrule.CSSRule):
-
- def __init__(self, namespaceURI = None, prefix = None, cssText = None, parentRule = None, parentStyleSheet = None, readonly = False):
- super(CSSNamespaceRule, self).__init__(parentRule = parentRule, parentStyleSheet = parentStyleSheet)
- self._atkeyword = u'@namespace'
- self._prefix = u''
- self._namespaceURI = None
- if namespaceURI:
- self.namespaceURI = namespaceURI
- self.prefix = prefix
- tempseq = self._tempSeq()
- tempseq.append(self.prefix, 'prefix')
- tempseq.append(self.namespaceURI, 'namespaceURI')
- self._setSeq(tempseq)
- elif cssText is not None:
- self.cssText = cssText
-
- if parentStyleSheet:
- self._parentStyleSheet = parentStyleSheet
-
- self._readonly = readonly
-
-
- def __repr__(self):
- return 'cssutils.css.%s(namespaceURI=%r, prefix=%r)' % (self.__class__.__name__, self.namespaceURI, self.prefix)
-
-
- def __str__(self):
- return '<cssutils.css.%s object namespaceURI=%r prefix=%r at 0x%x>' % (self.__class__.__name__, self.namespaceURI, self.prefix, id(self))
-
-
- def _getCssText(self):
- return cssutils.ser.do_CSSNamespaceRule(self)
-
-
- def _setCssText(self, cssText):
- super(CSSNamespaceRule, self)._setCssText(cssText)
- tokenizer = self._tokenize2(cssText)
- attoken = self._nexttoken(tokenizer, None)
- if self._type(attoken) != self._prods.NAMESPACE_SYM:
- self._log.error(u'CSSNamespaceRule: No CSSNamespaceRule found: %s' % self._valuestr(cssText), error = xml.dom.InvalidModificationErr)
- else:
- new = {
- 'keyword': self._tokenvalue(attoken),
- 'prefix': u'',
- 'uri': None,
- 'wellformed': True }
-
- def _ident(expected, seq, token, tokenizer = (None, None)):
- if 'prefix or uri' == expected:
- new['prefix'] = self._tokenvalue(token)
- seq.append(new['prefix'], 'prefix')
- return 'uri'
- new['wellformed'] = False
- self._log.error(u'CSSNamespaceRule: Unexpected ident.', token)
- return expected
-
-
- def _string(expected, seq, token, tokenizer = (None, None)):
- if expected.endswith('uri'):
- new['uri'] = self._stringtokenvalue(token)
- seq.append(new['uri'], 'namespaceURI')
- return ';'
- new['wellformed'] = False
- self._log.error(u'CSSNamespaceRule: Unexpected string.', token)
- return expected
-
-
- def _uri(expected, seq, token, tokenizer = (None, None)):
- if expected.endswith('uri'):
- uri = self._uritokenvalue(token)
- new['uri'] = uri
- seq.append(new['uri'], 'namespaceURI')
- return ';'
- new['wellformed'] = False
- self._log.error(u'CSSNamespaceRule: Unexpected URI.', token)
- return expected
-
-
- def _char(expected, seq, token, tokenizer = (None, None)):
- val = self._tokenvalue(token)
- if ';' == expected and u';' == val:
- return 'EOF'
- new['wellformed'] = False
- self._log.error(u'CSSNamespaceRule: Unexpected char.', token)
- return expected
-
- newseq = self._tempSeq()
- (wellformed, expected) = self._parse(expected = 'prefix or uri', seq = newseq, tokenizer = tokenizer, productions = {
- 'IDENT': _ident,
- 'STRING': _string,
- 'URI': _uri,
- 'CHAR': _char }, new = new)
- if wellformed:
- pass
- wellformed = new['wellformed']
- if new['uri'] is None:
- wellformed = False
- self._log.error(u'CSSNamespaceRule: No namespace URI found: %s' % self._valuestr(cssText))
-
- if expected != 'EOF':
- wellformed = False
- self._log.error(u'CSSNamespaceRule: No ";" found: %s' % self._valuestr(cssText))
-
- if wellformed:
- self.atkeyword = new['keyword']
- self._prefix = new['prefix']
- self.namespaceURI = new['uri']
- self._setSeq(newseq)
-
-
- cssText = property(fget = _getCssText, fset = _setCssText, doc = '(DOM) The parsable textual representation of this rule.')
-
- def _setNamespaceURI(self, namespaceURI):
- self._checkReadonly()
- if not self._namespaceURI:
- self._namespaceURI = namespaceURI
- tempseq = self._tempSeq()
- tempseq.append(namespaceURI, 'namespaceURI')
- self._setSeq(tempseq)
- elif self._namespaceURI != namespaceURI:
- self._log.error(u'CSSNamespaceRule: namespaceURI is readonly.', error = xml.dom.NoModificationAllowedErr)
-
-
- namespaceURI = property((lambda self: self._namespaceURI), _setNamespaceURI, doc = 'URI (handled as simple string) of the defined namespace.')
-
- def _setPrefix(self, prefix = None):
- self._checkReadonly()
- for i, x in enumerate(self._seq):
- if x == self._prefix:
- self._seq[i] = (prefix, 'prefix', None, None)
- break
- continue
- None if not prefix else self._type(prefixtoken) != self._prods.IDENT
- else:
- self._seq[0] = (prefix, 'prefix', None, None)
- self._prefix = prefix
-
- prefix = property((lambda self: self._prefix), _setPrefix, doc = 'Prefix used for the defined namespace.')
- type = property((lambda self: self.NAMESPACE_RULE), doc = 'The type of this rule, as defined by a CSSRule type constant.')
- wellformed = property((lambda self: self.namespaceURI is not None))
-
-