From a0f6d3e9257261a253c316a30f6e9c4a1469921d Mon Sep 17 00:00:00 2001 From: Arnaud Joset Date: Thu, 6 Feb 2020 13:29:59 +0100 Subject: [PATCH] [IMP] technical: allow building with Python 3 and Sphinx 2.4.0 This commit updates the requirements of the documentation to Python 3 and Sphinx 2.4.0 and later. --- _extensions/odoo/__init__.py | 6 +++--- _extensions/odoo/pycompat.py | 27 --------------------------- _extensions/odoo/translator.py | 10 ++++------ requirements.txt | 2 ++ 4 files changed, 9 insertions(+), 36 deletions(-) delete mode 100644 _extensions/odoo/pycompat.py create mode 100644 requirements.txt diff --git a/_extensions/odoo/__init__.py b/_extensions/odoo/__init__.py index 65d6a05ba..e49a7fbcc 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): - meta = context.get('meta') - if meta is None: - meta = context['meta'] = {} + if not context.get('meta'): # context['meta'] can be None + context['meta'] = {} + meta = context.setdefault('meta', {}) # we want {} by default 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 deleted file mode 100644 index 804a2a0ba..000000000 --- a/_extensions/odoo/pycompat.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- 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 f95622e0f..f68f08667 100644 --- a/_extensions/odoo/translator.py +++ b/_extensions/odoo/translator.py @@ -2,14 +2,11 @@ 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: @@ -63,6 +60,7 @@ 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', {}) @@ -72,7 +70,7 @@ class BootstrapTranslator(nodes.NodeVisitor, object): self.param_separator = ',' def encode(self, text): - return pycompat.to_text(text).translate({ + return text.translate({ ord('&'): u'&', ord('<'): u'<', ord('"'): u'"', @@ -81,7 +79,7 @@ class BootstrapTranslator(nodes.NodeVisitor, object): }) def starttag(self, node, tagname, **attributes): - tagname = pycompat.to_text(tagname).lower() + tagname = tagname.lower() # extract generic attributes attrs = {name.lower(): value for name, value in attributes.items()} @@ -116,7 +114,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' ', pycompat.to_text(value))) + return self.encode(whitespace.sub(u' ', str(value))) def astext(self): return u''.join(self.body) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..95726293f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +Sphinx>=2.4.0 +Werkzeug==0.14.1 \ No newline at end of file