valuesets 0.3.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of valuesets might be problematic. Click here for more details.

Files changed (248) hide show
  1. valuesets/__init__.py +7 -0
  2. valuesets/_version.py +8 -0
  3. valuesets/datamodel/valuesets.py +13796 -0
  4. valuesets/datamodel/valuesets_dataclass.py +24503 -0
  5. valuesets/datamodel/valuesets_pydantic.py +13796 -0
  6. valuesets/enums/__init__.py +590 -0
  7. valuesets/enums/academic/__init__.py +1 -0
  8. valuesets/enums/academic/research.py +559 -0
  9. valuesets/enums/analytical_chemistry/__init__.py +1 -0
  10. valuesets/enums/analytical_chemistry/mass_spectrometry.py +198 -0
  11. valuesets/enums/bio/__init__.py +1 -0
  12. valuesets/enums/bio/biological_colors.py +238 -0
  13. valuesets/enums/bio/cell_cycle.py +180 -0
  14. valuesets/enums/bio/currency_chemicals.py +52 -0
  15. valuesets/enums/bio/developmental_stages.py +103 -0
  16. valuesets/enums/bio/genome_features.py +182 -0
  17. valuesets/enums/bio/genomics.py +91 -0
  18. valuesets/enums/bio/go_aspect.py +32 -0
  19. valuesets/enums/bio/go_causality.py +58 -0
  20. valuesets/enums/bio/go_evidence.py +129 -0
  21. valuesets/enums/bio/human_developmental_stages.py +62 -0
  22. valuesets/enums/bio/insdc_geographic_locations.py +591 -0
  23. valuesets/enums/bio/insdc_missing_values.py +49 -0
  24. valuesets/enums/bio/lipid_categories.py +67 -0
  25. valuesets/enums/bio/mouse_developmental_stages.py +62 -0
  26. valuesets/enums/bio/plant_biology.py +86 -0
  27. valuesets/enums/bio/plant_developmental_stages.py +54 -0
  28. valuesets/enums/bio/plant_sex.py +81 -0
  29. valuesets/enums/bio/protein_evidence.py +61 -0
  30. valuesets/enums/bio/proteomics_standards.py +123 -0
  31. valuesets/enums/bio/psi_mi.py +306 -0
  32. valuesets/enums/bio/relationship_to_oxygen.py +37 -0
  33. valuesets/enums/bio/sequence_alphabets.py +449 -0
  34. valuesets/enums/bio/sequence_chemistry.py +357 -0
  35. valuesets/enums/bio/sequencing_platforms.py +302 -0
  36. valuesets/enums/bio/structural_biology.py +320 -0
  37. valuesets/enums/bio/taxonomy.py +238 -0
  38. valuesets/enums/bio/trophic_levels.py +85 -0
  39. valuesets/enums/bio/uniprot_species.py +344 -0
  40. valuesets/enums/bio/viral_genome_types.py +47 -0
  41. valuesets/enums/bioprocessing/__init__.py +1 -0
  42. valuesets/enums/bioprocessing/scale_up.py +249 -0
  43. valuesets/enums/business/__init__.py +1 -0
  44. valuesets/enums/business/human_resources.py +275 -0
  45. valuesets/enums/business/industry_classifications.py +181 -0
  46. valuesets/enums/business/management_operations.py +228 -0
  47. valuesets/enums/business/organizational_structures.py +236 -0
  48. valuesets/enums/business/quality_management.py +181 -0
  49. valuesets/enums/business/supply_chain.py +232 -0
  50. valuesets/enums/chemistry/__init__.py +1 -0
  51. valuesets/enums/chemistry/chemical_entities.py +315 -0
  52. valuesets/enums/chemistry/reaction_directionality.py +65 -0
  53. valuesets/enums/chemistry/reactions.py +256 -0
  54. valuesets/enums/clinical/__init__.py +1 -0
  55. valuesets/enums/clinical/nih_demographics.py +177 -0
  56. valuesets/enums/clinical/phenopackets.py +254 -0
  57. valuesets/enums/common_value_sets.py +8791 -0
  58. valuesets/enums/computing/__init__.py +1 -0
  59. valuesets/enums/computing/file_formats.py +294 -0
  60. valuesets/enums/computing/maturity_levels.py +196 -0
  61. valuesets/enums/computing/mime_types.py +227 -0
  62. valuesets/enums/confidence_levels.py +168 -0
  63. valuesets/enums/contributor.py +30 -0
  64. valuesets/enums/core.py +42 -0
  65. valuesets/enums/data/__init__.py +1 -0
  66. valuesets/enums/data/data_absent_reason.py +53 -0
  67. valuesets/enums/data_science/__init__.py +1 -0
  68. valuesets/enums/data_science/binary_classification.py +87 -0
  69. valuesets/enums/data_science/emotion_classification.py +66 -0
  70. valuesets/enums/data_science/priority_severity.py +73 -0
  71. valuesets/enums/data_science/quality_control.py +46 -0
  72. valuesets/enums/data_science/sentiment_analysis.py +50 -0
  73. valuesets/enums/data_science/text_classification.py +97 -0
  74. valuesets/enums/demographics.py +206 -0
  75. valuesets/enums/ecological_interactions.py +151 -0
  76. valuesets/enums/energy/__init__.py +1 -0
  77. valuesets/enums/energy/energy.py +343 -0
  78. valuesets/enums/energy/fossil_fuels.py +29 -0
  79. valuesets/enums/energy/nuclear/__init__.py +1 -0
  80. valuesets/enums/energy/nuclear/nuclear_facilities.py +195 -0
  81. valuesets/enums/energy/nuclear/nuclear_fuel_cycle.py +96 -0
  82. valuesets/enums/energy/nuclear/nuclear_fuels.py +175 -0
  83. valuesets/enums/energy/nuclear/nuclear_operations.py +191 -0
  84. valuesets/enums/energy/nuclear/nuclear_regulatory.py +188 -0
  85. valuesets/enums/energy/nuclear/nuclear_safety.py +164 -0
  86. valuesets/enums/energy/nuclear/nuclear_waste.py +158 -0
  87. valuesets/enums/energy/nuclear/reactor_types.py +163 -0
  88. valuesets/enums/environmental_health/__init__.py +1 -0
  89. valuesets/enums/environmental_health/exposures.py +265 -0
  90. valuesets/enums/geography/__init__.py +1 -0
  91. valuesets/enums/geography/geographic_codes.py +741 -0
  92. valuesets/enums/health/__init__.py +12 -0
  93. valuesets/enums/health/vaccination.py +98 -0
  94. valuesets/enums/health.py +36 -0
  95. valuesets/enums/health_base.py +36 -0
  96. valuesets/enums/healthcare.py +45 -0
  97. valuesets/enums/industry/__init__.py +1 -0
  98. valuesets/enums/industry/extractive_industry.py +94 -0
  99. valuesets/enums/industry/mining.py +388 -0
  100. valuesets/enums/industry/safety_colors.py +201 -0
  101. valuesets/enums/investigation.py +27 -0
  102. valuesets/enums/materials_science/__init__.py +1 -0
  103. valuesets/enums/materials_science/characterization_methods.py +112 -0
  104. valuesets/enums/materials_science/crystal_structures.py +76 -0
  105. valuesets/enums/materials_science/material_properties.py +119 -0
  106. valuesets/enums/materials_science/material_types.py +104 -0
  107. valuesets/enums/materials_science/pigments_dyes.py +198 -0
  108. valuesets/enums/materials_science/synthesis_methods.py +109 -0
  109. valuesets/enums/medical/__init__.py +1 -0
  110. valuesets/enums/medical/clinical.py +277 -0
  111. valuesets/enums/medical/neuroimaging.py +119 -0
  112. valuesets/enums/mining_processing.py +302 -0
  113. valuesets/enums/physics/__init__.py +1 -0
  114. valuesets/enums/physics/states_of_matter.py +46 -0
  115. valuesets/enums/social/__init__.py +1 -0
  116. valuesets/enums/social/person_status.py +29 -0
  117. valuesets/enums/spatial/__init__.py +1 -0
  118. valuesets/enums/spatial/spatial_qualifiers.py +246 -0
  119. valuesets/enums/statistics/__init__.py +5 -0
  120. valuesets/enums/statistics/prediction_outcomes.py +31 -0
  121. valuesets/enums/statistics.py +31 -0
  122. valuesets/enums/time/__init__.py +1 -0
  123. valuesets/enums/time/temporal.py +254 -0
  124. valuesets/enums/units/__init__.py +1 -0
  125. valuesets/enums/units/measurements.py +310 -0
  126. valuesets/enums/visual/__init__.py +1 -0
  127. valuesets/enums/visual/colors.py +376 -0
  128. valuesets/generators/__init__.py +19 -0
  129. valuesets/generators/auto_slot_injector.py +280 -0
  130. valuesets/generators/enhanced_pydantic_generator.py +100 -0
  131. valuesets/generators/enum_slot_generator.py +201 -0
  132. valuesets/generators/modular_rich_generator.py +353 -0
  133. valuesets/generators/prefix_standardizer.py +198 -0
  134. valuesets/generators/rich_enum.py +127 -0
  135. valuesets/generators/rich_pydantic_generator.py +310 -0
  136. valuesets/generators/smart_slot_syncer.py +428 -0
  137. valuesets/generators/sssom_generator.py +394 -0
  138. valuesets/merged/merged_hierarchy.yaml +21649 -0
  139. valuesets/schema/README.md +3 -0
  140. valuesets/schema/academic/research.yaml +911 -0
  141. valuesets/schema/analytical_chemistry/mass_spectrometry.yaml +206 -0
  142. valuesets/schema/bio/bio_entities.yaml +364 -0
  143. valuesets/schema/bio/biological_colors.yaml +434 -0
  144. valuesets/schema/bio/cell_cycle.yaml +309 -0
  145. valuesets/schema/bio/currency_chemicals.yaml +70 -0
  146. valuesets/schema/bio/developmental_stages.yaml +226 -0
  147. valuesets/schema/bio/genome_features.yaml +342 -0
  148. valuesets/schema/bio/genomics.yaml +101 -0
  149. valuesets/schema/bio/go_aspect.yaml +39 -0
  150. valuesets/schema/bio/go_causality.yaml +119 -0
  151. valuesets/schema/bio/go_evidence.yaml +215 -0
  152. valuesets/schema/bio/insdc_geographic_locations.yaml +911 -0
  153. valuesets/schema/bio/insdc_missing_values.yaml +85 -0
  154. valuesets/schema/bio/lipid_categories.yaml +72 -0
  155. valuesets/schema/bio/plant_biology.yaml +125 -0
  156. valuesets/schema/bio/plant_developmental_stages.yaml +77 -0
  157. valuesets/schema/bio/plant_sex.yaml +108 -0
  158. valuesets/schema/bio/protein_evidence.yaml +63 -0
  159. valuesets/schema/bio/proteomics_standards.yaml +116 -0
  160. valuesets/schema/bio/psi_mi.yaml +400 -0
  161. valuesets/schema/bio/relationship_to_oxygen.yaml +46 -0
  162. valuesets/schema/bio/sequence_alphabets.yaml +1168 -0
  163. valuesets/schema/bio/sequence_chemistry.yaml +477 -0
  164. valuesets/schema/bio/sequencing_platforms.yaml +515 -0
  165. valuesets/schema/bio/structural_biology.yaml +428 -0
  166. valuesets/schema/bio/taxonomy.yaml +453 -0
  167. valuesets/schema/bio/trophic_levels.yaml +118 -0
  168. valuesets/schema/bio/uniprot_species.yaml +1209 -0
  169. valuesets/schema/bio/viral_genome_types.yaml +99 -0
  170. valuesets/schema/bioprocessing/scale_up.yaml +458 -0
  171. valuesets/schema/business/human_resources.yaml +752 -0
  172. valuesets/schema/business/industry_classifications.yaml +448 -0
  173. valuesets/schema/business/management_operations.yaml +602 -0
  174. valuesets/schema/business/organizational_structures.yaml +645 -0
  175. valuesets/schema/business/quality_management.yaml +502 -0
  176. valuesets/schema/business/supply_chain.yaml +688 -0
  177. valuesets/schema/chemistry/chemical_entities.yaml +639 -0
  178. valuesets/schema/chemistry/reaction_directionality.yaml +60 -0
  179. valuesets/schema/chemistry/reactions.yaml +442 -0
  180. valuesets/schema/clinical/nih_demographics.yaml +285 -0
  181. valuesets/schema/clinical/phenopackets.yaml +429 -0
  182. valuesets/schema/computing/file_formats.yaml +631 -0
  183. valuesets/schema/computing/maturity_levels.yaml +229 -0
  184. valuesets/schema/computing/mime_types.yaml +266 -0
  185. valuesets/schema/confidence_levels.yaml +206 -0
  186. valuesets/schema/contributor.yaml +30 -0
  187. valuesets/schema/core.yaml +55 -0
  188. valuesets/schema/data/data_absent_reason.yaml +82 -0
  189. valuesets/schema/data_science/binary_classification.yaml +125 -0
  190. valuesets/schema/data_science/emotion_classification.yaml +109 -0
  191. valuesets/schema/data_science/priority_severity.yaml +122 -0
  192. valuesets/schema/data_science/quality_control.yaml +68 -0
  193. valuesets/schema/data_science/sentiment_analysis.yaml +81 -0
  194. valuesets/schema/data_science/text_classification.yaml +135 -0
  195. valuesets/schema/demographics.yaml +238 -0
  196. valuesets/schema/ecological_interactions.yaml +298 -0
  197. valuesets/schema/energy/energy.yaml +595 -0
  198. valuesets/schema/energy/fossil_fuels.yaml +28 -0
  199. valuesets/schema/energy/nuclear/nuclear_facilities.yaml +463 -0
  200. valuesets/schema/energy/nuclear/nuclear_fuel_cycle.yaml +82 -0
  201. valuesets/schema/energy/nuclear/nuclear_fuels.yaml +421 -0
  202. valuesets/schema/energy/nuclear/nuclear_operations.yaml +480 -0
  203. valuesets/schema/energy/nuclear/nuclear_regulatory.yaml +200 -0
  204. valuesets/schema/energy/nuclear/nuclear_safety.yaml +352 -0
  205. valuesets/schema/energy/nuclear/nuclear_waste.yaml +332 -0
  206. valuesets/schema/energy/nuclear/reactor_types.yaml +394 -0
  207. valuesets/schema/environmental_health/exposures.yaml +355 -0
  208. valuesets/schema/generated_slots.yaml +1828 -0
  209. valuesets/schema/geography/geographic_codes.yaml +1018 -0
  210. valuesets/schema/health/vaccination.yaml +102 -0
  211. valuesets/schema/health.yaml +38 -0
  212. valuesets/schema/healthcare.yaml +53 -0
  213. valuesets/schema/industry/extractive_industry.yaml +89 -0
  214. valuesets/schema/industry/mining.yaml +888 -0
  215. valuesets/schema/industry/safety_colors.yaml +375 -0
  216. valuesets/schema/investigation.yaml +64 -0
  217. valuesets/schema/materials_science/characterization_methods.yaml +193 -0
  218. valuesets/schema/materials_science/crystal_structures.yaml +138 -0
  219. valuesets/schema/materials_science/material_properties.yaml +135 -0
  220. valuesets/schema/materials_science/material_types.yaml +151 -0
  221. valuesets/schema/materials_science/pigments_dyes.yaml +465 -0
  222. valuesets/schema/materials_science/synthesis_methods.yaml +186 -0
  223. valuesets/schema/medical/clinical.yaml +610 -0
  224. valuesets/schema/medical/neuroimaging.yaml +325 -0
  225. valuesets/schema/mining_processing.yaml +295 -0
  226. valuesets/schema/physics/states_of_matter.yaml +46 -0
  227. valuesets/schema/slot_mixins.yaml +143 -0
  228. valuesets/schema/social/person_status.yaml +28 -0
  229. valuesets/schema/spatial/spatial_qualifiers.yaml +466 -0
  230. valuesets/schema/statistics/prediction_outcomes.yaml +26 -0
  231. valuesets/schema/statistics.yaml +34 -0
  232. valuesets/schema/time/temporal.yaml +435 -0
  233. valuesets/schema/types.yaml +15 -0
  234. valuesets/schema/units/measurements.yaml +675 -0
  235. valuesets/schema/valuesets.yaml +100 -0
  236. valuesets/schema/visual/colors.yaml +778 -0
  237. valuesets/utils/__init__.py +6 -0
  238. valuesets/utils/comparison.py +102 -0
  239. valuesets/utils/expand_dynamic_enums.py +414 -0
  240. valuesets/utils/mapping_utils.py +236 -0
  241. valuesets/validators/__init__.py +11 -0
  242. valuesets/validators/enum_evaluator.py +669 -0
  243. valuesets/validators/oak_config.yaml +70 -0
  244. valuesets/validators/validate_with_ols.py +241 -0
  245. valuesets-0.3.1.dist-info/METADATA +395 -0
  246. valuesets-0.3.1.dist-info/RECORD +248 -0
  247. valuesets-0.3.1.dist-info/WHEEL +4 -0
  248. valuesets-0.3.1.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,195 @@
