mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
use 'callable' to check if object is callable (B004)
This commit is contained in:
parent
72d352f64e
commit
61ff90460d
@ -206,7 +206,7 @@ class Config:
|
|||||||
except ValueError as exc:
|
except ValueError as exc:
|
||||||
raise ValueError(__('invalid number %r for config value %r, ignoring') %
|
raise ValueError(__('invalid number %r for config value %r, ignoring') %
|
||||||
(value, name)) from exc
|
(value, name)) from exc
|
||||||
elif hasattr(defvalue, '__call__'):
|
elif callable(defvalue):
|
||||||
return value
|
return value
|
||||||
elif defvalue is not None and not isinstance(defvalue, str):
|
elif defvalue is not None and not isinstance(defvalue, str):
|
||||||
raise ValueError(__('cannot override config setting %r with unsupported '
|
raise ValueError(__('cannot override config setting %r with unsupported '
|
||||||
@ -257,7 +257,7 @@ class Config:
|
|||||||
if name not in self.values:
|
if name not in self.values:
|
||||||
raise AttributeError(__('No such config value: %s') % name)
|
raise AttributeError(__('No such config value: %s') % name)
|
||||||
default = self.values[name][0]
|
default = self.values[name][0]
|
||||||
if hasattr(default, '__call__'):
|
if callable(default):
|
||||||
return default(self)
|
return default(self)
|
||||||
return default
|
return default
|
||||||
|
|
||||||
@ -413,7 +413,7 @@ def check_confval_types(app: "Sphinx", config: Config) -> None:
|
|||||||
for confval in config:
|
for confval in config:
|
||||||
default, rebuild, annotations = config.values[confval.name]
|
default, rebuild, annotations = config.values[confval.name]
|
||||||
|
|
||||||
if hasattr(default, '__call__'):
|
if callable(default):
|
||||||
default = default(config) # evaluate default value
|
default = default(config) # evaluate default value
|
||||||
if default is None and not annotations:
|
if default is None and not annotations:
|
||||||
continue # neither inferable nor expliclitly annotated types
|
continue # neither inferable nor expliclitly annotated types
|
||||||
|
@ -301,7 +301,7 @@ def isstaticmethod(obj: Any, cls: Any = None, name: str = None) -> bool:
|
|||||||
def isdescriptor(x: Any) -> bool:
|
def isdescriptor(x: Any) -> bool:
|
||||||
"""Check if the object is some kind of descriptor."""
|
"""Check if the object is some kind of descriptor."""
|
||||||
for item in '__get__', '__set__', '__delete__':
|
for item in '__get__', '__set__', '__delete__':
|
||||||
if hasattr(safe_getattr(x, item, None), '__call__'):
|
if callable(safe_getattr(x, item, None)):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ def check_xpath(etree, fname, path, check, be_found=True):
|
|||||||
else:
|
else:
|
||||||
assert nodes != [], ('did not find any node matching xpath '
|
assert nodes != [], ('did not find any node matching xpath '
|
||||||
'%r in file %s' % (path, fname))
|
'%r in file %s' % (path, fname))
|
||||||
if hasattr(check, '__call__'):
|
if callable(check):
|
||||||
check(nodes)
|
check(nodes)
|
||||||
elif not check:
|
elif not check:
|
||||||
# only check for node presence
|
# only check for node presence
|
||||||
|
Loading…
Reference in New Issue
Block a user