Ejemplo n.º 1
0
class Config(object):

    def __init__(self, special_term='yay'):
        self.special_term = special_term
        self.openers = Openers()
        self.clear()

    def load_uri(self, uri):
        stream = self.openers.open(uri)
        self.load(stream, uri, hasattr(stream, "secret") and stream.secret)

    def load(self, stream, name="<Unknown>", secret=False):
        l = Loader(stream, name=name, special_term=self.special_term, secret=secret)
        data = l.compose(self.mapping)
        self.mapping = data

    def clear(self):
        self.mapping = None

    def get(self):
        if not self.mapping:
            return {}
        return self.mapping.resolve()
Ejemplo n.º 2
0
class Config(object):
    def __init__(self, special_term='yay', searchpath=None):
        self.special_term = special_term
        self.openers = Openers(searchpath=searchpath)
        self.clear()
        self.mapping = None

    def load_uri(self, uri):
        stream = self.openers.open(uri)
        self.load(stream, uri, hasattr(stream, "secret") and stream.secret)

    def load(self, stream, name="<Unknown>", secret=False):
        l = Loader(stream, name=name, parent=self, secret=secret)
        data = l.compose(self.mapping)
        self.mapping = data

    def add(self, data):
        boxed = BoxingFactory.box(data)
        if not isinstance(boxed, Mapping):
            raise ProgrammingError(
                "Tried to call Config.add on type '%s'. This cannot be boxed as a 'Mapping'."
                % type(data))

        boxed.predecessor = self.mapping
        if boxed.predecessor:
            boxed.predecessor.set_parent(boxed)

        self.mapping = boxed

    def clear(self):
        self.mapping = None
        self.definitions = {}

    def get(self):
        if not self.mapping:
            return {}
        return self.mapping.resolve()
Ejemplo n.º 3
0
class Config(object):

    def __init__(self, special_term='yay', searchpath=None):
        self.special_term = special_term
        self.openers = Openers(searchpath=searchpath)
        self.clear()
        self.mapping = None

    def load_uri(self, uri):
        stream = self.openers.open(uri)
        self.load(stream, uri, hasattr(stream, "secret") and stream.secret)

    def load(self, stream, name="<Unknown>", secret=False):
        l = Loader(stream, name=name, parent=self, secret=secret)
        data = l.compose(self.mapping)
        self.mapping = data

    def add(self, data):
        boxed = BoxingFactory.box(data)
        if not isinstance(boxed, Mapping):
            raise ProgrammingError("Tried to call Config.add on type '%s'. This cannot be boxed as a 'Mapping'." % type(data))

        boxed.predecessor = self.mapping
        if boxed.predecessor:
            boxed.predecessor.set_parent(boxed)

        self.mapping = boxed

    def clear(self):
        self.mapping = None
        self.definitions = {}

    def get(self):
        if not self.mapping:
            return {}
        return self.mapping.resolve()
Ejemplo n.º 4
0
 def __init__(self, special_term='yay'):
     self.special_term = special_term
     self.openers = Openers()
     self.clear()
Ejemplo n.º 5
0
 def __init__(self, special_term='yay', searchpath=None):
     self.special_term = special_term
     self.openers = Openers(searchpath=searchpath)
     self.clear()
     self.mapping = None
Ejemplo n.º 6
0
 def __init__(self, special_term='yay', searchpath=None):
     self.special_term = special_term
     self.openers = Openers(searchpath=searchpath)
     self.clear()
     self.mapping = None
Ejemplo n.º 7
0
 def get_file(self, filename):
     try:
         return Openers(searchpath=self.ypath).open(filename)
     except NotFound, e:
         raise MissingAsset(str(e))