1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
|
From 8f74d791e9e384cf6fb8102e3782a0fe1a564068 Mon Sep 17 00:00:00 2001
From: Jakub Wilk <jwilk@debian.org>
Date: Thu, 8 Oct 2015 11:57:09 -0700
Subject: Allow all data files to be moved to /usr/share/docutils/.
Forwarded: not-needed
Last-Update: 2016-12-10
Patch-Name: move-data-to-usr-share.diff
---
docutils/__init__.py | 15 +++++++++++++++
docutils/parsers/rst/directives/misc.py | 3 ++-
docutils/writers/html4css1/__init__.py | 9 +++++----
docutils/writers/html5_polyglot/__init__.py | 4 ++--
docutils/writers/latex2e/__init__.py | 3 ++-
docutils/writers/odf_odt/__init__.py | 4 ++--
docutils/writers/pep_html/__init__.py | 4 ++--
docutils/writers/s5_html/__init__.py | 2 +-
.../test_parsers/test_rst/test_directives/test_include.py | 3 ++-
9 files changed, 33 insertions(+), 14 deletions(-)
diff --git a/docutils/__init__.py b/docutils/__init__.py
index 79ed8fb..883ec13 100644
--- a/docutils/__init__.py
+++ b/docutils/__init__.py
@@ -215,3 +215,18 @@ class Component(SettingsSpec, TransformSpec):
a certain input context or output format.
"""
return format in self.supported
+
+import os
+
+_debian_package = 0
+
+if _debian_package:
+ def _datadir(path):
+ dirname = os.path.dirname(path)
+ prefix = os.path.join(os.path.dirname(__file__), '') # _datadir
+ assert path.startswith(prefix), "%r doesn't start with %r" % (path, prefix)
+ suffix = dirname[len(prefix):]
+ return os.path.join('/usr/share/docutils/', suffix)
+else:
+ def _datadir(path):
+ return os.path.dirname(path)
diff --git a/docutils/parsers/rst/directives/misc.py b/docutils/parsers/rst/directives/misc.py
index f843bdc..c734ced 100644
--- a/docutils/parsers/rst/directives/misc.py
+++ b/docutils/parsers/rst/directives/misc.py
@@ -10,6 +10,7 @@ import sys
import os.path
import re
import time
+import docutils
from docutils import io, nodes, statemachine, utils
from docutils.utils.error_reporting import SafeString, ErrorString
from docutils.utils.error_reporting import locale_encoding
@@ -47,7 +48,7 @@ class Include(Directive):
'class': directives.class_option,
'name': directives.unchanged}
- standard_include_path = os.path.join(os.path.dirname(states.__file__),
+ standard_include_path = os.path.join(docutils._datadir(states.__file__),
'include')
def run(self):
diff --git a/docutils/writers/html4css1/__init__.py b/docutils/writers/html4css1/__init__.py
index 7853496..fe5b493 100644
--- a/docutils/writers/html4css1/__init__.py
+++ b/docutils/writers/html4css1/__init__.py
@@ -27,15 +27,16 @@ class Writer(writers._html_base.Writer):
default_stylesheets = ['html4css1.css']
default_stylesheet_dirs = ['.',
- os.path.abspath(os.path.dirname(__file__)),
+ docutils._datadir(os.path.abspath(__file__)),
# for math.css
- os.path.abspath(os.path.join(
- os.path.dirname(os.path.dirname(__file__)), 'html5_polyglot'))
+ os.path.join(
+ docutils._datadir(os.path.dirname(os.path.abspath(__file__))),
+ 'html5_polyglot')
]
default_template = 'template.txt'
default_template_path = os.path.join(
- os.path.dirname(os.path.abspath(__file__)), default_template)
+ docutils._datadir(os.path.abspath(__file__)), default_template)
settings_spec = (
'HTML-Specific Options',
diff --git a/docutils/writers/html5_polyglot/__init__.py b/docutils/writers/html5_polyglot/__init__.py
index c14c5ee..056705c 100644
--- a/docutils/writers/html5_polyglot/__init__.py
+++ b/docutils/writers/html5_polyglot/__init__.py
@@ -40,11 +40,11 @@ class Writer(writers._html_base.Writer):
"""Formats this writer supports."""
default_stylesheets = ['minimal.css','plain.css']
- default_stylesheet_dirs = ['.', os.path.abspath(os.path.dirname(__file__))]
+ default_stylesheet_dirs = ['.', docutils._datadir(os.path.abspath(__file__))]
default_template = 'template.txt'
default_template_path = os.path.join(
- os.path.dirname(os.path.abspath(__file__)), default_template)
+ docutils._datadir(os.path.abspath(__file__)), default_template)
settings_spec = (
'HTML-Specific Options',
diff --git a/docutils/writers/latex2e/__init__.py b/docutils/writers/latex2e/__init__.py
index 112bc76..f16d757 100644
--- a/docutils/writers/latex2e/__init__.py
+++ b/docutils/writers/latex2e/__init__.py
@@ -23,6 +23,7 @@ try:
import roman
except ImportError:
import docutils.utils.roman as roman
+import docutils
from docutils import frontend, nodes, languages, writers, utils, io
from docutils.utils.error_reporting import SafeString
from docutils.transforms import writer_aux
@@ -34,7 +35,7 @@ class Writer(writers.Writer):
"""Formats this writer supports."""
default_template = 'default.tex'
- default_template_path = os.path.dirname(os.path.abspath(__file__))
+ default_template_path = docutils._datadir(os.path.abspath(__file__))
default_preamble = '\n'.join([r'% PDF Standard Fonts',
r'\usepackage{mathptmx} % Times',
r'\usepackage[scaled=.90]{helvet}',
diff --git a/docutils/writers/odf_odt/__init__.py b/docutils/writers/odf_odt/__init__.py
index 3b29e3b..90a2f0b 100644
--- a/docutils/writers/odf_odt/__init__.py
+++ b/docutils/writers/odf_odt/__init__.py
@@ -399,13 +399,13 @@ class Writer(writers.Writer):
default_stylesheet_path = utils.relative_path(
os.path.join(os.getcwd(), 'dummy'),
- os.path.join(os.path.dirname(__file__), default_stylesheet))
+ os.path.join(docutils._datadir(__file__), default_stylesheet))
default_template = 'template.txt'
default_template_path = utils.relative_path(
os.path.join(os.getcwd(), 'dummy'),
- os.path.join(os.path.dirname(__file__), default_template))
+ os.path.join(docutils._datadir(__file__), default_template))
settings_spec = (
'ODF-Specific Options',
diff --git a/docutils/writers/pep_html/__init__.py b/docutils/writers/pep_html/__init__.py
index c7ca79d..4de1930 100644
--- a/docutils/writers/pep_html/__init__.py
+++ b/docutils/writers/pep_html/__init__.py
@@ -24,13 +24,13 @@ class Writer(html4css1.Writer):
default_stylesheet_path = utils.relative_path(
os.path.join(os.getcwd(), 'dummy'),
- os.path.join(os.path.dirname(__file__), default_stylesheet))
+ os.path.join(docutils._datadir(__file__), default_stylesheet))
default_template = 'template.txt'
default_template_path = utils.relative_path(
os.path.join(os.getcwd(), 'dummy'),
- os.path.join(os.path.dirname(__file__), default_template))
+ os.path.join(docutils._datadir(__file__), default_template))
settings_spec = html4css1.Writer.settings_spec + (
'PEP/HTML-Specific Options',
diff --git a/docutils/writers/s5_html/__init__.py b/docutils/writers/s5_html/__init__.py
index 411e562..dd19826 100644
--- a/docutils/writers/s5_html/__init__.py
+++ b/docutils/writers/s5_html/__init__.py
@@ -21,7 +21,7 @@ from docutils._compat import b
themes_dir_path = utils.relative_path(
os.path.join(os.getcwd(), 'dummy'),
- os.path.join(os.path.dirname(__file__), 'themes'))
+ os.path.join(docutils._datadir(__file__), 'themes'))
def find_theme(name):
# Where else to look for a theme?
diff --git a/test/test_parsers/test_rst/test_directives/test_include.py b/test/test_parsers/test_rst/test_directives/test_include.py
index d5706fb..eb2b55b 100755
--- a/test/test_parsers/test_rst/test_directives/test_include.py
+++ b/test/test_parsers/test_rst/test_directives/test_include.py
@@ -11,6 +11,7 @@ Tests for misc.py "include" directive.
import os.path
import sys
from __init__ import DocutilsTestSupport
+import docutils
from docutils.parsers.rst import states
from docutils._compat import b
from docutils.utils.code_analyzer import with_pygments
@@ -47,7 +48,7 @@ if sys.version_info < (3,0):
utf_16_error_str = ("UnicodeError: Unable to decode input data. "
"Tried the following encodings: 'ascii'.\n"
" (%s)" % utf_16_error_str)
-nonexistent = os.path.join(os.path.dirname(states.__file__),
+nonexistent = os.path.join(docutils._datadir(states.__file__),
'include', 'nonexistent')
nonexistent_rel = DocutilsTestSupport.utils.relative_path(
os.path.join(DocutilsTestSupport.testroot, 'dummy'), nonexistent)
|