1
+ """
2
+ Nuclear Facilities and Infrastructure Types
3
+
4
+ Classifications of nuclear facilities including power plants, research reactors, fuel cycle facilities, waste management facilities, and nuclear infrastructure. Based on IAEA classifications and nuclear industry standards.
5
+
6
+ Generated from: energy/nuclear/nuclear_facilities.yaml
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ from typing import Dict, Any, Optional
12
+ from valuesets.generators.rich_enum import RichEnum
13
+
14
+ class NuclearFacilityTypeEnum(RichEnum):
15
+ """
16
+ Types of nuclear facilities and infrastructure
17
+ """
18
+ # Enum members
19
+ COMMERCIAL_POWER_PLANT = "COMMERCIAL_POWER_PLANT"
20
+ RESEARCH_REACTOR = "RESEARCH_REACTOR"
21
+ TEST_REACTOR = "TEST_REACTOR"
22
+ PROTOTYPE_REACTOR = "PROTOTYPE_REACTOR"
23
+ NAVAL_REACTOR = "NAVAL_REACTOR"
24
+ SPACE_REACTOR = "SPACE_REACTOR"
25
+ PRODUCTION_REACTOR = "PRODUCTION_REACTOR"
26
+ URANIUM_MINE = "URANIUM_MINE"
27
+ URANIUM_MILL = "URANIUM_MILL"
28
+ CONVERSION_FACILITY = "CONVERSION_FACILITY"
29
+ ENRICHMENT_FACILITY = "ENRICHMENT_FACILITY"
30
+ FUEL_FABRICATION_FACILITY = "FUEL_FABRICATION_FACILITY"
31
+ REPROCESSING_FACILITY = "REPROCESSING_FACILITY"
32
+ INTERIM_STORAGE_FACILITY = "INTERIM_STORAGE_FACILITY"
33
+ GEOLOGICAL_REPOSITORY = "GEOLOGICAL_REPOSITORY"
34
+ DECOMMISSIONING_SITE = "DECOMMISSIONING_SITE"
35
+ NUCLEAR_LABORATORY = "NUCLEAR_LABORATORY"
36
+ RADIOISOTOPE_PRODUCTION_FACILITY = "RADIOISOTOPE_PRODUCTION_FACILITY"
37
+
38
+ # Set metadata after class creation
39
+ NuclearFacilityTypeEnum._metadata = {
40
+ "COMMERCIAL_POWER_PLANT": {'description': 'Large-scale commercial reactor for electricity generation', 'annotations': {'primary_purpose': 'electricity generation', 'power_output': 'typically 300-1600 MWe', 'operator_type': 'utility company', 'regulatory_oversight': 'extensive'}},
41
+ "RESEARCH_REACTOR": {'description': 'Reactor designed for research, training, and isotope production', 'annotations': {'primary_purpose': 'research, training, isotope production', 'power_output': 'typically <100 MWt', 'neutron_flux': 'optimized for research needs', 'fuel_type': 'various, often HEU or LEU'}},
42
+ "TEST_REACTOR": {'description': 'Reactor for testing materials and components', 'annotations': {'primary_purpose': 'materials and component testing', 'test_capabilities': 'irradiation testing', 'neutron_spectrum': 'variable for testing needs'}},
43
+ "PROTOTYPE_REACTOR": {'description': 'Reactor for demonstrating new technology', 'annotations': {'primary_purpose': 'technology demonstration', 'scale': 'smaller than commercial', 'innovation_focus': 'new reactor concepts'}},
44
+ "NAVAL_REACTOR": {'description': 'Reactor for ship or submarine propulsion', 'annotations': {'primary_purpose': 'vessel propulsion', 'compactness': 'highly compact design', 'fuel_enrichment': 'typically HEU', 'operation_mode': 'mobile platform'}},
45
+ "SPACE_REACTOR": {'description': 'Reactor designed for space applications', 'annotations': {'primary_purpose': 'space power or propulsion', 'mass_constraints': 'extremely lightweight', 'cooling': 'radiative cooling', 'power_output': 'typically <10 MWt'}},
46
+ "PRODUCTION_REACTOR": {'description': 'Reactor for producing nuclear materials', 'annotations': {'primary_purpose': 'isotope or material production', 'products': 'tritium, plutonium, medical isotopes', 'operation_mode': 'specialized for production'}},
47
+ "URANIUM_MINE": {'description': 'Facility for extracting uranium ore', 'annotations': {'extraction_method': 'underground or open pit', 'product': 'uranium ore', 'processing': 'may include milling'}},
48
+ "URANIUM_MILL": {'description': 'Facility for processing uranium ore into yellowcake', 'annotations': {'input_material': 'uranium ore', 'output_product': 'uranium concentrate (U3O8)', 'process': 'chemical extraction and purification'}},
49
+ "CONVERSION_FACILITY": {'description': 'Facility for converting yellowcake to UF6', 'annotations': {'input_material': 'uranium concentrate (U3O8)', 'output_product': 'uranium hexafluoride (UF6)', 'process': 'chemical conversion'}},
50
+ "ENRICHMENT_FACILITY": {'description': 'Facility for increasing U-235 concentration', 'annotations': {'input_material': 'natural UF6', 'output_product': 'enriched UF6', 'process': 'isotope separation (centrifuge, diffusion)', 'sensitive_technology': 'proliferation-sensitive'}},
51
+ "FUEL_FABRICATION_FACILITY": {'description': 'Facility for manufacturing nuclear fuel assemblies', 'annotations': {'input_material': 'enriched UF6', 'output_product': 'fuel assemblies', 'process': 'pellet and rod manufacturing'}},
52
+ "REPROCESSING_FACILITY": {'description': 'Facility for separating spent fuel components', 'annotations': {'input_material': 'spent nuclear fuel', 'output_products': 'uranium, plutonium, waste', 'process': 'chemical separation (PUREX, UREX+)', 'proliferation_sensitivity': 'high'}},
53
+ "INTERIM_STORAGE_FACILITY": {'description': 'Facility for temporary storage of nuclear materials', 'annotations': {'storage_duration': 'intermediate term (5-100 years)', 'storage_medium': 'pools, dry casks', 'typical_materials': 'spent fuel, waste'}},
54
+ "GEOLOGICAL_REPOSITORY": {'description': 'Deep underground facility for permanent waste disposal', 'annotations': {'storage_duration': 'permanent (thousands of years)', 'depth': 'typically >300 meters underground', 'waste_types': 'high-level waste, spent fuel'}},
55
+ "DECOMMISSIONING_SITE": {'description': 'Nuclear facility undergoing dismantlement', 'annotations': {'facility_status': 'being dismantled', 'activities': 'decontamination, demolition', 'duration': 'typically 10-50 years'}},
56
+ "NUCLEAR_LABORATORY": {'description': 'Laboratory facility handling radioactive materials', 'annotations': {'activities': 'research, analysis, small-scale production', 'materials': 'various radioactive substances', 'scale': 'laboratory scale'}},
57
+ "RADIOISOTOPE_PRODUCTION_FACILITY": {'description': 'Facility for producing medical and industrial isotopes', 'annotations': {'products': 'medical isotopes, industrial tracers', 'production_methods': 'reactor irradiation, accelerator', 'market': 'medical and industrial applications'}},
58
+ }
59
+
60
+ class PowerPlantStatusEnum(RichEnum):
61
+ """
62
+ Operational status of nuclear power plants
63
+ """
64
+ # Enum members
65
+ UNDER_CONSTRUCTION = "UNDER_CONSTRUCTION"
66
+ COMMISSIONING = "COMMISSIONING"
67
+ COMMERCIAL_OPERATION = "COMMERCIAL_OPERATION"
68
+ REFUELING_OUTAGE = "REFUELING_OUTAGE"
69
+ EXTENDED_OUTAGE = "EXTENDED_OUTAGE"
70
+ PERMANENTLY_SHUTDOWN = "PERMANENTLY_SHUTDOWN"
71
+ DECOMMISSIONING = "DECOMMISSIONING"
72
+ DECOMMISSIONED = "DECOMMISSIONED"
73
+
74
+ # Set metadata after class creation
75
+ PowerPlantStatusEnum._metadata = {
76
+ "UNDER_CONSTRUCTION": {'description': 'Plant currently being built', 'annotations': {'construction_phase': 'civil and mechanical work ongoing', 'licensing_status': 'construction permit issued', 'commercial_operation': 'not yet started'}},
77
+ "COMMISSIONING": {'description': 'Plant undergoing testing before commercial operation', 'annotations': {'testing_phase': 'systems testing and startup', 'fuel_loading': 'may have occurred', 'commercial_operation': 'not yet achieved'}},
78
+ "COMMERCIAL_OPERATION": {'description': 'Plant operating commercially for electricity generation', 'annotations': {'operational_status': 'fully operational', 'power_generation': 'commercial electricity production', 'licensing_status': 'operating license active'}},
79
+ "REFUELING_OUTAGE": {'description': 'Plant temporarily shut down for fuel replacement and maintenance', 'annotations': {'shutdown_reason': 'scheduled refueling', 'duration': 'typically 30-60 days', 'activities': 'fuel replacement, maintenance, inspection'}},
80
+ "EXTENDED_OUTAGE": {'description': 'Plant shut down for extended period for major work', 'annotations': {'shutdown_duration': 'months to years', 'work_scope': 'major modifications or repairs', 'return_to_service': 'planned'}},
81
+ "PERMANENTLY_SHUTDOWN": {'description': 'Plant permanently ceased operation', 'annotations': {'operational_status': 'permanently ceased', 'fuel_removal': 'may be ongoing or completed', 'decommissioning': 'may be planned or ongoing'}},
82
+ "DECOMMISSIONING": {'description': 'Plant undergoing dismantlement', 'annotations': {'decommissioning_phase': 'active dismantlement', 'radioactive_cleanup': 'ongoing', 'site_restoration': 'planned'}},
83
+ "DECOMMISSIONED": {'description': 'Plant completely dismantled and site restored', 'annotations': {'dismantlement_status': 'completed', 'site_condition': 'restored for unrestricted use', 'radioactive_materials': 'removed'}},
84
+ }
85
+
86
+ class ResearchReactorTypeEnum(RichEnum):
87
+ """
88
+ Types of research reactors
89
+ """
90
+ # Enum members
91
+ POOL_TYPE = "POOL_TYPE"
92
+ TANK_TYPE = "TANK_TYPE"
93
+ HOMOGENEOUS = "HOMOGENEOUS"
94
+ FAST_RESEARCH_REACTOR = "FAST_RESEARCH_REACTOR"
95
+ PULSED_REACTOR = "PULSED_REACTOR"
96
+ CRITICAL_ASSEMBLY = "CRITICAL_ASSEMBLY"
97
+ SUBCRITICAL_ASSEMBLY = "SUBCRITICAL_ASSEMBLY"
98
+
99
+ # Set metadata after class creation
100
+ ResearchReactorTypeEnum._metadata = {
101
+ "POOL_TYPE": {'description': 'Reactor with fuel in open pool of water', 'annotations': {'design': 'open pool with underwater fuel', 'power_level': 'typically 1-20 MW', 'applications': 'neutron beam experiments, training'}},
102
+ "TANK_TYPE": {'description': 'Reactor with fuel in enclosed tank', 'annotations': {'design': 'fuel in pressurized or unpressurized tank', 'power_level': 'variable', 'containment': 'more enclosed than pool type'}},
103
+ "HOMOGENEOUS": {'description': 'Reactor with fuel in liquid form', 'annotations': {'fuel_form': 'aqueous solution', 'design': 'fuel dissolved in moderator', 'power_level': 'typically low'}},
104
+ "FAST_RESEARCH_REACTOR": {'description': 'Research reactor using fast neutrons', 'annotations': {'neutron_spectrum': 'fast neutrons', 'moderator': 'none or minimal', 'applications': 'fast neutron research'}},
105
+ "PULSED_REACTOR": {'description': 'Reactor designed for pulsed operation', 'annotations': {'operation_mode': 'short intense pulses', 'power_level': 'very high peak power', 'applications': 'transient testing, physics research'}},
106
+ "CRITICAL_ASSEMBLY": {'description': 'Minimal reactor for criticality studies', 'annotations': {'power_level': 'essentially zero', 'purpose': 'criticality experiments, training', 'design': 'minimal critical configuration'}},
107
+ "SUBCRITICAL_ASSEMBLY": {'description': 'Neutron source-driven subcritical system', 'annotations': {'criticality': 'subcritical', 'neutron_source': 'external source required', 'applications': 'research, training, transmutation studies'}},
108
+ }
109
+
110
+ class FuelCycleFacilityTypeEnum(RichEnum):
111
+ """
112
+ Types of nuclear fuel cycle facilities
113
+ """
114
+ # Enum members
115
+ IN_SITU_LEACH_MINE = "IN_SITU_LEACH_MINE"
116
+ CONVENTIONAL_MINE = "CONVENTIONAL_MINE"
117
+ HEAP_LEACH_FACILITY = "HEAP_LEACH_FACILITY"
118
+ GASEOUS_DIFFUSION_PLANT = "GASEOUS_DIFFUSION_PLANT"
119
+ GAS_CENTRIFUGE_PLANT = "GAS_CENTRIFUGE_PLANT"
120
+ LASER_ENRICHMENT_FACILITY = "LASER_ENRICHMENT_FACILITY"
121
+ MOX_FUEL_FABRICATION = "MOX_FUEL_FABRICATION"
122
+ AQUEOUS_REPROCESSING = "AQUEOUS_REPROCESSING"
123
+ PYROPROCESSING_FACILITY = "PYROPROCESSING_FACILITY"
124
+
125
+ # Set metadata after class creation
126
+ FuelCycleFacilityTypeEnum._metadata = {
127
+ "IN_SITU_LEACH_MINE": {'description': 'Uranium extraction by solution mining', 'annotations': {'extraction_method': 'chemical leaching in ground', 'environmental_impact': 'lower surface disturbance', 'geology_requirement': 'permeable ore deposits'}},
128
+ "CONVENTIONAL_MINE": {'description': 'Traditional underground or open-pit uranium mining', 'annotations': {'extraction_method': 'physical excavation', 'mine_types': 'underground or open pit', 'ore_grade': 'variable'}},
129
+ "HEAP_LEACH_FACILITY": {'description': 'Uranium extraction from low-grade ores by heap leaching', 'annotations': {'ore_grade': 'low-grade ores', 'process': 'chemical leaching of ore piles', 'economics': 'cost-effective for low grades'}},
130
+ "GASEOUS_DIFFUSION_PLANT": {'description': 'Uranium enrichment using gaseous diffusion', 'annotations': {'enrichment_method': 'gaseous diffusion', 'energy_consumption': 'very high', 'status': 'mostly retired technology'}},
131
+ "GAS_CENTRIFUGE_PLANT": {'description': 'Uranium enrichment using centrifuge technology', 'annotations': {'enrichment_method': 'gas centrifuge', 'energy_consumption': 'lower than diffusion', 'technology_status': 'current standard technology'}},
132
+ "LASER_ENRICHMENT_FACILITY": {'description': 'Uranium enrichment using laser isotope separation', 'annotations': {'enrichment_method': 'laser isotope separation', 'technology_status': 'under development', 'energy_consumption': 'potentially lower'}},
133
+ "MOX_FUEL_FABRICATION": {'description': 'Facility for manufacturing mixed oxide fuel', 'annotations': {'fuel_type': 'mixed oxide (uranium and plutonium)', 'input_materials': 'plutonium dioxide, uranium dioxide', 'special_handling': 'plutonium handling required'}},
134
+ "AQUEOUS_REPROCESSING": {'description': 'Spent fuel reprocessing using aqueous methods', 'annotations': {'process_type': 'PUREX or similar aqueous process', 'separation_products': 'uranium, plutonium, waste', 'technology_maturity': 'commercially proven'}},
135
+ "PYROPROCESSING_FACILITY": {'description': 'Spent fuel reprocessing using electrochemical methods', 'annotations': {'process_type': 'electrochemical separation', 'temperature': 'high temperature operation', 'technology_status': 'under development'}},
136
+ }
137
+
138
+ class WasteFacilityTypeEnum(RichEnum):
139
+ """
140
+ Types of nuclear waste management facilities
141
+ """
142
+ # Enum members
143
+ SPENT_FUEL_POOL = "SPENT_FUEL_POOL"
144
+ DRY_CASK_STORAGE = "DRY_CASK_STORAGE"
145
+ CENTRALIZED_INTERIM_STORAGE = "CENTRALIZED_INTERIM_STORAGE"
146
+ LOW_LEVEL_WASTE_DISPOSAL = "LOW_LEVEL_WASTE_DISPOSAL"
147
+ GREATER_THAN_CLASS_C_STORAGE = "GREATER_THAN_CLASS_C_STORAGE"
148
+ TRANSURANIC_WASTE_REPOSITORY = "TRANSURANIC_WASTE_REPOSITORY"
149
+ HIGH_LEVEL_WASTE_REPOSITORY = "HIGH_LEVEL_WASTE_REPOSITORY"
150
+ WASTE_TREATMENT_FACILITY = "WASTE_TREATMENT_FACILITY"
151
+ DECONTAMINATION_FACILITY = "DECONTAMINATION_FACILITY"
152
+
153
+ # Set metadata after class creation
154
+ WasteFacilityTypeEnum._metadata = {
155
+ "SPENT_FUEL_POOL": {'description': 'Water-filled pool for cooling spent fuel', 'annotations': {'cooling_medium': 'water', 'location': 'typically at reactor site', 'storage_duration': '5-10 years typical'}},
156
+ "DRY_CASK_STORAGE": {'description': 'Air-cooled storage in sealed containers', 'annotations': {'cooling_medium': 'air circulation', 'storage_duration': '20-100 years', 'location': 'on-site or centralized'}},
157
+ "CENTRALIZED_INTERIM_STORAGE": {'description': 'Large-scale interim storage away from reactor sites', 'annotations': {'scale': "multiple reactor's worth of fuel", 'storage_duration': 'decades', 'transportation': 'rail or truck access required'}},
158
+ "LOW_LEVEL_WASTE_DISPOSAL": {'description': 'Near-surface disposal for low-level waste', 'annotations': {'waste_category': 'Class A, B, C low-level waste', 'disposal_depth': 'near-surface (<30 meters)', 'institutional_control': '100 years minimum'}},
159
+ "GREATER_THAN_CLASS_C_STORAGE": {'description': 'Storage for waste exceeding Class C limits', 'annotations': {'waste_category': 'greater than Class C waste', 'storage_type': 'interim storage pending disposal', 'disposal_requirements': 'deep disposal likely required'}},
160
+ "TRANSURANIC_WASTE_REPOSITORY": {'description': 'Deep geological repository for TRU waste', 'annotations': {'waste_category': 'transuranic waste', 'disposal_depth': 'deep underground', 'example': 'Waste Isolation Pilot Plant (WIPP)'}},
161
+ "HIGH_LEVEL_WASTE_REPOSITORY": {'description': 'Deep geological repository for high-level waste', 'annotations': {'waste_category': 'high-level waste, spent fuel', 'disposal_depth': 'typically >300 meters', 'containment_period': 'thousands of years'}},
162
+ "WASTE_TREATMENT_FACILITY": {'description': 'Facility for processing and conditioning waste', 'annotations': {'purpose': 'volume reduction, stabilization', 'processes': 'incineration, compaction, solidification', 'output': 'treated waste for disposal'}},
163
+ "DECONTAMINATION_FACILITY": {'description': 'Facility for cleaning contaminated materials', 'annotations': {'purpose': 'remove radioactive contamination', 'materials': 'equipment, clothing, tools', 'methods': 'chemical, physical decontamination'}},
164
+ }
165
+
166
+ class NuclearShipTypeEnum(RichEnum):
167
+ """
168
+ Types of nuclear-powered vessels
169
+ """
170
+ # Enum members
171
+ AIRCRAFT_CARRIER = "AIRCRAFT_CARRIER"
172
+ SUBMARINE = "SUBMARINE"
173
+ CRUISER = "CRUISER"
174
+ ICEBREAKER = "ICEBREAKER"
175
+ MERCHANT_SHIP = "MERCHANT_SHIP"
176
+ RESEARCH_VESSEL = "RESEARCH_VESSEL"
177
+
178
+ # Set metadata after class creation
179
+ NuclearShipTypeEnum._metadata = {
180
+ "AIRCRAFT_CARRIER": {'description': 'Large naval vessel with nuclear propulsion and aircraft operations', 'annotations': {'propulsion': 'nuclear steam turbine', 'size': 'very large (>80,000 tons)', 'mission': 'power projection, aircraft operations', 'reactor_count': 'typically 2'}},
181
+ "SUBMARINE": {'description': 'Underwater vessel with nuclear propulsion', 'annotations': {'propulsion': 'nuclear steam turbine', 'operational_environment': 'submerged', 'mission': 'various (attack, ballistic missile, cruise missile)', 'reactor_count': 'typically 1'}},
182
+ "CRUISER": {'description': 'Large surface combatant with nuclear propulsion', 'annotations': {'propulsion': 'nuclear steam turbine', 'mission': 'escort, surface warfare', 'size': 'large surface vessel', 'status': 'mostly retired'}},
183
+ "ICEBREAKER": {'description': 'Vessel designed to break ice using nuclear power', 'annotations': {'propulsion': 'nuclear steam turbine or electric', 'mission': 'ice breaking, Arctic operations', 'operational_environment': 'polar regions', 'reactor_count': '1-3'}},
184
+ "MERCHANT_SHIP": {'description': 'Commercial cargo vessel with nuclear propulsion', 'annotations': {'propulsion': 'nuclear steam turbine', 'mission': 'cargo transport', 'commercial_viability': 'limited due to costs', 'examples': 'NS Savannah, few others'}},
185
+ "RESEARCH_VESSEL": {'description': 'Ship designed for oceanographic research with nuclear power', 'annotations': {'propulsion': 'nuclear', 'mission': 'scientific research', 'duration': 'extended operations without refueling', 'examples': 'limited number built'}},
186
+ }
187
+
188
+ __all__ = [
189
+ "NuclearFacilityTypeEnum",
190
+ "PowerPlantStatusEnum",
191
+ "ResearchReactorTypeEnum",
192
+ "FuelCycleFacilityTypeEnum",
193
+ "WasteFacilityTypeEnum",
194
+ "NuclearShipTypeEnum",
195
+ ]
@@ -0,0 +1,96 @@
1
+ """
2
+ Nuclear Fuel Cycle Value Sets
3
+
4
+ Value sets for nuclear fuel cycle processes and stages
5
+
6
+ Generated from: energy/nuclear/nuclear_fuel_cycle.yaml
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ from typing import Dict, Any, Optional
12
+ from valuesets.generators.rich_enum import RichEnum
13
+
14
+ class NuclearFuelCycleStageEnum(RichEnum):
15
+ """
16
+ Stages in the nuclear fuel cycle from mining to disposal
17
+ """
18
+ # Enum members
19
+ MINING = "MINING"
20
+ MILLING = "MILLING"
21
+ CONVERSION = "CONVERSION"
22
+ ENRICHMENT = "ENRICHMENT"
23
+ FUEL_FABRICATION = "FUEL_FABRICATION"
24
+ REACTOR_OPERATION = "REACTOR_OPERATION"
25
+ INTERIM_STORAGE = "INTERIM_STORAGE"
26
+ REPROCESSING = "REPROCESSING"
27
+ FINAL_DISPOSAL = "FINAL_DISPOSAL"
28
+
29
+ # Set metadata after class creation
30
+ NuclearFuelCycleStageEnum._metadata = {
31
+ "MINING": {'description': 'Uranium ore mining and extraction'},
32
+ "MILLING": {'description': 'Processing uranium ore into yellowcake (U3O8)'},
33
+ "CONVERSION": {'description': 'Converting yellowcake to uranium hexafluoride (UF6)'},
34
+ "ENRICHMENT": {'description': 'Increasing U-235 concentration in uranium'},
35
+ "FUEL_FABRICATION": {'description': 'Manufacturing nuclear fuel assemblies'},
36
+ "REACTOR_OPERATION": {'description': 'Nuclear fission in reactor core'},
37
+ "INTERIM_STORAGE": {'description': 'Temporary storage of spent nuclear fuel'},
38
+ "REPROCESSING": {'description': 'Chemical separation of useful materials from spent fuel'},
39
+ "FINAL_DISPOSAL": {'description': 'Permanent disposal of nuclear waste'},
40
+ }
41
+
42
+ class NuclearFuelFormEnum(RichEnum):
43
+ """
44
+ Different forms of nuclear fuel throughout the cycle
45
+ """
46
+ # Enum members
47
+ URANIUM_ORE = "URANIUM_ORE"
48
+ YELLOWCAKE = "YELLOWCAKE"
49
+ URANIUM_HEXAFLUORIDE = "URANIUM_HEXAFLUORIDE"
50
+ ENRICHED_URANIUM = "ENRICHED_URANIUM"
51
+ URANIUM_DIOXIDE = "URANIUM_DIOXIDE"
52
+ FUEL_PELLETS = "FUEL_PELLETS"
53
+ FUEL_RODS = "FUEL_RODS"
54
+ FUEL_ASSEMBLIES = "FUEL_ASSEMBLIES"
55
+ SPENT_FUEL = "SPENT_FUEL"
56
+ MIXED_OXIDE_FUEL = "MIXED_OXIDE_FUEL"
57
+
58
+ # Set metadata after class creation
59
+ NuclearFuelFormEnum._metadata = {
60
+ "URANIUM_ORE": {'description': 'Natural uranium ore containing uranium minerals'},
61
+ "YELLOWCAKE": {'description': 'Uranium oxide concentrate (U3O8)'},
62
+ "URANIUM_HEXAFLUORIDE": {'description': 'Gaseous uranium compound (UF6) used for enrichment'},
63
+ "ENRICHED_URANIUM": {'description': 'Uranium with increased U-235 concentration'},
64
+ "URANIUM_DIOXIDE": {'description': 'Ceramic uranium fuel pellets (UO2)'},
65
+ "FUEL_PELLETS": {'description': 'Sintered uranium dioxide pellets'},
66
+ "FUEL_RODS": {'description': 'Zircaloy tubes containing fuel pellets'},
67
+ "FUEL_ASSEMBLIES": {'description': 'Bundled fuel rods ready for reactor loading'},
68
+ "SPENT_FUEL": {'description': 'Used nuclear fuel removed from reactor'},
69
+ "MIXED_OXIDE_FUEL": {'description': 'MOX fuel containing plutonium and uranium oxides'},
70
+ }
71
+
72
+ class EnrichmentProcessEnum(RichEnum):
73
+ """
74
+ Methods for enriching uranium to increase U-235 concentration
75
+ """
76
+ # Enum members
77
+ GAS_DIFFUSION = "GAS_DIFFUSION"
78
+ GAS_CENTRIFUGE = "GAS_CENTRIFUGE"
79
+ LASER_ISOTOPE_SEPARATION = "LASER_ISOTOPE_SEPARATION"
80
+ ELECTROMAGNETIC_SEPARATION = "ELECTROMAGNETIC_SEPARATION"
81
+ AERODYNAMIC_SEPARATION = "AERODYNAMIC_SEPARATION"
82
+
83
+ # Set metadata after class creation
84
+ EnrichmentProcessEnum._metadata = {
85
+ "GAS_DIFFUSION": {'description': 'Gaseous diffusion enrichment process'},
86
+ "GAS_CENTRIFUGE": {'description': 'Gas centrifuge enrichment process'},
87
+ "LASER_ISOTOPE_SEPARATION": {'description': 'Laser-based uranium isotope separation'},
88
+ "ELECTROMAGNETIC_SEPARATION": {'description': 'Electromagnetic isotope separation (EMIS)'},
89
+ "AERODYNAMIC_SEPARATION": {'description': 'Aerodynamic enrichment processes'},
90
+ }
91
+
92
+ __all__ = [
93
+ "NuclearFuelCycleStageEnum",
94
+ "NuclearFuelFormEnum",
95
+ "EnrichmentProcessEnum",
96
+ ]
@@ -0,0 +1,175 @@
1
+ """
2
+ Nuclear Fuel Types and Classifications
3
+
4
+ Classifications of nuclear fuel types including uranium enrichment levels, fuel forms, and alternative fuel cycles. Based on IAEA classifications, nuclear fuel cycle standards, and industry specifications.
5
+
6
+ Generated from: energy/nuclear/nuclear_fuels.yaml
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ from typing import Dict, Any, Optional
12
+ from valuesets.generators.rich_enum import RichEnum
13
+
14
+ class NuclearFuelTypeEnum(RichEnum):
15
+ """
16
+ Types of nuclear fuel materials and compositions
17
+ """
18
+ # Enum members
19
+ NATURAL_URANIUM = "NATURAL_URANIUM"
20
+ LOW_ENRICHED_URANIUM = "LOW_ENRICHED_URANIUM"
21
+ HIGH_ASSAY_LEU = "HIGH_ASSAY_LEU"
22
+ HIGHLY_ENRICHED_URANIUM = "HIGHLY_ENRICHED_URANIUM"
23
+ WEAPONS_GRADE_URANIUM = "WEAPONS_GRADE_URANIUM"
24
+ REACTOR_GRADE_PLUTONIUM = "REACTOR_GRADE_PLUTONIUM"
25
+ WEAPONS_GRADE_PLUTONIUM = "WEAPONS_GRADE_PLUTONIUM"
26
+ MOX_FUEL = "MOX_FUEL"
27
+ THORIUM_FUEL = "THORIUM_FUEL"
28
+ TRISO_FUEL = "TRISO_FUEL"
29
+ LIQUID_FUEL = "LIQUID_FUEL"
30
+ METALLIC_FUEL = "METALLIC_FUEL"
31
+ CARBIDE_FUEL = "CARBIDE_FUEL"
32
+ NITRIDE_FUEL = "NITRIDE_FUEL"
33
+
34
+ # Set metadata after class creation
35
+ NuclearFuelTypeEnum._metadata = {
36
+ "NATURAL_URANIUM": {'description': 'Uranium as found in nature (0.711% U-235)', 'meaning': 'CHEBI:27214', 'annotations': {'u235_content': '0.711%', 'u238_content': '99.289%', 'enrichment_required': False, 'typical_use': 'PHWR, some research reactors'}, 'aliases': ['Natural U', 'Unat', 'uranium atom']},
37
+ "LOW_ENRICHED_URANIUM": {'description': 'Uranium enriched to 0.7%-20% U-235', 'annotations': {'u235_content': '0.7-20%', 'proliferation_risk': 'low', 'typical_use': 'commercial power reactors', 'iaea_category': 'indirect use material'}, 'aliases': ['LEU']},
38
+ "HIGH_ASSAY_LEU": {'description': 'Uranium enriched to 5%-20% U-235', 'annotations': {'u235_content': '5-20%', 'typical_use': 'advanced reactors, SMRs', 'proliferation_risk': 'moderate'}, 'aliases': ['HALEU', 'LEU+']},
39
+ "HIGHLY_ENRICHED_URANIUM": {'description': 'Uranium enriched to 20% or more U-235', 'annotations': {'u235_content': '≥20%', 'proliferation_risk': 'high', 'typical_use': 'research reactors, naval propulsion', 'iaea_category': 'direct use material'}, 'aliases': ['HEU']},
40
+ "WEAPONS_GRADE_URANIUM": {'description': 'Uranium enriched to 90% or more U-235', 'annotations': {'u235_content': '≥90%', 'proliferation_risk': 'very high', 'typical_use': 'nuclear weapons, some naval reactors'}, 'aliases': ['WGU']},
41
+ "REACTOR_GRADE_PLUTONIUM": {'description': 'Plutonium with high Pu-240 content from spent fuel', 'annotations': {'pu239_content': '<93%', 'pu240_content': '>7%', 'source': 'spent nuclear fuel', 'typical_use': 'MOX fuel'}, 'aliases': ['RGPu']},
42
+ "WEAPONS_GRADE_PLUTONIUM": {'description': 'Plutonium with low Pu-240 content', 'annotations': {'pu239_content': '≥93%', 'pu240_content': '<7%', 'proliferation_risk': 'very high'}, 'aliases': ['WGPu']},
43
+ "MOX_FUEL": {'description': 'Mixture of plutonium and uranium oxides', 'annotations': {'composition': 'UO2 + PuO2', 'plutonium_content': '3-10%', 'typical_use': 'thermal reactors', 'recycling': 'enables plutonium recycling'}, 'aliases': ['MOX', 'Mixed Oxide']},
44
+ "THORIUM_FUEL": {'description': 'Fuel containing thorium-232 as fertile material', 'meaning': 'CHEBI:33385', 'annotations': {'fertile_isotope': 'Th-232', 'fissile_product': 'U-233', 'abundance': 'more abundant than uranium', 'proliferation_resistance': 'high'}, 'aliases': ['Thorium fuel', 'thorium']},
45
+ "TRISO_FUEL": {'description': 'Coated particle fuel with multiple containment layers', 'annotations': {'form': 'coated particles', 'containment_layers': 4, 'meltdown_resistance': 'very high', 'typical_use': 'HTGR, some SMRs'}, 'aliases': ['TRISO']},
46
+ "LIQUID_FUEL": {'description': 'Fuel dissolved in liquid medium', 'annotations': {'phase': 'liquid', 'typical_use': 'molten salt reactors', 'reprocessing': 'online'}},
47
+ "METALLIC_FUEL": {'description': 'Fuel in metallic form', 'annotations': {'form': 'metal alloy', 'typical_use': 'fast reactors', 'thermal_conductivity': 'high'}},
48
+ "CARBIDE_FUEL": {'description': 'Uranium or plutonium carbide fuel', 'annotations': {'chemical_form': 'carbide', 'melting_point': 'very high', 'typical_use': 'advanced reactors'}},
49
+ "NITRIDE_FUEL": {'description': 'Uranium or plutonium nitride fuel', 'annotations': {'chemical_form': 'nitride', 'density': 'high', 'typical_use': 'fast reactors'}},
50
+ }
51
+
52
+ class UraniumEnrichmentLevelEnum(RichEnum):
53
+ """
54
+ Standard uranium-235 enrichment level classifications
55
+ """
56
+ # Enum members
57
+ NATURAL = "NATURAL"
58
+ SLIGHTLY_ENRICHED = "SLIGHTLY_ENRICHED"
59
+ LOW_ENRICHED = "LOW_ENRICHED"
60
+ HIGH_ASSAY_LOW_ENRICHED = "HIGH_ASSAY_LOW_ENRICHED"
61
+ HIGHLY_ENRICHED = "HIGHLY_ENRICHED"
62
+ WEAPONS_GRADE = "WEAPONS_GRADE"
63
+
64
+ # Set metadata after class creation
65
+ UraniumEnrichmentLevelEnum._metadata = {
66
+ "NATURAL": {'description': 'Natural uranium enrichment (0.711% U-235)', 'annotations': {'u235_percentage': 0.711, 'category': 'natural', 'separative_work': 0}},
67
+ "SLIGHTLY_ENRICHED": {'description': 'Minimal enrichment above natural levels', 'annotations': {'u235_percentage': '0.8-2.0', 'category': 'SEU', 'typical_use': 'some heavy water reactors'}},
68
+ "LOW_ENRICHED": {'description': 'Standard commercial reactor enrichment', 'annotations': {'u235_percentage': '2.0-5.0', 'category': 'LEU', 'typical_use': 'PWR, BWR commercial reactors'}},
69
+ "HIGH_ASSAY_LOW_ENRICHED": {'description': 'Higher enrichment for advanced reactors', 'annotations': {'u235_percentage': '5.0-20.0', 'category': 'HALEU', 'typical_use': 'advanced reactors, SMRs'}},
70
+ "HIGHLY_ENRICHED": {'description': 'High enrichment for research and naval reactors', 'annotations': {'u235_percentage': '20.0-90.0', 'category': 'HEU', 'typical_use': 'research reactors, naval propulsion'}},
71
+ "WEAPONS_GRADE": {'description': 'Very high enrichment for weapons', 'annotations': {'u235_percentage': '90.0+', 'category': 'WGU', 'proliferation_concern': 'extreme'}},
72
+ }
73
+
74
+ class FuelFormEnum(RichEnum):
75
+ """
76
+ Physical forms of nuclear fuel
77
+ """
78
+ # Enum members
79
+ OXIDE_PELLETS = "OXIDE_PELLETS"
80
+ METAL_SLUGS = "METAL_SLUGS"
81
+ COATED_PARTICLES = "COATED_PARTICLES"
82
+ LIQUID_SOLUTION = "LIQUID_SOLUTION"
83
+ DISPERSION_FUEL = "DISPERSION_FUEL"
84
+ CERMET_FUEL = "CERMET_FUEL"
85
+ PLATE_FUEL = "PLATE_FUEL"
86
+ ROD_FUEL = "ROD_FUEL"
87
+
88
+ # Set metadata after class creation
89
+ FuelFormEnum._metadata = {
90
+ "OXIDE_PELLETS": {'description': 'Ceramic uranium dioxide pellets', 'annotations': {'chemical_form': 'UO2', 'shape': 'cylindrical pellets', 'typical_use': 'PWR, BWR fuel rods'}},
91
+ "METAL_SLUGS": {'description': 'Metallic uranium fuel elements', 'annotations': {'chemical_form': 'metallic uranium', 'shape': 'cylindrical slugs', 'typical_use': 'production reactors'}},
92
+ "COATED_PARTICLES": {'description': 'Microspheres with protective coatings', 'annotations': {'structure': 'TRISO or BISO coated', 'size': 'microscopic spheres', 'typical_use': 'HTGR'}},
93
+ "LIQUID_SOLUTION": {'description': 'Fuel dissolved in liquid carrier', 'annotations': {'phase': 'liquid', 'typical_use': 'molten salt reactors'}},
94
+ "DISPERSION_FUEL": {'description': 'Fuel particles dispersed in matrix', 'annotations': {'structure': 'particles in matrix', 'typical_use': 'research reactors'}},
95
+ "CERMET_FUEL": {'description': 'Ceramic-metal composite fuel', 'annotations': {'structure': 'ceramic in metal matrix', 'typical_use': 'advanced reactors'}},
96
+ "PLATE_FUEL": {'description': 'Flat plate fuel elements', 'annotations': {'geometry': 'flat plates', 'typical_use': 'research reactors'}},
97
+ "ROD_FUEL": {'description': 'Cylindrical fuel rods', 'annotations': {'geometry': 'long cylinders', 'typical_use': 'commercial power reactors'}},
98
+ }
99
+
100
+ class FuelAssemblyTypeEnum(RichEnum):
101
+ """
102
+ Types of fuel assembly configurations
103
+ """
104
+ # Enum members
105
+ PWR_ASSEMBLY = "PWR_ASSEMBLY"
106
+ BWR_ASSEMBLY = "BWR_ASSEMBLY"
107
+ CANDU_BUNDLE = "CANDU_BUNDLE"
108
+ RBMK_ASSEMBLY = "RBMK_ASSEMBLY"
109
+ AGR_ASSEMBLY = "AGR_ASSEMBLY"
110
+ HTGR_BLOCK = "HTGR_BLOCK"
111
+ FAST_REACTOR_ASSEMBLY = "FAST_REACTOR_ASSEMBLY"
112
+
113
+ # Set metadata after class creation
114
+ FuelAssemblyTypeEnum._metadata = {
115
+ "PWR_ASSEMBLY": {'description': 'Square array fuel assembly for PWR', 'annotations': {'geometry': 'square array', 'rod_count': '264-289 typical', 'control_method': 'control rod clusters'}},
116
+ "BWR_ASSEMBLY": {'description': 'Square array fuel assembly for BWR', 'annotations': {'geometry': 'square array with channel', 'rod_count': '49-100 typical', 'control_method': 'control blades'}},
117
+ "CANDU_BUNDLE": {'description': 'Cylindrical fuel bundle for PHWR', 'annotations': {'geometry': 'cylindrical bundle', 'rod_count': '28-43 typical', 'length': '~50 cm'}},
118
+ "RBMK_ASSEMBLY": {'description': 'Fuel assembly for RBMK reactors', 'annotations': {'geometry': '18-rod bundle', 'length': '~3.5 m', 'control_method': 'control rods'}},
119
+ "AGR_ASSEMBLY": {'description': 'Fuel stringer for AGR', 'annotations': {'geometry': 'stacked pins', 'cladding': 'stainless steel'}},
120
+ "HTGR_BLOCK": {'description': 'Graphite block with TRISO fuel', 'annotations': {'geometry': 'hexagonal or cylindrical blocks', 'fuel_form': 'TRISO particles'}},
121
+ "FAST_REACTOR_ASSEMBLY": {'description': 'Fuel assembly for fast reactors', 'annotations': {'geometry': 'hexagonal wrapper', 'coolant_flow': 'axial'}},
122
+ }
123
+
124
+ class FuelCycleStageEnum(RichEnum):
125
+ """
126
+ Stages in the nuclear fuel cycle
127
+ """
128
+ # Enum members
129
+ MINING = "MINING"
130
+ CONVERSION = "CONVERSION"
131
+ ENRICHMENT = "ENRICHMENT"
132
+ FUEL_FABRICATION = "FUEL_FABRICATION"
133
+ REACTOR_OPERATION = "REACTOR_OPERATION"
134
+ INTERIM_STORAGE = "INTERIM_STORAGE"
135
+ REPROCESSING = "REPROCESSING"
136
+ DISPOSAL = "DISPOSAL"
137
+
138
+ # Set metadata after class creation
139
+ FuelCycleStageEnum._metadata = {
140
+ "MINING": {'description': 'Extraction of uranium ore from deposits', 'annotations': {'process': 'mining and milling', 'product': 'uranium ore concentrate (yellowcake)'}},
141
+ "CONVERSION": {'description': 'Conversion of uranium concentrate to UF6', 'annotations': {'input': 'U3O8 yellowcake', 'output': 'uranium hexafluoride (UF6)'}},
142
+ "ENRICHMENT": {'description': 'Increase of U-235 concentration', 'annotations': {'input': 'natural UF6', 'output': 'enriched UF6', 'waste': 'depleted uranium tails'}},
143
+ "FUEL_FABRICATION": {'description': 'Manufacturing of fuel assemblies', 'annotations': {'input': 'enriched UF6', 'output': 'fuel assemblies', 'process': 'pellet and rod manufacturing'}},
144
+ "REACTOR_OPERATION": {'description': 'Power generation in nuclear reactor', 'annotations': {'input': 'fresh fuel assemblies', 'output': 'electricity and spent fuel', 'duration': '12-24 months per cycle'}},
145
+ "INTERIM_STORAGE": {'description': 'Temporary storage of spent fuel', 'annotations': {'purpose': 'cooling and decay', 'duration': '5-40+ years', 'location': 'reactor pools or dry casks'}},
146
+ "REPROCESSING": {'description': 'Chemical separation of spent fuel components', 'annotations': {'input': 'spent nuclear fuel', 'output': 'uranium, plutonium, waste', 'status': 'practiced in some countries'}},
147
+ "DISPOSAL": {'description': 'Permanent disposal of nuclear waste', 'annotations': {'method': 'geological repository', 'duration': 'permanent', 'status': 'under development globally'}},
148
+ }
149
+
150
+ class FissileIsotopeEnum(RichEnum):
151
+ """
152
+ Fissile isotopes used in nuclear fuel
153
+ """
154
+ # Enum members
155
+ URANIUM_233 = "URANIUM_233"
156
+ URANIUM_235 = "URANIUM_235"
157
+ PLUTONIUM_239 = "PLUTONIUM_239"
158
+ PLUTONIUM_241 = "PLUTONIUM_241"
159
+
160
+ # Set metadata after class creation
161
+ FissileIsotopeEnum._metadata = {
162
+ "URANIUM_233": {'description': 'Fissile isotope produced from thorium', 'annotations': {'mass_number': 233, 'half_life': '159,200 years', 'thermal_fission': True, 'breeding_from': 'Th-232'}, 'aliases': ['U-233']},
163
+ "URANIUM_235": {'description': 'Naturally occurring fissile uranium isotope', 'annotations': {'mass_number': 235, 'half_life': '703,800,000 years', 'natural_abundance': '0.711%', 'thermal_fission': True}, 'aliases': ['U-235']},
164
+ "PLUTONIUM_239": {'description': 'Fissile plutonium isotope from U-238 breeding', 'annotations': {'mass_number': 239, 'half_life': '24,110 years', 'thermal_fission': True, 'breeding_from': 'U-238'}, 'aliases': ['Pu-239']},
165
+ "PLUTONIUM_241": {'description': 'Fissile plutonium isotope with short half-life', 'annotations': {'mass_number': 241, 'half_life': '14.3 years', 'thermal_fission': True, 'decay_product': 'Am-241'}, 'aliases': ['Pu-241']},
166
+ }
167
+
168
+ __all__ = [
169
+ "NuclearFuelTypeEnum",
170
+ "UraniumEnrichmentLevelEnum",
171
+ "FuelFormEnum",
172
+ "FuelAssemblyTypeEnum",
173
+ "FuelCycleStageEnum",
174
+ "FissileIsotopeEnum",
175
+ ]