diff options
Diffstat (limited to 'libbe/command/list.py')
-rw-r--r-- | libbe/command/list.py | 67 |
1 files changed, 1 insertions, 66 deletions
diff --git a/libbe/command/list.py b/libbe/command/list.py index 645ae04..06249a0 100644 --- a/libbe/command/list.py +++ b/libbe/command/list.py @@ -25,6 +25,7 @@ import libbe import libbe.bug import libbe.command import libbe.command.depend +from libbe.command.depend import Filter, parse_status, parse_severity import libbe.command.tag import libbe.command.target import libbe.command.util @@ -33,72 +34,6 @@ import libbe.command.util AVAILABLE_CMPS = [fn[4:] for fn in dir(libbe.bug) if fn[:4] == 'cmp_'] AVAILABLE_CMPS.remove('attr') # a cmp_* template. -class Filter (object): - def __init__(self, status='all', severity='all', assigned='all', - target='all', extra_strings_regexps=[]): - self.status = status - self.severity = severity - self.assigned = assigned - self.target = target - self.extra_strings_regexps = extra_strings_regexps - - def __call__(self, bugdir, bug): - if self.status != 'all' and not bug.status in self.status: - return False - if self.severity != 'all' and not bug.severity in self.severity: - return False - if self.assigned != 'all' and not bug.assigned in self.assigned: - return False - if self.target == 'all': - pass - else: - target_bug = libbe.command.target.bug_target(bugdir, bug) - if self.target in ['none', None]: - if target_bug.summary != None: - return False - else: - if target_bug.summary != self.target: - return False - if len(bug.extra_strings) == 0: - if len(self.extra_strings_regexps) > 0: - return False - elif len(self.extra_strings_regexps) > 0: - matched = False - for string in bug.extra_strings: - for regexp in self.extra_strings_regexps: - if regexp.match(string): - matched = True - break - if matched == True: - break - if matched == False: - return False - return True - -def parse_status(status): - if status == 'all': - status = libbe.bug.status_values - elif status == 'active': - status = list(libbe.bug.active_status_values) - elif status == 'inactive': - status = list(libbe.bug.inactive_status_values) - else: - status = libbe.command.util.select_values( - status, libbe.bug.status_values) - return status - -def parse_severity(severity, important=False): - if severity == 'all': - severity = libbe.bug.severity_values - elif important == True: - serious = libbe.bug.severity_values.index('serious') - severity.append(list(libbe.bug.severity_values[serious:])) - else: - severity = libbe.command.util.select_values( - severity, libbe.bug.severity_values) - return severity - - class List (libbe.command.Command): """List bugs |