Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d2c7b16

Browse filesBrowse files
authored
Merge pull request #21412 from anntzer/svgg
Privatize some SVG internal APIs.
2 parents fa0c8f8 + 1cf5a33 commit d2c7b16
Copy full SHA for d2c7b16

File tree

Expand file treeCollapse file tree

2 files changed

+48
-39
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+48
-39
lines changed
+3Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
``backend_svg.generate_transform`` and ``backend_svg.generate_css``
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
... are deprecated with no replacement.

‎lib/matplotlib/backends/backend_svg.py

Copy file name to clipboardExpand all lines: lib/matplotlib/backends/backend_svg.py
+45-39Lines changed: 45 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -249,26 +249,34 @@ def flush(self):
249249
pass # replaced by the constructor
250250

251251

252+
def _generate_transform(transform_list):
253+
output = StringIO()
254+
for type, value in transform_list:
255+
if (type == 'scale' and (value == (1,) or value == (1, 1))
256+
or type == 'translate' and value == (0, 0)
257+
or type == 'rotate' and value == (0,)):
258+
continue
259+
if type == 'matrix' and isinstance(value, Affine2DBase):
260+
value = value.to_values()
261+
output.write('%s(%s)' % (
262+
type, ' '.join(short_float_fmt(x) for x in value)))
263+
return output.getvalue()
264+
265+
266+
@_api.deprecated("3.6")
252267
def generate_transform(transform_list=None):
253-
if transform_list:
254-
output = StringIO()
255-
for type, value in transform_list:
256-
if (type == 'scale' and (value == (1,) or value == (1, 1))
257-
or type == 'translate' and value == (0, 0)
258-
or type == 'rotate' and value == (0,)):
259-
continue
260-
if type == 'matrix' and isinstance(value, Affine2DBase):
261-
value = value.to_values()
262-
output.write('%s(%s)' % (
263-
type, ' '.join(short_float_fmt(x) for x in value)))
264-
return output.getvalue()
265-
return ''
268+
return _generate_transform(transform_list or [])
266269

267270

268-
def generate_css(attrib={}):
271+
def _generate_css(attrib):
269272
return "; ".join(f"{k}: {v}" for k, v in attrib.items())
270273

271274

275+
@_api.deprecated("3.6")
276+
def generate_css(attrib=None):
277+
return _generate_css(attrib or {})
278+
279+
272280
_capstyle_d = {'projecting': 'square', 'butt': 'butt', 'round': 'round'}
273281

274282

@@ -441,7 +449,7 @@ def ensure_metadata(mid):
441449

