7
7
# Ruff disabled because imports are order-dependent
8
8
# ruff: noqa: I001
9
9
from geophires_x .Model import Model
10
+ from geophires_x .SBTEconomics import SBTEconomics
11
+ from geophires_x .SBTReservoir import SBTReservoir
12
+ from geophires_x .SBTWellbores import SBTWellbores
10
13
11
14
from geophires_x .SFReservoir import SFReservoir
12
15
from geophires_x .LHSReservoir import LHSReservoir
24
27
from geophires_x .SUTRAReservoir import SUTRAReservoir
25
28
from geophires_x .SUTRAWellBores import SUTRAWellBores
26
29
from geophires_x .TDPReservoir import TDPReservoir
30
+ from hip_ra_x .hip_ra_x import HIP_RA_X
27
31
28
32
29
33
class GeophiresXSchemaGenerator :
@@ -41,37 +45,48 @@ def _get_dummy_model(self):
41
45
sys .argv = stash_sys_argv
42
46
os .chdir (stash_cwd )
43
47
44
- def get_parameters_json (self ) -> Tuple [str , str ]:
48
+ def get_parameter_sources (self ) -> list :
49
+ """
50
+ :rtype: list[Tuple[Any, str]]
51
+ """
45
52
dummy_model = self ._get_dummy_model ()
46
-
47
- def with_category (param_dict : dict , category : str ):
48
- def _with_cat (p : Parameter , cat : str ):
49
- p .parameter_category = cat
50
- return p
51
-
52
- return {k : _with_cat (v , category ) for k , v in param_dict .items ()}
53
-
54
- parameter_sources = [
53
+ return [
55
54
(dummy_model .reserv , 'Reservoir' ),
56
55
(TDPReservoir (dummy_model ), 'Reservoir' ),
57
56
(LHSReservoir (dummy_model ), 'Reservoir' ),
58
57
(MPFReservoir (dummy_model ), 'Reservoir' ),
59
58
(SFReservoir (dummy_model ), 'Reservoir' ),
60
59
(CylindricalReservoir (dummy_model ), 'Reservoir' ),
60
+ (SBTReservoir (dummy_model ), 'Reservoir' ),
61
61
(SUTRAReservoir (dummy_model ), 'Reservoir' ),
62
62
(dummy_model .wellbores , 'Well Bores' ),
63
63
(AGSWellBores (dummy_model ), 'Well Bores' ),
64
+ (SBTWellbores (dummy_model ), 'Well Bores' ),
64
65
(SUTRAWellBores (dummy_model ), 'Well Bores' ),
65
66
(dummy_model .surfaceplant , 'Surface Plant' ),
66
67
(SurfacePlantAGS (dummy_model ), 'Surface Plant' ),
67
68
(SurfacePlantSUTRA (dummy_model ), 'Surface Plant' ),
68
69
(dummy_model .economics , 'Economics' ),
69
70
(AGSEconomics (dummy_model ), 'Economics' ),
71
+ (SBTEconomics (dummy_model ), 'Economics' ),
70
72
(SUTRAEconomics (dummy_model ), 'Economics' ),
71
73
(EconomicsCCUS (dummy_model ), 'Economics' ),
72
74
(EconomicsAddOns (dummy_model ), 'Economics' ),
73
75
]
74
76
77
+ def get_schema_title (self ) -> str :
78
+ return 'GEOPHIRES-X'
79
+
80
+ def get_parameters_json (self ) -> Tuple [str , str ]:
81
+
82
+ def with_category (param_dict : dict , category : str ):
83
+ def _with_cat (p : Parameter , cat : str ):
84
+ p .parameter_category = cat
85
+ return p
86
+
87
+ return {k : _with_cat (v , category ) for k , v in param_dict .items ()}
88
+
89
+ parameter_sources = self .get_parameter_sources ()
75
90
output_params = {}
76
91
input_params = {}
77
92
for param_source in parameter_sources :
@@ -112,7 +127,7 @@ def generate_json_schema(self) -> dict:
112
127
'definitions' : {},
113
128
'$schema' : 'http://json-schema.org/draft-04/schema#' ,
114
129
'type' : 'object' ,
115
- 'title' : 'GEOPHIRES Schema' ,
130
+ 'title' : f' { self . get_schema_title () } Schema' ,
116
131
'required' : required ,
117
132
'properties' : properties ,
118
133
}
@@ -132,10 +147,11 @@ def generate_parameters_reference_rst(self) -> str:
132
147
input_params_by_category [category ][input_param_name ] = input_param
133
148
134
149
def get_input_params_table (category_params , category_name ) -> str :
150
+ category_display = category_name if category_name is not None else ''
135
151
input_rst = f"""
136
- { category_name }
137
- { '-' * len (category_name )}
138
- .. list-table:: { category_name } Parameters
152
+ { category_display }
153
+ { '-' * len (category_display )}
154
+ .. list-table:: { category_display } { ' ' if len ( category_display ) > 0 else '' } Parameters
139
155
:header-rows: 1
140
156
141
157
* - Name
@@ -170,7 +186,7 @@ def get_input_params_table(category_params, category_name) -> str:
170
186
171
187
output_rst = self .get_output_params_table_rst (output_params_json )
172
188
173
- rst = f"""Parameters
189
+ rst = f"""{ self . get_schema_title () } Parameters
174
190
==========
175
191
176
192
.. contents::
@@ -230,3 +246,15 @@ def _get_min_and_max(param: dict, default_val='') -> Tuple:
230
246
max_val = max (param ['AllowableRange' ])
231
247
232
248
return (min_val , max_val )
249
+
250
+
251
+ class HipRaXSchemaGenerator (GeophiresXSchemaGenerator ):
252
+ def get_parameter_sources (self ) -> list :
253
+ """
254
+ :rtype: list[Tuple[Any, str]]
255
+ """
256
+ dummy_model = HIP_RA_X ()
257
+ return [(dummy_model , None )]
258
+
259
+ def get_schema_title (self ) -> str :
260
+ return 'HIP-RA-X'
0 commit comments