rst: import docutils lazily, to avoid errors during ikiwiki --setup
authorSimon McVittie <smcv@debian.org>
Sat, 22 Oct 2011 18:46:02 +0000 (19:46 +0100)
committerSimon McVittie <smcv@debian.org>
Sat, 22 Oct 2011 18:46:02 +0000 (19:46 +0100)
Bug-Debian: http://bugs.debian.org/637604
Signed-off-by: Simon McVittie <smcv@debian.org>
plugins/rst

index fb36245de40a891c1a4f2bb47d941ddc91951a73..0fe91c58b7e79636b9c5be528a10e07a4fbf20b8 100755 (executable)
@@ -36,10 +36,22 @@ __author__ = 'martin f. krafft <madduck@madduck.net>'
 __copyright__ = 'Copyright © ' + __author__
 __licence__ = 'BSD-2-clause'
 
-from docutils.core import publish_parts;
 from proxy import IkiWikiProcedureProxy
 
+publish_parts = None
+
 def rst2html(proxy, *args):
+    # delayed import so docutils is only needed if you *use* rst -
+    # http://bugs.debian.org/637604
+    global publish_parts
+    if publish_parts is None:
+        try:
+            from docutils.core import publish_parts
+        except ImportError, e:
+            proxy.error('cannot import docutils.core: %s: %s' %
+                        (e.__class__.__name__, e))
+            raise
+
     kwargs = _to_dict(args)
     parts = publish_parts(kwargs["content"],
                           writer_name="html",