chemicalml 0.1.0 → 0.2.0

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.
Files changed (568) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docs.yml +63 -0
  3. data/.github/workflows/links.yml +99 -0
  4. data/.github/workflows/opal.yml +34 -0
  5. data/.github/workflows/performance.yml +25 -0
  6. data/.github/workflows/rake.yml +19 -0
  7. data/.github/workflows/release.yml +28 -0
  8. data/CHANGELOG.md +52 -12
  9. data/Gemfile +2 -1
  10. data/Rakefile +9 -4
  11. data/TODO.align/18-wire-class-registry.md +46 -0
  12. data/TODO.align/19-schema-aware-translator.md +33 -0
  13. data/TODO.align/20-missing-translator-rules.md +44 -0
  14. data/TODO.align/21-encapsulate-translator.md +33 -0
  15. data/TODO.align/22-dry-role-modules.md +32 -0
  16. data/TODO.align/23-final-spec-lint.md +25 -0
  17. data/TODO.align/24-autoload-wire-classes.md +84 -0
  18. data/TODO.align/25-value-container-schema-awareness.md +44 -0
  19. data/TODO.align/26-remove-dead-code.md +16 -0
  20. data/TODO.align/27-final-spec-lint.md +26 -0
  21. data/TODO.align/28-stereo-model.md +40 -0
  22. data/TODO.align/29-stereo-wire-children.md +30 -0
  23. data/TODO.align/30-stereo-translator.md +32 -0
  24. data/TODO.align/31-final-spec-lint.md +20 -0
  25. data/TODO.align/32-polymorphic-translator.md +43 -0
  26. data/TODO.align/33-polymorphic-parse.md +43 -0
  27. data/TODO.align/34-polymorphic-specs.md +16 -0
  28. data/TODO.align/35-final-spec-lint.md +10 -0
  29. data/TODO.align/README.round10.md +30 -0
  30. data/TODO.align/README.round11.md +50 -0
  31. data/TODO.align/README.round12.md +73 -0
  32. data/TODO.align/README.round13.md +59 -0
  33. data/TODO.align/README.round14.md +48 -0
  34. data/TODO.align/README.round15.md +86 -0
  35. data/TODO.align/README.round16.md +46 -0
  36. data/TODO.align/README.round3.md +27 -0
  37. data/TODO.align/README.round4.md +18 -0
  38. data/TODO.align/README.round5.md +20 -0
  39. data/TODO.align/README.round6.md +27 -0
  40. data/TODO.align/README.round7.md +43 -0
  41. data/TODO.align/README.round8.md +24 -0
  42. data/TODO.align/README.round9.md +50 -0
  43. data/data/dictionaries/_index.yaml +9 -1
  44. data/data/dictionaries/cif.yaml +155 -0
  45. data/data/dictionaries/cml.yaml +172 -0
  46. data/data/dictionaries/cml_formula.yaml +63 -0
  47. data/data/dictionaries/cml_name.yaml +84 -0
  48. data/data/dictionaries/unit_non_si.yaml +30 -0
  49. data/data/dictionaries/unit_type.yaml +12 -0
  50. data/lib/chemicalml/cml/aliases.rb +20 -0
  51. data/lib/chemicalml/cml/base/abundance.rb +28 -0
  52. data/lib/chemicalml/cml/base/action.rb +30 -0
  53. data/lib/chemicalml/cml/base/action_list.rb +33 -0
  54. data/lib/chemicalml/cml/base/amount.rb +28 -0
  55. data/lib/chemicalml/cml/base/angle.rb +32 -0
  56. data/lib/chemicalml/cml/base/any_cml.rb +28 -0
  57. data/lib/chemicalml/cml/base/array.rb +1 -1
  58. data/lib/chemicalml/cml/base/array_list.rb +28 -0
  59. data/lib/chemicalml/cml/base/atom.rb +19 -1
  60. data/lib/chemicalml/cml/base/atom_array.rb +1 -1
  61. data/lib/chemicalml/cml/base/atom_parity.rb +1 -1
  62. data/lib/chemicalml/cml/base/atom_set.rb +28 -0
  63. data/lib/chemicalml/cml/base/atom_type.rb +32 -0
  64. data/lib/chemicalml/cml/base/atom_type_list.rb +31 -0
  65. data/lib/chemicalml/cml/base/atomic_basis_function.rb +40 -0
  66. data/lib/chemicalml/cml/base/band.rb +32 -0
  67. data/lib/chemicalml/cml/base/band_list.rb +31 -0
  68. data/lib/chemicalml/cml/base/basis_set.rb +31 -0
  69. data/lib/chemicalml/cml/base/bond.rb +5 -1
  70. data/lib/chemicalml/cml/base/bond_array.rb +1 -1
  71. data/lib/chemicalml/cml/base/bond_set.rb +28 -0
  72. data/lib/chemicalml/cml/base/bond_stereo.rb +1 -1
  73. data/lib/chemicalml/cml/base/bond_type.rb +32 -0
  74. data/lib/chemicalml/cml/base/bond_type_list.rb +31 -0
  75. data/lib/chemicalml/cml/base/cell_parameter.rb +34 -0
  76. data/lib/chemicalml/cml/base/cml_module.rb +1 -1
  77. data/lib/chemicalml/cml/base/condition_list.rb +33 -0
  78. data/lib/chemicalml/cml/base/crystal.rb +35 -0
  79. data/lib/chemicalml/cml/base/definition.rb +30 -0
  80. data/lib/chemicalml/cml/base/description.rb +30 -0
  81. data/lib/chemicalml/cml/base/dictionary.rb +1 -1
  82. data/lib/chemicalml/cml/base/dictionary_entry.rb +1 -1
  83. data/lib/chemicalml/cml/base/dimension.rb +32 -0
  84. data/lib/chemicalml/cml/base/document.rb +9 -1
  85. data/lib/chemicalml/cml/base/documentation.rb +30 -0
  86. data/lib/chemicalml/cml/base/eigen.rb +34 -0
  87. data/lib/chemicalml/cml/base/electron.rb +36 -0
  88. data/lib/chemicalml/cml/base/formula.rb +1 -1
  89. data/lib/chemicalml/cml/base/fragment.rb +35 -0
  90. data/lib/chemicalml/cml/base/fragment_list.rb +31 -0
  91. data/lib/chemicalml/cml/base/gradient.rb +32 -0
  92. data/lib/chemicalml/cml/base/identifier.rb +1 -1
  93. data/lib/chemicalml/cml/base/isotope.rb +34 -0
  94. data/lib/chemicalml/cml/base/isotope_list.rb +31 -0
  95. data/lib/chemicalml/cml/base/join.rb +30 -0
  96. data/lib/chemicalml/cml/base/kpoint.rb +32 -0
  97. data/lib/chemicalml/cml/base/kpoint_list.rb +31 -0
  98. data/lib/chemicalml/cml/base/label.rb +1 -1
  99. data/lib/chemicalml/cml/base/lattice.rb +35 -0
  100. data/lib/chemicalml/cml/base/lattice_vector.rb +30 -0
  101. data/lib/chemicalml/cml/base/length.rb +32 -0
  102. data/lib/chemicalml/cml/base/line3.rb +30 -0
  103. data/lib/chemicalml/cml/base/link.rb +38 -0
  104. data/lib/chemicalml/cml/base/list.rb +1 -1
  105. data/lib/chemicalml/cml/base/map.rb +28 -0
  106. data/lib/chemicalml/cml/base/matrix.rb +1 -1
  107. data/lib/chemicalml/cml/base/mechanism.rb +31 -0
  108. data/lib/chemicalml/cml/base/mechanism_component.rb +30 -0
  109. data/lib/chemicalml/cml/base/metadata.rb +1 -1
  110. data/lib/chemicalml/cml/base/metadata_list.rb +1 -1
  111. data/lib/chemicalml/cml/base/molecule.rb +17 -1
  112. data/lib/chemicalml/cml/base/molecule_list.rb +31 -0
  113. data/lib/chemicalml/cml/base/name.rb +1 -1
  114. data/lib/chemicalml/cml/base/object.rb +30 -0
  115. data/lib/chemicalml/cml/base/observation.rb +28 -0
  116. data/lib/chemicalml/cml/base/parameter.rb +1 -1
  117. data/lib/chemicalml/cml/base/parameter_list.rb +1 -1
  118. data/lib/chemicalml/cml/base/particle.rb +30 -0
  119. data/lib/chemicalml/cml/base/peak.rb +40 -0
  120. data/lib/chemicalml/cml/base/peak_group.rb +31 -0
  121. data/lib/chemicalml/cml/base/peak_list.rb +33 -0
  122. data/lib/chemicalml/cml/base/peak_structure.rb +30 -0
  123. data/lib/chemicalml/cml/base/plane3.rb +30 -0
  124. data/lib/chemicalml/cml/base/point3.rb +30 -0
  125. data/lib/chemicalml/cml/base/potential.rb +30 -0
  126. data/lib/chemicalml/cml/base/potential_form.rb +30 -0
  127. data/lib/chemicalml/cml/base/potential_list.rb +31 -0
  128. data/lib/chemicalml/cml/base/product.rb +1 -1
  129. data/lib/chemicalml/cml/base/product_list.rb +1 -1
  130. data/lib/chemicalml/cml/base/property.rb +1 -1
  131. data/lib/chemicalml/cml/base/property_list.rb +1 -1
  132. data/lib/chemicalml/cml/base/reactant.rb +1 -1
  133. data/lib/chemicalml/cml/base/reactant_list.rb +1 -1
  134. data/lib/chemicalml/cml/base/reaction.rb +9 -1
  135. data/lib/chemicalml/cml/base/reaction_list.rb +1 -1
  136. data/lib/chemicalml/cml/base/reaction_scheme.rb +33 -0
  137. data/lib/chemicalml/cml/base/reaction_step.rb +35 -0
  138. data/lib/chemicalml/cml/base/reaction_step_list.rb +31 -0
  139. data/lib/chemicalml/cml/base/reactive_centre.rb +30 -0
  140. data/lib/chemicalml/cml/base/region.rb +28 -0
  141. data/lib/chemicalml/cml/base/sample.rb +28 -0
  142. data/lib/chemicalml/cml/base/scalar.rb +1 -1
  143. data/lib/chemicalml/cml/base/spectator.rb +28 -0
  144. data/lib/chemicalml/cml/base/spectator_list.rb +31 -0
  145. data/lib/chemicalml/cml/base/spectrum.rb +41 -0
  146. data/lib/chemicalml/cml/base/spectrum_data.rb +33 -0
  147. data/lib/chemicalml/cml/base/spectrum_list.rb +31 -0
  148. data/lib/chemicalml/cml/base/sphere3.rb +30 -0
  149. data/lib/chemicalml/cml/base/stmml.rb +28 -0
  150. data/lib/chemicalml/cml/base/substance.rb +1 -1
  151. data/lib/chemicalml/cml/base/substance_list.rb +31 -0
  152. data/lib/chemicalml/cml/base/symmetry.rb +32 -0
  153. data/lib/chemicalml/cml/base/system.rb +33 -0
  154. data/lib/chemicalml/cml/base/table.rb +33 -0
  155. data/lib/chemicalml/cml/base/table_cell.rb +30 -0
  156. data/lib/chemicalml/cml/base/table_content.rb +33 -0
  157. data/lib/chemicalml/cml/base/table_header.rb +31 -0
  158. data/lib/chemicalml/cml/base/table_header_cell.rb +30 -0
  159. data/lib/chemicalml/cml/base/table_row.rb +31 -0
  160. data/lib/chemicalml/cml/base/table_row_list.rb +31 -0
  161. data/lib/chemicalml/cml/base/torsion.rb +32 -0
  162. data/lib/chemicalml/cml/base/transform3.rb +30 -0
  163. data/lib/chemicalml/cml/base/transition_state.rb +28 -0
  164. data/lib/chemicalml/cml/base/unit.rb +1 -1
  165. data/lib/chemicalml/cml/base/unit_list.rb +1 -1
  166. data/lib/chemicalml/cml/base/unit_type.rb +1 -1
  167. data/lib/chemicalml/cml/base/unit_type_list.rb +1 -1
  168. data/lib/chemicalml/cml/base/vector3.rb +30 -0
  169. data/lib/chemicalml/cml/base/xaxis.rb +32 -0
  170. data/lib/chemicalml/cml/base/yaxis.rb +32 -0
  171. data/lib/chemicalml/cml/base/z_matrix.rb +30 -0
  172. data/lib/chemicalml/cml/base.rb +85 -0
  173. data/lib/chemicalml/cml/child_mappings.rb +168 -0
  174. data/lib/chemicalml/cml/elements.rb +130 -42
  175. data/lib/chemicalml/cml/role/abundance.rb +12 -0
  176. data/lib/chemicalml/cml/role/action.rb +12 -0
  177. data/lib/chemicalml/cml/role/action_list.rb +12 -0
  178. data/lib/chemicalml/cml/role/amount.rb +12 -0
  179. data/lib/chemicalml/cml/role/angle.rb +12 -0
  180. data/lib/chemicalml/cml/role/any_cml.rb +12 -0
  181. data/lib/chemicalml/cml/role/array_list.rb +12 -0
  182. data/lib/chemicalml/cml/role/atom_set.rb +12 -0
  183. data/lib/chemicalml/cml/role/atom_type.rb +12 -0
  184. data/lib/chemicalml/cml/role/atom_type_list.rb +12 -0
  185. data/lib/chemicalml/cml/role/atomic_basis_function.rb +12 -0
  186. data/lib/chemicalml/cml/role/band.rb +12 -0
  187. data/lib/chemicalml/cml/role/band_list.rb +12 -0
  188. data/lib/chemicalml/cml/role/basis_set.rb +12 -0
  189. data/lib/chemicalml/cml/role/bond_set.rb +12 -0
  190. data/lib/chemicalml/cml/role/bond_type.rb +12 -0
  191. data/lib/chemicalml/cml/role/bond_type_list.rb +12 -0
  192. data/lib/chemicalml/cml/role/cell_parameter.rb +12 -0
  193. data/lib/chemicalml/cml/role/condition_list.rb +12 -0
  194. data/lib/chemicalml/cml/role/crystal.rb +12 -0
  195. data/lib/chemicalml/cml/role/definition.rb +12 -0
  196. data/lib/chemicalml/cml/role/description.rb +12 -0
  197. data/lib/chemicalml/cml/role/dimension.rb +12 -0
  198. data/lib/chemicalml/cml/role/documentation.rb +12 -0
  199. data/lib/chemicalml/cml/role/eigen.rb +12 -0
  200. data/lib/chemicalml/cml/role/electron.rb +12 -0
  201. data/lib/chemicalml/cml/role/fragment.rb +12 -0
  202. data/lib/chemicalml/cml/role/fragment_list.rb +12 -0
  203. data/lib/chemicalml/cml/role/gradient.rb +12 -0
  204. data/lib/chemicalml/cml/role/isotope.rb +12 -0
  205. data/lib/chemicalml/cml/role/isotope_list.rb +12 -0
  206. data/lib/chemicalml/cml/role/join.rb +12 -0
  207. data/lib/chemicalml/cml/role/kpoint.rb +12 -0
  208. data/lib/chemicalml/cml/role/kpoint_list.rb +12 -0
  209. data/lib/chemicalml/cml/role/lattice.rb +12 -0
  210. data/lib/chemicalml/cml/role/lattice_vector.rb +12 -0
  211. data/lib/chemicalml/cml/role/length.rb +12 -0
  212. data/lib/chemicalml/cml/role/line3.rb +12 -0
  213. data/lib/chemicalml/cml/role/link.rb +12 -0
  214. data/lib/chemicalml/cml/role/map.rb +12 -0
  215. data/lib/chemicalml/cml/role/mechanism.rb +12 -0
  216. data/lib/chemicalml/cml/role/mechanism_component.rb +12 -0
  217. data/lib/chemicalml/cml/role/molecule_list.rb +12 -0
  218. data/lib/chemicalml/cml/role/object.rb +12 -0
  219. data/lib/chemicalml/cml/role/observation.rb +12 -0
  220. data/lib/chemicalml/cml/role/particle.rb +12 -0
  221. data/lib/chemicalml/cml/role/peak.rb +12 -0
  222. data/lib/chemicalml/cml/role/peak_group.rb +12 -0
  223. data/lib/chemicalml/cml/role/peak_list.rb +12 -0
  224. data/lib/chemicalml/cml/role/peak_structure.rb +12 -0
  225. data/lib/chemicalml/cml/role/plane3.rb +12 -0
  226. data/lib/chemicalml/cml/role/point3.rb +12 -0
  227. data/lib/chemicalml/cml/role/potential.rb +12 -0
  228. data/lib/chemicalml/cml/role/potential_form.rb +12 -0
  229. data/lib/chemicalml/cml/role/potential_list.rb +12 -0
  230. data/lib/chemicalml/cml/role/reaction_scheme.rb +12 -0
  231. data/lib/chemicalml/cml/role/reaction_step.rb +12 -0
  232. data/lib/chemicalml/cml/role/reaction_step_list.rb +12 -0
  233. data/lib/chemicalml/cml/role/reactive_centre.rb +12 -0
  234. data/lib/chemicalml/cml/role/region.rb +12 -0
  235. data/lib/chemicalml/cml/role/sample.rb +12 -0
  236. data/lib/chemicalml/cml/role/spectator.rb +12 -0
  237. data/lib/chemicalml/cml/role/spectator_list.rb +12 -0
  238. data/lib/chemicalml/cml/role/spectrum.rb +12 -0
  239. data/lib/chemicalml/cml/role/spectrum_data.rb +12 -0
  240. data/lib/chemicalml/cml/role/spectrum_list.rb +12 -0
  241. data/lib/chemicalml/cml/role/sphere3.rb +12 -0
  242. data/lib/chemicalml/cml/role/stmml.rb +12 -0
  243. data/lib/chemicalml/cml/role/substance_list.rb +12 -0
  244. data/lib/chemicalml/cml/role/symmetry.rb +12 -0
  245. data/lib/chemicalml/cml/role/system.rb +12 -0
  246. data/lib/chemicalml/cml/role/table.rb +12 -0
  247. data/lib/chemicalml/cml/role/table_cell.rb +12 -0
  248. data/lib/chemicalml/cml/role/table_content.rb +12 -0
  249. data/lib/chemicalml/cml/role/table_header.rb +12 -0
  250. data/lib/chemicalml/cml/role/table_header_cell.rb +12 -0
  251. data/lib/chemicalml/cml/role/table_row.rb +12 -0
  252. data/lib/chemicalml/cml/role/table_row_list.rb +12 -0
  253. data/lib/chemicalml/cml/role/torsion.rb +12 -0
  254. data/lib/chemicalml/cml/role/transform3.rb +12 -0
  255. data/lib/chemicalml/cml/role/transition_state.rb +12 -0
  256. data/lib/chemicalml/cml/role/vector3.rb +12 -0
  257. data/lib/chemicalml/cml/role/xaxis.rb +12 -0
  258. data/lib/chemicalml/cml/role/yaxis.rb +12 -0
  259. data/lib/chemicalml/cml/role/z_matrix.rb +12 -0
  260. data/lib/chemicalml/cml/role.rb +86 -1
  261. data/lib/chemicalml/cml/schema24/abundance.rb +13 -0
  262. data/lib/chemicalml/cml/schema24/action.rb +13 -0
  263. data/lib/chemicalml/cml/schema24/action_list.rb +13 -0
  264. data/lib/chemicalml/cml/schema24/amount.rb +13 -0
  265. data/lib/chemicalml/cml/schema24/angle.rb +13 -0
  266. data/lib/chemicalml/cml/schema24/any_cml.rb +13 -0
  267. data/lib/chemicalml/cml/schema24/array.rb +15 -0
  268. data/lib/chemicalml/cml/schema24/array_list.rb +13 -0
  269. data/lib/chemicalml/cml/schema24/atom.rb +15 -0
  270. data/lib/chemicalml/cml/schema24/atom_array.rb +15 -0
  271. data/lib/chemicalml/cml/schema24/atom_parity.rb +15 -0
  272. data/lib/chemicalml/cml/schema24/atom_set.rb +13 -0
  273. data/lib/chemicalml/cml/schema24/atom_type.rb +13 -0
  274. data/lib/chemicalml/cml/schema24/atom_type_list.rb +13 -0
  275. data/lib/chemicalml/cml/schema24/atomic_basis_function.rb +13 -0
  276. data/lib/chemicalml/cml/schema24/band.rb +13 -0
  277. data/lib/chemicalml/cml/schema24/band_list.rb +13 -0
  278. data/lib/chemicalml/cml/schema24/basis_set.rb +13 -0
  279. data/lib/chemicalml/cml/schema24/bond.rb +15 -0
  280. data/lib/chemicalml/cml/schema24/bond_array.rb +15 -0
  281. data/lib/chemicalml/cml/schema24/bond_set.rb +13 -0
  282. data/lib/chemicalml/cml/schema24/bond_stereo.rb +15 -0
  283. data/lib/chemicalml/cml/schema24/bond_type.rb +13 -0
  284. data/lib/chemicalml/cml/schema24/bond_type_list.rb +13 -0
  285. data/lib/chemicalml/cml/schema24/cell_parameter.rb +13 -0
  286. data/lib/chemicalml/cml/schema24/condition_list.rb +13 -0
  287. data/lib/chemicalml/cml/schema24/context.rb +18 -0
  288. data/lib/chemicalml/cml/schema24/crystal.rb +13 -0
  289. data/lib/chemicalml/cml/schema24/definition.rb +13 -0
  290. data/lib/chemicalml/cml/schema24/description.rb +13 -0
  291. data/lib/chemicalml/cml/schema24/dictionary.rb +15 -0
  292. data/lib/chemicalml/cml/schema24/dictionary_entry.rb +15 -0
  293. data/lib/chemicalml/cml/schema24/dimension.rb +13 -0
  294. data/lib/chemicalml/cml/schema24/document.rb +15 -0
  295. data/lib/chemicalml/cml/schema24/documentation.rb +13 -0
  296. data/lib/chemicalml/cml/schema24/eigen.rb +13 -0
  297. data/lib/chemicalml/cml/schema24/electron.rb +13 -0
  298. data/lib/chemicalml/cml/schema24/formula.rb +15 -0
  299. data/lib/chemicalml/cml/schema24/fragment.rb +13 -0
  300. data/lib/chemicalml/cml/schema24/fragment_list.rb +13 -0
  301. data/lib/chemicalml/cml/schema24/gradient.rb +13 -0
  302. data/lib/chemicalml/cml/schema24/identifier.rb +15 -0
  303. data/lib/chemicalml/cml/schema24/isotope.rb +13 -0
  304. data/lib/chemicalml/cml/schema24/isotope_list.rb +13 -0
  305. data/lib/chemicalml/cml/schema24/join.rb +13 -0
  306. data/lib/chemicalml/cml/schema24/kpoint.rb +13 -0
  307. data/lib/chemicalml/cml/schema24/kpoint_list.rb +13 -0
  308. data/lib/chemicalml/cml/schema24/label.rb +15 -0
  309. data/lib/chemicalml/cml/schema24/lattice.rb +13 -0
  310. data/lib/chemicalml/cml/schema24/lattice_vector.rb +13 -0
  311. data/lib/chemicalml/cml/schema24/length.rb +13 -0
  312. data/lib/chemicalml/cml/schema24/line3.rb +13 -0
  313. data/lib/chemicalml/cml/schema24/link.rb +13 -0
  314. data/lib/chemicalml/cml/schema24/list.rb +15 -0
  315. data/lib/chemicalml/cml/schema24/map.rb +13 -0
  316. data/lib/chemicalml/cml/schema24/matrix.rb +15 -0
  317. data/lib/chemicalml/cml/schema24/mechanism.rb +13 -0
  318. data/lib/chemicalml/cml/schema24/mechanism_component.rb +13 -0
  319. data/lib/chemicalml/cml/schema24/metadata.rb +15 -0
  320. data/lib/chemicalml/cml/schema24/metadata_list.rb +15 -0
  321. data/lib/chemicalml/cml/schema24/molecule.rb +15 -0
  322. data/lib/chemicalml/cml/schema24/molecule_list.rb +13 -0
  323. data/lib/chemicalml/cml/schema24/name.rb +15 -0
  324. data/lib/chemicalml/cml/schema24/object.rb +13 -0
  325. data/lib/chemicalml/cml/schema24/observation.rb +13 -0
  326. data/lib/chemicalml/cml/schema24/parameter.rb +15 -0
  327. data/lib/chemicalml/cml/schema24/parameter_list.rb +15 -0
  328. data/lib/chemicalml/cml/schema24/particle.rb +13 -0
  329. data/lib/chemicalml/cml/schema24/peak.rb +13 -0
  330. data/lib/chemicalml/cml/schema24/peak_group.rb +13 -0
  331. data/lib/chemicalml/cml/schema24/peak_list.rb +13 -0
  332. data/lib/chemicalml/cml/schema24/peak_structure.rb +13 -0
  333. data/lib/chemicalml/cml/schema24/plane3.rb +13 -0
  334. data/lib/chemicalml/cml/schema24/point3.rb +13 -0
  335. data/lib/chemicalml/cml/schema24/potential.rb +13 -0
  336. data/lib/chemicalml/cml/schema24/potential_form.rb +13 -0
  337. data/lib/chemicalml/cml/schema24/potential_list.rb +13 -0
  338. data/lib/chemicalml/cml/schema24/product.rb +15 -0
  339. data/lib/chemicalml/cml/schema24/product_list.rb +15 -0
  340. data/lib/chemicalml/cml/schema24/property.rb +15 -0
  341. data/lib/chemicalml/cml/schema24/property_list.rb +15 -0
  342. data/lib/chemicalml/cml/schema24/reactant.rb +15 -0
  343. data/lib/chemicalml/cml/schema24/reactant_list.rb +15 -0
  344. data/lib/chemicalml/cml/schema24/reaction.rb +15 -0
  345. data/lib/chemicalml/cml/schema24/reaction_list.rb +15 -0
  346. data/lib/chemicalml/cml/schema24/reaction_scheme.rb +13 -0
  347. data/lib/chemicalml/cml/schema24/reaction_step.rb +13 -0
  348. data/lib/chemicalml/cml/schema24/reaction_step_list.rb +13 -0
  349. data/lib/chemicalml/cml/schema24/reactive_centre.rb +13 -0
  350. data/lib/chemicalml/cml/schema24/region.rb +13 -0
  351. data/lib/chemicalml/cml/schema24/sample.rb +13 -0
  352. data/lib/chemicalml/cml/schema24/scalar.rb +15 -0
  353. data/lib/chemicalml/cml/schema24/spectator.rb +13 -0
  354. data/lib/chemicalml/cml/schema24/spectator_list.rb +13 -0
  355. data/lib/chemicalml/cml/schema24/spectrum.rb +13 -0
  356. data/lib/chemicalml/cml/schema24/spectrum_data.rb +13 -0
  357. data/lib/chemicalml/cml/schema24/spectrum_list.rb +13 -0
  358. data/lib/chemicalml/cml/schema24/sphere3.rb +13 -0
  359. data/lib/chemicalml/cml/schema24/stmml.rb +13 -0
  360. data/lib/chemicalml/cml/schema24/substance.rb +15 -0
  361. data/lib/chemicalml/cml/schema24/substance_list.rb +13 -0
  362. data/lib/chemicalml/cml/schema24/symmetry.rb +13 -0
  363. data/lib/chemicalml/cml/schema24/system.rb +13 -0
  364. data/lib/chemicalml/cml/schema24/table.rb +13 -0
  365. data/lib/chemicalml/cml/schema24/table_cell.rb +13 -0
  366. data/lib/chemicalml/cml/schema24/table_content.rb +13 -0
  367. data/lib/chemicalml/cml/schema24/table_header.rb +13 -0
  368. data/lib/chemicalml/cml/schema24/table_header_cell.rb +13 -0
  369. data/lib/chemicalml/cml/schema24/table_row.rb +13 -0
  370. data/lib/chemicalml/cml/schema24/table_row_list.rb +13 -0
  371. data/lib/chemicalml/cml/schema24/torsion.rb +13 -0
  372. data/lib/chemicalml/cml/schema24/transform3.rb +13 -0
  373. data/lib/chemicalml/cml/schema24/transition_state.rb +13 -0
  374. data/lib/chemicalml/cml/schema24/unit.rb +15 -0
  375. data/lib/chemicalml/cml/schema24/unit_list.rb +15 -0
  376. data/lib/chemicalml/cml/schema24/unit_type.rb +15 -0
  377. data/lib/chemicalml/cml/schema24/unit_type_list.rb +15 -0
  378. data/lib/chemicalml/cml/schema24/vector3.rb +13 -0
  379. data/lib/chemicalml/cml/schema24/xaxis.rb +13 -0
  380. data/lib/chemicalml/cml/schema24/yaxis.rb +13 -0
  381. data/lib/chemicalml/cml/schema24/z_matrix.rb +13 -0
  382. data/lib/chemicalml/cml/schema24.rb +131 -19
  383. data/lib/chemicalml/cml/schema3/abundance.rb +13 -0
  384. data/lib/chemicalml/cml/schema3/action.rb +13 -0
  385. data/lib/chemicalml/cml/schema3/action_list.rb +13 -0
  386. data/lib/chemicalml/cml/schema3/amount.rb +13 -0
  387. data/lib/chemicalml/cml/schema3/angle.rb +13 -0
  388. data/lib/chemicalml/cml/schema3/any_cml.rb +13 -0
  389. data/lib/chemicalml/cml/schema3/array.rb +15 -0
  390. data/lib/chemicalml/cml/schema3/array_list.rb +13 -0
  391. data/lib/chemicalml/cml/schema3/atom.rb +15 -0
  392. data/lib/chemicalml/cml/schema3/atom_array.rb +15 -0
  393. data/lib/chemicalml/cml/schema3/atom_parity.rb +15 -0
  394. data/lib/chemicalml/cml/schema3/atom_set.rb +13 -0
  395. data/lib/chemicalml/cml/schema3/atom_type.rb +13 -0
  396. data/lib/chemicalml/cml/schema3/atom_type_list.rb +13 -0
  397. data/lib/chemicalml/cml/schema3/atomic_basis_function.rb +13 -0
  398. data/lib/chemicalml/cml/schema3/band.rb +13 -0
  399. data/lib/chemicalml/cml/schema3/band_list.rb +13 -0
  400. data/lib/chemicalml/cml/schema3/basis_set.rb +13 -0
  401. data/lib/chemicalml/cml/schema3/bond.rb +15 -0
  402. data/lib/chemicalml/cml/schema3/bond_array.rb +15 -0
  403. data/lib/chemicalml/cml/schema3/bond_set.rb +13 -0
  404. data/lib/chemicalml/cml/schema3/bond_stereo.rb +15 -0
  405. data/lib/chemicalml/cml/schema3/bond_type.rb +13 -0
  406. data/lib/chemicalml/cml/schema3/bond_type_list.rb +13 -0
  407. data/lib/chemicalml/cml/schema3/cell_parameter.rb +13 -0
  408. data/lib/chemicalml/cml/schema3/cml_module.rb +15 -0
  409. data/lib/chemicalml/cml/schema3/condition_list.rb +13 -0
  410. data/lib/chemicalml/cml/schema3/context.rb +18 -0
  411. data/lib/chemicalml/cml/schema3/crystal.rb +13 -0
  412. data/lib/chemicalml/cml/schema3/definition.rb +13 -0
  413. data/lib/chemicalml/cml/schema3/description.rb +13 -0
  414. data/lib/chemicalml/cml/schema3/dictionary.rb +15 -0
  415. data/lib/chemicalml/cml/schema3/dictionary_entry.rb +15 -0
  416. data/lib/chemicalml/cml/schema3/dimension.rb +13 -0
  417. data/lib/chemicalml/cml/schema3/document.rb +15 -0
  418. data/lib/chemicalml/cml/schema3/documentation.rb +13 -0
  419. data/lib/chemicalml/cml/schema3/eigen.rb +13 -0
  420. data/lib/chemicalml/cml/schema3/electron.rb +13 -0
  421. data/lib/chemicalml/cml/schema3/formula.rb +15 -0
  422. data/lib/chemicalml/cml/schema3/fragment.rb +13 -0
  423. data/lib/chemicalml/cml/schema3/fragment_list.rb +13 -0
  424. data/lib/chemicalml/cml/schema3/gradient.rb +13 -0
  425. data/lib/chemicalml/cml/schema3/identifier.rb +15 -0
  426. data/lib/chemicalml/cml/schema3/isotope.rb +13 -0
  427. data/lib/chemicalml/cml/schema3/isotope_list.rb +13 -0
  428. data/lib/chemicalml/cml/schema3/join.rb +13 -0
  429. data/lib/chemicalml/cml/schema3/kpoint.rb +13 -0
  430. data/lib/chemicalml/cml/schema3/kpoint_list.rb +13 -0
  431. data/lib/chemicalml/cml/schema3/label.rb +15 -0
  432. data/lib/chemicalml/cml/schema3/lattice.rb +13 -0
  433. data/lib/chemicalml/cml/schema3/lattice_vector.rb +13 -0
  434. data/lib/chemicalml/cml/schema3/length.rb +13 -0
  435. data/lib/chemicalml/cml/schema3/line3.rb +13 -0
  436. data/lib/chemicalml/cml/schema3/link.rb +13 -0
  437. data/lib/chemicalml/cml/schema3/list.rb +15 -0
  438. data/lib/chemicalml/cml/schema3/map.rb +13 -0
  439. data/lib/chemicalml/cml/schema3/matrix.rb +15 -0
  440. data/lib/chemicalml/cml/schema3/mechanism.rb +13 -0
  441. data/lib/chemicalml/cml/schema3/mechanism_component.rb +13 -0
  442. data/lib/chemicalml/cml/schema3/metadata.rb +15 -0
  443. data/lib/chemicalml/cml/schema3/metadata_list.rb +15 -0
  444. data/lib/chemicalml/cml/schema3/molecule.rb +15 -0
  445. data/lib/chemicalml/cml/schema3/molecule_list.rb +13 -0
  446. data/lib/chemicalml/cml/schema3/name.rb +15 -0
  447. data/lib/chemicalml/cml/schema3/object.rb +13 -0
  448. data/lib/chemicalml/cml/schema3/observation.rb +13 -0
  449. data/lib/chemicalml/cml/schema3/parameter.rb +15 -0
  450. data/lib/chemicalml/cml/schema3/parameter_list.rb +15 -0
  451. data/lib/chemicalml/cml/schema3/particle.rb +13 -0
  452. data/lib/chemicalml/cml/schema3/peak.rb +13 -0
  453. data/lib/chemicalml/cml/schema3/peak_group.rb +13 -0
  454. data/lib/chemicalml/cml/schema3/peak_list.rb +13 -0
  455. data/lib/chemicalml/cml/schema3/peak_structure.rb +13 -0
  456. data/lib/chemicalml/cml/schema3/plane3.rb +13 -0
  457. data/lib/chemicalml/cml/schema3/point3.rb +13 -0
  458. data/lib/chemicalml/cml/schema3/potential.rb +13 -0
  459. data/lib/chemicalml/cml/schema3/potential_form.rb +13 -0
  460. data/lib/chemicalml/cml/schema3/potential_list.rb +13 -0
  461. data/lib/chemicalml/cml/schema3/product.rb +15 -0
  462. data/lib/chemicalml/cml/schema3/product_list.rb +15 -0
  463. data/lib/chemicalml/cml/schema3/property.rb +15 -0
  464. data/lib/chemicalml/cml/schema3/property_list.rb +15 -0
  465. data/lib/chemicalml/cml/schema3/reactant.rb +15 -0
  466. data/lib/chemicalml/cml/schema3/reactant_list.rb +15 -0
  467. data/lib/chemicalml/cml/schema3/reaction.rb +15 -0
  468. data/lib/chemicalml/cml/schema3/reaction_list.rb +15 -0
  469. data/lib/chemicalml/cml/schema3/reaction_scheme.rb +13 -0
  470. data/lib/chemicalml/cml/schema3/reaction_step.rb +13 -0
  471. data/lib/chemicalml/cml/schema3/reaction_step_list.rb +13 -0
  472. data/lib/chemicalml/cml/schema3/reactive_centre.rb +13 -0
  473. data/lib/chemicalml/cml/schema3/region.rb +13 -0
  474. data/lib/chemicalml/cml/schema3/sample.rb +13 -0
  475. data/lib/chemicalml/cml/schema3/scalar.rb +15 -0
  476. data/lib/chemicalml/cml/schema3/spectator.rb +13 -0
  477. data/lib/chemicalml/cml/schema3/spectator_list.rb +13 -0
  478. data/lib/chemicalml/cml/schema3/spectrum.rb +13 -0
  479. data/lib/chemicalml/cml/schema3/spectrum_data.rb +13 -0
  480. data/lib/chemicalml/cml/schema3/spectrum_list.rb +13 -0
  481. data/lib/chemicalml/cml/schema3/sphere3.rb +13 -0
  482. data/lib/chemicalml/cml/schema3/stmml.rb +13 -0
  483. data/lib/chemicalml/cml/schema3/substance.rb +15 -0
  484. data/lib/chemicalml/cml/schema3/substance_list.rb +13 -0
  485. data/lib/chemicalml/cml/schema3/symmetry.rb +13 -0
  486. data/lib/chemicalml/cml/schema3/system.rb +13 -0
  487. data/lib/chemicalml/cml/schema3/table.rb +13 -0
  488. data/lib/chemicalml/cml/schema3/table_cell.rb +13 -0
  489. data/lib/chemicalml/cml/schema3/table_content.rb +13 -0
  490. data/lib/chemicalml/cml/schema3/table_header.rb +13 -0
  491. data/lib/chemicalml/cml/schema3/table_header_cell.rb +13 -0
  492. data/lib/chemicalml/cml/schema3/table_row.rb +13 -0
  493. data/lib/chemicalml/cml/schema3/table_row_list.rb +13 -0
  494. data/lib/chemicalml/cml/schema3/torsion.rb +13 -0
  495. data/lib/chemicalml/cml/schema3/transform3.rb +13 -0
  496. data/lib/chemicalml/cml/schema3/transition_state.rb +13 -0
  497. data/lib/chemicalml/cml/schema3/unit.rb +15 -0
  498. data/lib/chemicalml/cml/schema3/unit_list.rb +15 -0
  499. data/lib/chemicalml/cml/schema3/unit_type.rb +15 -0
  500. data/lib/chemicalml/cml/schema3/unit_type_list.rb +15 -0
  501. data/lib/chemicalml/cml/schema3/vector3.rb +13 -0
  502. data/lib/chemicalml/cml/schema3/xaxis.rb +13 -0
  503. data/lib/chemicalml/cml/schema3/yaxis.rb +13 -0
  504. data/lib/chemicalml/cml/schema3/z_matrix.rb +13 -0
  505. data/lib/chemicalml/cml/schema3.rb +132 -17
  506. data/lib/chemicalml/cml/translator/value_translations.rb +40 -35
  507. data/lib/chemicalml/cml/translator.rb +319 -68
  508. data/lib/chemicalml/cml/wire_class_registry.rb +42 -0
  509. data/lib/chemicalml/cml.rb +138 -44
  510. data/lib/chemicalml/convention/molecular/constraints/atom_coordinates_must_be_paired.rb +32 -0
  511. data/lib/chemicalml/convention/molecular/constraints/atom_id_must_match_pattern.rb +26 -0
  512. data/lib/chemicalml/convention/molecular/constraints/atom_must_have_element_type.rb +20 -0
  513. data/lib/chemicalml/convention/molecular/constraints/atom_must_have_id.rb +20 -0
  514. data/lib/chemicalml/convention/molecular/constraints/bond_must_have_atom_refs2.rb +20 -0
  515. data/lib/chemicalml/convention/molecular/constraints/bond_must_have_order.rb +20 -0
  516. data/lib/chemicalml/convention/molecular/constraints/bond_order_should_not_be_numeric.rb +27 -0
  517. data/lib/chemicalml/convention/molecular/constraints/molecule_must_have_id.rb +20 -0
  518. data/lib/chemicalml/convention/molecular/constraints/property_must_have_dict_ref.rb +20 -0
  519. data/lib/chemicalml/convention/molecular/constraints/scalar_must_have_data_type.rb +20 -0
  520. data/lib/chemicalml/convention/molecular/constraints.rb +20 -3
  521. data/lib/chemicalml/convention/molecular.rb +10 -0
  522. data/lib/chemicalml/model/atom.rb +28 -4
  523. data/lib/chemicalml/model/atom_parity.rb +21 -0
  524. data/lib/chemicalml/model/bond.rb +9 -3
  525. data/lib/chemicalml/model/bond_stereo.rb +29 -0
  526. data/lib/chemicalml/model/molecule.rb +13 -6
  527. data/lib/chemicalml/model.rb +2 -0
  528. data/lib/chemicalml/version.rb +1 -1
  529. data/lib/chemicalml/versioned_parser.rb +53 -12
  530. data/lib/chemicalml.rb +3 -1
  531. metadata +476 -40
  532. data/lib/chemicalml/cml/array.rb +0 -10
  533. data/lib/chemicalml/cml/atom.rb +0 -10
  534. data/lib/chemicalml/cml/atom_array.rb +0 -10
  535. data/lib/chemicalml/cml/atom_parity.rb +0 -10
  536. data/lib/chemicalml/cml/bond.rb +0 -10
  537. data/lib/chemicalml/cml/bond_array.rb +0 -10
  538. data/lib/chemicalml/cml/bond_stereo.rb +0 -10
  539. data/lib/chemicalml/cml/cml_module.rb +0 -10
  540. data/lib/chemicalml/cml/dictionary.rb +0 -10
  541. data/lib/chemicalml/cml/dictionary_entry.rb +0 -10
  542. data/lib/chemicalml/cml/document.rb +0 -10
  543. data/lib/chemicalml/cml/formula.rb +0 -10
  544. data/lib/chemicalml/cml/identifier.rb +0 -10
  545. data/lib/chemicalml/cml/label.rb +0 -10
  546. data/lib/chemicalml/cml/list.rb +0 -10
  547. data/lib/chemicalml/cml/matrix.rb +0 -10
  548. data/lib/chemicalml/cml/metadata.rb +0 -10
  549. data/lib/chemicalml/cml/metadata_list.rb +0 -10
  550. data/lib/chemicalml/cml/molecule.rb +0 -10
  551. data/lib/chemicalml/cml/name.rb +0 -10
  552. data/lib/chemicalml/cml/parameter.rb +0 -10
  553. data/lib/chemicalml/cml/parameter_list.rb +0 -10
  554. data/lib/chemicalml/cml/product.rb +0 -10
  555. data/lib/chemicalml/cml/product_list.rb +0 -10
  556. data/lib/chemicalml/cml/property.rb +0 -10
  557. data/lib/chemicalml/cml/property_list.rb +0 -10
  558. data/lib/chemicalml/cml/reactant.rb +0 -10
  559. data/lib/chemicalml/cml/reactant_list.rb +0 -10
  560. data/lib/chemicalml/cml/reaction.rb +0 -10
  561. data/lib/chemicalml/cml/reaction_list.rb +0 -10
  562. data/lib/chemicalml/cml/scalar.rb +0 -10
  563. data/lib/chemicalml/cml/substance.rb +0 -10
  564. data/lib/chemicalml/cml/unit.rb +0 -10
  565. data/lib/chemicalml/cml/unit_list.rb +0 -10
  566. data/lib/chemicalml/cml/unit_type.rb +0 -10
  567. data/lib/chemicalml/cml/unit_type_list.rb +0 -10
  568. data/lib/chemicalml/cml/wire_class_macro.rb +0 -45
