我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用docutils.nodes.system_message()。
def apply(self): pending = self.startnode parent = pending.parent child = pending while parent: # Check for appropriate following siblings: for index in range(parent.index(child) + 1, len(parent)): element = parent[index] if (isinstance(element, nodes.Invisible) or isinstance(element, nodes.system_message)): continue element['classes'] += pending.details['class'] pending.parent.remove(pending) return else: # At end of section or container; apply to sibling child = parent parent = parent.parent error = self.document.reporter.error( 'No suitable element following "%s" directive' % pending.details['directive'], nodes.literal_block(pending.rawsource, pending.rawsource), line=pending.line) pending.replace_self(error)
def run(self): aafig_options = dict() own_options_keys = list(self.own_option_spec.keys()) + ['scale'] for (k, v) in self.options.items(): if k in own_options_keys: # convert flags to booleans if v is None: v = True # convert percentage to float if k == 'scale' or k == 'aspect': v = float(v) / 100.0 aafig_options[k] = v del self.options[k] self.arguments = [''] (image_node,) = directives.images.Image.run(self) if isinstance(image_node, nodes.system_message): return [image_node] text = '\n'.join(self.content) image_node.aafig = dict(options=aafig_options, text=text) return [image_node]
def run(self): text = '\n'.join(self.content) aafig_options = dict() image_attrs = dict() own_options_keys = self.own_option_spec.keys() + ['scale'] for (k, v) in self.options.items(): if k in own_options_keys: # convert flags to booleans if v is None: v = True # convert percentage to float if k == 'scale': v = float(v) / 100 aafig_options[k] = v del self.options[k] # TODO/FIXME: en realidad los atributos de la imagen tienen que estar # en self.options, porque le estamos pasando self! self.arguments = [get_basename(text, aafig_options)] (image_node,) = directives.images.Image.run(self) if isinstance(image_node, nodes.system_message): return [image_node] aafig_node = aafig(text, image_node, **dict(options=aafig_options)) return [aafig_node]
def html_visit_math(self, node): try: fname, depth = render_math(self, '$'+node['latex']+'$') except MathExtError as exc: msg = text_type(exc) sm = nodes.system_message(msg, type='WARNING', level=2, backrefs=[], source=node['latex']) sm.walkabout(self) self.builder.warn('display latex %r: ' % node['latex'] + msg) raise nodes.SkipNode if fname is None: # something failed -- use text-only as a bad substitute self.body.append('<span class="math">%s</span>' % self.encode(node['latex']).strip()) else: c = ('<img class="math" src="%s"' % fname) + get_tooltip(self, node) if depth is not None: c += ' style="vertical-align: %dpx"' % (-depth) self.body.append(c + '/>') raise nodes.SkipNode
def html_visit_displaymath(self, node): if node['nowrap']: latex = node['latex'] else: latex = wrap_displaymath(node['latex'], None) try: fname, depth = render_math(self, latex) except MathExtError as exc: sm = nodes.system_message(str(exc), type='WARNING', level=2, backrefs=[], source=node['latex']) sm.walkabout(self) self.builder.warn('inline latex %r: ' % node['latex'] + str(exc)) raise nodes.SkipNode self.body.append(self.starttag(node, 'div', CLASS='math')) self.body.append('<p>') if node['number']: self.body.append('<span class="eqno">(%s)</span>' % node['number']) if fname is None: # something failed -- use text-only as a bad substitute self.body.append('<span class="math">%s</span></p>\n</div>' % self.encode(node['latex']).strip()) else: self.body.append(('<img src="%s"' % fname) + get_tooltip(self, node) + '/></p>\n</div>') raise nodes.SkipNode
def test_non_existing_working_directory(doctree, srcdir): # check that a proper error message appears in the document message = doctree.next_node(system_message) assert message srcfile = str(srcdir.join('content').join('doc.rst')) assert message['source'] == srcfile assert message['line'] == 4 msgtemplate = ("{0}:4: (ERROR/3) Command {1!r} failed: " "[Errno 2] No such file or directory: {2!r}") filename = srcdir.join('content').realpath().join('subdir') if sys.version_info[0:2] == (3, 2): # XXX: Python 3.2 breaks the error message here filename = 'echo' elif platform.python_implementation() == 'PyPy': filename = unicode(filename) else: filename = str(filename) msg = msgtemplate.format(srcfile, 'echo spam', filename) assert message.astext() == msg
def system_message(self, level, message, *children, **kwargs): self.messages.append((level, message, children, kwargs)) return nodes.system_message(message, level=level, type=self.levels[level], *children, **kwargs)
def apply(self): for node in self.document.traverse(nodes.system_message): if node['level'] < self.document.reporter.report_level: node.parent.remove(node)
def __init__(self, system_message, level): Exception.__init__(self, system_message.astext()) self.level = level
def attach_observer(self, observer): """ The `observer` parameter is a function or bound method which takes one argument, a `nodes.system_message` instance. """ self.observers.append(observer)
def debug(self, *args, **kwargs): """ Level-0, "DEBUG": an internal reporting issue. Typically, there is no effect on the processing. Level-0 system messages are handled separately from the others. """ if self.debug_flag: return self.system_message(self.DEBUG_LEVEL, *args, **kwargs)
def info(self, *args, **kwargs): """ Level-1, "INFO": a minor issue that can be ignored. Typically there is no effect on processing, and level-1 system messages are not reported. """ return self.system_message(self.INFO_LEVEL, *args, **kwargs)
def warning(self, *args, **kwargs): """ Level-2, "WARNING": an issue that should be addressed. If ignored, there may be unpredictable problems with the output. """ return self.system_message(self.WARNING_LEVEL, *args, **kwargs)
def error(self, *args, **kwargs): """ Level-3, "ERROR": an error that should be addressed. If ignored, the output will contain errors. """ return self.system_message(self.ERROR_LEVEL, *args, **kwargs)
def severe(self, *args, **kwargs): """ Level-4, "SEVERE": a severe error that must be addressed. If ignored, the output will contain severe errors. Typically level-4 system messages are turned into exceptions which halt processing. """ return self.system_message(self.SEVERE_LEVEL, *args, **kwargs)
def run(self): aafig_options = dict() image_attrs = dict() own_options_keys = self.own_option_spec.keys() + ['scale'] for (k, v) in self.options.items(): if k in own_options_keys: # convert flags to booleans if v is None: v = True # convert percentage to float if k == 'scale': v = float(v) / 100 aafig_options[k] = v del self.options[k] self.arguments = [''] (image_node,) = directives.images.Image.run(self) if isinstance(image_node, nodes.system_message): return [image_node] text = '\n'.join(self.content) pending_node = nodes.pending(AafigTransform, rawsource=text) pending_node.details.update(dict( image_node = image_node, aafigure_options = aafig_options, )) self.state_machine.document.note_pending(pending_node) return [pending_node]
def filter_messages(self, doctree): """Filter system messages from a doctree.""" filterlevel = self.config.keep_warnings and 2 or 5 for node in doctree.traverse(nodes.system_message): if node['level'] < filterlevel: self.app.debug('%s [filtered system message]', node.astext()) node.parent.remove(node)
def _is_single_paragraph(node): """True if the node only contains one paragraph (and system messages).""" if len(node) == 0: return False elif len(node) > 1: for subnode in node[1:]: if not isinstance(subnode, nodes.system_message): return False if isinstance(node[0], nodes.paragraph): return True return False
def test_non_existing_executable(doctree, srcdir): # check that a proper error message appears in the document message = doctree.next_node(system_message) assert message srcfile = str(srcdir.join('content').join('doc.rst')) assert message['source'] == srcfile assert message['line'] == 4 if sys.version_info[0:2] < (3, 2): msgtemplate = ("{0}:4: (ERROR/3) Command {1!r} failed: " "[Errno 2] No such file or directory") else: msgtemplate = ("{0}:4: (ERROR/3) Command {1!r} failed: " "[Errno 2] No such file or directory: {1}") assert message.astext() == msgtemplate.format(srcfile, "'spam with eggs'")
def test_non_existing_executable(self): # check that a proper error message appears in the document message = self.doctree.next_node(system_message) assert message srcfile = os.path.join(self.srcdir, 'content', 'doc.rst') self.assertEqual(message['source'], srcfile) self.assertEqual(message['line'], 5) message_text = message.astext() self.assertIn(srcfile, message_text) self.assertIn('spam with eggs', message_text) self.assertIn("Errno", message_text)
def test_non_existing_working_directory(self): # check that a proper error message appears in the document doctree = self.doctree srcdir = self.srcdir message = doctree.next_node(system_message) assert message srcfile = os.path.join(srcdir, 'content', 'doc.rst') self.assertEqual(message['source'], srcfile) self.assertEqual(message['line'], 5) message_text = message.astext() self.assertIn(srcfile, message_text) self.assertIn('subdir', message_text) self.assertIn("No such file or directory", message_text)
def system_message(self, level, message, *children, **kwargs): self.messages.append((level, message, children, kwargs)) return nodes.system_message(message, level=level, type=self. levels[level], *children, **kwargs)