From 5f5c69d93397ab771a2d6e995462628fa909d5ab Mon Sep 17 00:00:00 2001 From: Till Maas Date: Sat, 24 May 2014 09:37:51 +0200 Subject: Speed up PackageList() --- cnucnu/package_list.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/cnucnu/package_list.py b/cnucnu/package_list.py index c211de2..bf8e41f 100755 --- a/cnucnu/package_list.py +++ b/cnucnu/package_list.py @@ -334,10 +334,15 @@ class PackageList: page_text, package_line_regex, "== List Of Packages ==", ""): (name, regex, url) = package_data - matched_names = fnmatch.filter(repo.nvr_dict.keys(), name) - if len(matched_names) == 0: - # Add non-matching name to trigger an error/warning later - # FIXME: Properly report bad names + # fnmatch.filter() is very slow, therefore check first if any + # wildcard chars exist + if "*" in name or "?" in name or "[" in name: + matched_names = fnmatch.filter(repo.nvr_dict.keys(), name) + if len(matched_names) == 0: + # Add non-matching name to trigger an error/warning + # later FIXME: Properly report bad names + matched_names = [name] + else: matched_names = [name] for name in matched_names: packages.append( -- cgit