5959from docutils .parsers .rst .directives import images
6060import sphinx
6161from sphinx .util .nodes import clean_astext
62- import kernellog
62+ from sphinx . util import logging
6363
6464Figure = images .Figure
6565
6666__version__ = '1.0.0'
6767
68+ logger = logging .getLogger ('kfigure' )
69+
6870# simple helper
6971# -------------
7072
@@ -170,15 +172,15 @@ def setupTools(app):
170172 """
171173 global dot_cmd , dot_Tpdf , convert_cmd , rsvg_convert_cmd # pylint: disable=W0603
172174 global inkscape_cmd , inkscape_ver_one # pylint: disable=W0603
173- kernellog .verbose (app , "kfigure: check installed tools ..." )
175+ logger .verbose ("kfigure: check installed tools ..." )
174176
175177 dot_cmd = which ('dot' )
176178 convert_cmd = which ('convert' )
177179 rsvg_convert_cmd = which ('rsvg-convert' )
178180 inkscape_cmd = which ('inkscape' )
179181
180182 if dot_cmd :
181- kernellog .verbose (app , "use dot(1) from: " + dot_cmd )
183+ logger .verbose ("use dot(1) from: " + dot_cmd )
182184
183185 try :
184186 dot_Thelp_list = subprocess .check_output ([dot_cmd , '-Thelp' ],
@@ -190,10 +192,11 @@ def setupTools(app):
190192 dot_Tpdf_ptn = b'pdf'
191193 dot_Tpdf = re .search (dot_Tpdf_ptn , dot_Thelp_list )
192194 else :
193- kernellog .warn (app , "dot(1) not found, for better output quality install "
194- "graphviz from https://www.graphviz.org" )
195+ logger .warning (
196+ "dot(1) not found, for better output quality install graphviz from https://www.graphviz.org"
197+ )
195198 if inkscape_cmd :
196- kernellog .verbose (app , "use inkscape(1) from: " + inkscape_cmd )
199+ logger .verbose ("use inkscape(1) from: " + inkscape_cmd )
197200 inkscape_ver = subprocess .check_output ([inkscape_cmd , '--version' ],
198201 stderr = subprocess .DEVNULL )
199202 ver_one_ptn = b'Inkscape 1'
@@ -204,26 +207,27 @@ def setupTools(app):
204207
205208 else :
206209 if convert_cmd :
207- kernellog .verbose (app , "use convert(1) from: " + convert_cmd )
210+ logger .verbose ("use convert(1) from: " + convert_cmd )
208211 else :
209- kernellog .verbose (app ,
212+ logger .verbose (
210213 "Neither inkscape(1) nor convert(1) found.\n "
211- "For SVG to PDF conversion, "
212- "install either Inkscape (https://inkscape. org/) (preferred) or \n "
213- "ImageMagick (https://www.imagemagick.org)" )
214+ "For SVG to PDF conversion, install either Inkscape (https://inkscape.org/) (preferred) or \n "
215+ "ImageMagick (https://www.imagemagick. org) "
216+ )
214217
215218 if rsvg_convert_cmd :
216- kernellog .verbose (app , "use rsvg-convert(1) from: " + rsvg_convert_cmd )
217- kernellog .verbose (app , "use 'dot -Tsvg' and rsvg-convert(1) for DOT -> PDF conversion" )
219+ logger .verbose ("use rsvg-convert(1) from: " + rsvg_convert_cmd )
220+ logger .verbose ("use 'dot -Tsvg' and rsvg-convert(1) for DOT -> PDF conversion" )
218221 dot_Tpdf = False
219222 else :
220- kernellog .verbose (app ,
223+ logger .verbose (
221224 "rsvg-convert(1) not found.\n "
222- " SVG rendering of convert(1) is done by ImageMagick-native renderer." )
225+ " SVG rendering of convert(1) is done by ImageMagick-native renderer."
226+ )
223227 if dot_Tpdf :
224- kernellog .verbose (app , "use 'dot -Tpdf' for DOT -> PDF conversion" )
228+ logger .verbose ("use 'dot -Tpdf' for DOT -> PDF conversion" )
225229 else :
226- kernellog .verbose (app , "use 'dot -Tsvg' and convert(1) for DOT -> PDF conversion" )
230+ logger .verbose ("use 'dot -Tsvg' and convert(1) for DOT -> PDF conversion" )
227231
228232
229233# integrate conversion tools
@@ -257,13 +261,12 @@ def convert_image(img_node, translator, src_fname=None):
257261
258262 # in kernel builds, use 'make SPHINXOPTS=-v' to see verbose messages
259263
260- kernellog .verbose (app , 'assert best format for: ' + img_node ['uri' ])
264+ logger .verbose ('assert best format for: ' + img_node ['uri' ])
261265
262266 if in_ext == '.dot' :
263267
264268 if not dot_cmd :
265- kernellog .verbose (app ,
266- "dot from graphviz not available / include DOT raw." )
269+ logger .verbose ("dot from graphviz not available / include DOT raw." )
267270 img_node .replace_self (file2literal (src_fname ))
268271
269272 elif translator .builder .format == 'latex' :
@@ -290,10 +293,11 @@ def convert_image(img_node, translator, src_fname=None):
290293
291294 if translator .builder .format == 'latex' :
292295 if not inkscape_cmd and convert_cmd is None :
293- kernellog .warn (app ,
294- "no SVG to PDF conversion available / include SVG raw."
295- "\n Including large raw SVGs can cause xelatex error."
296- "\n Install Inkscape (preferred) or ImageMagick." )
296+ logger .warning (
297+ "no SVG to PDF conversion available / include SVG raw.\n "
298+ "Including large raw SVGs can cause xelatex error.\n "
299+ "Install Inkscape (preferred) or ImageMagick."
300+ )
297301 img_node .replace_self (file2literal (src_fname ))
298302 else :
299303 dst_fname = path .join (translator .builder .outdir , fname + '.pdf' )
@@ -306,15 +310,14 @@ def convert_image(img_node, translator, src_fname=None):
306310 _name = dst_fname [len (str (translator .builder .outdir )) + 1 :]
307311
308312 if isNewer (dst_fname , src_fname ):
309- kernellog .verbose (app ,
310- "convert: {out}/%s already exists and is newer" % _name )
313+ logger .verbose ("convert: {out}/%s already exists and is newer" % _name )
311314
312315 else :
313316 ok = False
314317 mkdir (path .dirname (dst_fname ))
315318
316319 if in_ext == '.dot' :
317- kernellog .verbose (app , 'convert DOT to: {out}/' + _name )
320+ logger .verbose ('convert DOT to: {out}/' + _name )
318321 if translator .builder .format == 'latex' and not dot_Tpdf :
319322 svg_fname = path .join (translator .builder .outdir , fname + '.svg' )
320323 ok1 = dot2format (app , src_fname , svg_fname )
@@ -325,7 +328,7 @@ def convert_image(img_node, translator, src_fname=None):
325328 ok = dot2format (app , src_fname , dst_fname )
326329
327330 elif in_ext == '.svg' :
328- kernellog .verbose (app , 'convert SVG to: {out}/' + _name )
331+ logger .verbose ('convert SVG to: {out}/' + _name )
329332 ok = svg2pdf (app , src_fname , dst_fname )
330333
331334 if not ok :
@@ -354,7 +357,7 @@ def dot2format(app, dot_fname, out_fname):
354357 with open (out_fname , "w" ) as out :
355358 exit_code = subprocess .call (cmd , stdout = out )
356359 if exit_code != 0 :
357- kernellog . warn ( app ,
360+ logger . warning (
358361 "Error #%d when calling: %s" % (exit_code , " " .join (cmd )))
359362 return bool (exit_code == 0 )
360363
@@ -388,13 +391,14 @@ def svg2pdf(app, svg_fname, pdf_fname):
388391 pass
389392
390393 if exit_code != 0 :
391- kernellog .warn (app , "Error #%d when calling: %s" % (exit_code , " " .join (cmd )))
394+ logger .warning ("Error #%d when calling: %s" %
395+ (exit_code , " " .join (cmd )))
392396 if warning_msg :
393- kernellog . warn ( app , "Warning msg from %s: %s"
394- % (cmd_name , str (warning_msg , 'utf-8' )))
397+ logger . warning ( "Warning msg from %s: %s" %
398+ (cmd_name , str (warning_msg , 'utf-8' )))
395399 elif warning_msg :
396- kernellog .verbose (app , "Warning msg from %s (likely harmless):\n %s"
397- % (cmd_name , str (warning_msg , 'utf-8' )))
400+ logger .verbose ("Warning msg from %s (likely harmless):\n %s" %
401+ (cmd_name , str (warning_msg , 'utf-8' )))
398402
399403 return bool (exit_code == 0 )
400404
@@ -418,7 +422,8 @@ def svg2pdf_by_rsvg(app, svg_fname, pdf_fname):
418422 # use stdout and stderr from parent
419423 exit_code = subprocess .call (cmd )
420424 if exit_code != 0 :
421- kernellog .warn (app , "Error #%d when calling: %s" % (exit_code , " " .join (cmd )))
425+ logger .warning ("Error #%d when calling: %s" %
426+ (exit_code , " " .join (cmd )))
422427 ok = bool (exit_code == 0 )
423428
424429 return ok
@@ -513,15 +518,15 @@ def visit_kernel_render(self, node):
513518 app = self .builder .app
514519 srclang = node .get ('srclang' )
515520
516- kernellog .verbose (app , 'visit kernel-render node lang: "%s"' % ( srclang ) )
521+ logger .verbose ('visit kernel-render node lang: "%s"' % srclang )
517522
518523 tmp_ext = RENDER_MARKUP_EXT .get (srclang , None )
519524 if tmp_ext is None :
520- kernellog . warn ( app , 'kernel-render: "%s" unknown / include raw.' % ( srclang ) )
525+ logger . warning ( 'kernel-render: "%s" unknown / include raw.' % srclang )
521526 return
522527
523528 if not dot_cmd and tmp_ext == '.dot' :
524- kernellog .verbose (app , "dot from graphviz not available / include raw." )
529+ logger .verbose ("dot from graphviz not available / include raw." )
525530 return
526531
527532 literal_block = node [0 ]
0 commit comments