| Index: abp/filters/parser.py | 
| =================================================================== | 
| --- a/abp/filters/parser.py | 
| +++ b/abp/filters/parser.py | 
| @@ -21,9 +21,9 @@ | 
| from collections import namedtuple | 
|  | 
| __all__ = [ | 
| -    'FILTER_ACTION', | 
| -    'FILTER_OPTION', | 
| -    'SELECTOR_TYPE', | 
| +    'FilterAction', | 
| +    'FilterOption', | 
| +    'SelectorType', | 
| 'ParseError', | 
| 'parse_filterlist', | 
| 'parse_line', | 
| @@ -49,7 +49,7 @@ | 
|  | 
|  | 
| # Constants related to filters (see https://adblockplus.org/filters). | 
| -class SELECTOR_TYPE:  # flake8: noqa (this is a namespace of constants). | 
| +class SelectorType: | 
| """Selector type constants.""" | 
|  | 
| URL_PATTERN = 'url-pattern'  # Normal URL patterns. | 
| @@ -59,7 +59,7 @@ | 
| ABP_SIMPLE = 'abp-simple'    # Simplified element hiding syntax. | 
|  | 
|  | 
| -class FILTER_ACTION:  # flake8: noqa (this is a namespace of constants). | 
| +class FilterAction: | 
| """Filter action constants.""" | 
|  | 
| BLOCK = 'block'              # Block the request. | 
| @@ -68,7 +68,7 @@ | 
| SHOW = 'show'                # Show selected element(s) (whitelist). | 
|  | 
|  | 
| -class FILTER_OPTION:  # flake8: noqa (this is a namespace of constants). | 
| +class FilterOption: | 
| """Filter option constants.""" | 
|  | 
| # Resource types. | 
| @@ -171,9 +171,9 @@ | 
| name, value = _parse_option(option) | 
|  | 
| # Handle special cases of multivalued options. | 
| -    if name == FILTER_OPTION.DOMAIN: | 
| +    if name == FilterOption.DOMAIN: | 
| value = [_parse_option(o) for o in value.split('|')] | 
| -    elif name == FILTER_OPTION.SITEKEY: | 
| +    elif name == FilterOption.SITEKEY: | 
| value = value.split('|') | 
|  | 
| return name, value | 
| @@ -186,12 +186,12 @@ | 
| def _parse_blocking_filter(text): | 
| # Based on RegExpFilter.fromText in lib/filterClasses.js | 
| # in https://hg.adblockplus.org/adblockpluscore. | 
| -    action = FILTER_ACTION.BLOCK | 
| +    action = FilterAction.BLOCK | 
| options = [] | 
| selector = text | 
|  | 
| if selector.startswith('@@'): | 
| -        action = FILTER_ACTION.ALLOW | 
| +        action = FilterAction.ALLOW | 
| selector = selector[2:] | 
|  | 
| if '$' in selector: | 
| @@ -202,26 +202,26 @@ | 
|  | 
| if (len(selector) > 1 | 
| and selector.startswith('/') and selector.endswith('/')): | 
| -        selector = {'type': SELECTOR_TYPE.URL_REGEXP, 'value': selector[1:-1]} | 
| +        selector = {'type': SelectorType.URL_REGEXP, 'value': selector[1:-1]} | 
| else: | 
| -        selector = {'type': SELECTOR_TYPE.URL_PATTERN, 'value': selector} | 
| +        selector = {'type': SelectorType.URL_PATTERN, 'value': selector} | 
|  | 
| return Filter(text, selector, action, options) | 
|  | 
|  | 
| def _parse_hiding_filter(text, domain, type_flag, selector_value): | 
| -    selector = {'type': SELECTOR_TYPE.CSS, 'value': selector_value} | 
| -    action = FILTER_ACTION.HIDE | 
| +    selector = {'type': SelectorType.CSS, 'value': selector_value} | 
| +    action = FilterAction.HIDE | 
| options = [] | 
|  | 
| if type_flag == '@': | 
| -        action = FILTER_ACTION.SHOW | 
| +        action = FilterAction.SHOW | 
| elif type_flag == '?': | 
| -        selector['type'] = SELECTOR_TYPE.XCSS | 
| +        selector['type'] = SelectorType.XCSS | 
|  | 
| if domain: | 
| domains = [_parse_option(d) for d in domain.split(',')] | 
| -        options.append((FILTER_OPTION.DOMAIN, domains)) | 
| +        options.append((FilterOption.DOMAIN, domains)) | 
|  | 
| return Filter(text, selector, action, options) | 
|  | 
|  |