#357 Add exclude_rules settings option

This commit is contained in:
nvbn
2015-09-06 12:55:59 +03:00
parent 4ae2e9bbc4
commit 2f9db24ed1
5 changed files with 47 additions and 16 deletions
+6 -1
View File
@@ -26,6 +26,7 @@ DEFAULT_PRIORITY = 1000
DEFAULT_SETTINGS = {'rules': DEFAULT_RULES,
'exclude_rules': [],
'wait_command': 3,
'require_confirmation': True,
'no_colors': False,
@@ -34,6 +35,7 @@ DEFAULT_SETTINGS = {'rules': DEFAULT_RULES,
'env': {'LC_ALL': 'C', 'LANG': 'C', 'GIT_TRACE': '1'}}
ENV_TO_ATTR = {'THEFUCK_RULES': 'rules',
'THEFUCK_EXCLUDE_RULES': 'exclude_rules',
'THEFUCK_WAIT_COMMAND': 'wait_command',
'THEFUCK_REQUIRE_CONFIRMATION': 'require_confirmation',
'THEFUCK_NO_COLORS': 'no_colors',
@@ -84,7 +86,7 @@ def _priority_from_env(val):
def _val_from_env(env, attr):
"""Transforms env-strings to python."""
val = os.environ[env]
if attr == 'rules':
if attr in ('rules', 'exclude_rules'):
return _rules_from_env(val)
elif attr == 'priority':
return dict(_priority_from_env(val))
@@ -123,6 +125,9 @@ def get_settings(user_dir):
if not isinstance(conf['rules'], types.RulesNamesList):
conf['rules'] = types.RulesNamesList(conf['rules'])
if not isinstance(conf['exclude_rules'], types.RulesNamesList):
conf['exclude_rules'] = types.RulesNamesList(conf['exclude_rules'])
return types.Settings(conf)
+2 -1
View File
@@ -23,7 +23,8 @@ def get_loaded_rules(rules, settings):
for rule in rules:
if rule.name != '__init__.py':
loaded_rule = load_rule(rule, settings)
if loaded_rule in settings.rules:
if loaded_rule in settings.rules and \
loaded_rule not in settings.exclude_rules:
yield loaded_rule