summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Diemer <github.com@jensdiemer.de>2020-02-07 15:20:53 +0100
committerGitHub <noreply@github.com>2020-02-07 15:20:53 +0100
commit00cbba43f0fcc8648bc1d2bb461647741f00bc4a (patch)
tree621c49dcc3501b3fff2e96708042c2ab788a832b
parent68db4925bfc29c5dfd7ae33c7fe25fe83fb055d4 (diff)
parent784a4d82909d83f31fd13d31120eca6c274e1b60 (diff)
downloadcreole-00cbba43f0fcc8648bc1d2bb461647741f00bc4a.tar.gz
Merge pull request #46 from jedie/code-updatesv1.4.4
Code updates
-rw-r--r--README.creole6
-rw-r--r--README.rst16
-rw-r--r--creole/__init__.py3
-rw-r--r--creole/cmdline.py4
-rw-r--r--creole/emitter/creol2html_emitter.py17
-rw-r--r--creole/emitter/html2creole_emitter.py11
-rw-r--r--creole/emitter/html2rest_emitter.py11
-rw-r--r--creole/emitter/html2textile_emitter.py5
-rw-r--r--creole/exceptions.py3
-rw-r--r--creole/html_tools/deentity.py3
-rw-r--r--creole/html_tools/strip_html.py2
-rw-r--r--creole/html_tools/text_tools.py2
-rw-r--r--creole/parser/creol2html_parser.py8
-rw-r--r--creole/parser/creol2html_rules.py9
-rw-r--r--creole/parser/html_parser.py9
-rw-r--r--creole/parser/html_parser_config.py3
-rw-r--r--creole/rest_tools/clean_writer.py17
-rw-r--r--creole/rest_tools/pypi_rest2html.py3
-rw-r--r--creole/shared/base_emitter.py5
-rw-r--r--creole/shared/document_tree.py7
-rw-r--r--creole/shared/example_macros.py3
-rw-r--r--creole/shared/markup_table.py3
-rw-r--r--creole/shared/unknown_tags.py2
-rw-r--r--creole/shared/utils.py3
-rw-r--r--creole/tests/test_Makefile.py1
-rw-r--r--creole/tests/test_TODOs.py2
-rw-r--r--creole/tests/test_cli.py7
-rw-r--r--creole/tests/test_creole2html.py1
-rw-r--r--creole/tests/test_cross_compare_all.py3
-rw-r--r--creole/tests/test_cross_compare_creole.py3
-rw-r--r--creole/tests/test_cross_compare_rest.py3
-rw-r--r--creole/tests/test_cross_compare_textile.py3
-rw-r--r--creole/tests/test_html2creole.py2
-rw-r--r--creole/tests/test_html2rest.py3
-rw-r--r--creole/tests/test_html2textile.py3
-rw-r--r--creole/tests/test_macros.py12
-rw-r--r--creole/tests/test_rest2html.py3
-rw-r--r--creole/tests/test_setup_utils.py150
-rw-r--r--creole/tests/test_subprocess.py2
-rw-r--r--creole/tests/test_utils.py3
-rw-r--r--demo.py7
-rw-r--r--pyproject.toml2
42 files changed, 83 insertions, 282 deletions
diff --git a/README.creole b/README.creole
index 39efa4a..655b821 100644
--- a/README.creole
+++ b/README.creole
@@ -227,10 +227,12 @@ Note: In this case you must install **docutils**! See above.
= history =
-* *dev* - [[https://github.com/jedie/python-creole/compare/v1.4.3...master|compare v1.4.3...master]]
+* *dev* - [[https://github.com/jedie/python-creole/compare/v1.4.4...master|compare v1.4.4...master]]
+** TBC
+* v1.4.4 - 2020-02-07 - [[https://github.com/jedie/python-creole/compare/v1.4.3...v1.4.4|compare v1.4.3...v1.4.4]]
** Fix #44: Move {{{poetry-publish}}} to {{{dev-dependencies}}} and lower {{{docutils}}} requirement to {{^0.15}}
+** some code style updated
** Always update README.rst before publish
-** TBC
* v1.4.3 - 2020-02-01 - [[https://github.com/jedie/python-creole/compare/v1.4.2...v1.4.3|compare v1.4.2...v1.4.3]]
** Use new [[https://pypi.org/project/poetry-publish/|poetry-publish]] for {{{make publish}}}
* v1.4.2 - 2020-02-01 - [[https://github.com/jedie/python-creole/compare/v1.4.1...v1.4.2|compare v1.4.1...v1.4.2]]
diff --git a/README.rst b/README.rst
index b4529e0..39e180d 100644
--- a/README.rst
+++ b/README.rst
@@ -298,12 +298,18 @@ Note: In this case you must install **docutils**! See above.
history
=======
-* *dev* - `compare v1.4.3...master <https://github.com/jedie/python-creole/compare/v1.4.3...master>`_
-
- * Always update README.rst before publish
+* *dev* - `compare v1.4.4...master <https://github.com/jedie/python-creole/compare/v1.4.4...master>`_
* TBC
+* v1.4.4 - 2020-02-07 - `compare v1.4.3...v1.4.4 <https://github.com/jedie/python-creole/compare/v1.4.3...v1.4.4>`_
+
+ * Fix #44: Move ``poetry-publish`` to ``dev-dependencies`` and lower ``docutils`` requirement to |^0.15|
+
+ * some code style updated
+
+ * Always update README.rst before publish
+
* v1.4.3 - 2020-02-01 - `compare v1.4.2...v1.4.3 <https://github.com/jedie/python-creole/compare/v1.4.2...v1.4.3>`_
* Use new `poetry-publish <https://pypi.org/project/poetry-publish/>`_ for ``make publish``
@@ -628,6 +634,8 @@ history
* first version cut out from `PyLucid CMS <http://www.pylucid.org>`_
+.. |^0.15| image:: ^0.15
+
first source code was written 27.11.2008: `Forum thread (de) <http://www.python-forum.de/viewtopic.php?f=3&t=16742>`_
-------------
@@ -657,4 +665,4 @@ donation
------------
-``Note: this file is generated from README.creole 2020-02-01 22:57:40 with "python-creole"`` \ No newline at end of file
+``Note: this file is generated from README.creole 2020-02-07 15:07:21 with "python-creole"`` \ No newline at end of file
diff --git a/creole/__init__.py b/creole/__init__.py
index 33d99fd..e12ea76 100644
--- a/creole/__init__.py
+++ b/creole/__init__.py
@@ -1,4 +1,3 @@
-
"""
python-creole
~~~~~~~~~~~~~
@@ -24,7 +23,7 @@ from creole.parser.creol2html_parser import CreoleParser
from creole.parser.html_parser import HtmlParser
-__version__ = "1.4.3"
+__version__ = "1.4.4"
__api__ = "1.0" # Creole 1.0 spec - http://wikicreole.org/
VERSION_STRING = __version__ # remove in future
diff --git a/creole/cmdline.py b/creole/cmdline.py
index 3fcdfe6..16ecb4e 100644
--- a/creole/cmdline.py
+++ b/creole/cmdline.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+
"""
python-creole commandline interface
@@ -15,7 +15,7 @@ import codecs
from creole import VERSION_STRING, creole2html, html2creole, html2rest, html2textile
-class CreoleCLI(object):
+class CreoleCLI:
def __init__(self, convert_func):
self.convert_func = convert_func
self.parser = argparse.ArgumentParser(
diff --git a/creole/emitter/creol2html_emitter.py b/creole/emitter/creol2html_emitter.py
index f946c88..61e2e55 100644
--- a/creole/emitter/creol2html_emitter.py
+++ b/creole/emitter/creol2html_emitter.py
@@ -1,4 +1,3 @@
-
"""
WikiCreole to HTML converter
@@ -16,7 +15,7 @@ from creole.parser.creol2html_parser import CreoleParser
from creole.shared.utils import string2dict
-class TableOfContent(object):
+class TableOfContent:
def __init__(self):
self.max_depth = None
self.headlines = []
@@ -91,7 +90,7 @@ class TableOfContent(object):
return document
-class HtmlEmitter(object):
+class HtmlEmitter:
"""
Generate HTML output for the document
tree consisting of DocNodes.
@@ -212,10 +211,10 @@ class HtmlEmitter(object):
# --------------------------------------------------------------------------
def _typeface(self, node, tag):
- return '<%(tag)s>%(data)s</%(tag)s>' % {
- "tag": tag,
- "data": self.emit_children(node),
- }
+ return '<{tag}>{data}</{tag}>'.format(
+ tag=tag,
+ data=self.emit_children(node),
+ )
# TODO: How can we generalize that:
def emphasis_emit(self, node):
@@ -278,7 +277,7 @@ class HtmlEmitter(object):
w_str, h_str = size_str.split("x", 1)
width = int(w_str.strip())
height = int(h_str.strip())
- return '<img src="%s" title="%s" alt="%s" width="%s" height="%s" />' % (
+ return '<img src="{}" title="{}" alt="{}" width="{}" height="{}" />'.format(
self.attr_escape(target), title, title, width, height)
except BaseException:
pass
@@ -339,7 +338,7 @@ class HtmlEmitter(object):
else:
try:
sourceline = inspect.getsourcelines(macro)[0][0].strip()
- except IOError as err:
+ except OSError as err:
evalue = etype(f"{evalue} (error getting sourceline: {err} from {filename})")
else:
evalue = etype(f"{evalue} (sourceline: {sourceline!r} from {filename})")
diff --git a/creole/emitter/html2creole_emitter.py b/creole/emitter/html2creole_emitter.py
index 7c6421e..ceac4fd 100644
--- a/creole/emitter/html2creole_emitter.py
+++ b/creole/emitter/html2creole_emitter.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
html -> creole Emitter
@@ -24,7 +23,7 @@ class CreoleEmitter(BaseEmitter):
def __init__(self, document_tree, strict=False, *args, **kwargs):
self.strict = strict
- super(CreoleEmitter, self).__init__(document_tree, *args, **kwargs)
+ super().__init__(document_tree, *args, **kwargs)
self.table_head_prefix = "= "
self.table_auto_width = True
@@ -62,7 +61,7 @@ class CreoleEmitter(BaseEmitter):
return "\n"
def headline_emit(self, node):
- return "%s %s\n\n" % ("=" * node.level, self.emit_children(node))
+ return f"{'=' * node.level} {self.emit_children(node)}\n\n"
# --------------------------------------------------------------------------
@@ -131,9 +130,9 @@ class CreoleEmitter(BaseEmitter):
if not self.strict:
if width and height:
- return "{{%s|%s|%sx%s}}" % (src, text, width, height)
+ return f"{{{{{src}|{text}|{width}x{height}}}}}"
- return "{{%s|%s}}" % (src, text)
+ return f"{{{{{src}|{text}}}}}"
# --------------------------------------------------------------------------
diff --git a/creole/emitter/html2rest_emitter.py b/creole/emitter/html2rest_emitter.py
index f8e2322..e45210c 100644
--- a/creole/emitter/html2rest_emitter.py
+++ b/creole/emitter/html2rest_emitter.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
html -> reStructuredText Emitter
@@ -35,7 +34,7 @@ class ReStructuredTextEmitter(BaseEmitter):
"""
def __init__(self, *args, **kwargs):
- super(ReStructuredTextEmitter, self).__init__(*args, **kwargs)
+ super().__init__(*args, **kwargs)
self.table_head_prefix = "_. "
self.table_auto_width = False
@@ -97,7 +96,7 @@ class ReStructuredTextEmitter(BaseEmitter):
if self._substitution_data and node.parent == self.root:
result += "%s\n\n" % self._get_block_data()
- result += super(ReStructuredTextEmitter, self).emit_node(node)
+ result += super().emit_node(node)
return result
def p_emit(self, node):
@@ -262,9 +261,7 @@ class ReStructuredTextEmitter(BaseEmitter):
def li_emit(self, node):
content = self.emit_children(node).strip("\n")
- result = "\n%s%s %s\n" % (
- " " * (node.level - 1), self._list_markup, content
- )
+ result = f"\n{' ' * (node.level - 1)}{self._list_markup} {content}\n"
return result
def _list_emit(self, node, list_type):
diff --git a/creole/emitter/html2textile_emitter.py b/creole/emitter/html2textile_emitter.py
index 3cbbd02..785ed17 100644
--- a/creole/emitter/html2textile_emitter.py
+++ b/creole/emitter/html2textile_emitter.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
html -> textile Emitter
@@ -23,7 +22,7 @@ class TextileEmitter(BaseEmitter):
"""
def __init__(self, *args, **kwargs):
- super(TextileEmitter, self).__init__(*args, **kwargs)
+ super().__init__(*args, **kwargs)
self.table_head_prefix = "_. "
self.table_auto_width = False
diff --git a/creole/exceptions.py b/creole/exceptions.py
index d52e6b4..826ddbd 100644
--- a/creole/exceptions.py
+++ b/creole/exceptions.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
python-creole exceptions
diff --git a/creole/html_tools/deentity.py b/creole/html_tools/deentity.py
index 165a7af..16a7dfa 100644
--- a/creole/html_tools/deentity.py
+++ b/creole/html_tools/deentity.py
@@ -1,4 +1,3 @@
-
"""
python-creole utils
~~~~~~~~~~~~~~~~~~~
@@ -24,7 +23,7 @@ entities_regex = re.compile(
)
-class Deentity(object):
+class Deentity:
"""
replace html entity
diff --git a/creole/html_tools/strip_html.py b/creole/html_tools/strip_html.py
index c265099..be3d37e 100644
--- a/creole/html_tools/strip_html.py
+++ b/creole/html_tools/strip_html.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-# coding: utf-8
"""
diff --git a/creole/html_tools/text_tools.py b/creole/html_tools/text_tools.py
index 5b52719..c08b392 100644
--- a/creole/html_tools/text_tools.py
+++ b/creole/html_tools/text_tools.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-# coding: utf-8
"""
diff --git a/creole/parser/creol2html_parser.py b/creole/parser/creol2html_parser.py
index ff440e2..3cb0c19 100644
--- a/creole/parser/creol2html_parser.py
+++ b/creole/parser/creol2html_parser.py
@@ -26,7 +26,7 @@ from creole.parser.creol2html_rules import INLINE_FLAGS, INLINE_RULES, BlockRule
from creole.shared.document_tree import DocNode
-class CreoleParser(object):
+class CreoleParser:
"""
Parse the raw text and create a document object
that can be converted into output using Emitter.
@@ -473,7 +473,7 @@ class CreoleParser(object):
def emit(node, ident=0):
for child in node.children:
- print("%s%s: %r" % (" " * ident, child.kind, child.content))
+ print(f"{' ' * ident}{child.kind}: {child.content!r}")
emit(child, ident + 4)
emit(start_node)
print("*" * 80)
@@ -483,7 +483,7 @@ class CreoleParser(object):
print(" debug groups:")
for name, text in groups.items():
if text is not None:
- print("%15s: %r" % (name, text))
+ print(f"{name:>15}: {text!r}")
print("-" * 80)
@@ -508,7 +508,7 @@ if __name__ == "__main__":
groups = match.groupdict()
for name, text in groups.items():
if name != "char" and text is not None:
- print("%20s: %r" % (name, text))
+ print(f"{name:>20}: {text!r}")
parser = CreoleParser("", blog_line_breaks=blog_line_breaks)
diff --git a/creole/parser/creol2html_rules.py b/creole/parser/creol2html_rules.py
index 4cb1e2a..07754c9 100644
--- a/creole/parser/creol2html_rules.py
+++ b/creole/parser/creol2html_rules.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-
-
"""
Creole Rules for parser
~~~~~~~~~~~~~~~~~~~~~~~
@@ -13,7 +10,7 @@
import re
-class InlineRules(object):
+class InlineRules:
"""
All inline rules
"""
@@ -97,7 +94,7 @@ class InlineRules(object):
char = r'(?P<char> . )'
-class BlockRules(object):
+class BlockRules:
"""
All used block rules.
"""
@@ -169,7 +166,7 @@ class BlockRules(object):
)
-class SpecialRules(object):
+class SpecialRules:
"""
re rules witch not directly used as inline/block rules.
"""
diff --git a/creole/parser/html_parser.py b/creole/parser/html_parser.py
index b8c3cee..d789a97 100644
--- a/creole/parser/html_parser.py
+++ b/creole/parser/html_parser.py
@@ -1,4 +1,3 @@
-
"""
python-creole
~~~~~~~~~~~~~
@@ -77,7 +76,7 @@ class HtmlParser(HTMLParser):
_inline_placeholder = "inlinedata"
def __init__(self, debug=False):
- super(HtmlParser, self).__init__(convert_charrefs=False)
+ super().__init__(convert_charrefs=False)
self.debugging = debug
if self.debugging:
@@ -120,7 +119,7 @@ class HtmlParser(HTMLParser):
for name, text in groups.items():
if text is not None:
if self.debugging:
- print("%15s: %r (%r)" % (name, text, match.group(0)))
+ print(f"{name:>15}: {text!r} ({match.group(0)!r})")
method = getattr(self, f'_pre_{name}_cut')
return method(groups)
@@ -251,7 +250,7 @@ class HtmlParser(HTMLParser):
def debug_msg(self, method, txt):
if not self.debugging:
return
- print("%-8s %8s: %s" % (self.getpos(), method, txt))
+ print(f"{str(self.getpos()):<8} {method:>8}: {txt}")
def debug(self, start_node=None):
"""
@@ -269,7 +268,7 @@ class HtmlParser(HTMLParser):
def emit(node, ident=0):
for child in node.children:
- txt = "%s%s" % (" " * ident, child.kind)
+ txt = f"{' ' * ident}{child.kind}"
if child.content:
txt += f": {child.content!r}"
diff --git a/creole/parser/html_parser_config.py b/creole/parser/html_parser_config.py
index 679db4c..38557ed 100644
--- a/creole/parser/html_parser_config.py
+++ b/creole/parser/html_parser_config.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-
-
"""
python-creole
~~~~~~~~~~~~~
diff --git a/creole/rest_tools/clean_writer.py b/creole/rest_tools/clean_writer.py
index 524c8d6..e8c224b 100644
--- a/creole/rest_tools/clean_writer.py
+++ b/creole/rest_tools/clean_writer.py
@@ -59,7 +59,7 @@ class CleanHTMLWriter(html4css1.Writer):
self.translator_class = CleanHTMLTranslator
-class CleanHTMLTranslator(html4css1.HTMLTranslator, object):
+class CleanHTMLTranslator(html4css1.HTMLTranslator):
"""
Clean html translator for docutils system.
"""
@@ -97,15 +97,18 @@ class CleanHTMLTranslator(html4css1.HTMLTranslator, object):
parts.append(part)
if DEBUG:
- print("Tag %r - ids: %r - attributes: %r - parts: %r" % (
- tagname, getattr(node, "ids", "-"), attributes, parts
- ))
+ print(
+ f'Tag {tagname!r}'
+ f' - ids: {getattr(node, "ids", "-")!r}'
+ f' - attributes: {attributes!r}'
+ f' - parts: {parts!r}'
+ )
if empty:
infix = ' /'
else:
infix = ''
- html = '<%s%s>%s' % (' '.join(parts), infix, suffix)
+ html = f"<{' '.join(parts)}{infix}>{suffix}"
if DEBUG:
print(f"startag html: {html!r}")
return html
@@ -148,7 +151,7 @@ class CleanHTMLTranslator(html4css1.HTMLTranslator, object):
node.stubs = []
def visit_field_list(self, node):
- super(CleanHTMLTranslator, self).visit_field_list(node)
+ super().visit_field_list(node)
if "<col" in self.body[-1]:
del(self.body[-1])
@@ -168,7 +171,7 @@ class CleanHTMLTranslator(html4css1.HTMLTranslator, object):
depart_figure = _do_nothing
def visit_image(self, node):
- super(CleanHTMLTranslator, self).visit_image(node)
+ super().visit_image(node)
if self.body[-1].startswith('<img'):
align = None
diff --git a/creole/rest_tools/pypi_rest2html.py b/creole/rest_tools/pypi_rest2html.py
index bacdf7f..50b2d54 100644
--- a/creole/rest_tools/pypi_rest2html.py
+++ b/creole/rest_tools/pypi_rest2html.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
Try to be so strict as PyPi.
diff --git a/creole/shared/base_emitter.py b/creole/shared/base_emitter.py
index d0c98f1..a6e2819 100644
--- a/creole/shared/base_emitter.py
+++ b/creole/shared/base_emitter.py
@@ -1,4 +1,3 @@
-
"""
Base document tree emitter
~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -15,7 +14,7 @@ from creole.shared.markup_table import MarkupTable
from creole.shared.unknown_tags import transparent_unknown_nodes
-class BaseEmitter(object):
+class BaseEmitter:
"""
Build from a document_tree (html2creole.parser.HtmlParser instance) a
creole markup text.
@@ -236,4 +235,4 @@ class BaseEmitter(object):
def debug_msg(self, method, txt):
if not self.debugging:
return
- print("%13s: %s" % (method, txt))
+ print(f"{method:>13}: {txt}")
diff --git a/creole/shared/document_tree.py b/creole/shared/document_tree.py
index 20c6a44..fdcc863 100644
--- a/creole/shared/document_tree.py
+++ b/creole/shared/document_tree.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
python-creole
@@ -83,13 +82,13 @@ class DocNode:
continue
if callable(getattr(self, i)):
continue
- print("%20s: %r" % (i, getattr(self, i, "---")))
+ print(f"{i:>20}: {getattr(self, i, '---')!r}")
class DebugList(list):
def __init__(self, html2creole):
self.html2creole = html2creole
- super(DebugList, self).__init__()
+ super().__init__()
def append(self, item):
# for stack_frame in inspect.stack(): print(stack_frame)
diff --git a/creole/shared/example_macros.py b/creole/shared/example_macros.py
index 88a9bc8..78f317c 100644
--- a/creole/shared/example_macros.py
+++ b/creole/shared/example_macros.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-
-
"""
Creole macros
~~~~~~~~~~~~~
diff --git a/creole/shared/markup_table.py b/creole/shared/markup_table.py
index acb9b21..dd26374 100644
--- a/creole/shared/markup_table.py
+++ b/creole/shared/markup_table.py
@@ -1,5 +1,4 @@
-
-class MarkupTable(object):
+class MarkupTable:
"""
Container for holding table data and render the data in creole markup.
Format every cell width to the same col width.
diff --git a/creole/shared/unknown_tags.py b/creole/shared/unknown_tags.py
index 26cfd3a..8d36ad0 100644
--- a/creole/shared/unknown_tags.py
+++ b/creole/shared/unknown_tags.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-# coding: utf-8
"""
diff --git a/creole/shared/utils.py b/creole/shared/utils.py
index 1d0071f..9c8ffc8 100644
--- a/creole/shared/utils.py
+++ b/creole/shared/utils.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-
-
"""
python creole utilities
~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/creole/tests/test_Makefile.py b/creole/tests/test_Makefile.py
index dbf129c..412be65 100644
--- a/creole/tests/test_Makefile.py
+++ b/creole/tests/test_Makefile.py
@@ -1,4 +1,3 @@
-
"""
:copyleft: 2020 by python-creole team, see AUTHORS for more details.
:license: GNU GPL v3 or above, see LICENSE for more details.
diff --git a/creole/tests/test_TODOs.py b/creole/tests/test_TODOs.py
index a2b75c9..c114089 100644
--- a/creole/tests/test_TODOs.py
+++ b/creole/tests/test_TODOs.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-
"""
Unittest which failed, cause bugfixes not implemented, yet.
"""
diff --git a/creole/tests/test_cli.py b/creole/tests/test_cli.py
index ffd48ac..76d8050 100644
--- a/creole/tests/test_cli.py
+++ b/creole/tests/test_cli.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
unittest for CLI
@@ -22,7 +21,7 @@ from creole.tests.utils.unittest_subprocess import SubprocessMixin
CMDS = ("creole2html", "html2creole", "html2rest", "html2textile")
-class CliTestMixins(object):
+class CliTestMixins:
def test_creole2html(self):
self._test_convert(
source_content=b"= test creole2html =",
@@ -101,7 +100,7 @@ class CreoleCLITests(BaseCreoleTest, SubprocessMixin, CliTestMixins):
class CreoleCLITestsDirect(BaseCreoleTest, CliTestMixins):
def setUp(self):
- super(CreoleCLITestsDirect, self).setUp()
+ super().setUp()
self._old_sys_argv = sys.argv[:]
def tearDown(self):
diff --git a/creole/tests/test_creole2html.py b/creole/tests/test_creole2html.py
index d938a38..d129848 100644
--- a/creole/tests/test_creole2html.py
+++ b/creole/tests/test_creole2html.py
@@ -1,4 +1,3 @@
-
"""
creole2html unittest
~~~~~~~~~~~~~~~~~~~~
diff --git a/creole/tests/test_cross_compare_all.py b/creole/tests/test_cross_compare_all.py
index c069fa9..c09b550 100644
--- a/creole/tests/test_cross_compare_all.py
+++ b/creole/tests/test_cross_compare_all.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
cross compare unittest
diff --git a/creole/tests/test_cross_compare_creole.py b/creole/tests/test_cross_compare_creole.py
index 7c4d893..fe71397 100644
--- a/creole/tests/test_cross_compare_creole.py
+++ b/creole/tests/test_cross_compare_creole.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
cross compare creole unittest
diff --git a/creole/tests/test_cross_compare_rest.py b/creole/tests/test_cross_compare_rest.py
index ea02e19..a475e06 100644
--- a/creole/tests/test_cross_compare_rest.py
+++ b/creole/tests/test_cross_compare_rest.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
cross compare reStructuredText unittest
diff --git a/creole/tests/test_cross_compare_textile.py b/creole/tests/test_cross_compare_textile.py
index 63ce6c7..b387806 100644
--- a/creole/tests/test_cross_compare_textile.py
+++ b/creole/tests/test_cross_compare_textile.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
cross compare textile unittest
diff --git a/creole/tests/test_html2creole.py b/creole/tests/test_html2creole.py
index 2895b78..7cbad0d 100644
--- a/creole/tests/test_html2creole.py
+++ b/creole/tests/test_html2creole.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-# coding: utf-8
"""
diff --git a/creole/tests/test_html2rest.py b/creole/tests/test_html2rest.py
index a10ae2a..13ac4ee 100644
--- a/creole/tests/test_html2rest.py
+++ b/creole/tests/test_html2rest.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
html2rest unittest
diff --git a/creole/tests/test_html2textile.py b/creole/tests/test_html2textile.py
index cd03b88..318eca6 100644
--- a/creole/tests/test_html2textile.py
+++ b/creole/tests/test_html2textile.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
html2textile unittest
diff --git a/creole/tests/test_macros.py b/creole/tests/test_macros.py
index c596a81..1a69b36 100644
--- a/creole/tests/test_macros.py
+++ b/creole/tests/test_macros.py
@@ -1,13 +1,10 @@
-# coding: utf-8
-
-
"""
Creole unittest macros
~~~~~~~~~~~~~~~~~~~~~~
Note: all mecro functions must return unicode!
- :copyleft: 2008-2011 by python-creole team, see AUTHORS for more details.
+ :copyleft: 2008-2020 by python-creole team, see AUTHORS for more details.
:license: GNU GPL v3 or above, see LICENSE for more details.
"""
@@ -26,7 +23,7 @@ def unittest_macro1(**kwargs):
>>> unittest_macro1(a=1,b=2)
'[test macro1 - kwargs: a=1,b=2]'
"""
- kwargs = ','.join(['%s=%s' % (k, json.dumps(v)) for k, v in sorted(kwargs.items())])
+ kwargs = ','.join('{}={}'.format(k, json.dumps(v)) for k, v in sorted(kwargs.items()))
return f"[test macro1 - kwargs: {kwargs}]"
@@ -36,8 +33,3 @@ def unittest_macro2(char, text):
'a|b'
"""
return char.join(text.split())
-
-
-if __name__ == '__main__':
- import doctest
- print(doctest.testmod())
diff --git a/creole/tests/test_rest2html.py b/creole/tests/test_rest2html.py
index dee787c..a5f08c1 100644
--- a/creole/tests/test_rest2html.py
+++ b/creole/tests/test_rest2html.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
rest2html unittest
diff --git a/creole/tests/test_setup_utils.py b/creole/tests/test_setup_utils.py
deleted file mode 100644
index 0500444..0000000
--- a/creole/tests/test_setup_utils.py
+++ /dev/null
@@ -1,150 +0,0 @@
-"""
- unittest for setup_utils
- ~~~~~~~~~~~~~~~~~~~~~~~~
-
- https://github.com/jedie/python-creole/wiki/Use-In-Setup
-
- :copyleft: 2011-2020 by python-creole team, see AUTHORS for more details.
- :license: GNU GPL v3 or above, see LICENSE for more details.
-"""
-import difflib
-import filecmp
-import os
-import shutil
-import tempfile
-from pathlib import Path
-
-from creole.setup_utils import get_long_description, update_creole_rst_readme
-from creole.tests.constants import CREOLE_PACKAGE_ROOT
-from creole.tests.utils.base_unittest import BaseCreoleTest
-from creole.tests.utils.utils import IsolatedFilesystem
-
-
-TEST_README_DIR = Path(__file__).parent
-TEST_README_FILENAME = "test_README.creole"
-
-
-class SetupUtilsTests(BaseCreoleTest):
- def test_creole_package_path(self):
- self.assertTrue(
- os.path.isdir(CREOLE_PACKAGE_ROOT),
- f"CREOLE_PACKAGE_ROOT {CREOLE_PACKAGE_ROOT!r} is not a existing direcotry!"
- )
- filepath = os.path.join(CREOLE_PACKAGE_ROOT, "README.creole")
- self.assertTrue(
- os.path.isfile(filepath),
- f"README file {filepath!r} not found!"
- )
-
- def test_get_long_description_without_raise_errors(self):
- long_description = get_long_description(CREOLE_PACKAGE_ROOT, raise_errors=False)
- self.assertIn("===================\nabout python-creole\n===================\n\n", long_description)
- # Test created ReSt code
- from creole.rest_tools.clean_writer import rest2html
- html = rest2html(long_description)
- self.assertIn("<h1>about python-creole</h1>\n", html)
-
- def test_get_long_description_with_raise_errors(self):
- long_description = get_long_description(CREOLE_PACKAGE_ROOT, raise_errors=True)
- self.assertIn("===================\nabout python-creole\n===================\n\n", long_description)
-
- def _tempfile(self, content):
- fd = tempfile.NamedTemporaryFile()
- path, filename = os.path.split(fd.name)
-
- fd.write(content)
- fd.seek(0)
- return path, filename, fd
-
- def test_tempfile_without_error(self):
- path, filename, fd = self._tempfile(b"== noerror ==")
- try:
- long_description = get_long_description(path, filename, raise_errors=True)
- self.assertEqual(long_description, "-------\nnoerror\n-------")
- finally:
- fd.close()
-
- def test_get_long_description_error_handling(self):
- """
- Test if get_long_description will raised a error, if description
- produce a ReSt error.
-
- We test with this error:
- <string>:102: (ERROR/3) Document or section may not begin with a transition.
- """
- path, filename, fd = self._tempfile(b"----")
- try:
- self.assertRaises(SystemExit, get_long_description, path, filename, raise_errors=True)
- finally:
- fd.close()
-
- def test_get_long_description_error_handling2(self):
- """
- Test if get_long_description will raised a error, if description
- produce a ReSt error.
-
- We test with this error:
- SystemExit: ReSt2html error: link scheme not allowed
- """
- path, filename, fd = self._tempfile(b"[[foo://bar]]")
-# print(get_long_description(path, filename, raise_errors=True))
- try:
- self.assertRaises(SystemExit, get_long_description, path, filename, raise_errors=True)
- finally:
- fd.close()
-
- def test_wrong_path_without_raise_errors(self):
- self.assertEqual(
- get_long_description("wrong/path", raise_errors=False).replace("u'", "'"),
- "[Error: [Errno 2] No such file or directory: 'wrong/path/README.creole']\n"
- )
-
- def test_wrong_path_with_raise_errors(self):
- self.assertRaises(IOError, get_long_description, "wrong/path", raise_errors=True)
-
- def test_readme_encoding(self):
- long_description = get_long_description(TEST_README_DIR, filename=TEST_README_FILENAME, raise_errors=True)
- self.assertTrue(isinstance(long_description, str))
-
- txt = "German Umlaute: ä ö ü ß Ä Ö Ü"
- self.assertIn(txt, long_description)
-
-
-def test_update_rst_readme():
- with IsolatedFilesystem(prefix="temp_dir_prefix"):
- old_rest_readme_path = Path(Path().cwd(), 'README.rst')
- shutil.copy(
- Path(CREOLE_PACKAGE_ROOT, 'README.rst'),
- old_rest_readme_path
- )
- try:
- rest_readme_path = update_creole_rst_readme()
- assert str(rest_readme_path.relative_to(CREOLE_PACKAGE_ROOT)) == 'README.rst'
-
- if filecmp.cmp(rest_readme_path, old_rest_readme_path, shallow=False) is True:
- return
-
- # On CI the file modification time maybe not the same.
- # So skip the last line and compare again.
-
- with old_rest_readme_path.open('r') as f:
- from_file = [line.rstrip() for line in f][:-1]
-
- with rest_readme_path.open('r') as f:
- to_file = [line.rstrip() for line in f][:-1]
-
- if from_file == to_file:
- return
-
- diff = '\n'.join(
- line
- for line in difflib.Differ().compare(from_file, to_file)
- if line[0] != ' '
- )
- raise AssertionError(f'README.rst is not up-to-date:\n{diff}')
- finally:
- # restore the origin file
- shutil.copy(
- old_rest_readme_path,
- Path(CREOLE_PACKAGE_ROOT, 'README.rst'),
- )
diff --git a/creole/tests/test_subprocess.py b/creole/tests/test_subprocess.py
index 4a8b02e..c99b05d 100644
--- a/creole/tests/test_subprocess.py
+++ b/creole/tests/test_subprocess.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-
"""
unittest
~~~~~~~~
diff --git a/creole/tests/test_utils.py b/creole/tests/test_utils.py
index 5131a16..c310aa1 100644
--- a/creole/tests/test_utils.py
+++ b/creole/tests/test_utils.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+
"""
unittest for some utils
diff --git a/demo.py b/demo.py
index 962d3c8..93cd349 100644
--- a/demo.py
+++ b/demo.py
@@ -1,5 +1,4 @@
-#!/usr/bin/env python
-# coding: utf-8
+#!/usr/bin/env python3
"""
@@ -7,7 +6,6 @@
~~~~~~~~~~~
"""
-from __future__ import division, absolute_import, print_function, unicode_literals
from creole import creole2html, html2creole, html2rest, html2textile
@@ -35,17 +33,14 @@ if __name__ == "__main__":
html = creole2html(source_creole)
print(html)
-
print("\n\n" + "_" * 79 + "\n*** Convert html back into creole: ***\n\n")
creole = html2creole(html)
print(creole)
-
print("\n\n" + "_" * 79 + "\n*** Convert html into ReStructuredText: ***\n\n")
rest = html2rest(html)
print(rest)
-
print("\n\n" + "_" * 79 + "\n*** Convert html into textile: ***\n\n")
textile = html2textile(html)
print(textile)
diff --git a/pyproject.toml b/pyproject.toml
index 041d10c..05cc21a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "python-creole"
-version = "1.4.3"
+version = "1.4.4"
description = "python-creole is an open-source (GPL) markup converter in pure Python for: creole2html, html2creole, html2ReSt, html2textile"
# Will be generated from README.creole with: "poetry run update_rst_readme"