Skip to content

Commit

Permalink
fall back to builder.warn() if logging API doesn't exist
Browse files Browse the repository at this point in the history
  • Loading branch information
yuja committed May 30, 2019
1 parent 2001442 commit 729138f
Showing 1 changed file with 17 additions and 12 deletions.
29 changes: 17 additions & 12 deletions sphinxcontrib/plantuml.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
from docutils.parsers.rst import directives
from docutils.parsers.rst import Directive
from sphinx.errors import SphinxError
from sphinx.util import logging
from sphinx.util.nodes import set_source_info
from sphinx.util.osutil import (
ensuredir,
Expand All @@ -40,7 +39,14 @@
def search_image_for_language(filename, env):
return filename

logger = logging.getLogger(__name__)
try:
from sphinx.util import logging
logger = logging.getLogger(__name__)
def _warn(self, msg):
logger.warning(msg)
except (AttributeError, ImportError): # Sphinx < 1.6
def _warn(self, msg):
self.builder.warn(msg)


class PlantUmlError(SphinxError):
Expand Down Expand Up @@ -245,9 +251,9 @@ def _get_png_tag(self, fnames, node):
# process images prior to html_vist.
scale_attrs = [k for k in ('scale', 'width', 'height') if k in node]
if scale_attrs and Image is None:
logger.warning('plantuml: unsupported scaling attributes: %s '
'(install PIL or Pillow)'
% ', '.join(scale_attrs))
_warn(self, ('plantuml: unsupported scaling attributes: %s '
'(install PIL or Pillow)'
% ', '.join(scale_attrs)))
if not scale_attrs or Image is None:
return ('<img src="%s" alt="%s"/>\n'
% (self.encode(refname), self.encode(alt)))
Expand Down Expand Up @@ -278,8 +284,7 @@ def _get_png_tag(self, fnames, node):
styles.extend('%s: %s%s' % (a, w * scale / 100, 'px')
for a, w in zip(['width', 'height'], im.size))
except OSError as err:
logger.warning('plantuml: failed to get image size: %s'
% err)
_warn(self, 'plantuml: failed to get image size: %s' % err)

return ('<a href="%s"><img src="%s" alt="%s" style="%s"/>'
'</a>\n'
Expand Down Expand Up @@ -358,7 +363,7 @@ def _prepare_html_render(self, fmt):
yield fileformats, gettag

except PlantUmlError as err:
logger.warning(str(err))
_warn(self, str(err))
raise nodes.SkipNode


Expand Down Expand Up @@ -427,7 +432,7 @@ def latex_visit_plantuml(self, node):
refname, outfname = render_plantuml(self, node, fileformat)
refname, outfname = postproc(self, refname, outfname)
except PlantUmlError as err:
logger.warning(str(err))
_warn(self, str(err))
raise nodes.SkipNode

# put node representing rendered image
Expand Down Expand Up @@ -470,7 +475,7 @@ def text_visit_plantuml(self, node):
try:
text = render_plantuml_inline(self, node, 'txt')
except PlantUmlError as err:
logger.warning(str(err))
_warn(self, str(err))
text = node['uml'] # fall back to uml text, which is still readable

self.new_state()
Expand All @@ -484,14 +489,14 @@ def pdf_visit_plantuml(self, node):
refname, outfname = render_plantuml(self, node, 'eps')
refname, outfname = _convert_eps_to_pdf(self, refname, outfname)
except PlantUmlError as err:
logger.warning(str(err))
_warn(self, str(err))
raise nodes.SkipNode
rep = nodes.image(uri=outfname, alt=node.get('alt', node['uml']))
node.parent.replace(node, rep)


def unsupported_visit_plantuml(self, node):
logger.warning('plantuml: unsupported output format (node skipped)')
_warn(self, 'plantuml: unsupported output format (node skipped)')
raise nodes.SkipNode


Expand Down

0 comments on commit 729138f

Please sign in to comment.