Source code for core

# -*- coding: utf-8 -*-
"""Provide functionality common to all classes in the package. Very
little is expected to be here, only methods which are clearly common
to all such as default implementations of __str__ and fill-in comparison
functions to ensure total ordering.
"""
from __future__ import unicode_literals

import sys
import logging
import tempfile

from winsys import utils

[docs]class _WinSysObject(object):
[docs] def as_string(self): """Produce a readable version of the data, used by __str__. """ return getattr(self, "name", self.__class__.__name__)
def __str__(self): return self.as_string() def __repr__(self): return "<%s: %s>" % (self.__class__.__name__, self.as_string()) def __hash__(self): return hash(self.as_string()) # # Each object should provide a useful override for the # dumped function, possibly recursing into its own # internal items, call their dumped functions at the # next level down. #
[docs] def dumped(self, level=0): return utils.dumped(self.as_string(), level)
[docs] def dump(self, level=0): sys.stdout.write(self.dumped(level) + "\n") # # Fill-in functions to ensure that a complete # sortability is maintained. These may be # overridden by subclasses (but are not # expected to be). #
def __ne__(self, other): return not self == other def __gt__(self, other): return not (self == other) and not (self < other) def __ge__(self, other): return self > other or self == other def __le__(self, other): return self < other or self == other
class Unset(object): def __repr__(self): return "<Unset>" def __str__(self): return "<Unset>" def __nonzero__(self): return False __bool__ = __nonzero__ UNSET = Unset() class NullHandler(logging.Handler): def emit(self, record): pass # # Create a logger without any handlers. # _logger = logging.getLogger("winsys") _logger.addHandler(NullHandler()) #~ _logger.addHandler(logging.StreamHandler()) #~ _logger.setLevel(logging.DEBUG) debug = _logger.debug log = _logger.log info = _logger.info warn = _logger.warn error = _logger.error exception = _logger.exception def add_logging_handler(handler): _logger.addHandler(handler) def remove_logging_handler(handler): _logger.removeHandler(handler)