@@ -7,52 +7,140 @@ module Chemicalml
7
7
  # adding one entry to `ALL`. Both `Schema3::Configuration` and
8
8
  # `Schema24::Configuration` walk this list.
9
9
  module Elements
10
- # Maps the Ruby class name (Symbol, e.g. `:Atom`) to the XML
11
- # element id used in the lutaml-model type registry
12
- # (e.g. `:atom`, `:atomArray`).
13
10
  ALL = {
14
- Array: :array,
15
- Atom: :atom,
16
- AtomArray: :atomArray,
17
- AtomParity: :atomParity,
18
- Bond: :bond,
19
- BondArray: :bondArray,
20
- BondStereo: :bondStereo,
21
- Dictionary: :dictionary,
22
- DictionaryEntry: :entry,
23
- Document: :document,
24
- Formula: :formula,
25
- Identifier: :identifier,
26
- Label: :label,
27
- List: :list,
28
- Matrix: :matrix,
29
- Metadata: :metadata,
30
- MetadataList: :metadataList,
31
- Module: :module,
32
- Molecule: :molecule,
33
- Name: :name,
34
- Parameter: :parameter,
35
- ParameterList: :parameterList,
36
- Product: :product,
37
- ProductList: :productList,
38
- Property: :property,
39
- PropertyList: :propertyList,
40
- Reaction: :reaction,
41
- ReactionList: :reactionList,
42
- Reactant: :reactant,
43
- ReactantList: :reactantList,
44
- Scalar: :scalar,
45
- Substance: :substance,
46
- Unit: :unit,
47
- UnitList: :unitList,
48
- UnitType: :unitType,
49
- UnitTypeList: :unitTypeList,
11
+ # Originally modeled elements
12
+ Array: :array,
13
+ Atom: :atom,
14
+ AtomArray: :atomArray,
15
+ AtomParity: :atomParity,
16
+ Bond: :bond,
17
+ BondArray: :bondArray,
18
+ BondStereo: :bondStereo,
19
+ Dictionary: :dictionary,
20
+ DictionaryEntry: :entry,
21
+ Document: :document,
22
+ Formula: :formula,
23
+ Identifier: :identifier,
24
+ Label: :label,
25
+ List: :list,
26
+ Matrix: :matrix,
27
+ Metadata: :metadata,
28
+ MetadataList: :metadataList,
29
+ Module: :module,
30
+ Molecule: :molecule,
31
+ Name: :name,
32
+ Parameter: :parameter,
33
+ ParameterList: :parameterList,
34
+ Product: :product,
35
+ ProductList: :productList,
36
+ Property: :property,
37
+ PropertyList: :propertyList,
38
+ Reaction: :reaction,
39
+ ReactionList: :reactionList,
40
+ Reactant: :reactant,
41
+ ReactantList: :reactantList,
42
+ Scalar: :scalar,
43
+ Substance: :substance,
44
+ Unit: :unit,
45
+ UnitList: :unitList,
46
+ UnitType: :unitType,
47
+ UnitTypeList: :unitTypeList,
48
+ # Full schema coverage — every CML element from the XSD
49
+ Abundance: :abundance,
50
+ Action: :action,
51
+ ActionList: :actionList,
52
+ Amount: :amount,
53
+ Angle: :angle,
54
+ AnyCml: :anyCml,
55
+ ArrayList: :arrayList,
56
+ AtomSet: :atomSet,
57
+ AtomType: :atomType,
58
+ AtomTypeList: :atomTypeList,
59
+ AtomicBasisFunction: :atomicBasisFunction,
60
+ Band: :band,
61
+ BandList: :bandList,
62
+ BasisSet: :basisSet,
63
+ BondSet: :bondSet,
64
+ BondType: :bondType,
65
+ BondTypeList: :bondTypeList,
66
+ CellParameter: :cellParameter,
67
+ ConditionList: :conditionList,
68
+ Crystal: :crystal,
69
+ Definition: :definition,
70
+ Description: :description,
71
+ Dimension: :dimension,
72
+ Documentation: :documentation,
73
+ Eigen: :eigen,
74
+ Electron: :electron,
75
+ Fragment: :fragment,
76
+ FragmentList: :fragmentList,
77
+ Gradient: :gradient,
78
+ Isotope: :isotope,
79
+ IsotopeList: :isotopeList,
80
+ Join: :join,
81
+ Kpoint: :kpoint,
82
+ KpointList: :kpointList,
83
+ Lattice: :lattice,
84
+ LatticeVector: :latticeVector,
85
+ Length: :length,
86
+ Line3: :line3,
87
+ Link: :link,
88
+ Map: :map,
89
+ Mechanism: :mechanism,
90
+ MechanismComponent: :mechanismComponent,
91
+ MoleculeList: :moleculeList,
92
+ Object: :object,
93
+ Observation: :observation,
94
+ Particle: :particle,
95
+ Peak: :peak,
96
+ PeakGroup: :peakGroup,
97
+ PeakList: :peakList,
98
+ PeakStructure: :peakStructure,
99
+ Plane3: :plane3,
100
+ Point3: :point3,
101
+ Potential: :potential,
102
+ PotentialForm: :potentialForm,
103
+ PotentialList: :potentialList,
104
+ ReactionScheme: :reactionScheme,
105
+ ReactionStep: :reactionStep,
106
+ ReactionStepList: :reactionStepList,
107
+ ReactiveCentre: :reactiveCentre,
108
+ Region: :region,
109
+ Sample: :sample,
110
+ Spectator: :spectator,
111
+ SpectatorList: :spectatorList,
112
+ Spectrum: :spectrum,
113
+ SpectrumData: :spectrumData,
114
+ SpectrumList: :spectrumList,
115
+ Sphere3: :sphere3,
116
+ Stmml: :stmml,
117
+ SubstanceList: :substanceList,
118
+ Symmetry: :symmetry,
119
+ System: :system,
120
+ Table: :table,
121
+ TableCell: :tableCell,
122
+ TableContent: :tableContent,
123
+ TableHeader: :tableHeader,
124
+ TableHeaderCell: :tableHeaderCell,
125
+ TableRow: :tableRow,
126
+ TableRowList: :tableRowList,
127
+ Torsion: :torsion,
128
+ Transform3: :transform3,
129
+ TransitionState: :transitionState,
130
+ Vector3: :vector3,
131
+ Xaxis: :xaxis,
132
+ Yaxis: :yaxis,
133
+ ZMatrix: :zMatrix,
50
134
  }.freeze