442450
def _write_default_style(self):
443451
writer = self.writer
444-
default_style = generate_css({
452+
default_style = _generate_css({
445453
'stroke-linejoin': 'round',
446454
'stroke-linecap': 'butt'})
447455
writer.start('defs')
@@ -528,7 +536,7 @@ def _write_hatches(self):
528536
writer.element(
529537
'path',
530538
d=path_data,
531-
style=generate_css(hatch_style)
539+
style=_generate_css(hatch_style)
532540
)
533541
writer.end('pattern')
534542
writer.end('defs')
@@ -579,7 +587,7 @@ def _get_style_dict(self, gc, rgbFace):
579587
return attrib
580588

581589
def _get_style(self, gc, rgbFace):
582-
return generate_css(self._get_style_dict(gc, rgbFace))
590+
return _generate_css(self._get_style_dict(gc, rgbFace))
583591

584592
def _get_clip_attrs(self, gc):
585593
cliprect = gc.get_clip_rectangle()
@@ -682,9 +690,9 @@ def draw_markers(
682690
marker_trans + Affine2D().scale(1.0, -1.0),
683691
simplify=False)
684692
style = self._get_style_dict(gc, rgbFace)
685-
dictkey = (path_data, generate_css(style))
693+
dictkey = (path_data, _generate_css(style))
686694
oid = self._markers.get(dictkey)
687-
style = generate_css({k: v for k, v in style.items()
695+
style = _generate_css({k: v for k, v in style.items()
688696
if k.startswith('stroke')})
689697

690698
if oid is None:
@@ -842,13 +850,13 @@ def draw_gouraud_triangle(self, gc, points, colors, trans):
842850
writer.element(
843851
'stop',
844852
offset='1',
845-
style=generate_css({
853+
style=_generate_css({
846854
'stop-color': rgb2hex(avg_color),
847855
'stop-opacity': short_float_fmt(rgba_color[-1])}))
848856
writer.element(
849857
'stop',
850858
offset='0',
851-
style=generate_css({'stop-color': rgb2hex(rgba_color),
859+
style=_generate_css({'stop-color': rgb2hex(rgba_color),
852860
'stop-opacity': "0"}))
853861

854862
writer.end('linearGradient')
@@ -958,7 +966,7 @@ def draw_image(self, gc, x, y, im, transform=None):
958966

959967
self.writer.element(
960968
'image',
961-
transform=generate_transform([
969+
transform=_generate_transform([
962970
('scale', (1, -1)), ('translate', (0, -h))]),
963971
x=short_float_fmt(x),
964972
y=short_float_fmt(-(self.height - y - h)),
@@ -977,7 +985,7 @@ def draw_image(self, gc, x, y, im, transform=None):
977985
.scale(1.0, -1.0)
978986
.translate(0.0, self.height))
979987

980-
attrib['transform'] = generate_transform(
988+
attrib['transform'] = _generate_transform(
981989
[('matrix', flipped.frozen())])
982990
attrib['style'] = (
983991
'image-rendering:crisp-edges;'
@@ -1007,7 +1015,7 @@ def _update_glyph_map_defs(self, glyph_map_new):
10071015
Path(vertices * 64, codes), simplify=False)
10081016
writer.element(
10091017
'path', id=char_id, d=path_data,
1010-
transform=generate_transform([('scale', (1 / 64,))]))
1018+
transform=_generate_transform([('scale', (1 / 64,))]))
10111019
writer.end('defs')
10121020
self._glyph_map.update(glyph_map_new)
10131021

@@ -1045,8 +1053,8 @@ def _draw_text_as_path(self, gc, x, y, s, prop, angle, ismath, mtext=None):
10451053
style['opacity'] = short_float_fmt(alpha)
10461054
font_scale = fontsize / text2path.FONT_SCALE
10471055
attrib = {
1048-
'style': generate_css(style),
1049-
'transform': generate_transform([
1056+
'style': _generate_css(style),
1057+
'transform': _generate_transform([
10501058
('translate', (x, y)),
10511059
('rotate', (-angle,)),
10521060
('scale', (font_scale, -font_scale))]),
@@ -1082,7 +1090,7 @@ def _draw_text_as_path(self, gc, x, y, s, prop, angle, ismath, mtext=None):
10821090
char_id = self._adjust_char_id(char_id)
10831091
writer.element(
10841092
'use',
1085-
transform=generate_transform([
1093+
transform=_generate_transform([
10861094
('translate', (xposition, yposition)),
10871095
('scale', (scale,)),
10881096
]),
@@ -1125,7 +1133,7 @@ def _draw_text_as_text(self, gc, x, y, s, prop, angle, ismath, mtext=None):
11251133
style['font'] = ' '.join(font_parts)
11261134
if prop.get_stretch() != 'normal':
11271135
style['font-stretch'] = prop.get_stretch()
1128-
attrib['style'] = generate_css(style)
1136+
attrib['style'] = _generate_css(style)
11291137

11301138
if mtext and (angle == 0 or mtext.get_rotation_mode() == "anchor"):
11311139
# If text anchoring can be supported, get the original
@@ -1151,18 +1159,16 @@ def _draw_text_as_text(self, gc, x, y, s, prop, angle, ismath, mtext=None):
11511159

11521160
attrib['x'] = short_float_fmt(ax)
11531161
attrib['y'] = short_float_fmt(ay)
1154-
attrib['style'] = generate_css(style)
1155-
attrib['transform'] = "rotate(%s, %s, %s)" % (
1156-
short_float_fmt(-angle),
1157-
short_float_fmt(ax),
1158-
short_float_fmt(ay))
1159-
writer.element('text', s, attrib=attrib)
1162+
attrib['style'] = _generate_css(style)
1163+
attrib['transform'] = _generate_transform([
1164+
("rotate", (-angle, ax, ay))])
1165+
11601166
else:
1161-
attrib['transform'] = generate_transform([
1167+
attrib['transform'] = _generate_transform([
11621168
('translate', (x, y)),
11631169
('rotate', (-angle,))])
11641170

1165-
writer.element('text', s, attrib=attrib)
1171+
writer.element('text', s, attrib=attrib)
11661172

11671173
else:
11681174
writer.comment(s)
@@ -1173,8 +1179,8 @@ def _draw_text_as_text(self, gc, x, y, s, prop, angle, ismath, mtext=None):
11731179
# Apply attributes to 'g', not 'text', because we likely have some
11741180
# rectangles as well with the same style and transformation.
11751181
writer.start('g',
1176-
style=generate_css(style),
1177-
transform=generate_transform([
1182+
style=_generate_css(style),
1183+
transform=_generate_transform([
11781184
('translate', (x, y)),
11791185
('rotate', (-angle,))]),
11801186
)
@@ -1199,7 +1205,7 @@ def _draw_text_as_text(self, gc, x, y, s, prop, angle, ismath, mtext=None):
11991205
style = {'font': ' '.join(font_parts)}
12001206
if entry.stretch != 'normal':
12011207
style['font-stretch'] = entry.stretch
1202-
style = generate_css(style)
1208+
style = _generate_css(style)
12031209
if thetext == 32:
12041210
thetext = 0xa0 # non-breaking space
12051211
spans.setdefault(style, []).append((new_x, -new_y, thetext))

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.