Package cssutils :: Module helper |
[hide private]
[frames] | no frames]

# Source Code for Module cssutils.helper

     1  """cssutils helper
     2  """
     3  __all__ = ['Deprecated', 'normalize']
     4  __docformat__ = 'restructuredtext'
     5  __version__ = '$Id: errorhandler.py 1234 2008-05-22 20:26:12Z cthedot $'
     6
     7  import re
     8
     9 -class Deprecated(object):
    10      """This is a decorator which can be used to mark functions
    11      as deprecated. It will result in a warning being emitted
    12      when the function is used.
    13
    14      It accepts a single paramter ``msg`` which is shown with the warning.
    15      It should contain information which function or method to use instead.
    16      """
    17 -    def __init__(self, msg):
    18          self.msg = msg
    19
    20 -    def __call__(self, func):
    21          def newFunc(*args, **kwargs):
    22              import warnings
    23              warnings.warn("Call to deprecated method %r. %s" %
    24                              (func.__name__, self.msg),
    25                              category=DeprecationWarning,
    26                              stacklevel=2)
    27              return func(*args, **kwargs)
    28          newFunc.__name__ = func.__name__
    29          newFunc.__doc__ = func.__doc__
    30          newFunc.__dict__.update(func.__dict__)
    31          return newFunc
    32
    33  # simple escapes, all non unicodes
    34  _simpleescapes = re.compile(ur'(\\[^0-9a-fA-F])').sub
    35
    36 -def normalize(x):
    37      """
    38      normalizes x, namely:
    39
    40      - remove any \ before non unicode sequences (0-9a-zA-Z) so for
    41        x=="c\olor\" return "color" (unicode escape sequences should have
    42        been resolved by the tokenizer already)
    43      - lowercase
    44      """
    45      if x:
    46          def removeescape(matchobj):
    47              return matchobj.group(0)[1:]
    48          x = _simpleescapes(removeescape, x)
    49          return x.lower()
    50      else:
    51          return x
    52