|
From: <mi...@us...> - 2022-01-27 14:22:45
|
Revision: 8987
http://sourceforge.net/p/docutils/code/8987
Author: milde
Date: 2022-01-27 14:22:42 +0000 (Thu, 27 Jan 2022)
Log Message:
-----------
Use generator expressions instead of lists.
Based on a patch by Adam Turner.
Avoid deeply nested statements as function argument.
Improve readability of system message by line wrapping.
Modified Paths:
--------------
trunk/docutils/docutils/nodes.py
trunk/docutils/docutils/parsers/rst/directives/misc.py
trunk/docutils/test/test_parsers/test_rst/test_directives/test_include.py
Modified: trunk/docutils/docutils/nodes.py
===================================================================
--- trunk/docutils/docutils/nodes.py 2022-01-27 14:22:31 UTC (rev 8986)
+++ trunk/docutils/docutils/nodes.py 2022-01-27 14:22:42 UTC (rev 8987)
@@ -603,9 +603,8 @@
return '</%s>' % self.tagname
def emptytag(self):
- return '<%s/>' % ' '.join([self.tagname] +
- ['%s="%s"' % (n, v)
- for n, v in self.attlist()])
+ attributes = ('%s="%s"' % (n, v) for n, v in self.attlist())
+ return '<%s/>' % ' '.join((self.tagname, *attributes))
def __len__(self):
return len(self.children)
@@ -1045,9 +1044,9 @@
return None
def pformat(self, indent=' ', level=0):
- return ''.join(['%s%s\n' % (indent * level, self.starttag())] +
- [child.pformat(indent, level+1)
- for child in self.children])
+ tagline = '%s%s\n' % (indent*level, self.starttag())
+ childreps = (c.pformat(indent, level+1) for c in self.children)
+ return ''.join((tagline, *childreps))
def copy(self):
obj = self.__class__(rawsource=self.rawsource, **self.attributes)
Modified: trunk/docutils/docutils/parsers/rst/directives/misc.py
===================================================================
--- trunk/docutils/docutils/parsers/rst/directives/misc.py 2022-01-27 14:22:31 UTC (rev 8986)
+++ trunk/docutils/docutils/parsers/rst/directives/misc.py 2022-01-27 14:22:42 UTC (rev 8987)
@@ -175,9 +175,10 @@
include_log.append((utils.relative_path(None, source),
(None, None, None, None)))
if (path, clip_options) in include_log:
- raise self.warning('circular inclusion in "%s" directive: %s'
- % (self.name, ' < '.join([path] + [pth for (pth, opt)
- in include_log[::-1]])))
+ master_paths = (pth for (pth, opt) in reversed(include_log))
+ inclusion_chain = '\n> '.join((path, *master_paths))
+ raise self.warning('circular inclusion in "%s" directive:\n%s'
+ % (self.name, inclusion_chain))
if 'parser' in self.options:
# parse into a dummy document and return created nodes
Modified: trunk/docutils/test/test_parsers/test_rst/test_directives/test_include.py
===================================================================
--- trunk/docutils/test/test_parsers/test_rst/test_directives/test_include.py 2022-01-27 14:22:31 UTC (rev 8986)
+++ trunk/docutils/test/test_parsers/test_rst/test_directives/test_include.py 2022-01-27 14:22:42 UTC (rev 8987)
@@ -1207,7 +1207,11 @@
File "include16.txt": example of rekursive inclusion.
<system_message level="2" line="3" source="%s" type="WARNING">
<paragraph>
- circular inclusion in "include" directive: %s < %s < %s < test data
+ circular inclusion in "include" directive:
+ %s
+ > %s
+ > %s
+ > test data
<literal_block xml:space="preserve">
.. include:: include15.txt
<paragraph>
@@ -1232,7 +1236,12 @@
File "include16.txt": example of rekursive inclusion.
<system_message level="2" line="3" source="%s" type="WARNING">
<paragraph>
- circular inclusion in "include" directive: %s < %s < %s < %s < test data
+ circular inclusion in "include" directive:
+ %s
+ > %s
+ > %s
+ > %s
+ > test data
<literal_block xml:space="preserve">
.. include:: include15.txt
<paragraph>
@@ -1261,7 +1270,11 @@
File "include16.txt": example of rekursive inclusion.
<system_message level="2" line="3" source="%s" type="WARNING">
<paragraph>
- circular inclusion in "include" directive: %s < %s < %s < test data
+ circular inclusion in "include" directive:
+ %s
+ > %s
+ > %s
+ > test data
<literal_block xml:space="preserve">
.. include:: include15.txt
<paragraph>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|