1
- from typing import List , Dict , Any , Protocol , Tuple , get_type_hints
1
+ from typing import Dict , Any , Protocol , Tuple , get_type_hints
2
2
import inspect
3
3
4
4
import numpy as np
@@ -121,17 +121,13 @@ def draw(self, renderer):
121
121
def _update_wrapped (self , data ):
122
122
raise NotImplementedError
123
123
124
- def _query_and_transform (
125
- self , renderer , * , xunits : List [str ], yunits : List [str ]
126
- ) -> Dict [str , Any ]:
124
+ def _query_and_transform (self , renderer ) -> Dict [str , Any ]:
127
125
"""
128
126
Helper to centralize the data querying and python-side transforms
129
127
130
128
Parameters
131
129
----------
132
130
renderer : RendererBase
133
- xunits, yunits : List[str]
134
- The list of keys that need to be run through the x and y unit machinery.
135
131
"""
136
132
# extract what we need to about the axes to query the data
137
133
ax = self .axes
@@ -153,8 +149,11 @@ def _query_and_transform(
153
149
return self ._cache [cache_key ]
154
150
except KeyError :
155
151
...
156
- # TODO units
157
- transformed_data = evaluate_pipeline (self ._converters , data )
152
+ delayed_conversion = {
153
+ "xunits" : ax .xaxis .convert_units ,
154
+ "yunits" : ax .yaxis .convert_units ,
155
+ }
156
+ transformed_data = evaluate_pipeline (self ._converters , data , delayed_conversion )
158
157
159
158
self ._cache [cache_key ] = transformed_data
160
159
return transformed_data
@@ -232,7 +231,7 @@ def __init__(self, data: DataContainer, converters=None, /, **kwargs):
232
231
@_stale_wrapper
233
232
def draw (self , renderer ):
234
233
self ._update_wrapped (
235
- self ._query_and_transform (renderer , xunits = [ "x" ], yunits = [ "y" ] ),
234
+ self ._query_and_transform (renderer ),
236
235
)
237
236
return self ._wrapped_instance .draw (renderer )
238
237
@@ -265,7 +264,7 @@ def __init__(self, data: DataContainer, converters=None, /, **kwargs):
265
264
@_stale_wrapper
266
265
def draw (self , renderer ):
267
266
self ._update_wrapped (
268
- self ._query_and_transform (renderer , xunits = [], yunits = [] ),
267
+ self ._query_and_transform (renderer ),
269
268
)
270
269
return self ._wrapped_instance .draw (renderer )
271
270
@@ -304,7 +303,7 @@ def __init__(
304
303
@_stale_wrapper
305
304
def draw (self , renderer ):
306
305
self ._update_wrapped (
307
- self ._query_and_transform (renderer , xunits = [ "xextent" ], yunits = [ "yextent" ] ),
306
+ self ._query_and_transform (renderer ),
308
307
)
309
308
return self ._wrapped_instance .draw (renderer )
310
309
@@ -325,7 +324,7 @@ def __init__(self, data: DataContainer, converters=None, /, **kwargs):
325
324
@_stale_wrapper
326
325
def draw (self , renderer ):
327
326
self ._update_wrapped (
328
- self ._query_and_transform (renderer , xunits = [ "edges" ], yunits = [ "density" ] ),
327
+ self ._query_and_transform (renderer ),
329
328
)
330
329
return self ._wrapped_instance .draw (renderer )
331
330
@@ -344,7 +343,7 @@ def __init__(self, data: DataContainer, converters=None, /, **kwargs):
344
343
@_stale_wrapper
345
344
def draw (self , renderer ):
346
345
self ._update_wrapped (
347
- self ._query_and_transform (renderer , xunits = [], yunits = [] ),
346
+ self ._query_and_transform (renderer ),
348
347
)
349
348
return self ._wrapped_instance .draw (renderer )
350
349
@@ -425,11 +424,7 @@ def __init__(self, data: DataContainer, converters=None, /, **kwargs):
425
424
@_stale_wrapper
426
425
def draw (self , renderer ):
427
426
self ._update_wrapped (
428
- self ._query_and_transform (
429
- renderer ,
430
- xunits = ["x" , "xupper" , "xlower" ],
431
- yunits = ["y" , "yupper" , "ylower" ],
432
- ),
427
+ self ._query_and_transform (renderer ),
433
428
)
434
429
for k , v in self ._wrapped_instances .items ():
435
430
v .draw (renderer )
0 commit comments