1- from typing import List , Dict , Any , Protocol , Tuple , get_type_hints
1+ from typing import Dict , Any , Protocol , Tuple , get_type_hints
22import inspect
33
44import numpy as np
@@ -121,17 +121,13 @@ def draw(self, renderer):
121121 def _update_wrapped (self , data ):
122122 raise NotImplementedError
123123
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 ]:
127125 """
128126 Helper to centralize the data querying and python-side transforms
129127
130128 Parameters
131129 ----------
132130 renderer : RendererBase
133- xunits, yunits : List[str]
134- The list of keys that need to be run through the x and y unit machinery.
135131 """
136132 # extract what we need to about the axes to query the data
137133 ax = self .axes
@@ -153,8 +149,11 @@ def _query_and_transform(
153149 return self ._cache [cache_key ]
154150 except KeyError :
155151 ...
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 )
158157
159158 self ._cache [cache_key ] = transformed_data
160159 return transformed_data
@@ -232,7 +231,7 @@ def __init__(self, data: DataContainer, converters=None, /, **kwargs):
232231 @_stale_wrapper
233232 def draw (self , renderer ):
234233 self ._update_wrapped (
235- self ._query_and_transform (renderer , xunits = [ "x" ], yunits = [ "y" ] ),
234+ self ._query_and_transform (renderer ),
236235 )
237236 return self ._wrapped_instance .draw (renderer )
238237
@@ -265,7 +264,7 @@ def __init__(self, data: DataContainer, converters=None, /, **kwargs):
265264 @_stale_wrapper
266265 def draw (self , renderer ):
267266 self ._update_wrapped (
268- self ._query_and_transform (renderer , xunits = [ "x" ], yunits = [ "y" ] ),
267+ self ._query_and_transform (renderer ),
269268 )
270269 return self ._wrapped_instance .draw (renderer )
271270
@@ -304,7 +303,7 @@ def __init__(
304303 @_stale_wrapper
305304 def draw (self , renderer ):
306305 self ._update_wrapped (
307- self ._query_and_transform (renderer , xunits = [ "xextent" ], yunits = [ "yextent" ] ),
306+ self ._query_and_transform (renderer ),
308307 )
309308 return self ._wrapped_instance .draw (renderer )
310309
@@ -325,7 +324,7 @@ def __init__(self, data: DataContainer, converters=None, /, **kwargs):
325324 @_stale_wrapper
326325 def draw (self , renderer ):
327326 self ._update_wrapped (
328- self ._query_and_transform (renderer , xunits = [ "edges" ], yunits = [ "density" ] ),
327+ self ._query_and_transform (renderer ),
329328 )
330329 return self ._wrapped_instance .draw (renderer )
331330
@@ -344,7 +343,7 @@ def __init__(self, data: DataContainer, converters=None, /, **kwargs):
344343 @_stale_wrapper
345344 def draw (self , renderer ):
346345 self ._update_wrapped (
347- self ._query_and_transform (renderer , xunits = [], yunits = [] ),
346+ self ._query_and_transform (renderer ),
348347 )
349348 return self ._wrapped_instance .draw (renderer )
350349
@@ -425,11 +424,7 @@ def __init__(self, data: DataContainer, converters=None, /, **kwargs):
425424 @_stale_wrapper
426425 def draw (self , renderer ):
427426 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 ),
433428 )
434429 for k , v in self ._wrapped_instances .items ():
435430 v .draw (renderer )
0 commit comments