Merge pull request #4950 from tk0miya/refactor_config

refactor: Fill types column for default config_values
This commit is contained in:
Takayuki SHIMIZUKAWA 2018-05-12 15:19:14 +09:00 committed by GitHub
commit 64a308b424
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -91,57 +91,57 @@ class Config(object):
config_values = dict( config_values = dict(
# general options # general options
project = ('Python', 'env'), project = ('Python', 'env', []),
author = ('unknown', 'env'), author = ('unknown', 'env', []),
copyright = ('', 'html'), copyright = ('', 'html', []),
version = ('', 'env'), version = ('', 'env', []),
release = ('', 'env'), release = ('', 'env', []),
today = ('', 'env'), today = ('', 'env', []),
# the real default is locale-dependent # the real default is locale-dependent
today_fmt = (None, 'env', string_classes), today_fmt = (None, 'env', string_classes),
language = (None, 'env', string_classes), language = (None, 'env', string_classes),
locale_dirs = (['locales'], 'env'), locale_dirs = (['locales'], 'env', []),
figure_language_filename = (u'{root}.{language}{ext}', 'env', [str]), figure_language_filename = (u'{root}.{language}{ext}', 'env', [str]),
master_doc = ('contents', 'env'), master_doc = ('contents', 'env', []),
source_suffix = ({'.rst': 'restructuredtext'}, 'env', Any), source_suffix = ({'.rst': 'restructuredtext'}, 'env', Any),
source_encoding = ('utf-8-sig', 'env'), source_encoding = ('utf-8-sig', 'env', []),
source_parsers = ({}, 'env'), source_parsers = ({}, 'env', []),
exclude_patterns = ([], 'env'), exclude_patterns = ([], 'env', []),
default_role = (None, 'env', string_classes), default_role = (None, 'env', string_classes),
add_function_parentheses = (True, 'env'), add_function_parentheses = (True, 'env', []),
add_module_names = (True, 'env'), add_module_names = (True, 'env', []),
trim_footnote_reference_space = (False, 'env'), trim_footnote_reference_space = (False, 'env', []),
show_authors = (False, 'env'), show_authors = (False, 'env', []),
pygments_style = (None, 'html', string_classes), pygments_style = (None, 'html', string_classes),
highlight_language = ('default', 'env'), highlight_language = ('default', 'env', []),
highlight_options = ({}, 'env'), highlight_options = ({}, 'env', []),
templates_path = ([], 'html'), templates_path = ([], 'html', []),
template_bridge = (None, 'html', string_classes), template_bridge = (None, 'html', string_classes),
keep_warnings = (False, 'env'), keep_warnings = (False, 'env', []),
suppress_warnings = ([], 'env'), suppress_warnings = ([], 'env', []),
modindex_common_prefix = ([], 'html'), modindex_common_prefix = ([], 'html', []),
rst_epilog = (None, 'env', string_classes), rst_epilog = (None, 'env', string_classes),
rst_prolog = (None, 'env', string_classes), rst_prolog = (None, 'env', string_classes),
trim_doctest_flags = (True, 'env'), trim_doctest_flags = (True, 'env', []),
primary_domain = ('py', 'env', [NoneType]), primary_domain = ('py', 'env', [NoneType]),
needs_sphinx = (None, None, string_classes), needs_sphinx = (None, None, string_classes),
needs_extensions = ({}, None), needs_extensions = ({}, None, []),
manpages_url = (None, 'env'), manpages_url = (None, 'env', []),
nitpicky = (False, None), nitpicky = (False, None, []),
nitpick_ignore = ([], None), nitpick_ignore = ([], None, []),
numfig = (False, 'env'), numfig = (False, 'env', []),
numfig_secnum_depth = (1, 'env'), numfig_secnum_depth = (1, 'env', []),
numfig_format = ({}, 'env'), # will be initialized in init_numfig_format() numfig_format = ({}, 'env', []), # will be initialized in init_numfig_format()
tls_verify = (True, 'env'), tls_verify = (True, 'env', []),
tls_cacerts = (None, 'env'), tls_cacerts = (None, 'env', []),
smartquotes = (True, 'env'), smartquotes = (True, 'env', []),
smartquotes_action = ('qDe', 'env'), smartquotes_action = ('qDe', 'env', []),
smartquotes_excludes = ({'languages': ['ja'], smartquotes_excludes = ({'languages': ['ja'],
'builders': ['man', 'text']}, 'builders': ['man', 'text']},
'env'), 'env', []),
) # type: Dict[unicode, Tuple] ) # type: Dict[unicode, Tuple]
def __init__(self, *args): def __init__(self, *args):
@ -203,7 +203,7 @@ class Config(object):
return value return value
else: else:
defvalue = self.values[name][0] defvalue = self.values[name][0]
if self.values[name][-1] == Any: if self.values[name][2] == Any:
return value return value
elif isinstance(defvalue, dict): elif isinstance(defvalue, dict):
raise ValueError(__('cannot override dictionary config setting %r, ' raise ValueError(__('cannot override dictionary config setting %r, '
@ -395,9 +395,7 @@ def check_confval_types(app, config):
that can result in TypeErrors all over the place NB. that can result in TypeErrors all over the place NB.
""" """
for confval in config: for confval in config:
settings = config.values[confval.name] default, rebuild, annotations = config.values[confval.name]
default = settings[0]
annotations = settings[2] if len(settings) == 3 else ()
if hasattr(default, '__call__'): if hasattr(default, '__call__'):
default = default(config) # evaluate default value default = default(config) # evaluate default value