From 1081f8b7b5d180db879dd2d103a94b1ab47383f2 Mon Sep 17 00:00:00 2001 From: "Antoine Vandevenne (anv)" Date: Wed, 12 Feb 2020 14:56:15 +0100 Subject: [PATCH] [REV] Revert dbba515 to 8678876 Reason: delay changes until internal build tools are updated --- _extensions/odoo/__init__.py | 6 +++--- _extensions/odoo/pycompat.py | 27 +++++++++++++++++++++++++++ _extensions/odoo/translator.py | 12 +++++++----- requirements.txt | 2 -- 4 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 _extensions/odoo/pycompat.py delete mode 100644 requirements.txt diff --git a/_extensions/odoo/__init__.py b/_extensions/odoo/__init__.py index e49a7fbcc..65d6a05ba 100644 --- a/_extensions/odoo/__init__.py +++ b/_extensions/odoo/__init__.py @@ -32,9 +32,9 @@ def setup(app): app.connect('html-page-context', update_meta) def update_meta(app, pagename, templatename, context, doctree): - if not context.get('meta'): # context['meta'] can be None - context['meta'] = {} - meta = context.setdefault('meta', {}) # we want {} by default + meta = context.get('meta') + if meta is None: + meta = context['meta'] = {} meta.setdefault('banner', app.config.odoo_cover_default) def navbarify(node, navbar=None): diff --git a/_extensions/odoo/pycompat.py b/_extensions/odoo/pycompat.py new file mode 100644 index 000000000..804a2a0ba --- /dev/null +++ b/_extensions/odoo/pycompat.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +import sys + +PY2 = sys.version_info[0] == 2 + +if PY2: + text_type = unicode +else: + text_type = str + +def to_text(source): + """ Generates a text value (an instance of text_type) from an arbitrary + source. + + * False and None are converted to empty strings + * text is passed through + * bytes are decoded as UTF-8 + * rest is textified via the current version's relevant data model method + """ + if source is None or source is False: + return u'' + + if isinstance(source, bytes): + return source.decode('utf-8') + + return text_type(source) + diff --git a/_extensions/odoo/translator.py b/_extensions/odoo/translator.py index 9e9dfd981..168262350 100644 --- a/_extensions/odoo/translator.py +++ b/_extensions/odoo/translator.py @@ -2,11 +2,14 @@ import os.path import posixpath import re +import urllib from docutils import nodes from sphinx import addnodes, util, builders from sphinx.locale import admonitionlabels +from . import pycompat + try: from urllib import url2pathname except ImportError: @@ -60,7 +63,6 @@ class BootstrapTranslator(nodes.NodeVisitor, object): self.context = [] self.section_level = 0 - self.config = builder.config self.highlightlang = self.highlightlang_base = self.builder.config.highlight_language self.highlightopts = getattr(builder.config, 'highlight_options', {}) @@ -70,7 +72,7 @@ class BootstrapTranslator(nodes.NodeVisitor, object): self.param_separator = ',' def encode(self, text): - return text.strip().translate({ + return pycompat.to_text(text).translate({ ord('&'): u'&', ord('<'): u'<', ord('"'): u'"', @@ -79,7 +81,7 @@ class BootstrapTranslator(nodes.NodeVisitor, object): }) def starttag(self, node, tagname, **attributes): - tagname = tagname.strip().lower() + tagname = pycompat.to_text(tagname).lower() # extract generic attributes attrs = {name.lower(): value for name, value in attributes.items()} @@ -114,7 +116,7 @@ class BootstrapTranslator(nodes.NodeVisitor, object): # only "space characters" SPACE, CHARACTER TABULATION, LINE FEED, # FORM FEED and CARRIAGE RETURN should be collapsed, not al White_Space def attval(self, value, whitespace=re.compile(u'[ \t\n\f\r]')): - return self.encode(whitespace.sub(u' ', value.strip())) + return self.encode(whitespace.sub(u' ', pycompat.to_text(value))) def astext(self): return u''.join(self.body) @@ -646,7 +648,7 @@ class BootstrapTranslator(nodes.NodeVisitor, object): self.body.append(title if title else util.nodes.clean_astext(env.titles[ref])) self.body.append(u'') - entries = [(title, ref)] if not toc else ((e[0], e[1]) for e in list(toc)[0]['entries']) + entries = [(title, ref)] if not toc else ((e[0], e[1]) for e in toc[0]['entries']) for subtitle, subref in entries: baseuri = self.builder.get_target_uri(node['parent']) diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 93abfad67..000000000 --- a/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -Sphinx>=2.4.0 -Werkzeug==0.14.1