Source code for dynamo_consistency.cms.filters

"""
This module defines any filters that are used specifically for CMS.
"""

import logging


LOG = logging.getLogger(__name__)


[docs]class DatasetFilter(object): """ Filter to check if files are in the CMS-style datasets :param set datasets: Set (or other collection) of datasets using CMS notation that we want to identify files as part of """ def __init__(self, datasets): self._datasets = datasets
[docs] def protected(self, file_name): """ Returns whether the file is in a stored dataset. If the file name is not structured in a way to get the dataset out, then this function chooses to filter it out. :param str file_name: Full LFN of file :returns: If file belongs to a dataset that is stored :rtype: bool """ LOG.debug('Checking file_name: %s', file_name) split_name = file_name.split('/') try: return '/%s/%s-%s/%s' % (split_name[4], split_name[3], split_name[6], split_name[5]) in self._datasets except IndexError: LOG.warning('Strange file name: %s', file_name) return True