Esempio n. 1
0
 def _get_context(request, stubs=None, pkg_path=None, data_dir=None):
     stubs = stubs or []
     _frozen = [s.frozen for s in stubs]
     _fware = [s.firmware.frozen for s in stubs if s.firmware is not None]
     _stub_paths = [s.stubs for s in stubs]
     _paths = setutils.IndexedSet([*_frozen, *_fware, *_stub_paths])
     _context = {
         'base': {},
         'stubs': {
             'stubs': set(stubs),
             'paths': _paths,
             'datadir': data_dir,
         },
         'reqs': {
             'paths': setutils.IndexedSet([pkg_path]),
             'local_paths': set([])
         }
     }
     if request == 'all':
         request = ",".join(list(_context.keys()))
     mods = request.split(',')
     if 'reqs' in mods and 'stubs' in mods:
         _ctx = _context['stubs'].copy()
         _ctx['paths'].update(_context['reqs']['paths'])
         _ctx['local_paths'] = _context['reqs']['local_paths']
         return _ctx
     context = {}
     for m in mods:
         context = {**context, **_context.get(m, {})}
     return context
Esempio n. 2
0
 def _get_context(request, stubs=None, pkg_path=None, data_dir=None):
     stubs = stubs or []
     _frozen = [s.frozen for s in stubs]
     _fware = [s.firmware.frozen for s in stubs if s.firmware is not None]
     _stub_paths = [s.stubs for s in stubs]
     _paths = setutils.IndexedSet([*_frozen, *_fware, *_stub_paths])
     _context = {
         "base": {},
         "stubs": {
             "stubs": set(stubs),
             "paths": _paths,
             "datadir": data_dir,
         },
         "reqs": {
             "paths": setutils.IndexedSet([pkg_path]),
             "local_paths": set([])
         },
     }
     if request == "all":
         request = ",".join(list(_context.keys()))
     mods = request.split(",")
     if "reqs" in mods and "stubs" in mods:
         _ctx = _context["stubs"].copy()
         _ctx["paths"].update(_context["reqs"]["paths"])
         _ctx["local_paths"] = _context["reqs"]["local_paths"]
         return _ctx
     context = {}
     for m in mods:
         context = {**context, **_context.get(m, {})}
     return context
Esempio n. 3
0
    def get_stub_tree(self, stubs) -> Sequence[Path]:
        """Retrieve and order paths to base stubs and any stubs they depend on.

        Args:
            stubs: List of Stub Items

        Returns:
            Paths to all stubs project depends on.

        """
        stub_tree = setutils.IndexedSet()
        base_stubs = setutils.IndexedSet([s.stubs for s in stubs])
        frozen = [s.frozen for s in stubs]
        fware_mods = [
            s.firmware.frozen for s in stubs if s.firmware is not None
        ]
        stub_tree.update(*frozen, *fware_mods, *base_stubs)
        return list(stub_tree)
Esempio n. 4
0
    def context(self):
        """Component stub context."""
        paths = setutils.IndexedSet()
        if self.stubs:
            frozen = [s.frozen for s in self.stubs]
            fware_mods = [s.firmware.frozen
                          for s in self.stubs if s.firmware is not None]
            stub_paths = [s.stubs for s in self.stubs]
            paths.update(*frozen, *fware_mods, *stub_paths)

        return {
            "stubs": set(self.stubs),
            "paths": paths,
            "datadir": self.parent.data_path,
        }