summaryrefslogtreecommitdiff
path: root/doc/sphinxext/numpydoc/numpydoc.py
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2013-04-21 20:25:35 -0700
committerCharles Harris <charlesr.harris@gmail.com>2013-04-21 20:25:35 -0700
commitee19043127784e579a45ceb2f02ff350ec8b6019 (patch)
treec5444ffc894d43d314ec2026ced8723c577ffc44 /doc/sphinxext/numpydoc/numpydoc.py
parent56e806abb78ac03a5f45090a3b9bf7a6c9964026 (diff)
parent211154eb336f5314b33e2486fa79953c90be8a11 (diff)
downloadnumpy-ee19043127784e579a45ceb2f02ff350ec8b6019.tar.gz
Merge pull request #3257 from charris/2to3-apply-unicode-fixer
2to3: Apply unicode fixer.
Diffstat (limited to 'doc/sphinxext/numpydoc/numpydoc.py')
-rw-r--r--doc/sphinxext/numpydoc/numpydoc.py44
1 files changed, 25 insertions, 19 deletions
diff --git a/doc/sphinxext/numpydoc/numpydoc.py b/doc/sphinxext/numpydoc/numpydoc.py
index 773a87d37..b8a5e959c 100644
--- a/doc/sphinxext/numpydoc/numpydoc.py
+++ b/doc/sphinxext/numpydoc/numpydoc.py
@@ -17,16 +17,22 @@ It will:
"""
from __future__ import division, absolute_import, print_function
+import os, sys, re, pydoc
import sphinx
+import inspect
import collections
if sphinx.__version__ < '1.0.1':
raise RuntimeError("Sphinx 1.0.1 or newer is required")
-import os, sys, re, pydoc
from .docscrape_sphinx import get_doc_object, SphinxDocString
from sphinx.util.compat import Directive
-import inspect
+
+if sys.version_info[0] >= 3:
+ sixu = lambda s: s
+else:
+ sixu = lambda s: unicode(s, 'unicode_escape')
+
def mangle_docstrings(app, what, name, obj, options, lines,
reference_offset=[0]):
@@ -36,32 +42,32 @@ def mangle_docstrings(app, what, name, obj, options, lines,
if what == 'module':
# Strip top title
- title_re = re.compile(u'^\\s*[#*=]{4,}\\n[a-z0-9 -]+\\n[#*=]{4,}\\s*',
+ title_re = re.compile(sixu('^\\s*[#*=]{4,}\\n[a-z0-9 -]+\\n[#*=]{4,}\\s*'),
re.I|re.S)
- lines[:] = title_re.sub(u'', u"\n".join(lines)).split(u"\n")
+ lines[:] = title_re.sub(sixu(''), sixu("\n").join(lines)).split(sixu("\n"))
else:
- doc = get_doc_object(obj, what, u"\n".join(lines), config=cfg)
+ doc = get_doc_object(obj, what, sixu("\n").join(lines), config=cfg)
if sys.version_info[0] >= 3:
doc = str(doc)
else:
doc = str(doc).decode('utf-8')
- lines[:] = doc.split(u"\n")
+ lines[:] = doc.split(sixu("\n"))
if app.config.numpydoc_edit_link and hasattr(obj, '__name__') and \
obj.__name__:
if hasattr(obj, '__module__'):
- v = dict(full_name=u"%s.%s" % (obj.__module__, obj.__name__))
+ v = dict(full_name=sixu("%s.%s") % (obj.__module__, obj.__name__))
else:
v = dict(full_name=obj.__name__)
- lines += [u'', u'.. htmlonly::', u'']
- lines += [u' %s' % x for x in
+ lines += [sixu(''), sixu('.. htmlonly::'), sixu('')]
+ lines += [sixu(' %s') % x for x in
(app.config.numpydoc_edit_link % v).split("\n")]
# replace reference numbers so that there are no duplicates
references = []
for line in lines:
line = line.strip()
- m = re.match(u'^.. \\[([a-z0-9_.-])\\]', line, re.I)
+ m = re.match(sixu('^.. \\[([a-z0-9_.-])\\]'), line, re.I)
if m:
references.append(m.group(1))
@@ -70,14 +76,14 @@ def mangle_docstrings(app, what, name, obj, options, lines,
if references:
for i, line in enumerate(lines):
for r in references:
- if re.match(u'^\\d+$', r):
- new_r = u"R%d" % (reference_offset[0] + int(r))
+ if re.match(sixu('^\\d+$'), r):
+ new_r = sixu("R%d") % (reference_offset[0] + int(r))
else:
- new_r = u"%s%d" % (r, reference_offset[0])
- lines[i] = lines[i].replace(u'[%s]_' % r,
- u'[%s]_' % new_r)
- lines[i] = lines[i].replace(u'.. [%s]' % r,
- u'.. [%s]' % new_r)
+ new_r = sixu("%s%d") % (r, reference_offset[0])
+ lines[i] = lines[i].replace(sixu('[%s]_') % r,
+ sixu('[%s]_') % new_r)
+ lines[i] = lines[i].replace(sixu('.. [%s]') % r,
+ sixu('.. [%s]') % new_r)
reference_offset[0] += len(references)
@@ -93,8 +99,8 @@ def mangle_signature(app, what, name, obj, options, sig, retann):
doc = SphinxDocString(pydoc.getdoc(obj))
if doc['Signature']:
- sig = re.sub(u"^[^(]*", u"", doc['Signature'])
- return sig, u''
+ sig = re.sub(sixu("^[^(]*"), sixu(""), doc['Signature'])
+ return sig, sixu('')
def setup(app, get_doc_object_=get_doc_object):
if not hasattr(app, 'add_config_value'):