diff options
author | Jens Diemer <github.com@jensdiemer.de> | 2020-02-07 15:20:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-07 15:20:53 +0100 |
commit | 00cbba43f0fcc8648bc1d2bb461647741f00bc4a (patch) | |
tree | 621c49dcc3501b3fff2e96708042c2ab788a832b | |
parent | 68db4925bfc29c5dfd7ae33c7fe25fe83fb055d4 (diff) | |
parent | 784a4d82909d83f31fd13d31120eca6c274e1b60 (diff) | |
download | creole-00cbba43f0fcc8648bc1d2bb461647741f00bc4a.tar.gz |
Merge pull request #46 from jedie/code-updatesv1.4.4
Code updates
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]] @@ -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 @@ -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" |