From 1e5806269243d5d10bb4f1421b9b5448963e704a Mon Sep 17 00:00:00 2001 From: Takayuki Shimizukawa Date: Wed, 30 Apr 2014 21:30:46 +0900 Subject: [PATCH] remove 'six' name except importing line. --- sphinx/application.py | 6 +++--- sphinx/builders/html.py | 7 +++---- sphinx/builders/manpage.py | 4 ++-- sphinx/cmdline.py | 7 +++---- sphinx/config.py | 9 ++++----- sphinx/environment.py | 5 ++--- sphinx/ext/autodoc.py | 11 +++++------ sphinx/ext/doctest.py | 7 +++---- sphinx/ext/napoleon/__init__.py | 5 ++--- sphinx/ext/napoleon/docstring.py | 6 +++--- sphinx/ext/napoleon/iterators.py | 4 ++-- sphinx/highlighting.py | 5 ++--- sphinx/jinja2glue.py | 4 ++-- sphinx/locale/__init__.py | 5 ++--- sphinx/pycode/__init__.py | 7 +++---- sphinx/quickstart.py | 9 ++++----- sphinx/search/__init__.py | 7 +++---- sphinx/setup_command.py | 4 ++-- sphinx/theming.py | 5 ++--- sphinx/util/__init__.py | 5 ++--- sphinx/util/inspect.py | 11 ++++++----- sphinx/util/jsdump.py | 7 +++---- sphinx/util/osutil.py | 7 +++---- sphinx/util/pycompat.py | 8 ++++---- sphinx/writers/html.py | 4 ++-- tests/coverage.py | 4 ++-- tests/etree13/ElementTree.py | 4 ++-- tests/path.py | 5 ++--- tests/run.py | 4 ++-- tests/test_application.py | 8 ++++---- tests/test_autodoc.py | 4 ++-- tests/test_build_html.py | 7 +++---- tests/test_build_latex.py | 6 +++--- tests/test_build_texinfo.py | 6 +++--- tests/test_config.py | 4 ++-- tests/test_doctest.py | 4 ++-- tests/test_docutilsconf.py | 4 ++-- tests/test_env.py | 4 ++-- tests/test_intersphinx.py | 8 ++++---- tests/test_intl.py | 6 +++--- tests/test_quickstart.py | 16 ++++++++-------- tests/test_searchadapters.py | 6 +++--- tests/test_websupport.py | 6 +++--- tests/util.py | 4 ++-- 44 files changed, 126 insertions(+), 143 deletions(-) diff --git a/sphinx/application.py b/sphinx/application.py index 17c6e9b56..6d1c334b3 100644 --- a/sphinx/application.py +++ b/sphinx/application.py @@ -19,8 +19,8 @@ import posixpath import traceback from os import path -import six from six import iteritems, itervalues +from six.moves import cStringIO from docutils import nodes from docutils.parsers.rst import convert_directive_function, \ directives, roles @@ -85,14 +85,14 @@ class Sphinx(object): self.parallel = parallel if status is None: - self._status = six.cStringIO() + self._status = cStringIO() self.quiet = True else: self._status = status self.quiet = False if warning is None: - self._warning = six.cStringIO() + self._warning = cStringIO() else: self._warning = warning self._warncount = 0 diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py index 10d21f7a7..15e848029 100644 --- a/sphinx/builders/html.py +++ b/sphinx/builders/html.py @@ -17,8 +17,7 @@ import posixpath from os import path from hashlib import md5 -import six -from six import iteritems, itervalues, text_type +from six import iteritems, itervalues, text_type, string_types from six.moves import cPickle as pickle from docutils import nodes from docutils.io import DocTreeInput, StringOutput @@ -297,7 +296,7 @@ class StandaloneHTMLBuilder(Builder): if favicon and os.path.splitext(favicon)[1] != '.ico': self.warn('html_favicon is not an .ico file') - if not isinstance(self.config.html_use_opensearch, six.string_types): + if not isinstance(self.config.html_use_opensearch, string_types): self.warn('html_use_opensearch config value must now be a string') self.relations = self.env.collect_relations() @@ -715,7 +714,7 @@ class StandaloneHTMLBuilder(Builder): if sidebars is None: # keep defaults pass - elif isinstance(sidebars, six.string_types): + elif isinstance(sidebars, string_types): # 0.x compatible mode: insert custom sidebar before searchbox customsidebar = sidebars sidebars = None diff --git a/sphinx/builders/manpage.py b/sphinx/builders/manpage.py index 29598615a..dfbf89862 100644 --- a/sphinx/builders/manpage.py +++ b/sphinx/builders/manpage.py @@ -11,7 +11,7 @@ from os import path -import six +from six import string_types from docutils.io import FileOutput from docutils.frontend import OptionParser @@ -55,7 +55,7 @@ class ManualPageBuilder(Builder): for info in self.config.man_pages: docname, name, description, authors, section = info - if isinstance(authors, six.string_types): + if isinstance(authors, string_types): if authors: authors = [authors] else: diff --git a/sphinx/cmdline.py b/sphinx/cmdline.py index aa45b8a71..ba1dc6c24 100644 --- a/sphinx/cmdline.py +++ b/sphinx/cmdline.py @@ -16,8 +16,7 @@ import getopt import traceback from os import path -import six -from six import text_type +from six import text_type, binary_type from docutils.utils import SystemMessage from sphinx import __version__ @@ -185,7 +184,7 @@ def main(argv): print('Error: -D option argument must be in the form name=value.', file=sys.stderr) return 1 - if likely_encoding and isinstance(val, six.binary_type): + if likely_encoding and isinstance(val, binary_type): try: val = val.decode(likely_encoding) except UnicodeError: @@ -201,7 +200,7 @@ def main(argv): try: val = int(val) except ValueError: - if likely_encoding and isinstance(val, six.binary_type): + if likely_encoding and isinstance(val, binary_type): try: val = val.decode(likely_encoding) except UnicodeError: diff --git a/sphinx/config.py b/sphinx/config.py index 56e28c033..7b35f8ab5 100644 --- a/sphinx/config.py +++ b/sphinx/config.py @@ -13,8 +13,7 @@ import os import re from os import path -import six -from six import iteritems, string_types +from six import PY3, iteritems, string_types, binary_type, integer_types from sphinx.errors import ConfigError from sphinx.locale import l_ @@ -24,7 +23,7 @@ from sphinx.util.pycompat import b, execfile_ nonascii_re = re.compile(b(r'[\x80-\xff]')) CONFIG_SYNTAX_ERROR = "There is a syntax error in your configuration file: %s" -if six.PY3: +if PY3: CONFIG_SYNTAX_ERROR += "\nDid you change the syntax from 2.x to 3.x?" class Config(object): @@ -245,7 +244,7 @@ class Config(object): # check all string values for non-ASCII characters in bytestrings, # since that can result in UnicodeErrors all over the place for name, value in iteritems(self._raw_config): - if isinstance(value, six.binary_type) and nonascii_re.search(value): + if isinstance(value, binary_type) and nonascii_re.search(value): warn('the config value %r is set to a string with non-ASCII ' 'characters; this can lead to Unicode errors occurring. ' 'Please use Unicode strings, e.g. %r.' % (name, u'Content') @@ -270,7 +269,7 @@ class Config(object): continue elif isinstance(defvalue, list): config[valname] = value.split(',') - elif isinstance(defvalue, six.integer_types): + elif isinstance(defvalue, integer_types): try: config[valname] = int(value) except ValueError: diff --git a/sphinx/environment.py b/sphinx/environment.py index eab36fb2d..c251ebf1f 100644 --- a/sphinx/environment.py +++ b/sphinx/environment.py @@ -22,8 +22,7 @@ from os import path from glob import glob from itertools import groupby -import six -from six import iteritems, itervalues, text_type +from six import iteritems, itervalues, text_type, class_types from six.moves import cPickle as pickle, zip from docutils import nodes from docutils.io import FileInput, NullOutput @@ -141,7 +140,7 @@ class BuildEnvironment: if key.startswith('_') or \ isinstance(val, types.ModuleType) or \ isinstance(val, types.FunctionType) or \ - isinstance(val, six.class_types): + isinstance(val, class_types): del self.config[key] try: pickle.dump(self, picklefile, pickle.HIGHEST_PROTOCOL) diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py index c9857606e..11b38d994 100644 --- a/sphinx/ext/autodoc.py +++ b/sphinx/ext/autodoc.py @@ -17,8 +17,7 @@ import inspect import traceback from types import FunctionType, BuiltinFunctionType, MethodType -import six -from six import iteritems, itervalues, text_type +from six import PY3, iteritems, itervalues, text_type, class_types from docutils import nodes from docutils.utils import assemble_option_dict from docutils.statemachine import ViewList @@ -1029,7 +1028,7 @@ class ClassDocumenter(ModuleLevelDocumenter): @classmethod def can_document_member(cls, member, membername, isattr, parent): - return isinstance(member, six.class_types) + return isinstance(member, class_types) def import_object(self): ret = ModuleLevelDocumenter.import_object(self) @@ -1163,7 +1162,7 @@ class ExceptionDocumenter(ClassDocumenter): @classmethod def can_document_member(cls, member, membername, isattr, parent): - return isinstance(member, six.class_types) and \ + return isinstance(member, class_types) and \ issubclass(member, BaseException) @@ -1213,7 +1212,7 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): return inspect.isroutine(member) and \ not isinstance(parent, ModuleDocumenter) - if six.PY3: + if PY3: def import_object(self): ret = ClassLevelDocumenter.import_object(self) obj_from_parent = self.parent.__dict__.get(self.object_name) @@ -1283,7 +1282,7 @@ class AttributeDocumenter(ClassLevelDocumenter): "instancemethod") return isdatadesc or (not isinstance(parent, ModuleDocumenter) and not inspect.isroutine(member) - and not isinstance(member, six.class_types)) + and not isinstance(member, class_types)) def document_members(self, all_members=False): pass diff --git a/sphinx/ext/doctest.py b/sphinx/ext/doctest.py index b543285d3..b7e247ec9 100644 --- a/sphinx/ext/doctest.py +++ b/sphinx/ext/doctest.py @@ -18,8 +18,7 @@ from os import path # circumvent relative import doctest = __import__('doctest') -import six -from six import itervalues +from six import itervalues, StringIO, binary_type from docutils import nodes from docutils.parsers.rst import directives @@ -158,7 +157,7 @@ class TestCode(object): class SphinxDocTestRunner(doctest.DocTestRunner): def summarize(self, out, verbose=None): - string_io = six.StringIO() + string_io = StringIO() old_stdout = sys.stdout sys.stdout = string_io try: @@ -233,7 +232,7 @@ Results of doctest builder run on %s self.info(text, nonl=True) if self.app.quiet: self.warn(text) - if isinstance(text, six.binary_type): + if isinstance(text, binary_type): text = force_decode(text, None) self.outfile.write(text) diff --git a/sphinx/ext/napoleon/__init__.py b/sphinx/ext/napoleon/__init__.py index 39706cca4..b67ea79c0 100644 --- a/sphinx/ext/napoleon/__init__.py +++ b/sphinx/ext/napoleon/__init__.py @@ -11,8 +11,7 @@ import sys -import six -from six import iteritems +from six import PY2, iteritems from sphinx.ext.napoleon.docstring import GoogleDocstring, NumpyDocstring @@ -350,7 +349,7 @@ def _skip_member(app, what, name, obj, skip, options): if name != '__weakref__' and name != '__init__' and has_doc and is_member: cls_is_owner = False if what == 'class' or what == 'exception': - if six.PY2: + if PY2: cls = getattr(obj, 'im_class', getattr(obj, '__objclass__', None)) cls_is_owner = (cls and hasattr(cls, name) and diff --git a/sphinx/ext/napoleon/docstring.py b/sphinx/ext/napoleon/docstring.py index 6a6650389..1a8d88c6a 100644 --- a/sphinx/ext/napoleon/docstring.py +++ b/sphinx/ext/napoleon/docstring.py @@ -15,7 +15,7 @@ import collections import inspect import re -import six +from six import string_types from six.moves import range from sphinx.ext.napoleon.iterators import modify_iter @@ -115,7 +115,7 @@ class GoogleDocstring(UnicodeMixin): self._name = name self._obj = obj self._opt = options - if isinstance(docstring, six.string_types): + if isinstance(docstring, string_types): docstring = docstring.splitlines() self._lines = docstring self._line_iter = modify_iter(docstring, modifier=lambda s: s.rstrip()) @@ -730,7 +730,7 @@ class NumpyDocstring(GoogleDocstring): def _is_section_header(self): section, underline = self._line_iter.peek(2) section = section.lower() - if section in self._sections and isinstance(underline, six.string_types): + if section in self._sections and isinstance(underline, string_types): pattern = r'[=\-`:\'"~^_*+#<>]{' + str(len(section)) + r'}$' return bool(re.match(pattern, underline)) elif self._directive_sections: diff --git a/sphinx/ext/napoleon/iterators.py b/sphinx/ext/napoleon/iterators.py index 6c539a443..90a0a1ac2 100644 --- a/sphinx/ext/napoleon/iterators.py +++ b/sphinx/ext/napoleon/iterators.py @@ -13,10 +13,10 @@ import collections -import six +from six import PY3 -if six.PY3: +if PY3: callable = lambda o: hasattr(o, '__call__') diff --git a/sphinx/highlighting.py b/sphinx/highlighting.py index 818705b26..599a76a90 100644 --- a/sphinx/highlighting.py +++ b/sphinx/highlighting.py @@ -18,8 +18,7 @@ except ImportError: # parser is not available on Jython parser = None -import six -from six import text_type +from six import PY2, text_type from sphinx.util.pycompat import htmlescape from sphinx.util.texescape import tex_hl_escape_map_new @@ -133,7 +132,7 @@ class PygmentsBridge(object): # lines beginning with "..." are probably placeholders for suite src = re.sub(r"(?m)^(\s*)" + mark + "(.)", r"\1"+ mark + r"# \2", src) - if six.PY2 and isinstance(src, text_type): + if PY2 and isinstance(src, text_type): # Non-ASCII chars will only occur in string literals # and comments. If we wanted to give them to the parser # correctly, we'd have to find out the correct source diff --git a/sphinx/jinja2glue.py b/sphinx/jinja2glue.py index d2cad6e37..c939cba02 100644 --- a/sphinx/jinja2glue.py +++ b/sphinx/jinja2glue.py @@ -12,7 +12,7 @@ from os import path from pprint import pformat -import six +from six import string_types from jinja2 import FileSystemLoader, BaseLoader, TemplateNotFound, \ contextfunction from jinja2.utils import open_if_exists @@ -23,7 +23,7 @@ from sphinx.util.osutil import mtimes_of_files def _tobool(val): - if isinstance(val, six.string_types): + if isinstance(val, string_types): return val.lower() in ('true', '1', 'yes', 'on') return bool(val) diff --git a/sphinx/locale/__init__.py b/sphinx/locale/__init__.py index 113a5a1ba..75deac05c 100644 --- a/sphinx/locale/__init__.py +++ b/sphinx/locale/__init__.py @@ -11,8 +11,7 @@ import gettext -import six -from six import text_type +from six import PY3, text_type from six.moves import UserString @@ -185,7 +184,7 @@ pairindextypes = { translators = {} -if six.PY3: +if PY3: def _(message): return translators['sphinx'].gettext(message) else: diff --git a/sphinx/pycode/__init__.py b/sphinx/pycode/__init__.py index 2ae0bcda9..461eea056 100644 --- a/sphinx/pycode/__init__.py +++ b/sphinx/pycode/__init__.py @@ -13,8 +13,7 @@ from __future__ import print_function import sys from os import path -import six -from six import iteritems, text_type +from six import iteritems, text_type, BytesIO, StringIO from sphinx import package_dir from sphinx.errors import PycodeError @@ -177,8 +176,8 @@ class ModuleAnalyzer(object): @classmethod def for_string(cls, string, modname, srcname=''): if isinstance(string, bytes): - return cls(six.BytesIO(string), modname, srcname) - return cls(six.StringIO(string), modname, srcname, decoded=True) + return cls(BytesIO(string), modname, srcname) + return cls(StringIO(string), modname, srcname, decoded=True) @classmethod def for_file(cls, filename, modname): diff --git a/sphinx/quickstart.py b/sphinx/quickstart.py index 7117e3368..acf26df7b 100644 --- a/sphinx/quickstart.py +++ b/sphinx/quickstart.py @@ -26,8 +26,7 @@ try: except ImportError: pass -import six -from six import text_type +from six import PY2, PY3, text_type from six.moves import input from docutils.utils import column_width @@ -43,7 +42,7 @@ term_input = input PROMPT_PREFIX = '> ' -if six.PY3: +if PY3: # prevents that the file is checked for being written in Python 2.x syntax QUICKSTART_CONF = u'#!/usr/bin/env python3\n' else: @@ -996,7 +995,7 @@ def do_prompt(d, key, text, default=None, validator=nonempty): prompt = PROMPT_PREFIX + '%s [%s]: ' % (text, default) else: prompt = PROMPT_PREFIX + text + ': ' - if six.PY2: + if PY2: # for Python 2.x, try to get a Unicode string out of it if prompt.encode('ascii', 'replace').decode('ascii', 'replace') \ != prompt: @@ -1036,7 +1035,7 @@ def do_prompt(d, key, text, default=None, validator=nonempty): d[key] = x -if six.PY3: +if PY3: # remove Unicode literal prefixes def _convert_python_source(source, rex=re.compile(r"[uU]('.*?')")): return rex.sub('\\1', source) diff --git a/sphinx/search/__init__.py b/sphinx/search/__init__.py index ea6fc2c84..fb44cff84 100644 --- a/sphinx/search/__init__.py +++ b/sphinx/search/__init__.py @@ -12,8 +12,7 @@ from __future__ import with_statement import re -import six -from six import iteritems, itervalues, text_type +from six import iteritems, itervalues, text_type, string_types from six.moves import cPickle as pickle from docutils.nodes import raw, comment, title, Text, NodeVisitor, SkipNode @@ -239,7 +238,7 @@ class IndexBuilder(object): def load(self, stream, format): """Reconstruct from frozen data.""" - if isinstance(format, six.string_types): + if isinstance(format, string_types): format = self.formats[format] frozen = format.load(stream) # if an old index is present, we treat it as not existing. @@ -264,7 +263,7 @@ class IndexBuilder(object): def dump(self, stream, format): """Dump the frozen index to a stream.""" - if isinstance(format, six.string_types): + if isinstance(format, string_types): format = self.formats[format] format.dump(self.freeze(), stream) diff --git a/sphinx/setup_command.py b/sphinx/setup_command.py index 029a44c24..c2a661ee6 100644 --- a/sphinx/setup_command.py +++ b/sphinx/setup_command.py @@ -19,7 +19,7 @@ import types from distutils.cmd import Command from distutils.errors import DistutilsOptionError -import six +from six import StringIO from sphinx.application import Sphinx from sphinx.util.console import darkred, nocolor, color_terminal @@ -142,7 +142,7 @@ class BuildDoc(Command): # Windows' poor cmd box doesn't understand ANSI sequences nocolor() if not self.verbose: - status_stream = six.StringIO() + status_stream = StringIO() else: status_stream = sys.stdout confoverrides = {} diff --git a/sphinx/theming.py b/sphinx/theming.py index fb72f3516..41cbcae96 100644 --- a/sphinx/theming.py +++ b/sphinx/theming.py @@ -15,8 +15,7 @@ import zipfile import tempfile from os import path -import six -from six import iteritems +from six import string_types, iteritems from six.moves import configparser try: @@ -191,7 +190,7 @@ def load_theme_plugins(): except: path = func_or_path - if isinstance(path, six.string_types): + if isinstance(path, string_types): theme_paths.append(path) else: raise ThemeError('Plugin %r does not response correctly.' % diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py index 4a5539186..cc3c9fe10 100644 --- a/sphinx/util/__init__.py +++ b/sphinx/util/__init__.py @@ -21,8 +21,7 @@ from os import path from codecs import open, BOM_UTF8 from collections import deque -import six -from six import iteritems, text_type +from six import iteritems, text_type, binary_type from six.moves import range import docutils from docutils.utils import relative_path @@ -337,7 +336,7 @@ def parselinenos(spec, total): def force_decode(string, encoding): """Forcibly get a unicode string out of a bytestring.""" - if isinstance(string, six.binary_type): + if isinstance(string, binary_type): try: if encoding: string = string.decode(encoding) diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py index 7cf0be38a..f82f1f451 100644 --- a/sphinx/util/inspect.py +++ b/sphinx/util/inspect.py @@ -13,12 +13,13 @@ # relatively import this module inspect = __import__('inspect') -import six +from six import PY3, binary_type +from six.moves import builtins from sphinx.util import force_decode -if six.PY3: +if PY3: from functools import partial def getargspec(func): """Like inspect.getargspec but supports functools.partial as well.""" @@ -128,7 +129,7 @@ def safe_repr(object): s = repr(object) except Exception: raise ValueError - if isinstance(s, six.binary_type): + if isinstance(s, binary_type): return force_decode(s, None).replace('\n', ' ') return s.replace('\n', ' ') @@ -145,6 +146,6 @@ def is_builtin_class_method(obj, attr_name): classes = [c for c in inspect.getmro(obj) if attr_name in c.__dict__] cls = classes[0] if classes else object - if not hasattr(six.moves.builtins, safe_getattr(cls, '__name__', '')): + if not hasattr(builtins, safe_getattr(cls, '__name__', '')): return False - return getattr(six.moves.builtins, safe_getattr(cls, '__name__', '')) is cls + return getattr(builtins, safe_getattr(cls, '__name__', '')) is cls diff --git a/sphinx/util/jsdump.py b/sphinx/util/jsdump.py index e75f9f848..ede4ae7da 100644 --- a/sphinx/util/jsdump.py +++ b/sphinx/util/jsdump.py @@ -12,8 +12,7 @@ import re -import six -from six import iteritems, integer_types +from six import iteritems, integer_types, string_types from sphinx.util.pycompat import u @@ -77,7 +76,7 @@ double in super""".split()) def dumps(obj, key=False): if key: - if not isinstance(obj, six.string_types): + if not isinstance(obj, string_types): obj = str(obj) if _nameonly_re.match(obj) and obj not in reswords: return obj # return it as a bare word @@ -96,7 +95,7 @@ def dumps(obj, key=False): ) for key, value in iteritems(obj)) elif isinstance(obj, (tuple, list, set)): return '[%s]' % ','.join(dumps(x) for x in obj) - elif isinstance(obj, six.string_types): + elif isinstance(obj, string_types): return encode_string(obj) raise TypeError(type(obj)) diff --git a/sphinx/util/osutil.py b/sphinx/util/osutil.py index 34b609b21..50cf8ee5c 100644 --- a/sphinx/util/osutil.py +++ b/sphinx/util/osutil.py @@ -20,8 +20,7 @@ import shutil import gettext from os import path -import six -from six import text_type +from six import PY2, text_type # Errnos that we need. EEXIST = getattr(errno, 'EEXIST', 0) @@ -150,7 +149,7 @@ no_fn_re = re.compile(r'[^a-zA-Z0-9_-]') def make_filename(string): return no_fn_re.sub('', string) or 'sphinx' -if six.PY2: +if PY2: # strftime for unicode strings def ustrftime(format, *args): # if a locale is set, the time strings are encoded in the encoding @@ -190,7 +189,7 @@ def find_catalog_files(docname, srcdir, locale_dirs, lang, compaction): fs_encoding = sys.getfilesystemencoding() or sys.getdefaultencoding() -if six.PY2: +if PY2: bytes = str else: bytes = bytes diff --git a/sphinx/util/pycompat.py b/sphinx/util/pycompat.py index b3e50474a..af2037d08 100644 --- a/sphinx/util/pycompat.py +++ b/sphinx/util/pycompat.py @@ -12,12 +12,12 @@ import sys import codecs -import six +from six import PY3, text_type, exec_ # ------------------------------------------------------------------------------ # Python 2/3 compatibility -if six.PY3: +if PY3: # Python 3 # the ubiquitous "bytes" helper functions def b(s): @@ -45,7 +45,7 @@ if six.PY3: lineno, offset = err.context[1] # try to match ParseError details with SyntaxError details raise SyntaxError(err.msg, (filepath, lineno, offset, err.value)) - return six.text_type(tree) + return text_type(tree) from html import escape as htmlescape # >= Python 3.2 class UnicodeMixin: @@ -106,4 +106,4 @@ def execfile_(filepath, _globals): code = compile(source, filepath_enc, 'exec') else: raise - six.exec_(code, _globals) + exec_(code, _globals) diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py index 6871357d7..2d3366924 100644 --- a/sphinx/writers/html.py +++ b/sphinx/writers/html.py @@ -14,7 +14,7 @@ import posixpath import os import copy -import six +from six import string_types from docutils import nodes from docutils.writers.html4css1 import Writer, HTMLTranslator as BaseTranslator @@ -75,7 +75,7 @@ class HTMLTranslator(BaseTranslator): self.protect_literal_text = 0 self.permalink_text = builder.config.html_add_permalinks # support backwards-compatible setting to a bool - if not isinstance(self.permalink_text, six.string_types): + if not isinstance(self.permalink_text, string_types): self.permalink_text = self.permalink_text and u'\u00B6' or '' self.permalink_text = self.encode(self.permalink_text) self.secnumber_suffix = builder.config.html_secnumber_suffix diff --git a/tests/coverage.py b/tests/coverage.py index 89b81e5df..fa65a7158 100755 --- a/tests/coverage.py +++ b/tests/coverage.py @@ -72,7 +72,7 @@ import token import zipimport from socket import gethostname -import six +from six import string_types # 2. IMPLEMENTATION @@ -841,7 +841,7 @@ class coverage: # On windows, the shell doesn't expand wildcards. Do it here. globbed = [] for morf in morfs: - if isinstance(morf, six.string_types): + if isinstance(morf, string_types): globbed.extend(glob.glob(morf)) else: globbed.append(morf) diff --git a/tests/etree13/ElementTree.py b/tests/etree13/ElementTree.py index 8ab17d93c..e9e9d8b5a 100644 --- a/tests/etree13/ElementTree.py +++ b/tests/etree13/ElementTree.py @@ -81,7 +81,7 @@ from __future__ import generators from __future__ import absolute_import -import six +from six import string_types __all__ = [ @@ -831,7 +831,7 @@ def _namespaces(elem, encoding, default_namespace=None): tag = elem.tag if isinstance(tag, QName) and tag.text not in qnames: add_qname(tag.text) - elif isinstance(tag, six.string_types): + elif isinstance(tag, string_types): if tag not in qnames: add_qname(tag) elif tag is not None and tag is not Comment and tag is not PI: diff --git a/tests/path.py b/tests/path.py index ddfd49b79..2a4affe77 100755 --- a/tests/path.py +++ b/tests/path.py @@ -12,8 +12,7 @@ import sys import shutil from codecs import open -import six -from six import text_type +from six import PY2, text_type FILESYSTEMENCODING = sys.getfilesystemencoding() or sys.getdefaultencoding() @@ -23,7 +22,7 @@ class path(text_type): """ Represents a path which behaves like a string. """ - if six.PY2: + if PY2: def __new__(cls, s, encoding=FILESYSTEMENCODING, errors='strict'): if isinstance(s, str): s = s.decode(encoding, errors) diff --git a/tests/run.py b/tests/run.py index 8d2a828a0..e8cf787ff 100755 --- a/tests/run.py +++ b/tests/run.py @@ -15,7 +15,7 @@ import sys from os import path, chdir, listdir, environ import shutil -import six +from six import PY3 testroot = path.dirname(__file__) or '.' @@ -29,7 +29,7 @@ else: shutil.rmtree(newroot, ignore_errors=True) -if six.PY3: +if PY3: print('Copying and converting sources to build/lib/tests...') from distutils.util import copydir_run_2to3 copydir_run_2to3(testroot, newroot) diff --git a/tests/test_application.py b/tests/test_application.py index d8c52b246..49c27452a 100644 --- a/tests/test_application.py +++ b/tests/test_application.py @@ -9,7 +9,7 @@ :license: BSD, see LICENSE for details. """ -import six +from six import StringIO from docutils import nodes from sphinx.application import ExtensionError @@ -49,7 +49,7 @@ def test_emit_with_nonascii_name_node(app): def test_output(): - status, warnings = six.StringIO(), six.StringIO() + status, warnings = StringIO(), StringIO() app = TestApp(status=status, warning=warnings) try: status.truncate(0) # __init__ writes to status @@ -70,7 +70,7 @@ def test_output(): def test_extensions(): - status, warnings = six.StringIO(), six.StringIO() + status, warnings = StringIO(), StringIO() app = TestApp(status=status, warning=warnings) try: app.setup_extension('shutil') @@ -85,7 +85,7 @@ def test_domain_override(): name = 'foo' class C(Domain): name = 'foo' - status, warnings = six.StringIO(), six.StringIO() + status, warnings = StringIO(), StringIO() app = TestApp(status=status, warning=warnings) try: # No domain know named foo. diff --git a/tests/test_autodoc.py b/tests/test_autodoc.py index 7b6c017e3..b85aee78e 100644 --- a/tests/test_autodoc.py +++ b/tests/test_autodoc.py @@ -14,7 +14,7 @@ from util import TestApp, Struct, raises from nose.tools import with_setup -import six +from six import StringIO from docutils.statemachine import ViewList from sphinx.ext.autodoc import AutoDirective, add_documenter, \ @@ -809,7 +809,7 @@ class Class(Base): u"""should be documented as well - süß""" # initialized to any class imported from another module - mdocattr = six.StringIO() + mdocattr = StringIO() """should be documented as well - süß""" roger = _funky_classmethod("roger", 2, 3, 4) diff --git a/tests/test_build_html.py b/tests/test_build_html.py index 955025b25..afe78526a 100644 --- a/tests/test_build_html.py +++ b/tests/test_build_html.py @@ -12,8 +12,7 @@ import os import re -import six -from six import iteritems +from six import PY3, iteritems, StringIO from six.moves import html_entities try: @@ -30,7 +29,7 @@ def teardown_module(): (test_root / '_build').rmtree(True) -html_warnfile = six.StringIO() +html_warnfile = StringIO() ENV_WARNINGS = """\ %(root)s/autodoc_fodder.py:docstring of autodoc_fodder\\.MarkupError:2: \ @@ -55,7 +54,7 @@ None:\\d+: WARNING: citation not found: missing %(root)s/markup.txt:: WARNING: invalid pair index entry u'keyword; ' """ -if six.PY3: +if PY3: ENV_WARNINGS = remove_unicode_literals(ENV_WARNINGS) HTML_WARNINGS = remove_unicode_literals(HTML_WARNINGS) diff --git a/tests/test_build_latex.py b/tests/test_build_latex.py index 0a2a6421f..41ae03df3 100644 --- a/tests/test_build_latex.py +++ b/tests/test_build_latex.py @@ -14,7 +14,7 @@ import os import re from subprocess import Popen, PIPE -import six +from six import PY3, StringIO from sphinx.writers.latex import LaTeXTranslator @@ -26,7 +26,7 @@ def teardown_module(): (test_root / '_build').rmtree(True) -latex_warnfile = six.StringIO() +latex_warnfile = StringIO() LATEX_WARNINGS = ENV_WARNINGS + """\ None:None: WARNING: citation not found: missing @@ -35,7 +35,7 @@ WARNING: invalid pair index entry u'' WARNING: invalid pair index entry u'keyword; ' """ -if six.PY3: +if PY3: LATEX_WARNINGS = remove_unicode_literals(LATEX_WARNINGS) diff --git a/tests/test_build_texinfo.py b/tests/test_build_texinfo.py index 3cb30a2d5..fbe8a1731 100644 --- a/tests/test_build_texinfo.py +++ b/tests/test_build_texinfo.py @@ -14,7 +14,7 @@ import os import re from subprocess import Popen, PIPE -import six +from six import PY3, StringIO from sphinx.writers.texinfo import TexinfoTranslator @@ -26,7 +26,7 @@ def teardown_module(): (test_root / '_build').rmtree(True) -texinfo_warnfile = six.StringIO() +texinfo_warnfile = StringIO() TEXINFO_WARNINGS = ENV_WARNINGS + """\ None:None: WARNING: citation not found: missing @@ -34,7 +34,7 @@ None:None: WARNING: no matching candidate for image URI u'foo.\\*' None:None: WARNING: no matching candidate for image URI u'svgimg.\\*' """ -if six.PY3: +if PY3: TEXINFO_WARNINGS = remove_unicode_literals(TEXINFO_WARNINGS) diff --git a/tests/test_config.py b/tests/test_config.py index f69a2185a..eaecb066e 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -9,7 +9,7 @@ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. """ -import six +from six import PY3 from util import TestApp, with_app, with_tempdir, raises, raises_msg @@ -101,7 +101,7 @@ def test_errors_warnings(dir): # test the warning for bytestrings with non-ascii content # bytestrings with non-ascii content are a syntax error in python3 so we # skip the test there - if six.PY3: + if PY3: return (dir / 'conf.py').write_text( u'# -*- coding: latin-1\nproject = "fooä"\n', encoding='latin-1') diff --git a/tests/test_doctest.py b/tests/test_doctest.py index d90a5be82..9fb8a2ead 100644 --- a/tests/test_doctest.py +++ b/tests/test_doctest.py @@ -12,12 +12,12 @@ from __future__ import print_function import sys -import six +from six import StringIO from util import with_app -status = six.StringIO() +status = StringIO() cleanup_called = 0 @with_app(buildername='doctest', status=status) diff --git a/tests/test_docutilsconf.py b/tests/test_docutilsconf.py index edd72be8a..3389a16ee 100644 --- a/tests/test_docutilsconf.py +++ b/tests/test_docutilsconf.py @@ -13,12 +13,12 @@ import os import re from functools import wraps -import six +from six import StringIO from util import test_roots, TestApp -html_warnfile = six.StringIO() +html_warnfile = StringIO() root = test_roots / 'test-docutilsconf' diff --git a/tests/test_env.py b/tests/test_env.py index 10dd9c8a1..11e73edfe 100644 --- a/tests/test_env.py +++ b/tests/test_env.py @@ -8,7 +8,7 @@ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. """ -import six +from six import PY3 from util import TestApp, remove_unicode_literals, path @@ -57,7 +57,7 @@ def test_images(): htmlbuilder.imgpath = 'dummy' htmlbuilder.post_process_images(tree) image_uri_message = "no matching candidate for image URI u'foo.*'" - if six.PY3: + if PY3: image_uri_message = remove_unicode_literals(image_uri_message) assert image_uri_message in app._warning.content[-1] assert set(htmlbuilder.images.keys()) == \ diff --git a/tests/test_intersphinx.py b/tests/test_intersphinx.py index 9ed9fe688..dd71c6fbd 100644 --- a/tests/test_intersphinx.py +++ b/tests/test_intersphinx.py @@ -12,7 +12,7 @@ import zlib import posixpath -import six +from six import BytesIO from docutils import nodes from sphinx import addnodes @@ -45,7 +45,7 @@ a term std:term -1 glossary.html#term-a-term - def test_read_inventory_v1(): - f = six.BytesIO(inventory_v1) + f = BytesIO(inventory_v1) f.readline() invdata = read_inventory_v1(f, '/util', posixpath.join) assert invdata['py:module']['module'] == \ @@ -55,12 +55,12 @@ def test_read_inventory_v1(): def test_read_inventory_v2(): - f = six.BytesIO(inventory_v2) + f = BytesIO(inventory_v2) f.readline() invdata1 = read_inventory_v2(f, '/util', posixpath.join) # try again with a small buffer size to test the chunking algorithm - f = six.BytesIO(inventory_v2) + f = BytesIO(inventory_v2) f.readline() invdata2 = read_inventory_v2(f, '/util', posixpath.join, bufsize=5) diff --git a/tests/test_intl.py b/tests/test_intl.py index 3f25050c5..b4ce96449 100644 --- a/tests/test_intl.py +++ b/tests/test_intl.py @@ -16,12 +16,12 @@ import re from subprocess import Popen, PIPE from xml.etree import ElementTree -import six +from six import StringIO, string_types from util import test_roots, path, with_app, SkipTest -warnfile = six.StringIO() +warnfile = StringIO() root = test_roots / 'test-intl' doctreedir = root / '_build' / 'doctree' @@ -77,7 +77,7 @@ def elem_gettexts(elem): # this function copied from Python-2.7 'ElementTree.itertext'. # for compatibility to Python-2.6 tag = self.tag - if not isinstance(tag, six.string_types) and tag is not None: + if not isinstance(tag, string_types) and tag is not None: return if self.text: yield self.text diff --git a/tests/test_quickstart.py b/tests/test_quickstart.py index 31f6fa97d..901d8ccd9 100644 --- a/tests/test_quickstart.py +++ b/tests/test_quickstart.py @@ -12,8 +12,8 @@ import sys import time -import six -from six import text_type +from six import PY2, text_type, StringIO +from six.moves import input from util import raises, with_tempdir, SkipTest @@ -23,7 +23,7 @@ from sphinx.util.console import nocolor, coloron from sphinx.util.pycompat import execfile_ -warnfile = six.StringIO() +warnfile = StringIO() def setup_module(): @@ -31,12 +31,12 @@ def setup_module(): def mock_input(answers, needanswer=False): called = set() - def input(prompt): + def input_(prompt): if prompt in called: raise AssertionError('answer for %r missing and no default ' 'present' % prompt) called.add(prompt) - if six.PY2: + if PY2: prompt = str(prompt) # Python2.x raw_input emulation # `raw_input` encode `prompt` by default encoding to print. else: @@ -48,9 +48,9 @@ def mock_input(answers, needanswer=False): if needanswer: raise AssertionError('answer for %r missing' % prompt) return '' - return input + return input_ -real_input = six.moves.input +real_input = input def teardown_module(): qs.term_input = real_input @@ -262,7 +262,7 @@ def test_quickstart_and_build(tempdir): (tempdir / '_build' / 'html'), #outdir (tempdir / '_build' / '.doctree'), #doctreedir 'html', #buildername - status=six.StringIO(), + status=StringIO(), warning=warnfile) app.builder.build_all() warnings = warnfile.getvalue() diff --git a/tests/test_searchadapters.py b/tests/test_searchadapters.py index 1aebcd9f0..9a41601d7 100644 --- a/tests/test_searchadapters.py +++ b/tests/test_searchadapters.py @@ -11,7 +11,7 @@ import os -import six +from six import StringIO from sphinx.websupport import WebSupport @@ -32,8 +32,8 @@ def search_adapter_helper(adapter): clear_builddir() settings = {'builddir': os.path.join(test_root, 'websupport'), - 'status': six.StringIO(), - 'warning': six.StringIO()} + 'status': StringIO(), + 'warning': StringIO()} settings.update({'srcdir': test_root, 'search': adapter}) support = WebSupport(**settings) diff --git a/tests/test_websupport.py b/tests/test_websupport.py index 7c7a4f0f3..d355422c9 100644 --- a/tests/test_websupport.py +++ b/tests/test_websupport.py @@ -12,7 +12,7 @@ import os from functools import wraps -import six +from six import StringIO from sphinx.websupport import WebSupport from sphinx.websupport.errors import DocumentNotFoundError, \ @@ -31,8 +31,8 @@ from util import test_root, raises, skip_if default_settings = {'builddir': os.path.join(test_root, 'websupport'), - 'status': six.StringIO(), - 'warning': six.StringIO()} + 'status': StringIO(), + 'warning': StringIO()} def teardown_module(): (test_root / 'generated').rmtree(True) diff --git a/tests/util.py b/tests/util.py index 5eb879f58..72cac038b 100644 --- a/tests/util.py +++ b/tests/util.py @@ -13,7 +13,7 @@ import shutil import re from functools import wraps -import six +from six import StringIO from sphinx import application from sphinx.theming import Theme @@ -163,7 +163,7 @@ class TestApp(application.Sphinx): if confoverrides is None: confoverrides = {} if status is None: - status = six.StringIO() + status = StringIO() if warning is None: warning = ListOutput('stderr') if freshenv is None: