chiark / gitweb /
plugins: don't implicitly depend on Pelican.
authorVladimír Vondruš <mosra@centrum.cz>
Tue, 3 Sep 2019 19:57:59 +0000 (21:57 +0200)
committerVladimír Vondruš <mosra@centrum.cz>
Tue, 3 Sep 2019 19:58:31 +0000 (21:58 +0200)
Only when those actually get used from Pelican.

17 files changed:
documentation/python.py
plugins/m/alias.py
plugins/m/code.py
plugins/m/components.py
plugins/m/dot.py
plugins/m/dox.py
plugins/m/filesize.py
plugins/m/gh.py
plugins/m/gl.py
plugins/m/htmlsanity.py
plugins/m/images.py
plugins/m/link.py
plugins/m/math.py
plugins/m/plots.py
plugins/m/qr.py
plugins/m/sphinx.py
plugins/m/vk.py

index a672b8eed95e4547a574fd242c39cb629460ccd9..f56a2b138234851f126c791ad1dd0bedd60992e8 100755 (executable)
@@ -27,6 +27,7 @@
 import argparse
 import copy
 import docutils
+import docutils.core
 import docutils.utils
 import enum
 import urllib.parse
index 084967302d4ceeca817654776bcba11c203d605a..83931ebd7714981c8f67ec6a87f83a1d45f4a9f1 100644 (file)
@@ -27,7 +27,6 @@
 
 import os
 import logging
-from pelican import signals
 from urllib.parse import urljoin
 
 logger = logging.getLogger(__name__)
@@ -69,7 +68,12 @@ class AliasGenerator:
 def register_mcss(**kwargs):
     assert not "This plugin is Pelican-only" # pragma: no cover
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 def _pelican_get_generators(generators): return AliasGenerator
 
 def register(): # for Pelican
-    signals.get_generators.connect(_pelican_get_generators)
+    import pelican.signals
+
+    pelican.signals.get_generators.connect(_pelican_get_generators)
index 465c0092e49573b48decdb57f951c3d740de185a..50ff5a2c15f1d67b9593958831addf4abf086791 100644 (file)
@@ -215,4 +215,7 @@ def register_mcss(**kwargs):
     rst.directives.register_directive('include', Include)
     rst.roles.register_canonical_role('code', code)
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 register = register_mcss # for Pelican
index c20cd4d5da3bbe8828f41e06b39121989d68c009..511c04282d37eeb564f4e1d789619ccab756bc16 100644 (file)
@@ -425,4 +425,7 @@ def register_mcss(**kwargs):
     rst.roles.register_canonical_role('label-flat-info', label_flat_info)
     rst.roles.register_canonical_role('label-flat-dim', label_flat_dim)
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 register = register_mcss # for Pelican
index 851e5eca395ed2eb7f07aa2defdf22bb649d15c9..842fdb6e82955b855b039defbdee6fb152bdecb2 100644 (file)
@@ -22,7 +22,6 @@
 #   DEALINGS IN THE SOFTWARE.
 #
 
-import pelican
 import re
 import subprocess
 
@@ -111,8 +110,13 @@ def register_mcss(mcss_settings, **kwargs):
     rst.directives.register_directive('graph', Graph)
     rst.directives.register_directive('strict-graph', StrictGraph)
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 def _pelican_configure(pelicanobj):
     register_mcss(mcss_settings=pelicanobj.settings)
 
 def register(): # for Pelican
+    import pelican.signals
+
     pelican.signals.initialized.connect(_pelican_configure)
index be765c6449cff8e3fab012b76230577fbcb5221f..b6d2f138c9cb01c8f47e7b5f2c480203116d52c3 100644 (file)
@@ -27,7 +27,6 @@ from docutils import nodes, utils
 from docutils.parsers import rst
 from docutils.parsers.rst.roles import set_classes
 
-from pelican import signals
 import xml.etree.ElementTree as ET
 import os
 import re
