11import logging
22from pathlib import Path
3- from typing import Literal
3+ from typing import Literal , Union
44
55import message_ix
66import numpy as np
5757log = logging .getLogger (__name__ )
5858
5959
60- def steel_function (x : pd .DataFrame | float , a : float , b : float , m : float ):
60+ def steel_function (x : Union [ pd .DataFrame , float ] , a : float , b : float , m : float ):
6161 gdp_pcap , del_t = x
6262 return a * np .exp (b / gdp_pcap ) * (1 - m ) ** del_t
6363
6464
65- def cement_function (x : pd .DataFrame | float , a : float , b : float ):
65+ def cement_function (x : Union [ pd .DataFrame , float ] , a : float , b : float ):
6666 gdp_pcap = x [0 ]
6767 return a * np .exp (b / gdp_pcap )
6868
@@ -92,12 +92,14 @@ def cement_function(x: pd.DataFrame | float, a: float, b: float):
9292}
9393
9494
95- def gompertz (phi : float , mu : float , y : pd .DataFrame | float , baseyear : int = 2020 ):
95+ def gompertz (
96+ phi : float , mu : float , y : Union [pd .DataFrame , float ], baseyear : int = 2020
97+ ):
9698 return 1 - np .exp (- phi * np .exp (- mu * (y - baseyear )))
9799
98100
99101def read_timer_pop (
100- datapath : str | Path , material : Literal ["cement" , "steel" , "aluminum" ]
102+ datapath : Union [ str , Path ] , material : Literal ["cement" , "steel" , "aluminum" ]
101103):
102104 df_population = pd .read_excel (
103105 f"{ datapath } /{ material_data [material ]['dir' ]} { material_data [material ]['file' ]} " ,
@@ -115,7 +117,7 @@ def read_timer_pop(
115117
116118
117119def read_timer_gdp (
118- datapath : str | Path , material : Literal ["cement" , "steel" , "aluminum" ]
120+ datapath : Union [ str , Path ] , material : Literal ["cement" , "steel" , "aluminum" ]
119121):
120122 # Read GDP per capita data
121123 df_gdp = pd .read_excel (
@@ -165,7 +167,7 @@ def project_demand(df: pd.DataFrame, phi: float, mu: float):
165167 return df_demand [["region" , "year" , "demand_tot" ]]
166168
167169
168- def read_base_demand (filepath : str | Path ):
170+ def read_base_demand (filepath : Union [ str , Path ] ):
169171 with open (filepath , "r" ) as file :
170172 yaml_data = file .read ()
171173
0 commit comments