def __init__(self, *args, **kwargs): ''' See :py:method`.BaseAnalyzer.__init__` for details. Parameters ---------- serialize_apks : bool, optional (default is True) If true, serialize .apk . Otherwise id (hash) of the apk will be send and fetched by the worker from the result db. Be sure to import the apks to the result db first! ''' serialize_apks = kwargs.get("serialize_apks", True) super(DistributedAnalyzer, self).__init__(*args, **kwargs) # list(apk_path, _apk, is_apk) self.__apks = list(AnalyzeUtil.apk_gen(self.apks_or_paths)) # result group self.group_result = None # serialize .apk data self.__serialize_apks = serialize_apks if serialize_apks: clilog.info("Will serialize .apk data!") else: clilog.info("Will send id of apks!") self.analyze_stats_view = None # stats view for cli self.analyze_stats_view = AnalysisStatsView(self._cnt_apks) self.analyze_stats_view.daemon = True # the `TaskCollection` for the analysis tasks self.task_collection = TaskCollection(self._cnt_apks) # register celery signals self.register_signals() self.lock = Lock()