Skip to content

Commit f8707b2

Browse files
committed
Simplify logic for checking if the renderer is vecotr
1 parent df3c55c commit f8707b2

1 file changed

Lines changed: 8 additions & 15 deletions

File tree

lib/matplotlib/offsetbox.py

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,23 +43,16 @@
4343

4444

4545
def _is_vector_renderer(renderer):
46-
# 1. Check the mode name
46+
# 1. Check the renderer name
47+
vector_bases = {'RendererPdf', 'RendererSVG', 'RendererPS'}
4748
# If it's MixedModeRenderer, get the actual renderer recursively
48-
while type(renderer).__name__ == 'MixedModeRenderer':
49-
eff = getattr(renderer, '_renderer', renderer)
50-
mod = getattr(eff.__class__, '__module__', '').lower()
51-
if any(x in mod for x in ('pdf', 'svg', 'ps')):
49+
actual_renderer = renderer
50+
while type(actual_renderer).__name__ == 'MixedModeRenderer':
51+
actual_renderer = getattr(actual_renderer, '_renderer', actual_renderer)
52+
renderer_name = type(actual_renderer).__name__
53+
if renderer_name in vector_bases:
5254
return True
53-
# 2. The vectorized backends
54-
vector_bases = (
55-
'RendererPdf', 'RendererSVG', 'RendererPS'
56-
)
57-
if any(base in type(renderer).__name__ for base in vector_bases):
58-
return True
59-
# 3. fallback: Agg/bitmap are not vector renderers
60-
if 'agg' in mod or 'bitmap' in mod:
61-
return False
62-
# 4. For unknown renderers, assume they are not vector
55+
# 3. For unknown renderers, assume they are not vector
6356
return False
6457

6558

0 commit comments

Comments
 (0)