1
1
import logging
2
2
from pathlib import Path
3
- from typing import Literal
3
+ from typing import Literal , Union
4
4
5
5
import message_ix
6
6
import numpy as np
57
57
log = logging .getLogger (__name__ )
58
58
59
59
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 ):
61
61
gdp_pcap , del_t = x
62
62
return a * np .exp (b / gdp_pcap ) * (1 - m ) ** del_t
63
63
64
64
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 ):
66
66
gdp_pcap = x [0 ]
67
67
return a * np .exp (b / gdp_pcap )
68
68
@@ -92,12 +92,14 @@ def cement_function(x: pd.DataFrame | float, a: float, b: float):
92
92
}
93
93
94
94
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
+ ):
96
98
return 1 - np .exp (- phi * np .exp (- mu * (y - baseyear )))
97
99
98
100
99
101
def read_timer_pop (
100
- datapath : str | Path , material : Literal ["cement" , "steel" , "aluminum" ]
102
+ datapath : Union [ str , Path ] , material : Literal ["cement" , "steel" , "aluminum" ]
101
103
):
102
104
df_population = pd .read_excel (
103
105
f"{ datapath } /{ material_data [material ]['dir' ]} { material_data [material ]['file' ]} " ,
@@ -115,7 +117,7 @@ def read_timer_pop(
115
117
116
118
117
119
def read_timer_gdp (
118
- datapath : str | Path , material : Literal ["cement" , "steel" , "aluminum" ]
120
+ datapath : Union [ str , Path ] , material : Literal ["cement" , "steel" , "aluminum" ]
119
121
):
120
122
# Read GDP per capita data
121
123
df_gdp = pd .read_excel (
@@ -165,7 +167,7 @@ def project_demand(df: pd.DataFrame, phi: float, mu: float):
165
167
return df_demand [["region" , "year" , "demand_tot" ]]
166
168
167
169
168
- def read_base_demand (filepath : str | Path ):
170
+ def read_base_demand (filepath : Union [ str , Path ] ):
169
171
with open (filepath , "r" ) as file :
170
172
yaml_data = file .read ()
171
173
0 commit comments