main: get_rules: remove progress bar

This commit is contained in:
Willi Ballenthin
2023-01-21 19:38:23 +01:00
parent 3dfd16c033
commit 67cfefd2df
7 changed files with 8 additions and 16 deletions

View File

@@ -585,7 +585,7 @@ class CapaExplorerForm(idaapi.PluginForm):
if ida_kernwin.user_cancelled():
raise UserCancelledError("user cancelled")
self.ruleset_cache = capa.main.get_rules([rule_path], disable_progress=True, on_load_rule=on_load_rule)
self.ruleset_cache = capa.main.get_rules([rule_path], on_load_rule=on_load_rule)
except UserCancelledError:
logger.info("User cancelled analysis.")
return False

View File

@@ -606,14 +606,12 @@ def on_load_rule_default(_path: RulePath, i: int, _total: int) -> None:
def get_rules(
rule_paths: List[RulePath],
disable_progress=False,
cache_dir=None,
on_load_rule: Callable[[RulePath, int, int], None] = on_load_rule_default,
) -> RuleSet:
"""
args:
rule_paths: list of paths to rules files or directories containing rules files
disable_progress: disable progress bar
cache_dir: directory to use for caching rules, or will use the default detected cache directory if None
on_load_rule: callback to invoke before a rule is loaded, use for progress or cancellation
"""
@@ -637,14 +635,8 @@ def get_rules(
rules = [] # type: List[Rule]
pbar = tqdm.tqdm
if disable_progress:
# do not use tqdm to avoid unnecessary side effects when caller intends
# to disable progress completely
pbar = lambda s, *args, **kwargs: s
total_rule_count = len(rule_file_paths)
for i, (path, content) in pbar(list(enumerate(zip(rule_file_paths, rule_contents))), desc="loading ", unit=" rules"):
for i, (path, content) in enumerate(zip(rule_file_paths, rule_contents)):
on_load_rule(path, i, total_rule_count)
try:
@@ -1066,7 +1058,7 @@ def main(argv=None):
else:
cache_dir = capa.rules.cache.get_default_cache_directory()
rules = get_rules(args.rules, disable_progress=args.quiet, cache_dir=cache_dir)
rules = get_rules(args.rules, cache_dir=cache_dir)
logger.debug(
"successfully loaded %s rules",

View File

@@ -49,7 +49,7 @@ def main(argv=None):
try:
os.makedirs(args.cache, exist_ok=True)
rules = capa.main.get_rules(args.rules, disable_progress=True, cache_dir=args.cache)
rules = capa.main.get_rules(args.rules, cache_dir=args.cache)
logger.info("successfully loaded %s rules", len(rules))
except (IOError, capa.rules.InvalidRule, capa.rules.InvalidRuleSet) as e:
logger.error("%s", str(e))

View File

@@ -709,7 +709,7 @@ def main(argv=None):
logging.getLogger("capa2yara").setLevel(level)
try:
rules = capa.main.get_rules([args.rules], disable_progress=True)
rules = capa.main.get_rules(args.rules)
namespaces = capa.rules.index_rules_by_namespace(list(rules.rules.values()))
logger.info("successfully loaded %s rules (including subscope rules which will be ignored)", len(rules))
if args.tag:

View File

@@ -161,7 +161,7 @@ def render_dictionary(doc: rd.ResultDocument) -> Dict[str, Any]:
# ==== render dictionary helpers
def capa_details(rules_path, file_path, output_format="dictionary"):
# load rules from disk
rules = capa.main.get_rules([rules_path], disable_progress=True)
rules = capa.main.get_rules([rules_path])
# extract features and find capabilities
extractor = capa.main.get_extractor(file_path, "auto", capa.main.BACKEND_VIV, [], False, disable_progress=True)

View File

@@ -998,7 +998,7 @@ def main(argv=None):
time0 = time.time()
try:
rules = capa.main.get_rules(args.rules, disable_progress=True)
rules = capa.main.get_rules(args.rules)
logger.info("successfully loaded %s rules", len(rules))
if args.tag:
rules = rules.filter_rules_by_meta(args.tag)

View File

@@ -88,7 +88,7 @@ def main(argv=None):
try:
with capa.main.timing("load rules"):
rules = capa.main.get_rules(args.rules, disable_progress=True)
rules = capa.main.get_rules(args.rules)
except (IOError) as e:
logger.error("%s", str(e))
return -1