4
4
import six
5
5
6
6
from collections import OrderedDict , namedtuple
7
- from contextlib import contextmanager
8
7
from functools import wraps
9
8
import inspect
10
9
import re
@@ -43,30 +42,23 @@ def allow_rasterization(draw):
43
42
other setup function calls, such as starting and flushing a mixed-mode
44
43
renderer.
45
44
"""
46
- @contextmanager
47
- def with_rasterized (artist , renderer ):
48
-
49
- if artist .get_rasterized ():
50
- renderer .start_rasterizing ()
51
-
52
- if artist .get_agg_filter () is not None :
53
- renderer .start_filter ()
54
45
46
+ # the axes class has a second argument inframe for its draw method.
47
+ @wraps (draw )
48
+ def draw_wrapper (artist , renderer , * args , ** kwargs ):
55
49
try :
56
- yield
50
+ if artist .get_rasterized ():
51
+ renderer .start_rasterizing ()
52
+ if artist .get_agg_filter () is not None :
53
+ renderer .start_filter ()
54
+
55
+ return draw (artist , renderer , * args , ** kwargs )
57
56
finally :
58
57
if artist .get_agg_filter () is not None :
59
58
renderer .stop_filter (artist .get_agg_filter ())
60
-
61
59
if artist .get_rasterized ():
62
60
renderer .stop_rasterizing ()
63
61
64
- # the axes class has a second argument inframe for its draw method.
65
- @wraps (draw )
66
- def draw_wrapper (artist , renderer , * args , ** kwargs ):
67
- with with_rasterized (artist , renderer ):
68
- return draw (artist , renderer , * args , ** kwargs )
69
-
70
62
draw_wrapper ._supports_rasterization = True
71
63
return draw_wrapper
72
64
0 commit comments