51
135
 
52
- # Elements that exist in Schema 3 but NOT in Schema 2.4. Used by
53
- # `Schema24::Configuration` to skip registration of classes that
54
- # don't exist for that version.
136
+ # Elements that exist in Schema 3 but NOT in Schema 2.4.
55
137
  SCHEMA3_ONLY = %i[Module].freeze
138
+
139
+ # Reverse index: XML element name (String) → Ruby class name
140
+ # (Symbol). O(1) lookup for VersionedParser root detection.
141
+ XML_TO_CLASS = ALL.each_with_object({}) do |(cls, xml_id), h|
142
+ h[xml_id.to_s] = cls
143
+ end.freeze
56
144
  end
57
145
  end
58
146
  end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <abundance> element, regardless of schema version.
8
+ module Abundance
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <action> element, regardless of schema version.
8
+ module Action
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <actionList> element, regardless of schema version.
8
+ module ActionList
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <amount> element, regardless of schema version.
8
+ module Amount
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <angle> element, regardless of schema version.
8
+ module Angle
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <anyCml> element, regardless of schema version.
8
+ module AnyCml
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <arrayList> element, regardless of schema version.
8
+ module ArrayList
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <atomSet> element, regardless of schema version.
8
+ module AtomSet
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <atomType> element, regardless of schema version.
8
+ module AtomType
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <atomTypeList> element, regardless of schema version.
8
+ module AtomTypeList
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <atomicBasisFunction> element, regardless of schema version.
8
+ module AtomicBasisFunction
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <band> element, regardless of schema version.
8
+ module Band
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <bandList> element, regardless of schema version.
8
+ module BandList
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <basisSet> element, regardless of schema version.
8
+ module BasisSet
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <bondSet> element, regardless of schema version.
8
+ module BondSet
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <bondType> element, regardless of schema version.
8
+ module BondType
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <bondTypeList> element, regardless of schema version.
8
+ module BondTypeList
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <cellParameter> element, regardless of schema version.
8
+ module CellParameter
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <conditionList> element, regardless of schema version.
8
+ module ConditionList
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <crystal> element, regardless of schema version.
8
+ module Crystal
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <definition> element, regardless of schema version.
8
+ module Definition
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <description> element, regardless of schema version.
8
+ module Description
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <dimension> element, regardless of schema version.
8
+ module Dimension
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <documentation> element, regardless of schema version.
8
+ module Documentation
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <eigen> element, regardless of schema version.
8
+ module Eigen
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <electron> element, regardless of schema version.
8
+ module Electron
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <fragment> element, regardless of schema version.
8
+ module Fragment
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <fragmentList> element, regardless of schema version.
8
+ module FragmentList
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <gradient> element, regardless of schema version.
8
+ module Gradient
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <isotope> element, regardless of schema version.
8
+ module Isotope
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <isotopeList> element, regardless of schema version.
8
+ module IsotopeList
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <join> element, regardless of schema version.
8
+ module Join
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <kpoint> element, regardless of schema version.
8
+ module Kpoint
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <kpointList> element, regardless of schema version.
8
+ module KpointList
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Role
6
+ # Type marker for wire classes implementing the CML
7
+ # <lattice> element, regardless of schema version.
8
+ module Lattice
9
+ end
10
+ end
11
+ end
12
+ end