Ejemplo n.º 1
0
 def _collapse_use_dict(self, attr):
     stack = (getattr(x, attr) for x in self.stack)
     d = ChunkedDataDict()
     for mapping in stack:
         d.merge(mapping)
     d.freeze()
     return d
Ejemplo n.º 2
0
 def enabled_use(self):
     use = ChunkedDataDict()
     use.add_bare_global(*split_negations(self.use))
     use.merge(self.profile.pkg_use)
     use.update_from_stream(chunked_data(k, *v) for k, v in self.pkg_use)
     use.freeze()
     return use
Ejemplo n.º 3
0
 def _parse_use(self, data):
     c = ChunkedDataDict()
     neg, pos = split_negations(data)
     if neg or pos:
         c.add_bare_global(neg, pos)
     c.freeze()
     return c
Ejemplo n.º 4
0
class FakeProfile(object):

    def __init__(self, masked_use={}, forced_use={},
        provides={}, masks=[], virtuals={}, arch='x86', name='none'):
        self.provides_repo = SimpleTree(provides)
        self.masked_use = ChunkedDataDict()
        self.masked_use.update_from_stream(
            chunked_data(atom(k), *split_negations(v))
            for k,v in masked_use.iteritems())
        self.masked_use.freeze()

        self.forced_use = ChunkedDataDict()
        self.forced_use.update_from_stream(
            chunked_data(atom(k), *split_negations(v))
            for k,v in forced_use.iteritems())
        self.forced_use.freeze()

        self.masks = tuple(map(atom, masks))
        self.virtuals = SimpleTree(virtuals)
        self.arch = arch
        self.name = name


    def make_virtuals_repo(self, repo):
        return self.virtuals
Ejemplo n.º 5
0
 def _collapse_use_dict(self, attr):
     stack = (getattr(x, attr) for x in self.stack)
     d = ChunkedDataDict()
     for mapping in stack:
         d.merge(mapping)
     d.freeze()
     return d
Ejemplo n.º 6
0
 def _parse_use(self, data):
     c = ChunkedDataDict()
     neg, pos = split_negations(data)
     if neg or pos:
         c.add_bare_global(neg, pos)
     c.freeze()
     return c
Ejemplo n.º 7
0
 def masked_use(self, data):
     c = ChunkedDataDict()
     neg, pos = split_negations(data)
     if neg or pos:
         c.add_bare_global(neg, pos)
     c.update_from_stream(
         chain_from_iterable(self.pkg_use_mask.itervalues()))
     c.freeze()
     return c
Ejemplo n.º 8
0
class FakeProfile(object):
    def __init__(self,
                 masked_use={},
                 stable_masked_use={},
                 forced_use={},
                 stable_forced_use={},
                 pkg_use={},
                 provides={},
                 iuse_effective=[],
                 use=[],
                 masks=[],
                 unmasks=[],
                 arch='x86',
                 name='none'):
        self.provides_repo = SimpleTree(provides)

        self.masked_use = ChunkedDataDict()
        self.masked_use.update_from_stream(
            chunked_data(atom(k), *split_negations(v))
            for k, v in masked_use.items())
        self.masked_use.freeze()

        self.stable_masked_use = ChunkedDataDict()
        self.stable_masked_use.update_from_stream(
            chunked_data(atom(k), *split_negations(v))
            for k, v in stable_masked_use.items())
        self.stable_masked_use.freeze()

        self.forced_use = ChunkedDataDict()
        self.forced_use.update_from_stream(
            chunked_data(atom(k), *split_negations(v))
            for k, v in forced_use.items())
        self.forced_use.freeze()

        self.stable_forced_use = ChunkedDataDict()
        self.stable_forced_use.update_from_stream(
            chunked_data(atom(k), *split_negations(v))
            for k, v in stable_forced_use.items())
        self.stable_forced_use.freeze()

        self.pkg_use = ChunkedDataDict()
        self.pkg_use.update_from_stream(
            chunked_data(atom(k), *split_negations(v))
            for k, v in pkg_use.items())
        self.pkg_use.freeze()

        self.masks = tuple(map(atom, masks))
        self.unmasks = tuple(map(atom, unmasks))
        self.iuse_effective = set(iuse_effective)
        self.use = set(use)
        self.key = arch
        self.name = name

        vfilter = domain.generate_filter(self.masks, self.unmasks)
        self.visible = vfilter.match
Ejemplo n.º 9
0
class FakeProfile(object):

    def __init__(self, masked_use={}, stable_masked_use={}, forced_use={},
                 stable_forced_use={}, provides={}, iuse_effective=[],
                 masks=[], unmasks=[], arch='x86', name='none'):
        self.provides_repo = SimpleTree(provides)

        self.masked_use = ChunkedDataDict()
        self.masked_use.update_from_stream(
            chunked_data(atom(k), *split_negations(v))
            for k, v in masked_use.iteritems())
        self.masked_use.freeze()

        self.stable_masked_use = ChunkedDataDict()
        self.stable_masked_use.update_from_stream(
            chunked_data(atom(k), *split_negations(v))
            for k, v in stable_masked_use.iteritems())
        self.stable_masked_use.freeze()

        self.forced_use = ChunkedDataDict()
        self.forced_use.update_from_stream(
            chunked_data(atom(k), *split_negations(v))
            for k, v in forced_use.iteritems())
        self.forced_use.freeze()

        self.stable_forced_use = ChunkedDataDict()
        self.stable_forced_use.update_from_stream(
            chunked_data(atom(k), *split_negations(v))
            for k, v in stable_forced_use.iteritems())
        self.stable_forced_use.freeze()

        self.masks = tuple(map(atom, masks))
        self.unmasks = tuple(map(atom, unmasks))
        self.iuse_effective = tuple(iuse_effective)
        self.arch = arch
        self.name = name
Ejemplo n.º 10
0
 def pkg_use(self, data):
     c = ChunkedDataDict()
     c.update_from_stream(
         chain.from_iterable(self._parse_package_use(data).itervalues()))
     c.freeze()
     return c
Ejemplo n.º 11
0
 def stable_forced_use(self):
     use = ChunkedDataDict()
     use.merge(getattr(self.profile, 'stable_forced_use'))
     use.add_bare_global((), (self.arch,))
     use.freeze()
     return use
Ejemplo n.º 12
0
 def pkg_use(self, data):
     c = ChunkedDataDict()
     c.update_from_stream(
         chain.from_iterable(self._parse_package_use(data).itervalues()))
     c.freeze()
     return c