Skip to content

Commit 060c814

Browse files
Generate geophires-response.json with outputs
1 parent 4606e03 commit 060c814

File tree

4 files changed

+922
-904
lines changed

4 files changed

+922
-904
lines changed

src/geophires_x_schema_generator/__init__.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,29 +99,37 @@ def _with_cat(p: Parameter, cat: str):
9999
def generate_json_schema(self) -> dict:
100100
input_params_json, output_params_json = self.get_parameters_json()
101101
input_params = json.loads(input_params_json)
102+
return self._generate_json_schema_for_params(input_params)
102103

104+
def _generate_json_schema_for_params(self, params: dict) -> dict:
103105
properties = {}
104106
required = []
105107

106-
for param_name in input_params:
107-
param = input_params[param_name]
108+
for param_name in params:
109+
param = params[param_name]
108110

109111
units_val = param['CurrentUnits'] if isinstance(param['CurrentUnits'], str) else None
110112
min_val, max_val = _get_min_and_max(param, default_val=None)
111113
properties[param_name] = {
112114
'description': param['ToolTipText'],
113-
'type': param['json_parameter_type'],
114115
'units': units_val,
115-
'category': param['parameter_category'],
116-
'default': _fix_floating_point_error(param['DefaultValue']),
117116
'minimum': min_val,
118117
'maximum': max_val,
119118
}
120119

121-
if param['Required']:
120+
if 'json_parameter_type' in param:
121+
properties[param_name]['type'] = param['json_parameter_type']
122+
123+
if 'parameter_category' in param:
124+
properties[param_name]['category'] = param['parameter_category']
125+
126+
if 'DefaultValue' in param:
127+
properties[param_name]['default'] = _fix_floating_point_error(param['DefaultValue'])
128+
129+
if param.get('Required'):
122130
required.append(param_name)
123131

124-
if param['ValuesEnum']:
132+
if param.get('ValuesEnum'):
125133
properties[param_name]['enum_values'] = param['ValuesEnum']
126134

127135
schema = {
@@ -261,6 +269,13 @@ def _fix_floating_point_error(val: Any) -> Any:
261269
return val
262270

263271

272+
class GeophiresXOutputSchemaGenerator(GeophiresXSchemaGenerator):
273+
def generate_json_schema(self) -> dict:
274+
input_params_json, output_params_json = self.get_parameters_json()
275+
output_params = json.loads(output_params_json)
276+
return self._generate_json_schema_for_params(output_params)
277+
278+
264279
class HipRaXSchemaGenerator(GeophiresXSchemaGenerator):
265280
def get_parameter_sources(self) -> list:
266281
"""

0 commit comments

Comments
 (0)