@@ -174,6 +173,9 @@ def register_mcss(mcss_settings, **kwargs):
     init(input=mcss_settings['INPUT'],
          tagfiles=mcss_settings.get('M_DOX_TAGFILES', []))
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 def _pelican_configure(pelicanobj):
     settings = {
         # For backwards compatibility, the input directory is pelican's CWD
@@ -185,4 +187,6 @@ def _pelican_configure(pelicanobj):
     register_mcss(mcss_settings=settings)
 
 def register(): # for Pelican
-    signals.initialized.connect(_pelican_configure)
+    import pelican.signals
+
+    pelican.signals.initialized.connect(_pelican_configure)
index 2004b80701d66385dec808033613b2215f7d5370..ac0dfed0b0c2c48e05d344d5a81c56f3fca372b8 100644 (file)
@@ -27,7 +27,6 @@ import gzip
 from docutils import nodes
 from docutils.parsers import rst
 from docutils.parsers.rst.roles import set_classes
-from pelican import signals
 
 settings = {}
 
@@ -66,6 +65,9 @@ def register_mcss(mcss_settings, **kwargs):
     rst.roles.register_local_role('filesize', filesize)
     rst.roles.register_local_role('filesize-gz', filesize_gz)
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 def _pelican_configure(pelicanobj):
     settings = {
         'INPUT': os.path.join(os.getcwd(), pelicanobj.settings['PATH'])
@@ -73,4 +75,6 @@ def _pelican_configure(pelicanobj):
     register_mcss(mcss_settings=settings)
 
 def register(): # for Pelican
-    signals.initialized.connect(_pelican_configure)
+    import pelican.signals
+
+    pelican.signals.initialized.connect(_pelican_configure)
index 145c2e3df02539d32298468877d76b0771f5c7e6..c2c4cf94940c3bc368632d730dc1fd72452f487d 100644 (file)
@@ -80,4 +80,7 @@ def gh(name, rawtext, text, lineno, inliner, options={}, content=[]):
 def register_mcss(**kwargs):
     rst.roles.register_local_role('gh', gh)
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 register = register_mcss # for Pelican
index a0ceb35d7dee633421ebf270c06eeabeaa0f4244..b0692874bdb2e919649d256a63dba2c3323c80a9 100644 (file)
@@ -77,4 +77,7 @@ def register_mcss(**kwargs):
     rst.roles.register_local_role('glfn', glfn)
     rst.roles.register_local_role('glfnext', glfnext)
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 register = register_mcss # for Pelican
index fc36ce69ca18b0f322b40e236017498bf19a40b3..70df7f659f3584dc0e5ca1c1013146cd9c8b4006 100644 (file)
@@ -718,17 +718,19 @@ def register_mcss(mcss_settings, jinja_environment, **kwargs):
     jinja_environment.filters['hyphenate'] = hyphenate
     jinja_environment.filters['dehyphenate'] = dehyphenate
 
-# Below is only Pelican-specific functionality and plugin registration
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
 try:
     import pelican.signals
     from pelican.readers import RstReader
+
+    class PelicanSaneRstReader(RstReader):
+        writer_class = SaneHtmlWriter
+        field_body_translator_class = _SaneFieldBodyTranslator
+
 except ImportError:
     pass
 
-class PelicanSaneRstReader(RstReader):
-    writer_class = SaneHtmlWriter
-    field_body_translator_class = _SaneFieldBodyTranslator
-
 pelican_settings = {}
 
 def pelican_expand_link(link, content):
index eb768a33b567cb49b53ba51cef7fde50d8194e23..07d1553d964a02c74c5477cfa5b1512c634218b2 100644 (file)
@@ -30,8 +30,6 @@ from docutils.parsers.rst import directives, states
 from docutils.nodes import fully_normalize_name, whitespace_normalize_name
 from docutils.parsers.rst.roles import set_classes
 from docutils import nodes
-from pelican import signals
-from pelican import StaticGenerator
 
 # If Pillow is not available, it's not an error unless one uses the image grid
 # functionality (or :scale: option for Image)
@@ -289,6 +287,9 @@ def register_mcss(mcss_settings, **kwargs):
     rst.directives.register_directive('figure', Figure)
     rst.directives.register_directive('image-grid', ImageGrid)
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 def _pelican_configure(pelicanobj):
     settings = {
         'INPUT': pelicanobj.settings['PATH'],
@@ -299,4 +300,6 @@ def _pelican_configure(pelicanobj):
     register_mcss(mcss_settings=settings)
 
 def register(): # for Pelican
-    signals.initialized.connect(_pelican_configure)
+    import pelican.signals
+
+    pelican.signals.initialized.connect(_pelican_configure)
index 0569a08522d5eb5cf35ea6345c6a2bcc042abb71..58e0decd168fa5cfbc7d3d90b75399a6ecb2096d 100644 (file)
@@ -49,4 +49,7 @@ def link(name, rawtext, text, lineno, inliner, options={}, content=[]):
 def register_mcss(**kwargs):
     rst.roles.register_local_role('link', link)
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 register = register_mcss # for Pelican
index 9082e401fe6992cb303d2031d406c45254dd92fd..2a36fb60b6fff4c050eda289831164d11a6a76aa 100644 (file)
@@ -32,8 +32,6 @@ from docutils.parsers import rst
 from docutils.parsers.rst import directives
 from docutils.parsers.rst.roles import set_classes
 
-import pelican.signals
-
 import latex2svg
 import latex2svgextra
 
@@ -159,10 +157,15 @@ def register_mcss(mcss_settings, hooks_pre_page, hooks_post_run, **kwargs):
     rst.directives.register_directive('math', Math)
     rst.roles.register_canonical_role('math', math)
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 def _configure_pelican(pelicanobj):
     register_mcss(mcss_settings=pelicanobj.settings, hooks_pre_page=[], hooks_post_run=[])
 
 def register():
+    import pelican.signals
+
     pelican.signals.initialized.connect(_configure_pelican)
     pelican.signals.finalized.connect(save_cache)
     pelican.signals.content_object_init.connect(new_page)
index e410aac641cb511e72a8df8637956ab448173c5a..1c258bd71061d1985c1496ddfb44a26cfe281796 100644 (file)
@@ -35,8 +35,6 @@ import matplotlib.pyplot as plt
 import numpy as np
 import io
 
-import pelican.signals
-
 mpl.rcParams['font.size'] = '11'
 mpl.rcParams['axes.titlesize'] = '13'
 
@@ -274,9 +272,14 @@ def register_mcss(mcss_settings, hooks_pre_page, **kwargs):
 
     rst.directives.register_directive('plot', Plot)
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 def _pelican_configure(pelicanobj):
     register_mcss(mcss_settings=pelicanobj.settings, hooks_pre_page=[])
 
 def register(): # for Pelican
+    import pelican.signals
+
     pelican.signals.initialized.connect(_pelican_configure)
     pelican.signals.content_object_init.connect(new_page)
index 909a4055d8c41953046533bdf577766fa6ba25ee..faa20d40ae2488ac8b9d6966665e739495c958fe 100644 (file)
@@ -83,4 +83,7 @@ class Qr(rst.Directive):
 def register_mcss(**kwargs):
     rst.directives.register_directive('qr', Qr)
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 register = register_mcss # for Pelican
index 0354b773c640747548d0c745d790c44e18f7628d..8792b56ce42abad4b0b14b3a16dc6c7aaf665994 100755 (executable)
@@ -584,11 +584,11 @@ def _pelican_configure(pelicanobj):
          inventories=pelicanobj.settings.get('M_SPHINX_INVENTORIES', []))
 
 def register(): # for Pelican
-    from pelican import signals
+    import pelican.signals
 
     rst.roles.register_local_role('ref', ref)
 
-    signals.initialized.connect(_pelican_configure)
+    pelican.signals.initialized.connect(_pelican_configure)
 
 def pretty_print_intersphinx_inventory(file):
     return ''.join([
index a5bc2c676704d1f44836e2d0470f10733b5b20d2..a18a7cebb49a711271970a35801c33ebcbe6635d 100644 (file)
@@ -67,4 +67,7 @@ def register_mcss(**kwargs):
     rst.roles.register_local_role('vkfn', vkfn)
     rst.roles.register_local_role('vktype', vktype)
 
+# Below is only Pelican-specific functionality. If Pelican is not found, these
+# do nothing.
+
 register = register_mcss # for Pelican