Coverage for backend/django/core/auxiliary/enums/unitsLibrary.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2026-07-22 05:22 +0000

1 

2from .unitsOfMeasure import UnitOfMeasure 

3 

4 

5def get_default_unit(unitType: str) -> str: 

6 """ 

7 Get the default unit for a given unit type 

8 @unitType: UnitOfMeasure unit type 

9 @return: default unit 

10 """ 

11 if unitType == UnitOfMeasure.none or unitType not in units_library: 

12 # no default unit for this unit type 

13 return "" 

14 return units_library[unitType][0]["value"] 

15 

16def get_unit_choices(unit_type): 

17 if unit_type in units_library: 

18 return [(unit["value"], unit["label"]) for unit in units_library[unit_type]] 

19 return [] 

20 

21 

22""" 

23Units Library 

24 

25Units are stored in a dictionary where the key is the unit type and the value is a list of dictionaries. 

26Each dictionary contains the unit value and label. 

27 

28value: unit value actual idaes unit value parsed as a string e.g degR 

29label: This is displayed on the front end to represent the unit vlaue e.g °R 

30 

31""" 

32units_library: dict[str, list[dict[str, str]]] = { 

33 UnitOfMeasure.deltaTemperature: [ 

34 #{"value": "delta_degC", "label": "K"}, # delta_degC = delta_K 

35 {"value": "delta_degC", "label": "°C"}, 

36 {"value": "delta_degF", "label": "°F"}, 

37 #{"value": "delta_degF", "label": "°R"} # delta_degF = delta_degR 

38 ], 

39 UnitOfMeasure.temperature: [ 

40 {"value": "degC", "label": "°C"}, 

41 {"value": "K", "label": "K"}, 

42 {"value": "degF", "label": "°F"}, 

43 {"value": "degR", "label": "°R"} 

44 ], 

45 

46 UnitOfMeasure.pressure: [ 

47 {"value": "kPa", "label": "kPa"}, 

48 {"value": "Pa", "label": "Pa"}, 

49 {"value": "bar", "label": "bar"}, 

50 {"value": "MPa", "label": "MPa"}, 

51 {"value": "atm", "label": "atm"}, 

52 {"value": "mbar", "label": "mbar"}, 

53 {"value": "psi", "label": "psi"}, 

54 {"value": "mm_Hg", "label": "mmHg"}, 

55 {"value": "mm*water*g_0", "label": "mmH2O"}, 

56 {"value": "m*water*g_0", "label": "mH2O"}, 

57 {"value": "foot_H2O", "label": "ftH2O"}, 

58 {"value": "inch*water*g_0", "label": "inH2O"}, 

59 {"value": "inHg", "label": "inHg"}, 

60 {"value": "(kgf)/(cm^2)", "label": "kgf/cm²"}, 

61 {"value": "(lbf)/(ft^2)", "label": "lbf/ft²"}, 

62 ], 

63 UnitOfMeasure.massflow: [ 

64 {"value": "kg/s", "label": "kg/s"}, 

65 {"value": "kg/minute", "label": "kg/minute"}, 

66 {"value": "kg/h", "label": "kg/h"}, 

67 {"value": "kg/d", "label": "kg/d"}, 

68 {"value": "g/s", "label": "g/s"}, 

69 {"value": "g/minute", "label": "g/minute"}, 

70 {"value": "g/h", "label": "g/h"}, 

71 {"value": "t/s", "label": "t/s"}, 

72 {"value": "t/minute", "label": "t/minute"}, 

73 {"value": "t/h", "label": "t/h"}, 

74 {"value": "t/d", "label": "t/d"}, 

75 {"value": "lb/s", "label": "lb/s"}, 

76 {"value": "lb/minute", "label": "lb/minute"}, 

77 {"value": "lb/h", "label": "lb/h"}, 

78 {"value": "lb/d", "label": "lb/d"}, 

79 ], 

80 UnitOfMeasure.massFlux: [ 

81 {"value": "kg/(m^2*s)", "label": "kg/[m².s]"}, 

82 {"value": "kg/(m^2*h)", "label": "kg/[m².h]"}, 

83 {"value": "g/(m^2*s)", "label": "g/[m².s]"}, 

84 {"value": "g/(m^2*h)", "label": "g/[m².h]"}, 

85 {"value": "lb/(ft^2*h)", "label": "lb/[ft².h]"}, 

86 ], 

87 UnitOfMeasure.molar: [ 

88 {"value": "mol", "label": "mol"}, 

89 {"value": "kmol", "label": "kmol"}, 

90 ], 

91 UnitOfMeasure.molarflow: [ 

92 {"value": "mol/s", "label": "mol/s"}, 

93 {"value": "mol/minute", "label": "mol/minute"}, 

94 {"value": "mol/h", "label": "mol/h"}, 

95 {"value": "mol/d", "label": "mol/d"}, 

96 {"value": "kmol/s", "label": "kmol/s"}, 

97 {"value": "kmol/minute", "label": "kmol/minute"}, 

98 {"value": "kmol/h", "label": "kmol/h"}, 

99 {"value": "kmol/d", "label": "kmol/d"}, 

100 ], 

101 UnitOfMeasure.volumetricFlow: [ 

102 {"value": "m^3/s", "label": "m³/s"}, 

103 {"value": "m^3/minute", "label": "m³/min"}, 

104 {"value": "m^3/h", "label": "m³/h"}, 

105 {"value": "m^3/d", "label": "m³/d"}, 

106 {"value": "L/s", "label": "L/s"}, 

107 {"value": "L/minute", "label": "L/minute"}, 

108 {"value": "L/h", "label": "L/h"}, 

109 {"value": "L/d", "label": "L/d"}, 

110 {"value": "cm^3/s", "label": "cm³/s"}, 

111 {"value": "cm^3/minute", "label": "cm³/min"}, 

112 {"value": "cm^3/h", "label": "cm³/h"}, 

113 {"value": "cm^3/d", "label": "cm³/d"}, 

114 {"value": "gallon/s", "label": "gal/s"}, 

115 {"value": "gallon/minute", "label": "gal/min"}, 

116 {"value": "gallon/h", "label": "gal/h"}, 

117 {"value": "gallon/d", "label": "gal/d"}, 

118 {"value": "ft^3/s", "label": "ft³/s"}, 

119 {"value": "ft^3/minute", "label": "ft³/min"}, 

120 {"value": "ft^3/h", "label": "ft³/h"}, 

121 {"value": "ft^3/d", "label": "ft³/d"}, 

122 {"value": "bbl/s", "label": "bbl/s"}, 

123 {"value": "bbl/minute", "label": "bbl/minute"}, 

124 {"value": "bbl/h", "label": "bbl/h"}, 

125 {"value": "bbl/d", "label": "bbl/d"}, 

126 ], 

127 UnitOfMeasure.massEnthalpy: [ 

128 {"value": "kJ/kg", "label": "kJ/kg"}, 

129 {"value": "J/kg", "label": "J/kg"}, 

130 {"value": "kJ/T", "label": "kJ/T"}, 

131 {"value": "MJ/T", "label": "MJ/T"}, 

132 {"value": "kcal/kg", "label": "kcal/kg"}, 

133 ], 

134 UnitOfMeasure.molarEnthalpy: [ 

135 {"value": "kJ/mol", "label": "kJ/mol"}, 

136 {"value": "J/mol", "label": "J/mol"}, 

137 {"value": "MJ/mol", "label": "MJ/mol"}, 

138 {"value": "cal/mol", "label": "cal/mol"}, 

139 ], 

140 UnitOfMeasure.massEntropy: [ 

141 {"value": "kJ/(kg.K)", "label": "kJ/[kg.K]"}, 

142 {"value": "J/(g.K)", "label": "J/[g.K]"}, 

143 {"value": "cal/(g.degC)", "label": "cal/[g.°C]"}, 

144 ], 

145 UnitOfMeasure.molarEntropy: [ 

146 {"value": "kJ/(kmol.K)", "label": "kJ/[kmol.K]"}, 

147 {"value": "J/(mol.K)", "label": "J/[mol.K]"}, 

148 {"value": "cal/(mol.degC)", "label": "cal/[mol.°C]"}, 

149 ], 

150 UnitOfMeasure.molecularWeight: [ 

151 {"value": "kg/kmol", "label": "kg/kmol"}, 

152 {"value": "g/mol", "label": "g/mol"}, 

153 ], 

154 UnitOfMeasure.surfaceTension: [ 

155 {"value": "N/m", "label": "N/m"}, 

156 {"value": "dyn/cm", "label": "dyn/cm"}, 

157 {"value": "lbf/in", "label": "lbf/in"}, 

158 ], 

159 UnitOfMeasure.density: [ 

160 {"value": "kg/m^3", "label": "kg/m³"}, 

161 {"value": "g/cm^3", "label": "g/cm³"}, 

162 ], 

163 UnitOfMeasure.energy: [ 

164 {"value": "J", "label": "J"}, 

165 {"value": "kJ", "label": "kJ"}, 

166 {"value": "MJ", "label": "MJ"}, 

167 {"value": "GJ", "label": "GJ"}, 

168 ], 

169 UnitOfMeasure.thermalConductivity: [ 

170 {"value": "W/(m.K)", "label": "W/[m.K]"}, 

171 {"value": "cal/(cm.s.degC)", "label": "cal/[cm.s.°C]"}, 

172 {"value": "BTU/(ft.h.degR)", "label": "BTU/[ft.h.°R]"}, 

173 ], 

174 UnitOfMeasure.cinematic_viscosity: [ 

175 {"value": "m^2/s", "label": "m²/s"}, 

176 {"value": "cSt", "label": "cSt"}, 

177 {"value": "ft^2/s", "label": "ft²/s"}, 

178 {"value": "mm^2/s", "label": "mm²/s"}, 

179 {"value": "cm^2/s", "label": "cm²/s"}, 

180 ], 

181 UnitOfMeasure.viscosity: [ 

182 {"value": "kg/(m.s)", "label": "kg/[m.s]"}, 

183 {"value": "Pa.s", "label": "Pa.s"}, 

184 {"value": "cP", "label": "cP"}, 

185 ], 

186 UnitOfMeasure.distance: [ 

187 {"value": "m", "label": "m"}, 

188 {"value": "mm", "label": "mm"}, 

189 {"value": "cm", "label": "cm"}, 

190 {"value": "km", "label": "km"}, 

191 {"value": "in", "label": "in"}, 

192 {"value": "ft", "label": "ft"}, 

193 {"value": "mile", "label": "mile"}, 

194 ], 

195 UnitOfMeasure.heatflow: [ 

196 {"value": "kW", "label": "kW"}, 

197 {"value": "W", "label": "W"}, 

198 {"value": "MW", "label": "MW"}, 

199 {"value": "GW", "label": "GW"}, 

200 {"value": "kJ/h", "label": "kJ/h"}, 

201 {"value": "kJ/d", "label": "kJ/d"}, 

202 {"value": "MJ/h", "label": "MJ/h"}, 

203 {"value": "MJ/d", "label": "MJ/d"}, 

204 {"value": "horsepower", "label": "HP"}, 

205 {"value": "cal/s", "label": "cal/s"}, 

206 {"value": "cal/h", "label": "cal/h"}, 

207 {"value": "kcal/s", "label": "kcal/s"}, 

208 {"value": "kcal/h", "label": "kcal/h"}, 

209 {"value": "kcal/d", "label": "kcal/d"}, 

210 {"value": "BTU/s", "label": "BTU/s"}, 

211 {"value": "BTU/h", "label": "BTU/h"}, 

212 {"value": "BTU/d", "label": "BTU/d"}, 

213 ], 

214 UnitOfMeasure.time: [ 

215 {"value": "s", "label": "s"}, 

216 {"value": "minute", "label": "minute"}, 

217 {"value": "h", "label": "h"}, 

218 {"value": "d", "label": "d"}, 

219 {"value": "year", "label": "year"}, 

220 ], 

221 UnitOfMeasure.volume: [ 

222 {"value": "m^3", "label": "m³"}, 

223 {"value": "cm^3", "label": "cm³"}, 

224 {"value": "L", "label": "L"}, 

225 {"value": "ft^3", "label": "ft³"}, 

226 ], 

227 UnitOfMeasure.molar_volume: [ 

228 {"value": "m^3/kmol", "label": "m³/kmol"}, 

229 {"value": "cm^3/mmol", "label": "cm³/mmol"}, 

230 {"value": "L/kmol", "label": "L/kmol"}, 

231 ], 

232 UnitOfMeasure.area: [ 

233 {"value": "m^2", "label": "m²"}, 

234 {"value": "cm^2", "label": "cm²"}, 

235 {"value": "hectare", "label": "hectare"}, 

236 {"value": "acre", "label": "acre"}, 

237 {"value": "ft^2", "label": "ft²"}, 

238 ], 

239 UnitOfMeasure.head: [ 

240 {"value": "m", "label": "m"}, 

241 {"value": "ft", "label": "ft"}, 

242 {"value": "cm", "label": "cm"}, 

243 ], 

244 UnitOfMeasure.diameter: [ 

245 {"value": "mm", "label": "mm"}, 

246 {"value": "in", "label": "in"}, 

247 ], 

248 UnitOfMeasure.force: [ 

249 {"value": "N", "label": "N"}, 

250 {"value": "kN", "label": "kN"}, 

251 {"value": "dyn", "label": "dyn"}, 

252 {"value": "kgf", "label": "kgf"}, 

253 {"value": "lbf", "label": "lbf"}, 

254 ], 

255 UnitOfMeasure.heat_transf_coeff: [ 

256 {"value": "W/(m^2.K)", "label": "W/[m².K]"}, 

257 {"value": "kW/(m^2.K)", "label": "kW/[m².K]"}, 

258 {"value": "(kg.m^2)/(K.s^3)", "label": "[kg.m²]/[K.s³]"}, 

259 {"value": "cal/(cm^2.s.degC)", "label": "cal/[cm².s.°C]"}, 

260 {"value": "BTU/(ft^2.h.degR)", "label": "BTU/[ft².h.°R]"}, 

261 ], 

262 UnitOfMeasure.accel: [ 

263 {"value": "m/s^2", "label": "m/s²"}, 

264 {"value": "cm/s^2", "label": "cm/s²"}, 

265 {"value": "ft/s^2", "label": "ft/s²"}, 

266 ], 

267 UnitOfMeasure.spec_vol: [ 

268 {"value": "m^3/kg", "label": "m³/kg"}, 

269 {"value": "cm^3/g", "label": "cm³/g"}, 

270 ], 

271 UnitOfMeasure.molar_conc: [ 

272 {"value": "kmol/m^3", "label": "kmol/m³"}, 

273 {"value": "mol/m^3", "label": "mol/m³"}, 

274 {"value": "mol/L", "label": "mol/L"}, 

275 {"value": "mol/cm^3", "label": "mol/cm³"}, 

276 {"value": "mol/mL", "label": "mol/mL"}, 

277 ], 

278 UnitOfMeasure.mass_conc: [ 

279 {"value": "kg/m^3", "label": "kg/m³"}, 

280 {"value": "g/L", "label": "g/L"}, 

281 {"value": "g/cm^3", "label": "g/cm³"}, 

282 {"value": "g/mL", "label": "g/mL"}, 

283 ], 

284 UnitOfMeasure.reac_rate: [ 

285 {"value": "kmol/(m^3.s)", "label": "kmol/[m³.s]"}, 

286 {"value": "kmol/(m^3.minute)", "label": "kmol/[m³.min]"}, 

287 {"value": "kmol/(m^3.h)", "label": "kmol/[m³.h]"}, 

288 {"value": "mol/(m^3.s)", "label": "mol/[m³.s]"}, 

289 {"value": "mol/(m^3.minute)", "label": "mol/[m³.min]"}, 

290 {"value": "mol/(m^3.h)", "label": "mol/[m³.h]"}, 

291 {"value": "mol/(L.s)", "label": "mol/[L.s]"}, 

292 {"value": "mol/(L.minute)", "label": "mol/[L.minute]"}, 

293 {"value": "mol/(L.h)", "label": "mol/[L.h]"}, 

294 {"value": "mol/(cm^3.s)", "label": "mol/[cm³.s]"}, 

295 {"value": "mol/(cm^3.minute)", "label": "mol/[cm³.min]"}, 

296 {"value": "mol/(cm^3.h)", "label": "mol/[cm³.h]"}, 

297 ], 

298 UnitOfMeasure.molarEnthalpy: [ 

299 {"value": "kJ/kmol", "label": "kJ/kmol"}, 

300 {"value": "J/mol", "label": "J/mol"}, 

301 {"value": "cal/mol", "label": "cal/mol"}, 

302 ], 

303 UnitOfMeasure.molarEnthalpyOverTime: [ 

304 {"value": "J/mol/s", "label": "J/mol/s"}, 

305 {"value": "cal/mol/s", "label": "cal/mol/s"}, 

306 ], 

307 UnitOfMeasure.velocity: [ 

308 {"value": "m/s", "label": "m/s"}, 

309 {"value": "cm/s", "label": "cm/s"}, 

310 {"value": "mm/s", "label": "mm/s"}, 

311 {"value": "km/h", "label": "km/h"}, 

312 {"value": "ft/h", "label": "ft/h"}, 

313 {"value": "ft/minute", "label": "ft/minute"}, 

314 {"value": "ft/s", "label": "ft/s"}, 

315 {"value": "in/s", "label": "in/s"}, 

316 ], 

317 UnitOfMeasure.foulingfactor: [ 

318 {"value": "K.m^2/W", "label": "K.m²/W"}, 

319 {"value": "degC.cm^2.s/cal", "label": "°C.cm².s/cal"}, 

320 {"value": "ft^2.h.degF/BTU", "label": "ft².h.°F/BTU"}, 

321 ], 

322 UnitOfMeasure.cakeresistance: [ 

323 {"value": "m/kg", "label": "m/kg"}, 

324 {"value": "cm/g", "label": "cm/g"}, 

325 ], 

326 UnitOfMeasure.mediumresistance: [ 

327 {"value": "m^-1", "label": "m-1"}, 

328 {"value": "cm^-1", "label": "cm-1"}, 

329 {"value": "ft^-1", "label": "ft-1"}, 

330 ], 

331 UnitOfMeasure.thermalresistance:[ 

332 {"value": "K/W", "label": "K/W"}, 

333 {"value": "degC/W", "label": "°C/W"}, 

334 ], 

335 UnitOfMeasure.mass: [ 

336 {"value": "kg", "label": "kg"}, 

337 {"value": "g", "label": "g"}, 

338 {"value": "t", "label": "t"}, 

339 {"value": "lb", "label": "lb"}, 

340 ], 

341 UnitOfMeasure.jouleThomsonCoefficient: [ 

342 {"value": "K/Pa", "label": "K/Pa"}, 

343 {"value": "degF/psi", "label": "°F/psi"}, 

344 {"value": "degC/atm", "label": "°C/atm"}, 

345 ], 

346 UnitOfMeasure.compressibility: [ 

347 {"value": "Pa^-1", "label": "Pa⁻¹"}, 

348 {"value": "atm^-1", "label": "atm⁻¹"}, 

349 {"value": "kPa^-1", "label": "kPa⁻¹"}, 

350 {"value": "bar^-1", "label": "bar⁻¹"}, 

351 {"value": "MPa^-1", "label": "MPa⁻¹"}, 

352 {"value": "psi^-1", "label": "psi⁻¹"}, 

353 ], 

354 UnitOfMeasure.reac_rate_heterog: [ 

355 {"value": "kmol/(kg.s)", "label": "kmol/[kg.s]"}, 

356 {"value": "kmol/(kg.minute)", "label": "kmol/[kg.minute]"}, 

357 {"value": "kmol/(kg.h)", "label": "kmol/[kg.h]"}, 

358 {"value": "mol/(kg.s)", "label": "mol/[kg.s]"}, 

359 {"value": "mol/(kg.minute)", "label": "mol/[kg.minute]"}, 

360 {"value": "mol/(kg.h)", "label": "mol/[kg.h]"}, 

361 ], 

362 UnitOfMeasure.conductance: [ 

363 {"value": "(kg/s)/(Pa^0.5)", "label": "[kg/s]/[Pa⁰⋅⁵]"}, 

364 {"value": "(kg/h)/(atm^0.5)", "label": "[kg/h]/[atm⁰⋅⁵]"}, 

365 {"value": "(kg/h)/(bar^0.5)", "label": "[kg/h]/[bar⁰⋅⁵]"}, 

366 {"value": "(kg/h)/((kgf/cm^2)^0.5)", "label": "[kg/h]/[[kgf/cm²]⁰⋅⁵]"}, 

367 ], 

368 UnitOfMeasure.ratio: [ 

369 {"value": "dimensionless", "label": "-"}, 

370 {"value": "percent", "label": "%"}, 

371 {"value": "ppm", "label": "ppm"}, 

372 ], 

373 UnitOfMeasure.rpm: [ 

374 {"value": "Hz", "label": "Hz"}, 

375 {"value": "1/minute", "label": "rpm"}, 

376 ], 

377 UnitOfMeasure.thickness: [ 

378 {"value": "mm", "label": "mm"}, 

379 {"value": "m", "label": "m"}, 

380 {"value": "in", "label": "in"}, 

381 ], 

382 UnitOfMeasure.irradiance:[ 

383 {"value":"kW/m^2", "label":"kW/m^2"} 

384 ], 

385 UnitOfMeasure.valveCoefficient: [ 

386 {"value": "mol/s/(Pa^0.5)", "label": "mol/s/[Pa⁰⋅⁵]"}, 

387 ], 

388 UnitOfMeasure.electric:[ 

389 { "value": "kg*m^2*(s^-3)*(A^-1)", "label": "kV"}, 

390 {"value": "kg^-1 * m^-2 * s^3 * A^2", "label": "S"}, 

391 {"value": "1 * (C/s)", "label": "A"} 

392 ], 

393 UnitOfMeasure.battery_capacity:[ 

394 { "value": "kWh", "label": "kWh"}, 

395 {"value": "J", "label": "J"} 

396 ], 

397 UnitOfMeasure.solventPermeability: [ 

398 {"value": "m/(Pa*s)", "label": "m/(Pa·s)"}, 

399 {"value": "L/(m^2*h*bar)", "label": "LMH/bar"} 

400 ], 

401 UnitOfMeasure.currency: [ 

402 {"value": "dollar", "label": "$"}, 

403 {"value": "megadollar", "label": "M$"}, 

404 ], 

405 UnitOfMeasure.powerPrice: [ 

406 {"value": "dollar/GJ", "label": "$/GJ"}, 

407 {"value": "dollar/MJ", "label": "$/MJ"}, 

408 {"value": "dollar/kWh", "label": "$/kWh"}, 

409 {"value": "dollar/MWh", "label": "$/MWh"}, 

410 {"value": "dollar/GWh", "label": "$/GWh"}, 

411 ], 

412 UnitOfMeasure.costRate: [ 

413 {"value": "dollar/s", "label": "$/s"}, 

414 {"value": "dollar/h", "label": "$/h"}, 

415 {"value": "dollar/d", "label": "$/day"}, 

416 {"value": "dollar/year", "label": "$/year"}, 

417 {"value": "megadollar/year", "label": "M$/year"}, 

418 ], 

419}