Skip to content

Commit 1ad4edd

Browse files
committed
cairo backend: default to pycairo
As seen in #13042 it's a bit faster than cairocffi and it also takes 50 ms less time to import here. Also the GTK3Cairo backend requires pycairo, so there is a good chance it's already loaded anyway for that case.
1 parent d1060a8 commit 1ad4edd

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

lib/matplotlib/backends/backend_cairo.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,18 @@
1111

1212
import numpy as np
1313

14-
# cairocffi is more widely compatible than pycairo so try it first.
1514
try:
16-
import cairocffi as cairo
15+
import cairo
16+
if cairo.version_info < (1, 11, 0):
17+
# Introduced create_for_data for Py3.
18+
raise ImportError
1719
except ImportError:
1820
try:
19-
import cairo
21+
import cairocffi as cairo
2022
except ImportError:
21-
raise ImportError("cairo backend requires that cairocffi or pycairo "
22-
"is installed")
23-
else:
24-
if cairo.version_info < (1, 11, 0):
25-
# Introduced create_for_data for Py3.
26-
raise ImportError(
27-
"cairo {} is installed; cairo>=1.11.0 is required"
28-
.format(cairo.version))
23+
raise ImportError(
24+
"cairo backend requires that pycairo>=1.11.0 or cairocffi"
25+
"is installed")
2926

3027
backend_version = cairo.version
3128

0 commit comments

Comments
 (0)