Description: Fix plantuml for Py 3
Author: Thomas Goirand <zigo@debian.org>
Forwarded: no
Last-Update: 2021-10-26

--- python-sphinxcontrib.plantuml-0.5.orig/sphinxcontrib/plantuml.py
+++ python-sphinxcontrib.plantuml-0.5/sphinxcontrib/plantuml.py
@@ -15,6 +15,7 @@ except ImportError:  # Python<2.5
     from sha import sha as sha1
 from docutils import nodes
 from docutils.parsers.rst import directives
+import six
 from sphinx.errors import SphinxError
 try:
     from sphinx.util.compat import Directive
@@ -86,7 +87,7 @@ _ARGS_BY_FILEFORMAT = {
     }
 
 def generate_plantuml_args(self, fileformat):
-    if isinstance(self.builder.config.plantuml, basestring):
+    if isinstance(self.builder.config.plantuml, six.string_types):
         args = shlex.split(self.builder.config.plantuml)
     else:
         args = list(self.builder.config.plantuml)
@@ -105,7 +106,7 @@ def render_plantuml(self, node, fileform
             p = subprocess.Popen(generate_plantuml_args(self, fileformat),
                                  stdout=f, stdin=subprocess.PIPE,
                                  stderr=subprocess.PIPE)
-        except OSError, err:
+        except OSError as err:
             if err.errno != ENOENT:
                 raise
             raise PlantUmlError('plantuml command %r cannot be run'
@@ -221,7 +222,7 @@ def html_visit_plantuml(self, node):
         # fnames: {fileformat: (refname, outfname), ...}
         fnames = dict((e, render_plantuml(self, node, e))
                       for e in fileformats)
-    except PlantUmlError, err:
+    except PlantUmlError as err:
         self.builder.warn(str(err))
         raise nodes.SkipNode
 
@@ -231,7 +232,7 @@ def html_visit_plantuml(self, node):
     raise nodes.SkipNode
 
 def _convert_eps_to_pdf(self, refname, fname):
-    if isinstance(self.builder.config.plantuml_epstopdf, basestring):
+    if isinstance(self.builder.config.plantuml_epstopdf, six.string_types):
         args = shlex.split(self.builder.config.plantuml_epstopdf)
     else:
         args = list(self.builder.config.plantuml_epstopdf)
@@ -240,13 +241,13 @@ def _convert_eps_to_pdf(self, refname, f
         try:
             p = subprocess.Popen(args, stdout=subprocess.PIPE,
                                  stderr=subprocess.PIPE)
-        except OSError, err:
+        except OSError as err:
             # workaround for missing shebang of epstopdf script
             if err.errno != getattr(errno, 'ENOEXEC', 0):
                 raise
             p = subprocess.Popen(['bash'] + args, stdout=subprocess.PIPE,
                                  stderr=subprocess.PIPE)
-    except OSError, err:
+    except OSError as err:
         if err.errno != ENOENT:
             raise
         raise PlantUmlError('epstopdf command %r cannot be run'
@@ -273,7 +274,7 @@ def latex_visit_plantuml(self, node):
                 % (', '.join(map(repr, _KNOWN_LATEX_FORMATS)), format))
         refname, outfname = render_plantuml(self, node, fileformat)
         refname, outfname = postproc(self, refname, outfname)
-    except PlantUmlError, err:
+    except PlantUmlError as err:
         self.builder.warn(str(err))
         raise nodes.SkipNode
 
@@ -291,7 +292,7 @@ def pdf_visit_plantuml(self, node):
     try:
         refname, outfname = render_plantuml(self, node, 'eps')
         refname, outfname = _convert_eps_to_pdf(self, refname, outfname)
-    except PlantUmlError, err:
+    except PlantUmlError as err:
         self.builder.warn(str(err))
         raise nodes.SkipNode
     rep = nodes.image(uri=outfname, alt=node.get('alt', node['uml']))
