Source code for repoman.common.filters.name

#!/usr/bin/env python
"""
Usage::

    source:name~regexp

Filter packges by file name, for example::

    http://myhost.com/packages/:name~vdsm.*

Will match all the packages in that url that have vdsm.* as name (will not
match any previous path in the url)
"""
import re
from . import ArtifactFilter
from ..utils import split


[docs]class NameFilter(ArtifactFilter): __doc__ = __doc__ DEFAULT_CONFIG = {} CONFIG_SECTION = 'NameFilter'
[docs] def filter(self, filters_str, art_list): filtered_arts = set() if filters_str.startswith('name~'): name_reg, filters_str = split(filters_str, ':', 1) name_match = re.compile(name_reg.split('~', 1)[-1]) for art in art_list: if name_match.match(art.rsplit('/', 1)[-1]): filtered_arts.add(art) return filters_str, filtered_arts else: return filters_str, art_list