12
12
:license: BOLA, see LICENSE for details
13
13
"""
14
14
15
+ import locale
15
16
import logging
16
17
import posixpath
17
18
import typing as t
@@ -91,7 +92,7 @@ def run(self) -> t.List[nodes.Node]:
91
92
if v is None :
92
93
v = True
93
94
# convert percentage to float
94
- if k == "scale" or k == "aspect" :
95
+ if k in { "scale" , "aspect" } :
95
96
v = float (v ) / 100.0
96
97
aafig_options [k ] = v
97
98
del self .options [k ]
@@ -108,7 +109,7 @@ def render_aafig_images(app: "Sphinx", doctree: nodes.Node) -> None:
108
109
format_map = app .builder .config .aafig_format
109
110
merge_dict (format_map , DEFAULT_FORMATS )
110
111
if aafigure is None :
111
- logger .warn (
112
+ logger .warning (
112
113
"aafigure module not installed, ASCII art images "
113
114
"will be rendered as literal text" ,
114
115
)
@@ -124,7 +125,7 @@ def render_aafig_images(app: "Sphinx", doctree: nodes.Node) -> None:
124
125
if _format in format_map :
125
126
options ["format" ] = format_map [_format ]
126
127
else :
127
- logger .warn (
128
+ logger .warning (
128
129
'unsupported builder format "%s", please '
129
130
"add a custom entry in aafig_format config "
130
131
"option for this builder" % _format ,
@@ -135,9 +136,9 @@ def render_aafig_images(app: "Sphinx", doctree: nodes.Node) -> None:
135
136
img .replace_self (nodes .literal_block (text , text ))
136
137
continue
137
138
try :
138
- fname , outfn , _id , extra = render_aafigure (app , text , options )
139
+ fname , _outfn , _id , extra = render_aafigure (app , text , options )
139
140
except AafigError as exc :
140
- logger .warn ("aafigure error: " + str (exc ))
141
+ logger .warning ("aafigure error: " + str (exc ))
141
142
img .replace_self (nodes .literal_block (text , text ))
142
143
continue
143
144
img ["uri" ] = fname
@@ -162,7 +163,7 @@ def render_aafigure(
162
163
) -> t .Tuple [str , str , t .Optional [str ], t .Optional [str ]]:
163
164
"""Render an ASCII art figure into the requested format output file."""
164
165
if aafigure is None :
165
- raise AafigureNotInstalled ()
166
+ raise AafigureNotInstalled
166
167
167
168
fname = get_basename (text , options )
168
169
fname = "{}.{}" .format (get_basename (text , options ), options ["format" ])
@@ -174,7 +175,7 @@ def render_aafigure(
174
175
else :
175
176
# Non-HTML
176
177
if app .builder .format != "latex" :
177
- logger .warn (
178
+ logger .warning (
178
179
"aafig: the builder format %s is not officially "
179
180
"supported, aafigure images could not work. "
180
181
"Please report problems and working builder to "
@@ -191,10 +192,12 @@ def render_aafigure(
191
192
f = None
192
193
try :
193
194
try :
194
- with open (metadata_fname ) as f :
195
+ with open (
196
+ metadata_fname , encoding = locale .getpreferredencoding (False )
197
+ ) as f :
195
198
extra = f .read ()
196
199
except Exception as e :
197
- raise AafigError () from e
200
+ raise AafigError from e
198
201
finally :
199
202
if f is not None :
200
203
f .close ()
@@ -213,7 +216,9 @@ def render_aafigure(
213
216
extra = None
214
217
if options ["format" ].lower () == "svg" :
215
218
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 :
217
222
f .write (extra )
218
223
219
224
return relfn , outfn , None , extra
0 commit comments