1212:license: BOLA, see LICENSE for details
1313"""
1414
15+ import locale
1516import logging
1617import posixpath
1718import typing as t
@@ -91,7 +92,7 @@ def run(self) -> t.List[nodes.Node]:
9192 if v is None :
9293 v = True
9394 # convert percentage to float
94- if k == "scale" or k == "aspect" :
95+ if k in { "scale" , "aspect" } :
9596 v = float (v ) / 100.0
9697 aafig_options [k ] = v
9798 del self .options [k ]
@@ -108,7 +109,7 @@ def render_aafig_images(app: "Sphinx", doctree: nodes.Node) -> None:
108109 format_map = app .builder .config .aafig_format
109110 merge_dict (format_map , DEFAULT_FORMATS )
110111 if aafigure is None :
111- logger .warn (
112+ logger .warning (
112113 "aafigure module not installed, ASCII art images "
113114 "will be rendered as literal text" ,
114115 )
@@ -124,7 +125,7 @@ def render_aafig_images(app: "Sphinx", doctree: nodes.Node) -> None:
124125 if _format in format_map :
125126 options ["format" ] = format_map [_format ]
126127 else :
127- logger .warn (
128+ logger .warning (
128129 'unsupported builder format "%s", please '
129130 "add a custom entry in aafig_format config "
130131 "option for this builder" % _format ,
@@ -135,9 +136,9 @@ def render_aafig_images(app: "Sphinx", doctree: nodes.Node) -> None:
135136 img .replace_self (nodes .literal_block (text , text ))
136137 continue
137138 try :
138- fname , outfn , _id , extra = render_aafigure (app , text , options )
139+ fname , _outfn , _id , extra = render_aafigure (app , text , options )
139140 except AafigError as exc :
140- logger .warn ("aafigure error: " + str (exc ))
141+ logger .warning ("aafigure error: " + str (exc ))
141142 img .replace_self (nodes .literal_block (text , text ))
142143 continue
143144 img ["uri" ] = fname
@@ -162,7 +163,7 @@ def render_aafigure(
162163) -> t .Tuple [str , str , t .Optional [str ], t .Optional [str ]]:
163164 """Render an ASCII art figure into the requested format output file."""
164165 if aafigure is None :
165- raise AafigureNotInstalled ()
166+ raise AafigureNotInstalled
166167
167168 fname = get_basename (text , options )
168169 fname = "{}.{}" .format (get_basename (text , options ), options ["format" ])
@@ -174,7 +175,7 @@ def render_aafigure(
174175 else :
175176 # Non-HTML
176177 if app .builder .format != "latex" :
177- logger .warn (
178+ logger .warning (
178179 "aafig: the builder format %s is not officially "
179180 "supported, aafigure images could not work. "
180181 "Please report problems and working builder to "
@@ -191,10 +192,12 @@ def render_aafigure(
191192 f = None
192193 try :
193194 try :
194- with open (metadata_fname ) as f :
195+ with open (
196+ metadata_fname , encoding = locale .getpreferredencoding (False )
197+ ) as f :
195198 extra = f .read ()
196199 except Exception as e :
197- raise AafigError () from e
200+ raise AafigError from e
198201 finally :
199202 if f is not None :
200203 f .close ()
@@ -213,7 +216,9 @@ def render_aafigure(
213216 extra = None
214217 if options ["format" ].lower () == "svg" :
215218 extra = visitor .get_size_attrs ()
216- with open (metadata_fname , "w" ) as f :
219+ with open (
220+ metadata_fname , "w" , encoding = locale .getpreferredencoding (False )
221+ ) as f :
217222 f .write (extra )
218223
219224 return relfn , outfn , None , extra
0 commit comments