66from itertools import cycle
77from operator import add , mul , sub
88from textwrap import dedent
9- from typing import Tuple
9+ from typing import Any , Tuple
1010
1111import pytest
1212
@@ -274,12 +274,15 @@ def test_sideffect_not_canceled_if_not_resched(exemethod):
274274 assert sol == {"b" : 1 }
275275
276276
277+ DataFrame = Any
278+
279+
277280@pytest .fixture (params = [0 , 1 ])
278281def calc_prices_pipeline (request , exemethod ):
279282 """A pipeline that may work even without VAT-rates."""
280283
281284 @operation (needs = "order_items" , provides = sfxed ("ORDER" , "Items" , "Prices" ))
282- def new_order (items : list ) -> "pd. DataFrame" :
285+ def new_order (items : list ) -> DataFrame :
283286 order = {"items" : items }
284287 # Pretend we get the prices from sales.
285288 order ["prices" ] = list (range (1 , len (order ["items" ]) + 1 ))
@@ -289,7 +292,7 @@ def new_order(items: list) -> "pd.DataFrame":
289292 needs = [sfxed ("ORDER" , "Items" ), "vat rate" ],
290293 provides = sfxed ("ORDER" , "VAT rates" ),
291294 )
292- def fill_in_vat_ratios (order : "pd. DataFrame" , base_vat : float ) -> "pd. DataFrame" :
295+ def fill_in_vat_ratios (order : DataFrame , base_vat : float ) -> DataFrame :
293296 order ["VAT_rates" ] = [
294297 v for _ , v in zip (order ["prices" ], cycle ((base_vat , 2 * base_vat )))
295298 ]
@@ -299,7 +302,7 @@ def fill_in_vat_ratios(order: "pd.DataFrame", base_vat: float) -> "pd.DataFrame"
299302 needs = [sfxed ("ORDER" , "Prices" ), sfxed ("ORDER" , "VAT rates" , optional = True ),],
300303 provides = [sfxed ("ORDER" , "VAT" , "Totals" ), "vat owed" ],
301304 )
302- def finalize_prices (order : "pd. DataFrame" ) -> Tuple ["pd. DataFrame" , float ]:
305+ def finalize_prices (order : DataFrame ) -> Tuple [DataFrame , float ]:
303306 if "VAT_rates" in order :
304307 order ["VAT" ] = [p * v for p , v in zip (order ["prices" ], order ["VAT_rates" ])]
305308 order ["totals" ] = [p + v for p , v in zip (order ["prices" ], order ["VAT" ])]
@@ -366,7 +369,7 @@ def test_sideffecteds_endured(calc_prices_pipeline):
366369 provides = sfxed ("ORDER" , "VAT rates" ),
367370 endured = True ,
368371 )
369- def fill_in_vat_ratios (order : "pd. DataFrame" , base_vat : float ) -> "pd. DataFrame" :
372+ def fill_in_vat_ratios (order : DataFrame , base_vat : float ) -> DataFrame :
370373 raise ValueError ("EC transactions have no VAT!" )
371374
372375 calc_prices_pipeline = compose (
0 commit comments