コード例 #1
0
    def __init__(self, qt_is_safe=False):

        self.qt_is_safe = qt_is_safe
        self._blacklist = []
        self._tasks = []
        self._load_queue = LifoQueue()
        self._instantiate_queue = LifoQueue()
        self._observers = []
        self.type_mapping = {}
        self.plugin_types = {}
        self.instantiating = False

        # A QRunnable-based background Worker
        self.plugin_loader = threads.QThreadFutureIterator(self._load_plugins)

        # Remember all modules loaded before any plugins are loaded; don't bother unloading these
        self._preloaded_modules = set(sys.modules.keys())

        # Observe changes to venvs
        if venvsobservers is not None:
            venvsobservers.append(self)

        self.initialize_types()

        # Check if cammart should be ignored
        try:
            args = parse_args(exit_on_fail=False)
            include_cammart = not args.nocammart
            self._blacklist = args.blacklist
        except RuntimeError:
            include_cammart = False

        # ...if so, blacklist it
        if not include_cammart:
            self._blacklist.extend(["cammart", "venvs"])
コード例 #2
0
def main():
    args = parse_args(exit_on_fail=True)
    if args.verbose > 1:
        tracer = trace.Trace(count=False, trace=True)
        tracer.run("_main(args)")
    else:
        return _main(args)
コード例 #3
0
ファイル: __init__.py プロジェクト: danielballan/Xi-cam
    def __init__(self, qt_is_safe=False):

        self.qt_is_safe = qt_is_safe
        self._blacklist = []
        self._load_queue = LifoQueue()
        self._instantiate_queue = LifoQueue()
        self._entrypoints = {}
        self._load_cache = {}
        self._observers = []
        self.state = State.READY
        self.type_mapping = {}
        self.plugin_types = {}

        # Remember all modules loaded before any plugins are loaded; don't bother unloading these
        self._preloaded_modules = set(sys.modules.keys())

        # Observe changes to venvs
        if venvsobservers is not None:
            venvsobservers.append(self)

        self.initialize_types()

        # Check if cammart should be ignored
        try:
            args = parse_args(exit_on_fail=False)
            include_cammart = not args.nocammart
            self._blacklist = args.blacklist
        except RuntimeError:
            include_cammart = False

        # ...if so, blacklist it
        if not include_cammart:
            self._blacklist.extend(["cammart", "venvs"])
コード例 #4
0
def main():
    args = parse_args(exit_on_fail=True)
    if args.verbose > 1:
        tracer = trace.Trace(count=False, trace=True)
        tracer.run(f"_main(None)")  # TODO: map args into main
    else:
        return _main(args)
コード例 #5
0
    def __init__(self):

        self._blacklist = []
        self._load_queue = LifoQueue()
        self._instantiate_queue = LifoQueue()
        self._entrypoints = {}
        self._load_cache = {}
        self._observers = []
        self.state = State.READY
        self.type_mapping = {}
        self.plugin_types = {}

        # Remember all modules loaded before any plugins are loaded; don't bother unloading these
        self._preloaded_modules = set(sys.modules.keys())

        # Observe changes to venvs
        if venvsobservers is not None:
            venvsobservers.append(self)

        # Load plugin types
        self.plugin_types = {
            name: ep.load()
            for name, ep in entrypoints.get_group_named(
                'xicam.plugins.PluginType').items()
        }

        # Toss plugin types that need qt if running without qt
        if not qt_is_safe:
            self.plugin_types = {
                type_name: type_class
                for type_name, type_class in self.plugin_types.items()
                if not getattr(type_class, 'needs_qt', True)
            }

        # Initialize types
        self.type_mapping = {
            type_name: {}
            for type_name in self.plugin_types.keys()
        }
        self._entrypoints = {
            type_name: {}
            for type_name in self.plugin_types.keys()
        }
        self._load_cache = {
            type_name: {}
            for type_name in self.plugin_types.keys()
        }

        # Check if cammart should be ignored
        try:
            args = parse_args(exit_on_fail=False)
            include_cammart = not args.nocammart
            self._blacklist = args.blacklist
        except RuntimeError:
            include_cammart = False

        # ...if so, blacklist it
        if not include_cammart:
            self._blacklist.extend(['cammart', 'venvs'])