9
9
line segments).
10
10
"""
11
11
12
+ import inspect
12
13
import math
13
14
from numbers import Number
14
15
import numpy as np
@@ -2042,10 +2043,26 @@ def draw(self, renderer):
2042
2043
renderer .draw_gouraud_triangles (
2043
2044
gc , triangles , colors , transform .frozen ())
2044
2045
else :
2045
- renderer .draw_quad_mesh (
2046
- gc , transform .frozen (), self ._meshWidth , self ._meshHeight ,
2047
- coordinates , offsets , transOffset , self .get_facecolor (),
2048
- self ._antialiased , self .get_edgecolors (), urls = self .get_urls ())
2046
+ try :
2047
+ sig = inspect .signature (renderer .draw_quad_mesh )
2048
+ except ValueError :
2049
+ # Compiled backends like Agg don't have a signature, but also
2050
+ # don't support urls anyway.
2051
+ use_urls = False
2052
+ else :
2053
+ use_urls = 'urls' in sig .parameters
2054
+ if use_urls :
2055
+ renderer .draw_quad_mesh (
2056
+ gc , transform .frozen (), self ._meshWidth , self ._meshHeight ,
2057
+ coordinates , offsets , transOffset , self .get_facecolor (),
2058
+ self ._antialiased , self .get_edgecolors (),
2059
+ urls = self .get_urls ())
2060
+ else :
2061
+ # This backend does not support storing urls in the QuadMesh.
2062
+ renderer .draw_quad_mesh (
2063
+ gc , transform .frozen (), self ._meshWidth , self ._meshHeight ,
2064
+ coordinates , offsets , transOffset , self .get_facecolor (),
2065
+ self ._antialiased , self .get_edgecolors ())
2049
2066
gc .restore ()
2050
2067
renderer .close_group (self .__class__ .__name__ )
2051
2068
self .stale = False
0 commit comments