Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
sys.modules["foo"] = foo
mod = __import__("foo")
break
else:
raise ImportError("No module named {}".format(module_name))
reduce_ = getattr(functools, 'reduce', None) or reduce
mod = reduce_(getattr, module_name.split('.')[1:], mod)
globals_ = builtins
if not isinstance(globals_, dict):
globals_ = globals_.__dict__
return eval(expr, globals_, mod.__dict__)
class AutoprogramDirective(Directive):
has_content = False
required_arguments = 1
option_spec = {
'prog': unchanged,
'maxdepth': unchanged,
'start_command': unchanged,
'strip_usage': unchanged,
'no_usage_codeblock': unchanged,
'label': unchanged,
}
def make_rst(self):
import_name, = self.arguments
parser = import_object(import_name or '__undefined__')
prog = self.options.get('prog')
"""
Perform a specialized doctest.
"""
from .custom_doctests import doctests
args = decorator.split()
doctest_type = args[1]
if doctest_type in doctests:
doctests[doctest_type](self, args, input_lines, found, submitted)
else:
e = "Invalid option to @doctest: {0}".format(doctest_type)
raise Exception(e)
class IPythonDirective(Directive):
has_content = True
required_arguments = 0
optional_arguments = 4 # python, suppress, verbatim, doctest
final_argumuent_whitespace = True
option_spec = { 'python': directives.unchanged,
'suppress' : directives.flag,
'verbatim' : directives.flag,
'doctest' : directives.flag,
}
shell = None
seen_docs = set()
def get_config_options(self):
def get_doc_for_http_method(self, resource, http_method):
return inspect.getdoc(self.get_http_method_func(resource,
http_method)) or ''
def get_http_methods(self, resource, is_list):
if is_list:
possible_http_methods = self.list_http_methods
else:
possible_http_methods = self.item_http_methods
return sorted(
set(resource.allowed_methods).intersection(possible_http_methods))
class ResourceTreeDirective(Directive):
has_content = True
def run(self):
bullet_list = nodes.bullet_list()
self._output_resource(resources.root, bullet_list, True)
return [bullet_list]
def _output_resource(self, resource, parent, is_list):
item = nodes.list_item()
parent += item
paragraph = nodes.paragraph()
item += paragraph
paragraph += parse_text(
node['options'] = {}
if 'graphviz_dot' in self.options:
node['options']['graphviz_dot'] = self.options['graphviz_dot']
if 'alt' in self.options:
node['alt'] = self.options['alt']
if 'inline' in self.options:
node['inline'] = True
caption = self.options.get('caption')
if caption:
node = figure_wrapper(self, node, caption)
return [node]
class GraphvizSimple(Directive):
"""
Directive to insert arbitrary dot markup.
"""
has_content = True
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = False
option_spec = {
'alt': directives.unchanged,
'inline': directives.flag,
'caption': directives.unchanged,
'graphviz_dot': directives.unchanged,
}
def run(self):
node = graphviz()
if func.explicit:
signode += addnodes.desc_annotation('explicit', 'explicit')
signode += nodes.Text(' ')
if func.virtual:
signode += addnodes.desc_annotation('virtual', 'virtual')
signode += nodes.Text(' ')
# return value is None for things with a reverse return value
# such as casting operator definitions or constructors
# and destructors.
if func.rv is not None:
self.attach_type(signode, func.rv)
signode += nodes.Text(u' ')
self.attach_function(signode, func)
class OCVCurrentNamespace(Directive):
"""This directive is just to tell Sphinx that we're documenting
stuff in namespace foo.
"""
has_content = False
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
option_spec = {}
def run(self):
env = self.state.document.settings.env
if self.arguments[0].strip() in ('NULL', '0', 'nullptr'):
env.temp_data['ocv:prefix'] = None
else:
parser = DefinitionParser(self.arguments[0])
def run(self):
# a decorator function is a function after all
self.name = 'py:function'
return CMakeModulelevel.run(self)
class CMakeDecoratorMethod(CMakeDecoratorMixin, CMakeClassmember):
"""
Directive to mark methods meant to be used as decorators.
"""
def run(self):
self.name = 'py:method'
return CMakeClassmember.run(self)
class CMakeModule(Directive):
"""
Directive to mark description of a new module.
"""
has_content = False
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = False
option_spec = {
'platform': lambda x: x,
'synopsis': lambda x: x,
'noindex': directives.flag,
'deprecated': directives.flag,
}
def run(self):
import dynts
from sphinx.util.compat import Directive
from docutils import nodes, statemachine
class dyntslist(nodes.General, nodes.Element):
pass
class DynTsList(Directive):
has_content = False
required_arguments = 0
def run(self):
env = self.state.document.settings.env
rawdocs = dynts.functions_docs()
targetid = "dyntslist"
source = self.state_machine.input_lines.source(
self.lineno - self.state_machine.input_offset - 1)
encoding = self.options.get(
'encoding', self.state.document.settings.input_encoding)
tab_width = self.options.get(
'tab-width', self.state.document.settings.tab_width)
def run(self):
# a decorator function is a function after all
self.name = 'py:function'
return PyModulelevel.run(self)
class PyDecoratorMethod(PyDecoratorMixin, PyClassmember):
"""
Directive to mark methods meant to be used as decorators.
"""
def run(self):
self.name = 'py:method'
return PyClassmember.run(self)
class PyModule(Directive):
"""
Directive to mark description of a new module.
"""
has_content = False
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = False
option_spec = {
'platform': lambda x: x,
'synopsis': lambda x: x,
'noindex': directives.flag,
'deprecated': directives.flag,
}
def run(self):
# If true, do not generate a @detailmenu in the "Top" node's menu.
#texinfo_no_detailmenu = False
# taken from http://stackoverflow.com/questions/7250659/
import sys
from os.path import basename
try:
from StringIO import StringIO
except ImportError:
from io import StringIO
from sphinx.util.compat import Directive
from docutils import nodes, statemachine
class ExecDirective(Directive):
"""Execute the specified python code and insert the output into the document"""
has_content = True
def run(self):
oldStdout, sys.stdout = sys.stdout, StringIO()
tab_width = self.options.get('tab-width', self.state.document.settings.tab_width)
source = self.state_machine.input_lines.source(self.lineno - self.state_machine.input_offset - 1)
try:
exec('\n'.join(self.content))
text = sys.stdout.getvalue()
lines = statemachine.string2lines(text, tab_width, convert_whitespace=True)
self.state_machine.insert_input(lines, source)
return []
except Exception:
%s
'''
FILTERDOC = '''
.. class:: %s
:Name: %s
%s
'''
class PygmentsDoc(Directive):
"""
A directive to collect all lexers/formatters/filters and generate
autoclass directives for them.
"""
has_content = False
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = False
option_spec = {}
def run(self):
self.filenames = set()
if self.arguments[0] == 'lexers':
out = self.document_lexers()
elif self.arguments[0] == 'formatters':
out = self.document_formatters()