chemicalml 0.1.0 → 0.2.1

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 (740) 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 +34 -0
  8. data/CHANGELOG.md +52 -12
  9. data/CLAUDE.md +48 -41
  10. data/Gemfile +2 -1
  11. data/Rakefile +9 -4
  12. data/TODO.align/18-wire-class-registry.md +46 -0
  13. data/TODO.align/19-schema-aware-translator.md +33 -0
  14. data/TODO.align/20-missing-translator-rules.md +44 -0
  15. data/TODO.align/21-encapsulate-translator.md +33 -0
  16. data/TODO.align/22-dry-role-modules.md +32 -0
  17. data/TODO.align/23-final-spec-lint.md +25 -0
  18. data/TODO.align/24-autoload-wire-classes.md +84 -0
  19. data/TODO.align/25-value-container-schema-awareness.md +44 -0
  20. data/TODO.align/26-remove-dead-code.md +16 -0
  21. data/TODO.align/27-final-spec-lint.md +26 -0
  22. data/TODO.align/28-stereo-model.md +40 -0
  23. data/TODO.align/29-stereo-wire-children.md +30 -0
  24. data/TODO.align/30-stereo-translator.md +32 -0
  25. data/TODO.align/31-final-spec-lint.md +20 -0
  26. data/TODO.align/32-polymorphic-translator.md +43 -0
  27. data/TODO.align/33-polymorphic-parse.md +43 -0
  28. data/TODO.align/34-polymorphic-specs.md +16 -0
  29. data/TODO.align/35-final-spec-lint.md +10 -0
  30. data/TODO.align/36-molecular-convention-coverage.md +46 -0
  31. data/TODO.align/37-compchem-convention-coverage.md +55 -0
  32. data/TODO.align/38-dictionary-convention-coverage.md +34 -0
  33. data/TODO.align/39-unit-dictionary-convention-coverage.md +33 -0
  34. data/TODO.align/40-unit-type-dictionary-convention-coverage.md +28 -0
  35. data/TODO.align/41-expand-canonical-model-layer.md +43 -0
  36. data/TODO.align/42-translator-wire-new-models.md +31 -0
  37. data/TODO.align/43-dictionary-model-no-to-h.md +39 -0
  38. data/TODO.align/44-schema3-only-and-schema24-module.md +44 -0
  39. data/TODO.align/45-documentation-and-final-verification.md +23 -0
  40. data/TODO.align/46-lattice-vector-content.md +24 -0
  41. data/TODO.align/47-molecule-crystal-spectra-property-lists.md +23 -0
  42. data/TODO.align/48-model-list-and-module-lists.md +21 -0
  43. data/TODO.align/49-more-chemistry-models.md +34 -0
  44. data/TODO.align/50-validation-report.md +29 -0
  45. data/TODO.align/51-convention-auto-detection.md +30 -0
  46. data/TODO.align/52-schema24-legacy-elements.md +28 -0
  47. data/TODO.align/53-round-trip-integration-specs.md +30 -0
  48. data/TODO.align/54-document-versioned-parser-shim.md +38 -0
  49. data/TODO.align/55-molecule-missing-attributes.md +20 -0
  50. data/TODO.align/56-geometry-models.md +24 -0
  51. data/TODO.align/57-compchem-models.md +26 -0
  52. data/TODO.align/58-remaining-models.md +24 -0
  53. data/TODO.align/59-wire-new-models-translator.md +18 -0
  54. data/TODO.align/60-docs-and-final-verification.md +19 -0
  55. data/TODO.align/README.round10.md +30 -0
  56. data/TODO.align/README.round11.md +50 -0
  57. data/TODO.align/README.round12.md +73 -0
  58. data/TODO.align/README.round13.md +59 -0
  59. data/TODO.align/README.round14.md +48 -0
  60. data/TODO.align/README.round15.md +86 -0
  61. data/TODO.align/README.round16.md +46 -0
  62. data/TODO.align/README.round3.md +27 -0
  63. data/TODO.align/README.round4.md +18 -0
  64. data/TODO.align/README.round5.md +20 -0
  65. data/TODO.align/README.round6.md +27 -0
  66. data/TODO.align/README.round7.md +43 -0
  67. data/TODO.align/README.round8.md +24 -0
  68. data/TODO.align/README.round9.md +50 -0
  69. data/data/dictionaries/_index.yaml +9 -1
  70. data/data/dictionaries/cif.yaml +155 -0
  71. data/data/dictionaries/cml.yaml +172 -0
  72. data/data/dictionaries/cml_formula.yaml +63 -0
  73. data/data/dictionaries/cml_name.yaml +84 -0
  74. data/data/dictionaries/unit_non_si.yaml +30 -0
  75. data/data/dictionaries/unit_type.yaml +12 -0
  76. data/lib/chemicalml/cml/aliases.rb +20 -0
  77. data/lib/chemicalml/cml/base/abundance.rb +34 -0
  78. data/lib/chemicalml/cml/base/action.rb +50 -0
  79. data/lib/chemicalml/cml/base/action_list.rb +51 -0
  80. data/lib/chemicalml/cml/base/alternative.rb +28 -0
  81. data/lib/chemicalml/cml/base/amount.rb +30 -0
  82. data/lib/chemicalml/cml/base/angle.rb +44 -0
  83. data/lib/chemicalml/cml/base/annotation.rb +30 -0
  84. data/lib/chemicalml/cml/base/any_cml.rb +28 -0
  85. data/lib/chemicalml/cml/base/appinfo.rb +32 -0
  86. data/lib/chemicalml/cml/base/arg.rb +46 -0
  87. data/lib/chemicalml/cml/base/array.rb +23 -1
  88. data/lib/chemicalml/cml/base/array_list.rb +30 -0
  89. data/lib/chemicalml/cml/base/atom.rb +37 -1
  90. data/lib/chemicalml/cml/base/atom_array.rb +39 -1
  91. data/lib/chemicalml/cml/base/atom_parity.rb +9 -1
  92. data/lib/chemicalml/cml/base/atom_set.rb +30 -0
  93. data/lib/chemicalml/cml/base/atom_type.rb +36 -0
  94. data/lib/chemicalml/cml/base/atom_type_list.rb +33 -0
  95. data/lib/chemicalml/cml/base/atomic_basis_function.rb +44 -0
  96. data/lib/chemicalml/cml/base/band.rb +34 -0
  97. data/lib/chemicalml/cml/base/band_list.rb +31 -0
  98. data/lib/chemicalml/cml/base/basis_set.rb +35 -0
  99. data/lib/chemicalml/cml/base/bond.rb +11 -1
  100. data/lib/chemicalml/cml/base/bond_array.rb +17 -1
  101. data/lib/chemicalml/cml/base/bond_set.rb +30 -0
  102. data/lib/chemicalml/cml/base/bond_stereo.rb +11 -1
  103. data/lib/chemicalml/cml/base/bond_type.rb +34 -0
  104. data/lib/chemicalml/cml/base/bond_type_list.rb +33 -0
  105. data/lib/chemicalml/cml/base/cell_parameter.rb +38 -0
  106. data/lib/chemicalml/cml/base/cml_module.rb +1 -1
  107. data/lib/chemicalml/cml/base/complex_object.rb +30 -0
  108. data/lib/chemicalml/cml/base/condition_list.rb +37 -0
  109. data/lib/chemicalml/cml/base/crystal.rb +37 -0
  110. data/lib/chemicalml/cml/base/definition.rb +30 -0
  111. data/lib/chemicalml/cml/base/description.rb +32 -0
  112. data/lib/chemicalml/cml/base/dictionary.rb +7 -1
  113. data/lib/chemicalml/cml/base/dictionary_entry.rb +1 -1
  114. data/lib/chemicalml/cml/base/dimension.rb +42 -0
  115. data/lib/chemicalml/cml/base/document.rb +9 -1
  116. data/lib/chemicalml/cml/base/documentation.rb +30 -0
  117. data/lib/chemicalml/cml/base/eigen.rb +36 -0
  118. data/lib/chemicalml/cml/base/electron.rb +42 -0
  119. data/lib/chemicalml/cml/base/enumeration.rb +32 -0
  120. data/lib/chemicalml/cml/base/expression.rb +32 -0
  121. data/lib/chemicalml/cml/base/float.rb +40 -0
  122. data/lib/chemicalml/cml/base/float_array.rb +42 -0
  123. data/lib/chemicalml/cml/base/formula.rb +1 -1
  124. data/lib/chemicalml/cml/base/fragment.rb +41 -0
  125. data/lib/chemicalml/cml/base/fragment_list.rb +35 -0
  126. data/lib/chemicalml/cml/base/gradient.rb +32 -0
  127. data/lib/chemicalml/cml/base/identifier.rb +9 -1
  128. data/lib/chemicalml/cml/base/integer.rb +40 -0
  129. data/lib/chemicalml/cml/base/integer_array.rb +42 -0
  130. data/lib/chemicalml/cml/base/isotope.rb +36 -0
  131. data/lib/chemicalml/cml/base/isotope_list.rb +33 -0
  132. data/lib/chemicalml/cml/base/join.rb +36 -0
  133. data/lib/chemicalml/cml/base/kpoint.rb +34 -0
  134. data/lib/chemicalml/cml/base/kpoint_list.rb +31 -0
  135. data/lib/chemicalml/cml/base/label.rb +3 -1
  136. data/lib/chemicalml/cml/base/lattice.rb +37 -0
  137. data/lib/chemicalml/cml/base/lattice_vector.rb +32 -0
  138. data/lib/chemicalml/cml/base/length.rb +42 -0
  139. data/lib/chemicalml/cml/base/line3.rb +36 -0
  140. data/lib/chemicalml/cml/base/link.rb +58 -0
  141. data/lib/chemicalml/cml/base/list.rb +3 -1
  142. data/lib/chemicalml/cml/base/map.rb +40 -0
  143. data/lib/chemicalml/cml/base/matrix.rb +13 -1
  144. data/lib/chemicalml/cml/base/mechanism.rb +31 -0
  145. data/lib/chemicalml/cml/base/mechanism_component.rb +30 -0
  146. data/lib/chemicalml/cml/base/metadata.rb +5 -1
  147. data/lib/chemicalml/cml/base/metadata_list.rb +7 -1
  148. data/lib/chemicalml/cml/base/molecule.rb +27 -1
  149. data/lib/chemicalml/cml/base/molecule_list.rb +33 -0
  150. data/lib/chemicalml/cml/base/name.rb +3 -1
  151. data/lib/chemicalml/cml/base/object.rb +34 -0
  152. data/lib/chemicalml/cml/base/observation.rb +32 -0
  153. data/lib/chemicalml/cml/base/operator.rb +32 -0
  154. data/lib/chemicalml/cml/base/parameter.rb +11 -1
  155. data/lib/chemicalml/cml/base/parameter_list.rb +7 -1
  156. data/lib/chemicalml/cml/base/particle.rb +36 -0
  157. data/lib/chemicalml/cml/base/peak.rb +70 -0
  158. data/lib/chemicalml/cml/base/peak_group.rb +69 -0
  159. data/lib/chemicalml/cml/base/peak_list.rb +35 -0
  160. data/lib/chemicalml/cml/base/peak_structure.rb +44 -0
  161. data/lib/chemicalml/cml/base/plane3.rb +32 -0
  162. data/lib/chemicalml/cml/base/point3.rb +32 -0
  163. data/lib/chemicalml/cml/base/potential.rb +30 -0
  164. data/lib/chemicalml/cml/base/potential_form.rb +32 -0
  165. data/lib/chemicalml/cml/base/potential_list.rb +31 -0
  166. data/lib/chemicalml/cml/base/product.rb +17 -1
  167. data/lib/chemicalml/cml/base/product_list.rb +15 -1
  168. data/lib/chemicalml/cml/base/property.rb +7 -1
  169. data/lib/chemicalml/cml/base/property_list.rb +7 -1
  170. data/lib/chemicalml/cml/base/reactant.rb +17 -1
  171. data/lib/chemicalml/cml/base/reactant_list.rb +15 -1
  172. data/lib/chemicalml/cml/base/reaction.rb +25 -1
  173. data/lib/chemicalml/cml/base/reaction_list.rb +13 -1
  174. data/lib/chemicalml/cml/base/reaction_scheme.rb +43 -0
  175. data/lib/chemicalml/cml/base/reaction_step.rb +41 -0
  176. data/lib/chemicalml/cml/base/reaction_step_list.rb +39 -0
  177. data/lib/chemicalml/cml/base/reactive_centre.rb +30 -0
  178. data/lib/chemicalml/cml/base/region.rb +36 -0
  179. data/lib/chemicalml/cml/base/related_entry.rb +26 -0
  180. data/lib/chemicalml/cml/base/sample.rb +32 -0
  181. data/lib/chemicalml/cml/base/scalar.rb +19 -1
  182. data/lib/chemicalml/cml/base/spectator.rb +30 -0
  183. data/lib/chemicalml/cml/base/spectator_list.rb +31 -0
  184. data/lib/chemicalml/cml/base/spectrum.rb +53 -0
  185. data/lib/chemicalml/cml/base/spectrum_data.rb +35 -0
  186. data/lib/chemicalml/cml/base/spectrum_list.rb +35 -0
  187. data/lib/chemicalml/cml/base/sphere3.rb +32 -0
  188. data/lib/chemicalml/cml/base/stmml.rb +28 -0
  189. data/lib/chemicalml/cml/base/string.rb +32 -0
  190. data/lib/chemicalml/cml/base/string_array.rb +40 -0
  191. data/lib/chemicalml/cml/base/substance.rb +13 -1
  192. data/lib/chemicalml/cml/base/substance_list.rb +37 -0
  193. data/lib/chemicalml/cml/base/symmetry.rb +36 -0
  194. data/lib/chemicalml/cml/base/system.rb +37 -0
  195. data/lib/chemicalml/cml/base/table.rb +43 -0
  196. data/lib/chemicalml/cml/base/table_cell.rb +30 -0
  197. data/lib/chemicalml/cml/base/table_content.rb +35 -0
  198. data/lib/chemicalml/cml/base/table_header.rb +31 -0
  199. data/lib/chemicalml/cml/base/table_header_cell.rb +40 -0
  200. data/lib/chemicalml/cml/base/table_row.rb +31 -0
  201. data/lib/chemicalml/cml/base/table_row_list.rb +31 -0
  202. data/lib/chemicalml/cml/base/tcell.rb +34 -0
  203. data/lib/chemicalml/cml/base/torsion.rb +44 -0
  204. data/lib/chemicalml/cml/base/transform3.rb +30 -0
  205. data/lib/chemicalml/cml/base/transition_state.rb +28 -0
  206. data/lib/chemicalml/cml/base/trow.rb +32 -0
  207. data/lib/chemicalml/cml/base/unit.rb +13 -1
  208. data/lib/chemicalml/cml/base/unit_list.rb +13 -1
  209. data/lib/chemicalml/cml/base/unit_type.rb +11 -1
  210. data/lib/chemicalml/cml/base/unit_type_list.rb +11 -1
  211. data/lib/chemicalml/cml/base/vector3.rb +32 -0
  212. data/lib/chemicalml/cml/base/xaxis.rb +38 -0
  213. data/lib/chemicalml/cml/base/yaxis.rb +38 -0
  214. data/lib/chemicalml/cml/base/z_matrix.rb +30 -0
  215. data/lib/chemicalml/cml/base.rb +102 -0
  216. data/lib/chemicalml/cml/elements.rb +166 -43
  217. data/lib/chemicalml/cml/role/abundance.rb +12 -0
  218. data/lib/chemicalml/cml/role/action.rb +12 -0
  219. data/lib/chemicalml/cml/role/action_list.rb +12 -0
  220. data/lib/chemicalml/cml/role/alternative.rb +10 -0
  221. data/lib/chemicalml/cml/role/amount.rb +12 -0
  222. data/lib/chemicalml/cml/role/angle.rb +12 -0
  223. data/lib/chemicalml/cml/role/annotation.rb +10 -0
  224. data/lib/chemicalml/cml/role/any_cml.rb +12 -0
  225. data/lib/chemicalml/cml/role/appinfo.rb +10 -0
  226. data/lib/chemicalml/cml/role/arg.rb +10 -0
  227. data/lib/chemicalml/cml/role/array_list.rb +12 -0
  228. data/lib/chemicalml/cml/role/atom_set.rb +12 -0
  229. data/lib/chemicalml/cml/role/atom_type.rb +12 -0
  230. data/lib/chemicalml/cml/role/atom_type_list.rb +12 -0
  231. data/lib/chemicalml/cml/role/atomic_basis_function.rb +12 -0
  232. data/lib/chemicalml/cml/role/band.rb +12 -0
  233. data/lib/chemicalml/cml/role/band_list.rb +12 -0
  234. data/lib/chemicalml/cml/role/basis_set.rb +12 -0
  235. data/lib/chemicalml/cml/role/bond_set.rb +12 -0
  236. data/lib/chemicalml/cml/role/bond_type.rb +12 -0
  237. data/lib/chemicalml/cml/role/bond_type_list.rb +12 -0
  238. data/lib/chemicalml/cml/role/cell_parameter.rb +12 -0
  239. data/lib/chemicalml/cml/role/cml_module.rb +2 -3
  240. data/lib/chemicalml/cml/role/complex_object.rb +10 -0
  241. data/lib/chemicalml/cml/role/condition_list.rb +12 -0
  242. data/lib/chemicalml/cml/role/crystal.rb +12 -0
  243. data/lib/chemicalml/cml/role/definition.rb +12 -0
  244. data/lib/chemicalml/cml/role/description.rb +12 -0
  245. data/lib/chemicalml/cml/role/dimension.rb +12 -0
  246. data/lib/chemicalml/cml/role/documentation.rb +12 -0
  247. data/lib/chemicalml/cml/role/eigen.rb +12 -0
  248. data/lib/chemicalml/cml/role/electron.rb +12 -0
  249. data/lib/chemicalml/cml/role/enumeration.rb +10 -0
  250. data/lib/chemicalml/cml/role/expression.rb +10 -0
  251. data/lib/chemicalml/cml/role/float.rb +10 -0
  252. data/lib/chemicalml/cml/role/float_array.rb +10 -0
  253. data/lib/chemicalml/cml/role/fragment.rb +12 -0
  254. data/lib/chemicalml/cml/role/fragment_list.rb +12 -0
  255. data/lib/chemicalml/cml/role/gradient.rb +12 -0
  256. data/lib/chemicalml/cml/role/integer.rb +10 -0
  257. data/lib/chemicalml/cml/role/integer_array.rb +10 -0
  258. data/lib/chemicalml/cml/role/isotope.rb +12 -0
  259. data/lib/chemicalml/cml/role/isotope_list.rb +12 -0
  260. data/lib/chemicalml/cml/role/join.rb +12 -0
  261. data/lib/chemicalml/cml/role/kpoint.rb +12 -0
  262. data/lib/chemicalml/cml/role/kpoint_list.rb +12 -0
  263. data/lib/chemicalml/cml/role/lattice.rb +12 -0
  264. data/lib/chemicalml/cml/role/lattice_vector.rb +12 -0
  265. data/lib/chemicalml/cml/role/length.rb +12 -0
  266. data/lib/chemicalml/cml/role/line3.rb +12 -0
  267. data/lib/chemicalml/cml/role/link.rb +12 -0
  268. data/lib/chemicalml/cml/role/map.rb +12 -0
  269. data/lib/chemicalml/cml/role/mechanism.rb +12 -0
  270. data/lib/chemicalml/cml/role/mechanism_component.rb +12 -0
  271. data/lib/chemicalml/cml/role/molecule_list.rb +12 -0
  272. data/lib/chemicalml/cml/role/object.rb +12 -0
  273. data/lib/chemicalml/cml/role/observation.rb +12 -0
  274. data/lib/chemicalml/cml/role/operator.rb +10 -0
  275. data/lib/chemicalml/cml/role/particle.rb +12 -0
  276. data/lib/chemicalml/cml/role/peak.rb +12 -0
  277. data/lib/chemicalml/cml/role/peak_group.rb +12 -0
  278. data/lib/chemicalml/cml/role/peak_list.rb +12 -0
  279. data/lib/chemicalml/cml/role/peak_structure.rb +12 -0
  280. data/lib/chemicalml/cml/role/plane3.rb +12 -0
  281. data/lib/chemicalml/cml/role/point3.rb +12 -0
  282. data/lib/chemicalml/cml/role/potential.rb +12 -0
  283. data/lib/chemicalml/cml/role/potential_form.rb +12 -0
  284. data/lib/chemicalml/cml/role/potential_list.rb +12 -0
  285. data/lib/chemicalml/cml/role/reaction_scheme.rb +12 -0
  286. data/lib/chemicalml/cml/role/reaction_step.rb +12 -0
  287. data/lib/chemicalml/cml/role/reaction_step_list.rb +12 -0
  288. data/lib/chemicalml/cml/role/reactive_centre.rb +12 -0
  289. data/lib/chemicalml/cml/role/region.rb +12 -0
  290. data/lib/chemicalml/cml/role/related_entry.rb +10 -0
  291. data/lib/chemicalml/cml/role/sample.rb +12 -0
  292. data/lib/chemicalml/cml/role/spectator.rb +12 -0
  293. data/lib/chemicalml/cml/role/spectator_list.rb +12 -0
  294. data/lib/chemicalml/cml/role/spectrum.rb +12 -0
  295. data/lib/chemicalml/cml/role/spectrum_data.rb +12 -0
  296. data/lib/chemicalml/cml/role/spectrum_list.rb +12 -0
  297. data/lib/chemicalml/cml/role/sphere3.rb +12 -0
  298. data/lib/chemicalml/cml/role/stmml.rb +12 -0
  299. data/lib/chemicalml/cml/role/string.rb +10 -0
  300. data/lib/chemicalml/cml/role/string_array.rb +10 -0
  301. data/lib/chemicalml/cml/role/substance_list.rb +12 -0
  302. data/lib/chemicalml/cml/role/symmetry.rb +12 -0
  303. data/lib/chemicalml/cml/role/system.rb +12 -0
  304. data/lib/chemicalml/cml/role/table.rb +12 -0
  305. data/lib/chemicalml/cml/role/table_cell.rb +12 -0
  306. data/lib/chemicalml/cml/role/table_content.rb +12 -0
  307. data/lib/chemicalml/cml/role/table_header.rb +12 -0
  308. data/lib/chemicalml/cml/role/table_header_cell.rb +12 -0
  309. data/lib/chemicalml/cml/role/table_row.rb +12 -0
  310. data/lib/chemicalml/cml/role/table_row_list.rb +12 -0
  311. data/lib/chemicalml/cml/role/tcell.rb +10 -0
  312. data/lib/chemicalml/cml/role/torsion.rb +12 -0
  313. data/lib/chemicalml/cml/role/transform3.rb +12 -0
  314. data/lib/chemicalml/cml/role/transition_state.rb +12 -0
  315. data/lib/chemicalml/cml/role/trow.rb +10 -0
  316. data/lib/chemicalml/cml/role/vector3.rb +12 -0
  317. data/lib/chemicalml/cml/role/xaxis.rb +12 -0
  318. data/lib/chemicalml/cml/role/yaxis.rb +12 -0
  319. data/lib/chemicalml/cml/role/z_matrix.rb +12 -0
  320. data/lib/chemicalml/cml/role.rb +103 -1
  321. data/lib/chemicalml/cml/schema24/abundance.rb +13 -0
  322. data/lib/chemicalml/cml/schema24/action.rb +13 -0
  323. data/lib/chemicalml/cml/schema24/action_list.rb +13 -0
  324. data/lib/chemicalml/cml/schema24/alternative.rb +14 -0
  325. data/lib/chemicalml/cml/schema24/amount.rb +13 -0
  326. data/lib/chemicalml/cml/schema24/angle.rb +13 -0
  327. data/lib/chemicalml/cml/schema24/annotation.rb +15 -0
  328. data/lib/chemicalml/cml/schema24/any_cml.rb +13 -0
  329. data/lib/chemicalml/cml/schema24/appinfo.rb +15 -0
  330. data/lib/chemicalml/cml/schema24/arg.rb +14 -0
  331. data/lib/chemicalml/cml/schema24/array.rb +15 -0
  332. data/lib/chemicalml/cml/schema24/array_list.rb +13 -0
  333. data/lib/chemicalml/cml/schema24/atom.rb +15 -0
  334. data/lib/chemicalml/cml/schema24/atom_array.rb +15 -0
  335. data/lib/chemicalml/cml/schema24/atom_parity.rb +15 -0
  336. data/lib/chemicalml/cml/schema24/atom_set.rb +13 -0
  337. data/lib/chemicalml/cml/schema24/atom_type.rb +13 -0
  338. data/lib/chemicalml/cml/schema24/atom_type_list.rb +13 -0
  339. data/lib/chemicalml/cml/schema24/atomic_basis_function.rb +13 -0
  340. data/lib/chemicalml/cml/schema24/band.rb +13 -0
  341. data/lib/chemicalml/cml/schema24/band_list.rb +13 -0
  342. data/lib/chemicalml/cml/schema24/basis_set.rb +13 -0
  343. data/lib/chemicalml/cml/schema24/bond.rb +15 -0
  344. data/lib/chemicalml/cml/schema24/bond_array.rb +15 -0
  345. data/lib/chemicalml/cml/schema24/bond_set.rb +13 -0
  346. data/lib/chemicalml/cml/schema24/bond_stereo.rb +15 -0
  347. data/lib/chemicalml/cml/schema24/bond_type.rb +13 -0
  348. data/lib/chemicalml/cml/schema24/bond_type_list.rb +13 -0
  349. data/lib/chemicalml/cml/schema24/cell_parameter.rb +13 -0
  350. data/lib/chemicalml/cml/schema24/cml_module.rb +18 -0
  351. data/lib/chemicalml/cml/schema24/complex_object.rb +14 -0
  352. data/lib/chemicalml/cml/schema24/condition_list.rb +13 -0
  353. data/lib/chemicalml/cml/schema24/configuration.rb +5 -2
  354. data/lib/chemicalml/cml/schema24/context.rb +18 -0
  355. data/lib/chemicalml/cml/schema24/crystal.rb +13 -0
  356. data/lib/chemicalml/cml/schema24/definition.rb +13 -0
  357. data/lib/chemicalml/cml/schema24/description.rb +13 -0
  358. data/lib/chemicalml/cml/schema24/dictionary.rb +15 -0
  359. data/lib/chemicalml/cml/schema24/dictionary_entry.rb +15 -0
  360. data/lib/chemicalml/cml/schema24/dimension.rb +13 -0
  361. data/lib/chemicalml/cml/schema24/document.rb +15 -0
  362. data/lib/chemicalml/cml/schema24/documentation.rb +13 -0
  363. data/lib/chemicalml/cml/schema24/eigen.rb +13 -0
  364. data/lib/chemicalml/cml/schema24/electron.rb +13 -0
  365. data/lib/chemicalml/cml/schema24/enumeration.rb +16 -0
  366. data/lib/chemicalml/cml/schema24/expression.rb +14 -0
  367. data/lib/chemicalml/cml/schema24/float.rb +14 -0
  368. data/lib/chemicalml/cml/schema24/float_array.rb +14 -0
  369. data/lib/chemicalml/cml/schema24/formula.rb +15 -0
  370. data/lib/chemicalml/cml/schema24/fragment.rb +13 -0
  371. data/lib/chemicalml/cml/schema24/fragment_list.rb +13 -0
  372. data/lib/chemicalml/cml/schema24/gradient.rb +13 -0
  373. data/lib/chemicalml/cml/schema24/identifier.rb +15 -0
  374. data/lib/chemicalml/cml/schema24/integer.rb +14 -0
  375. data/lib/chemicalml/cml/schema24/integer_array.rb +14 -0
  376. data/lib/chemicalml/cml/schema24/isotope.rb +13 -0
  377. data/lib/chemicalml/cml/schema24/isotope_list.rb +13 -0
  378. data/lib/chemicalml/cml/schema24/join.rb +13 -0
  379. data/lib/chemicalml/cml/schema24/kpoint.rb +13 -0
  380. data/lib/chemicalml/cml/schema24/kpoint_list.rb +13 -0
  381. data/lib/chemicalml/cml/schema24/label.rb +15 -0
  382. data/lib/chemicalml/cml/schema24/lattice.rb +13 -0
  383. data/lib/chemicalml/cml/schema24/lattice_vector.rb +13 -0
  384. data/lib/chemicalml/cml/schema24/length.rb +13 -0
  385. data/lib/chemicalml/cml/schema24/line3.rb +13 -0
  386. data/lib/chemicalml/cml/schema24/link.rb +13 -0
  387. data/lib/chemicalml/cml/schema24/list.rb +15 -0
  388. data/lib/chemicalml/cml/schema24/map.rb +13 -0
  389. data/lib/chemicalml/cml/schema24/matrix.rb +15 -0
  390. data/lib/chemicalml/cml/schema24/mechanism.rb +13 -0
  391. data/lib/chemicalml/cml/schema24/mechanism_component.rb +13 -0
  392. data/lib/chemicalml/cml/schema24/metadata.rb +15 -0
  393. data/lib/chemicalml/cml/schema24/metadata_list.rb +15 -0
  394. data/lib/chemicalml/cml/schema24/molecule.rb +15 -0
  395. data/lib/chemicalml/cml/schema24/molecule_list.rb +13 -0
  396. data/lib/chemicalml/cml/schema24/name.rb +15 -0
  397. data/lib/chemicalml/cml/schema24/object.rb +13 -0
  398. data/lib/chemicalml/cml/schema24/observation.rb +13 -0
  399. data/lib/chemicalml/cml/schema24/operator.rb +14 -0
  400. data/lib/chemicalml/cml/schema24/parameter.rb +15 -0
  401. data/lib/chemicalml/cml/schema24/parameter_list.rb +15 -0
  402. data/lib/chemicalml/cml/schema24/particle.rb +13 -0
  403. data/lib/chemicalml/cml/schema24/peak.rb +13 -0
  404. data/lib/chemicalml/cml/schema24/peak_group.rb +13 -0
  405. data/lib/chemicalml/cml/schema24/peak_list.rb +13 -0
  406. data/lib/chemicalml/cml/schema24/peak_structure.rb +13 -0
  407. data/lib/chemicalml/cml/schema24/plane3.rb +13 -0
  408. data/lib/chemicalml/cml/schema24/point3.rb +13 -0
  409. data/lib/chemicalml/cml/schema24/potential.rb +13 -0
  410. data/lib/chemicalml/cml/schema24/potential_form.rb +13 -0
  411. data/lib/chemicalml/cml/schema24/potential_list.rb +13 -0
  412. data/lib/chemicalml/cml/schema24/product.rb +15 -0
  413. data/lib/chemicalml/cml/schema24/product_list.rb +15 -0
  414. data/lib/chemicalml/cml/schema24/property.rb +15 -0
  415. data/lib/chemicalml/cml/schema24/property_list.rb +15 -0
  416. data/lib/chemicalml/cml/schema24/reactant.rb +15 -0
  417. data/lib/chemicalml/cml/schema24/reactant_list.rb +15 -0
  418. data/lib/chemicalml/cml/schema24/reaction.rb +15 -0
  419. data/lib/chemicalml/cml/schema24/reaction_list.rb +15 -0
  420. data/lib/chemicalml/cml/schema24/reaction_scheme.rb +13 -0
  421. data/lib/chemicalml/cml/schema24/reaction_step.rb +13 -0
  422. data/lib/chemicalml/cml/schema24/reaction_step_list.rb +13 -0
  423. data/lib/chemicalml/cml/schema24/reactive_centre.rb +13 -0
  424. data/lib/chemicalml/cml/schema24/region.rb +13 -0
  425. data/lib/chemicalml/cml/schema24/related_entry.rb +14 -0
  426. data/lib/chemicalml/cml/schema24/sample.rb +13 -0
  427. data/lib/chemicalml/cml/schema24/scalar.rb +15 -0
  428. data/lib/chemicalml/cml/schema24/spectator.rb +13 -0
  429. data/lib/chemicalml/cml/schema24/spectator_list.rb +13 -0
  430. data/lib/chemicalml/cml/schema24/spectrum.rb +13 -0
  431. data/lib/chemicalml/cml/schema24/spectrum_data.rb +13 -0
  432. data/lib/chemicalml/cml/schema24/spectrum_list.rb +13 -0
  433. data/lib/chemicalml/cml/schema24/sphere3.rb +13 -0
  434. data/lib/chemicalml/cml/schema24/stmml.rb +13 -0
  435. data/lib/chemicalml/cml/schema24/string.rb +14 -0
  436. data/lib/chemicalml/cml/schema24/string_array.rb +14 -0
  437. data/lib/chemicalml/cml/schema24/substance.rb +15 -0
  438. data/lib/chemicalml/cml/schema24/substance_list.rb +13 -0
  439. data/lib/chemicalml/cml/schema24/symmetry.rb +13 -0
  440. data/lib/chemicalml/cml/schema24/system.rb +13 -0
  441. data/lib/chemicalml/cml/schema24/table.rb +13 -0
  442. data/lib/chemicalml/cml/schema24/table_cell.rb +13 -0
  443. data/lib/chemicalml/cml/schema24/table_content.rb +13 -0
  444. data/lib/chemicalml/cml/schema24/table_header.rb +13 -0
  445. data/lib/chemicalml/cml/schema24/table_header_cell.rb +13 -0
  446. data/lib/chemicalml/cml/schema24/table_row.rb +13 -0
  447. data/lib/chemicalml/cml/schema24/table_row_list.rb +13 -0
  448. data/lib/chemicalml/cml/schema24/tcell.rb +14 -0
  449. data/lib/chemicalml/cml/schema24/torsion.rb +13 -0
  450. data/lib/chemicalml/cml/schema24/transform3.rb +13 -0
  451. data/lib/chemicalml/cml/schema24/transition_state.rb +13 -0
  452. data/lib/chemicalml/cml/schema24/trow.rb +14 -0
  453. data/lib/chemicalml/cml/schema24/unit.rb +15 -0
  454. data/lib/chemicalml/cml/schema24/unit_list.rb +15 -0
  455. data/lib/chemicalml/cml/schema24/unit_type.rb +15 -0
  456. data/lib/chemicalml/cml/schema24/unit_type_list.rb +15 -0
  457. data/lib/chemicalml/cml/schema24/vector3.rb +13 -0
  458. data/lib/chemicalml/cml/schema24/xaxis.rb +13 -0
  459. data/lib/chemicalml/cml/schema24/yaxis.rb +13 -0
  460. data/lib/chemicalml/cml/schema24/z_matrix.rb +13 -0
  461. data/lib/chemicalml/cml/schema24.rb +159 -19
  462. data/lib/chemicalml/cml/schema3/abundance.rb +13 -0
  463. data/lib/chemicalml/cml/schema3/action.rb +13 -0
  464. data/lib/chemicalml/cml/schema3/action_list.rb +13 -0
  465. data/lib/chemicalml/cml/schema3/amount.rb +13 -0
  466. data/lib/chemicalml/cml/schema3/angle.rb +13 -0
  467. data/lib/chemicalml/cml/schema3/any_cml.rb +13 -0
  468. data/lib/chemicalml/cml/schema3/array.rb +15 -0
  469. data/lib/chemicalml/cml/schema3/array_list.rb +13 -0
  470. data/lib/chemicalml/cml/schema3/atom.rb +15 -0
  471. data/lib/chemicalml/cml/schema3/atom_array.rb +15 -0
  472. data/lib/chemicalml/cml/schema3/atom_parity.rb +15 -0
  473. data/lib/chemicalml/cml/schema3/atom_set.rb +13 -0
  474. data/lib/chemicalml/cml/schema3/atom_type.rb +13 -0
  475. data/lib/chemicalml/cml/schema3/atom_type_list.rb +13 -0
  476. data/lib/chemicalml/cml/schema3/atomic_basis_function.rb +13 -0
  477. data/lib/chemicalml/cml/schema3/band.rb +13 -0
  478. data/lib/chemicalml/cml/schema3/band_list.rb +13 -0
  479. data/lib/chemicalml/cml/schema3/basis_set.rb +13 -0
  480. data/lib/chemicalml/cml/schema3/bond.rb +15 -0
  481. data/lib/chemicalml/cml/schema3/bond_array.rb +15 -0
  482. data/lib/chemicalml/cml/schema3/bond_set.rb +13 -0
  483. data/lib/chemicalml/cml/schema3/bond_stereo.rb +15 -0
  484. data/lib/chemicalml/cml/schema3/bond_type.rb +13 -0
  485. data/lib/chemicalml/cml/schema3/bond_type_list.rb +13 -0
  486. data/lib/chemicalml/cml/schema3/cell_parameter.rb +13 -0
  487. data/lib/chemicalml/cml/schema3/cml_module.rb +15 -0
  488. data/lib/chemicalml/cml/schema3/condition_list.rb +13 -0
  489. data/lib/chemicalml/cml/schema3/context.rb +18 -0
  490. data/lib/chemicalml/cml/schema3/crystal.rb +13 -0
  491. data/lib/chemicalml/cml/schema3/definition.rb +13 -0
  492. data/lib/chemicalml/cml/schema3/description.rb +13 -0
  493. data/lib/chemicalml/cml/schema3/dictionary.rb +15 -0
  494. data/lib/chemicalml/cml/schema3/dictionary_entry.rb +15 -0
  495. data/lib/chemicalml/cml/schema3/dimension.rb +13 -0
  496. data/lib/chemicalml/cml/schema3/document.rb +15 -0
  497. data/lib/chemicalml/cml/schema3/documentation.rb +13 -0
  498. data/lib/chemicalml/cml/schema3/eigen.rb +13 -0
  499. data/lib/chemicalml/cml/schema3/electron.rb +13 -0
  500. data/lib/chemicalml/cml/schema3/formula.rb +15 -0
  501. data/lib/chemicalml/cml/schema3/fragment.rb +13 -0
  502. data/lib/chemicalml/cml/schema3/fragment_list.rb +13 -0
  503. data/lib/chemicalml/cml/schema3/gradient.rb +13 -0
  504. data/lib/chemicalml/cml/schema3/identifier.rb +15 -0
  505. data/lib/chemicalml/cml/schema3/isotope.rb +13 -0
  506. data/lib/chemicalml/cml/schema3/isotope_list.rb +13 -0
  507. data/lib/chemicalml/cml/schema3/join.rb +13 -0
  508. data/lib/chemicalml/cml/schema3/kpoint.rb +13 -0
  509. data/lib/chemicalml/cml/schema3/kpoint_list.rb +13 -0
  510. data/lib/chemicalml/cml/schema3/label.rb +15 -0
  511. data/lib/chemicalml/cml/schema3/lattice.rb +13 -0
  512. data/lib/chemicalml/cml/schema3/lattice_vector.rb +13 -0
  513. data/lib/chemicalml/cml/schema3/length.rb +13 -0
  514. data/lib/chemicalml/cml/schema3/line3.rb +13 -0
  515. data/lib/chemicalml/cml/schema3/link.rb +13 -0
  516. data/lib/chemicalml/cml/schema3/list.rb +15 -0
  517. data/lib/chemicalml/cml/schema3/map.rb +13 -0
  518. data/lib/chemicalml/cml/schema3/matrix.rb +15 -0
  519. data/lib/chemicalml/cml/schema3/mechanism.rb +13 -0
  520. data/lib/chemicalml/cml/schema3/mechanism_component.rb +13 -0
  521. data/lib/chemicalml/cml/schema3/metadata.rb +15 -0
  522. data/lib/chemicalml/cml/schema3/metadata_list.rb +15 -0
  523. data/lib/chemicalml/cml/schema3/molecule.rb +15 -0
  524. data/lib/chemicalml/cml/schema3/molecule_list.rb +13 -0
  525. data/lib/chemicalml/cml/schema3/name.rb +15 -0
  526. data/lib/chemicalml/cml/schema3/object.rb +13 -0
  527. data/lib/chemicalml/cml/schema3/observation.rb +13 -0
  528. data/lib/chemicalml/cml/schema3/parameter.rb +15 -0
  529. data/lib/chemicalml/cml/schema3/parameter_list.rb +15 -0
  530. data/lib/chemicalml/cml/schema3/particle.rb +13 -0
  531. data/lib/chemicalml/cml/schema3/peak.rb +13 -0
  532. data/lib/chemicalml/cml/schema3/peak_group.rb +13 -0
  533. data/lib/chemicalml/cml/schema3/peak_list.rb +13 -0
  534. data/lib/chemicalml/cml/schema3/peak_structure.rb +13 -0
  535. data/lib/chemicalml/cml/schema3/plane3.rb +13 -0
  536. data/lib/chemicalml/cml/schema3/point3.rb +13 -0
  537. data/lib/chemicalml/cml/schema3/potential.rb +13 -0
  538. data/lib/chemicalml/cml/schema3/potential_form.rb +13 -0
  539. data/lib/chemicalml/cml/schema3/potential_list.rb +13 -0
  540. data/lib/chemicalml/cml/schema3/product.rb +15 -0
  541. data/lib/chemicalml/cml/schema3/product_list.rb +15 -0
  542. data/lib/chemicalml/cml/schema3/property.rb +15 -0
  543. data/lib/chemicalml/cml/schema3/property_list.rb +15 -0
  544. data/lib/chemicalml/cml/schema3/reactant.rb +15 -0
  545. data/lib/chemicalml/cml/schema3/reactant_list.rb +15 -0
  546. data/lib/chemicalml/cml/schema3/reaction.rb +15 -0
  547. data/lib/chemicalml/cml/schema3/reaction_list.rb +15 -0
  548. data/lib/chemicalml/cml/schema3/reaction_scheme.rb +13 -0
  549. data/lib/chemicalml/cml/schema3/reaction_step.rb +13 -0
  550. data/lib/chemicalml/cml/schema3/reaction_step_list.rb +13 -0
  551. data/lib/chemicalml/cml/schema3/reactive_centre.rb +13 -0
  552. data/lib/chemicalml/cml/schema3/region.rb +13 -0
  553. data/lib/chemicalml/cml/schema3/sample.rb +13 -0
  554. data/lib/chemicalml/cml/schema3/scalar.rb +15 -0
  555. data/lib/chemicalml/cml/schema3/spectator.rb +13 -0
  556. data/lib/chemicalml/cml/schema3/spectator_list.rb +13 -0
  557. data/lib/chemicalml/cml/schema3/spectrum.rb +13 -0
  558. data/lib/chemicalml/cml/schema3/spectrum_data.rb +13 -0
  559. data/lib/chemicalml/cml/schema3/spectrum_list.rb +13 -0
  560. data/lib/chemicalml/cml/schema3/sphere3.rb +13 -0
  561. data/lib/chemicalml/cml/schema3/stmml.rb +13 -0
  562. data/lib/chemicalml/cml/schema3/substance.rb +15 -0
  563. data/lib/chemicalml/cml/schema3/substance_list.rb +13 -0
  564. data/lib/chemicalml/cml/schema3/symmetry.rb +13 -0
  565. data/lib/chemicalml/cml/schema3/system.rb +13 -0
  566. data/lib/chemicalml/cml/schema3/table.rb +13 -0
  567. data/lib/chemicalml/cml/schema3/table_cell.rb +13 -0
  568. data/lib/chemicalml/cml/schema3/table_content.rb +13 -0
  569. data/lib/chemicalml/cml/schema3/table_header.rb +13 -0
  570. data/lib/chemicalml/cml/schema3/table_header_cell.rb +13 -0
  571. data/lib/chemicalml/cml/schema3/table_row.rb +13 -0
  572. data/lib/chemicalml/cml/schema3/table_row_list.rb +13 -0
  573. data/lib/chemicalml/cml/schema3/torsion.rb +13 -0
  574. data/lib/chemicalml/cml/schema3/transform3.rb +13 -0
  575. data/lib/chemicalml/cml/schema3/transition_state.rb +13 -0
  576. data/lib/chemicalml/cml/schema3/unit.rb +15 -0
  577. data/lib/chemicalml/cml/schema3/unit_list.rb +15 -0
  578. data/lib/chemicalml/cml/schema3/unit_type.rb +15 -0
  579. data/lib/chemicalml/cml/schema3/unit_type_list.rb +15 -0
  580. data/lib/chemicalml/cml/schema3/vector3.rb +13 -0
  581. data/lib/chemicalml/cml/schema3/xaxis.rb +13 -0
  582. data/lib/chemicalml/cml/schema3/yaxis.rb +13 -0
  583. data/lib/chemicalml/cml/schema3/z_matrix.rb +13 -0
  584. data/lib/chemicalml/cml/schema3.rb +132 -17
  585. data/lib/chemicalml/cml/wire_class_registry.rb +42 -0
  586. data/lib/chemicalml/cml.rb +136 -44
  587. data/lib/chemicalml/context_configuration.rb +8 -2
  588. data/lib/chemicalml/convention/base.rb +17 -3
  589. data/lib/chemicalml/convention/compchem/constraints/array_rules.rb +44 -0
  590. data/lib/chemicalml/convention/compchem/constraints/calculation_requires_finalization.rb +28 -0
  591. data/lib/chemicalml/convention/compchem/constraints/compchem_module_must_contain_job_list.rb +4 -4
  592. data/lib/chemicalml/convention/compchem/constraints/environment_at_most_one_property_list.rb +26 -0
  593. data/lib/chemicalml/convention/compchem/constraints/environment_must_not_contain_parameter.rb +28 -0
  594. data/lib/chemicalml/convention/compchem/constraints/finalization_at_most_one_molecule.rb +26 -0
  595. data/lib/chemicalml/convention/compchem/constraints/finalization_at_most_one_property_list.rb +26 -0
  596. data/lib/chemicalml/convention/compchem/constraints/finalization_must_not_contain_parameter.rb +27 -0
  597. data/lib/chemicalml/convention/compchem/constraints/initialization_at_most_one_molecule.rb +26 -0
  598. data/lib/chemicalml/convention/compchem/constraints/initialization_at_most_one_parameter_list.rb +26 -0
  599. data/lib/chemicalml/convention/compchem/constraints/initialization_must_not_contain_property.rb +28 -0
  600. data/lib/chemicalml/convention/compchem/constraints/job_list_module_must_have_id.rb +24 -0
  601. data/lib/chemicalml/convention/compchem/constraints/job_module_at_most_one_environment.rb +25 -0
  602. data/lib/chemicalml/convention/compchem/constraints/job_module_at_most_one_finalization.rb +25 -0
  603. data/lib/chemicalml/convention/compchem/constraints/job_module_must_have_id.rb +24 -0
  604. data/lib/chemicalml/convention/compchem/constraints/job_must_contain_initialization.rb +6 -9
  605. data/lib/chemicalml/convention/compchem/constraints/matrix_rules.rb +48 -0
  606. data/lib/chemicalml/convention/compchem/constraints/module_predicates.rb +50 -0
  607. data/lib/chemicalml/convention/compchem/constraints/scalar_units.rb +42 -0
  608. data/lib/chemicalml/convention/compchem/constraints.rb +36 -2
  609. data/lib/chemicalml/convention/compchem.rb +16 -0
  610. data/lib/chemicalml/convention/constraint.rb +31 -18
  611. data/lib/chemicalml/convention/coordinator.rb +89 -0
  612. data/lib/chemicalml/convention/detection.rb +33 -0
  613. data/lib/chemicalml/convention/dictionary/constraints/dictionary_must_have_namespace.rb +28 -0
  614. data/lib/chemicalml/convention/dictionary/constraints/dictionary_namespace_should_end_with_slash_or_hash.rb +32 -0
  615. data/lib/chemicalml/convention/dictionary/constraints/entry_id_must_match_pattern.rb +33 -0
  616. data/lib/chemicalml/convention/dictionary/constraints/entry_ids_unique_within_dictionary.rb +3 -3
  617. data/lib/chemicalml/convention/dictionary/constraints/entry_must_contain_definition.rb +28 -0
  618. data/lib/chemicalml/convention/dictionary/constraints/entry_must_have_id_and_term.rb +5 -5
  619. data/lib/chemicalml/convention/dictionary/constraints/entry_must_have_unit_type.rb +30 -0
  620. data/lib/chemicalml/convention/dictionary/constraints/entry_units_co_constraints.rb +44 -0
  621. data/lib/chemicalml/convention/dictionary/constraints.rb +12 -0
  622. data/lib/chemicalml/convention/dictionary.rb +6 -0
  623. data/lib/chemicalml/convention/molecular/constraints/atom_array_must_be_child_of_molecule_or_formula.rb +40 -0
  624. data/lib/chemicalml/convention/molecular/constraints/atom_array_must_contain_atoms.rb +3 -3
  625. data/lib/chemicalml/convention/molecular/constraints/atom_coordinates_must_be_paired.rb +32 -0
  626. data/lib/chemicalml/convention/molecular/constraints/atom_id_must_match_pattern.rb +26 -0
  627. data/lib/chemicalml/convention/molecular/constraints/atom_ids_unique_within_molecule.rb +2 -2
  628. data/lib/chemicalml/convention/molecular/constraints/atom_must_have_element_type.rb +20 -0
  629. data/lib/chemicalml/convention/molecular/constraints/atom_must_have_id.rb +20 -0
  630. data/lib/chemicalml/convention/molecular/constraints/bond_array_must_be_child_of_molecule.rb +36 -0
  631. data/lib/chemicalml/convention/molecular/constraints/bond_ids_unique_within_molecule.rb +43 -0
  632. data/lib/chemicalml/convention/molecular/constraints/bond_must_have_atom_refs2.rb +20 -0
  633. data/lib/chemicalml/convention/molecular/constraints/bond_must_have_order.rb +20 -0
  634. data/lib/chemicalml/convention/molecular/constraints/bond_must_reference_atoms_in_same_molecule.rb +3 -3
  635. data/lib/chemicalml/convention/molecular/constraints/bond_order_other_must_have_dict_ref.rb +33 -0
  636. data/lib/chemicalml/convention/molecular/constraints/bond_order_should_not_be_numeric.rb +27 -0
  637. data/lib/chemicalml/convention/molecular/constraints/bond_stereo_cis_trans_must_have_atom_refs4.rb +45 -0
  638. data/lib/chemicalml/convention/molecular/constraints/bond_stereo_other_must_have_dict_ref.rb +32 -0
  639. data/lib/chemicalml/convention/molecular/constraints/bond_stereo_wedge_hash_must_have_atom_refs2.rb +45 -0
  640. data/lib/chemicalml/convention/molecular/constraints/molecule_atom_array_mutually_exclusive_with_children.rb +32 -0
  641. data/lib/chemicalml/convention/molecular/constraints/molecule_bond_array_mutually_exclusive_with_children.rb +31 -0
  642. data/lib/chemicalml/convention/molecular/constraints/molecule_count_must_not_appear_on_top_level.rb +34 -0
  643. data/lib/chemicalml/convention/molecular/constraints/molecule_must_have_id.rb +20 -0
  644. data/lib/chemicalml/convention/molecular/constraints/property_must_have_dict_ref.rb +20 -0
  645. data/lib/chemicalml/convention/molecular/constraints/scalar_must_have_data_type.rb +20 -0
  646. data/lib/chemicalml/convention/molecular/constraints.rb +40 -3
  647. data/lib/chemicalml/convention/molecular.rb +20 -0
  648. data/lib/chemicalml/convention/registry.rb +17 -0
  649. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_list_must_contain_at_least_one_unit.rb +28 -0
  650. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_list_must_have_namespace.rb +36 -0
  651. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_must_contain_definition.rb +27 -0
  652. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_must_have_id.rb +27 -0
  653. data/lib/chemicalml/convention/unit_dictionary/constraints/unit_must_have_symbol_and_unit_type.rb +3 -3
  654. data/lib/chemicalml/convention/unit_dictionary/constraints.rb +9 -1
  655. data/lib/chemicalml/convention/unit_dictionary.rb +4 -0
  656. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_id_must_match_pattern.rb +31 -0
  657. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_list_must_contain_at_least_one_unit_type.rb +27 -0
  658. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_list_must_have_namespace.rb +35 -0
  659. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_must_contain_definition.rb +27 -0
  660. data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_must_have_id_and_name.rb +5 -5
  661. data/lib/chemicalml/convention/unit_type_dictionary/constraints.rb +9 -1
  662. data/lib/chemicalml/convention/unit_type_dictionary.rb +4 -0
  663. data/lib/chemicalml/convention/validation_report.rb +63 -0
  664. data/lib/chemicalml/convention.rb +11 -0
  665. data/lib/chemicalml/dictionary/entry.rb +6 -6
  666. data/lib/chemicalml/dictionary/enum.rb +1 -1
  667. data/lib/chemicalml/dictionary/link.rb +3 -3
  668. data/lib/chemicalml/dictionary/loader.rb +19 -19
  669. data/lib/chemicalml/dictionary/model.rb +5 -5
  670. data/lib/chemicalml/dictionary/registry.rb +9 -9
  671. data/lib/chemicalml/version.rb +1 -1
  672. data/lib/chemicalml/versioned_parser.rb +71 -12
  673. data/lib/chemicalml.rb +4 -3
  674. metadata +594 -69
  675. data/lib/chemicalml/cml/array.rb +0 -10
  676. data/lib/chemicalml/cml/atom.rb +0 -10
  677. data/lib/chemicalml/cml/atom_array.rb +0 -10
  678. data/lib/chemicalml/cml/atom_parity.rb +0 -10
  679. data/lib/chemicalml/cml/bond.rb +0 -10
  680. data/lib/chemicalml/cml/bond_array.rb +0 -10
  681. data/lib/chemicalml/cml/bond_stereo.rb +0 -10
  682. data/lib/chemicalml/cml/cml_module.rb +0 -10
  683. data/lib/chemicalml/cml/dictionary.rb +0 -10
  684. data/lib/chemicalml/cml/dictionary_entry.rb +0 -10
  685. data/lib/chemicalml/cml/document.rb +0 -10
  686. data/lib/chemicalml/cml/formula.rb +0 -10
  687. data/lib/chemicalml/cml/identifier.rb +0 -10
  688. data/lib/chemicalml/cml/label.rb +0 -10
  689. data/lib/chemicalml/cml/list.rb +0 -10
  690. data/lib/chemicalml/cml/matrix.rb +0 -10
  691. data/lib/chemicalml/cml/metadata.rb +0 -10
  692. data/lib/chemicalml/cml/metadata_list.rb +0 -10
  693. data/lib/chemicalml/cml/molecule.rb +0 -10
  694. data/lib/chemicalml/cml/name.rb +0 -10
  695. data/lib/chemicalml/cml/parameter.rb +0 -10
  696. data/lib/chemicalml/cml/parameter_list.rb +0 -10
  697. data/lib/chemicalml/cml/product.rb +0 -10
  698. data/lib/chemicalml/cml/product_list.rb +0 -10
  699. data/lib/chemicalml/cml/property.rb +0 -10
  700. data/lib/chemicalml/cml/property_list.rb +0 -10
  701. data/lib/chemicalml/cml/reactant.rb +0 -10
  702. data/lib/chemicalml/cml/reactant_list.rb +0 -10
  703. data/lib/chemicalml/cml/reaction.rb +0 -10
  704. data/lib/chemicalml/cml/reaction_list.rb +0 -10
  705. data/lib/chemicalml/cml/scalar.rb +0 -10
  706. data/lib/chemicalml/cml/substance.rb +0 -10
  707. data/lib/chemicalml/cml/translator/value_translations.rb +0 -265
  708. data/lib/chemicalml/cml/translator.rb +0 -233
  709. data/lib/chemicalml/cml/unit.rb +0 -10
  710. data/lib/chemicalml/cml/unit_list.rb +0 -10
  711. data/lib/chemicalml/cml/unit_type.rb +0 -10
  712. data/lib/chemicalml/cml/unit_type_list.rb +0 -10
  713. data/lib/chemicalml/cml/wire_class_macro.rb +0 -45
  714. data/lib/chemicalml/model/atom.rb +0 -40
  715. data/lib/chemicalml/model/bond.rb +0 -33
  716. data/lib/chemicalml/model/cml_array.rb +0 -27
  717. data/lib/chemicalml/model/cml_module.rb +0 -45
  718. data/lib/chemicalml/model/document.rb +0 -29
  719. data/lib/chemicalml/model/formula.rb +0 -34
  720. data/lib/chemicalml/model/identifier.rb +0 -21
  721. data/lib/chemicalml/model/label.rb +0 -21
  722. data/lib/chemicalml/model/matrix.rb +0 -29
  723. data/lib/chemicalml/model/metadata.rb +0 -23
  724. data/lib/chemicalml/model/metadata_list.rb +0 -25
  725. data/lib/chemicalml/model/molecule.rb +0 -38
  726. data/lib/chemicalml/model/name.rb +0 -21
  727. data/lib/chemicalml/model/node.rb +0 -45
  728. data/lib/chemicalml/model/parameter.rb +0 -27
  729. data/lib/chemicalml/model/parameter_list.rb +0 -25
  730. data/lib/chemicalml/model/product.rb +0 -21
  731. data/lib/chemicalml/model/product_list.rb +0 -21
  732. data/lib/chemicalml/model/property.rb +0 -28
  733. data/lib/chemicalml/model/property_list.rb +0 -25
  734. data/lib/chemicalml/model/reactant.rb +0 -21
  735. data/lib/chemicalml/model/reactant_list.rb +0 -21
  736. data/lib/chemicalml/model/reaction.rb +0 -41
  737. data/lib/chemicalml/model/reaction_list.rb +0 -23
  738. data/lib/chemicalml/model/scalar.rb +0 -25
  739. data/lib/chemicalml/model/substance.rb +0 -25
  740. data/lib/chemicalml/model.rb +0 -38
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Alternative
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Alternative
10
+ attribute :id, :string
11
+ attribute :convention, :string
12
+ attribute :alternative_type, :string
13
+ attribute :content, :string
14
+
15
+ xml do
16
+ namespace Chemicalml::Cml::Namespace
17
+ root "alternative"
18
+ map_attribute "id", to: :id
19
+ map_attribute "convention", to: :convention
20
+ map_attribute "alternativeType", to: :alternative_type
21
+ map_content to: :content
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Amount
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Amount
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :units, :string
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "amount"
19
+ map_attribute "id", to: :id
20
+ map_attribute "title", to: :title
21
+ map_attribute "dictRef", to: :dict_ref
22
+ map_attribute "convention", to: :convention
23
+ map_attribute "units", to: :units
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Angle
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Angle
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :atomRefs3, :string
15
+ attribute :units, :string
16
+
17
+ attribute :angle_units, :string
18
+ attribute :error_value, :string
19
+ attribute :error_basis, :string
20
+ attribute :min, :string
21
+ attribute :max, :string
22
+ attribute :ref, :string
23
+ xml do
24
+ namespace Chemicalml::Cml::Namespace
25
+ root "angle"
26
+ map_attribute "id", to: :id
27
+ map_attribute "title", to: :title
28
+ map_attribute "dictRef", to: :dict_ref
29
+ map_attribute "convention", to: :convention
30
+ map_attribute "atomRefs3", to: :atomRefs3
31
+ map_attribute "units", to: :units
32
+ map_attribute "angleUnits", to: :angle_units
33
+ map_attribute "errorValue", to: :error_value
34
+ map_attribute "errorBasis", to: :error_basis
35
+ map_attribute "min", to: :min
36
+ map_attribute "max", to: :max
37
+ map_attribute "ref", to: :ref
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Annotation
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Annotation
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :documentation, :documentation
15
+
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "annotation"
19
+ map_attribute "id", to: :id
20
+ map_attribute "title", to: :title
21
+ map_attribute "dictRef", to: :dict_ref
22
+ map_attribute "convention", to: :convention
23
+ map_element "documentation", to: :documentation
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module AnyCml
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::AnyCml
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ xml do
16
+ namespace Chemicalml::Cml::Namespace
17
+ root "anyCml"
18
+ map_attribute "id", to: :id
19
+ map_attribute "title", to: :title
20
+ map_attribute "dictRef", to: :dict_ref
21
+ map_attribute "convention", to: :convention
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Appinfo
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Appinfo
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :content, :string
15
+
16
+ attribute :role, :string
17
+ xml do
18
+ namespace Chemicalml::Cml::Namespace
19
+ root "appinfo"
20
+ map_attribute "id", to: :id
21
+ map_attribute "title", to: :title
22
+ map_attribute "dictRef", to: :dict_ref
23
+ map_attribute "convention", to: :convention
24
+ map_content to: :content
25
+ map_attribute "role", to: :role
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Arg
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Arg
10
+ attribute :title, :string
11
+ attribute :id, :string
12
+ attribute :convention, :string
13
+ attribute :dict_ref, :string
14
+ attribute :ref, :string
15
+ attribute :name, :string
16
+ attribute :data_type, :string
17
+ attribute :substitute, :string
18
+ attribute :parameter_name, :string
19
+ attribute :parent_attribute, :string
20
+ attribute :delete, :string
21
+ attribute :eval, :string
22
+ attribute :content, :string
23
+
24
+ xml do
25
+ namespace Chemicalml::Cml::Namespace
26
+ root "arg"
27
+ map_attribute "title", to: :title
28
+ map_attribute "id", to: :id
29
+ map_attribute "convention", to: :convention
30
+ map_attribute "dictRef", to: :dict_ref
31
+ map_attribute "ref", to: :ref
32
+ map_attribute "name", to: :name
33
+ map_attribute "dataType", to: :data_type
34
+ map_attribute "substitute", to: :substitute
35
+ map_attribute "parameterName", to: :parameter_name
36
+ map_attribute "parentAttribute", to: :parent_attribute
37
+ map_attribute "delete", to: :delete
38
+ map_attribute "eval", to: :eval
39
+ map_content to: :content
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -16,8 +16,19 @@ module Chemicalml
16
16
  attribute :delimiter, :string
17
17
  attribute :content, :string
18
18
 
19
+ attribute :convention, :string
20
+ attribute :error_value_array, :string
21
+ attribute :error_basis, :string
22
+ attribute :min_value_array, :string
23
+ attribute :max_value_array, :string
24
+ attribute :start, :string
25
+ attribute :end, :string
26
+ attribute :ref, :string
27
+ attribute :constant_to_s_i, :string
28
+ attribute :multiplier_to_s_i, :string
29
+ attribute :unit_type, :string
19
30
  xml do
20
- namespace Chemicalml::Cml::Namespace
31
+ namespace Chemicalml::Cml::Namespace
21
32
  root "array"
22
33
  map_attribute "id", to: :id
23
34
  map_attribute "title", to: :title
@@ -27,6 +38,17 @@ module Chemicalml
27
38
  map_attribute "size", to: :size
28
39
  map_attribute "delimiter", to: :delimiter
29
40
  map_content to: :content
41
+ map_attribute "convention", to: :convention
42
+ map_attribute "errorValueArray", to: :error_value_array
43
+ map_attribute "errorBasis", to: :error_basis
44
+ map_attribute "minValueArray", to: :min_value_array
45
+ map_attribute "maxValueArray", to: :max_value_array
46
+ map_attribute "start", to: :start
47
+ map_attribute "end", to: :end
48
+ map_attribute "ref", to: :ref
49
+ map_attribute "constantToSI", to: :constant_to_s_i
50
+ map_attribute "multiplierToSI", to: :multiplier_to_s_i
51
+ map_attribute "unitType", to: :unit_type
30
52
  end
31
53
  end
32
54
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module ArrayList
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::ArrayList
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :shape, :string
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "arrayList"
19
+ map_attribute "id", to: :id
20
+ map_attribute "title", to: :title
21
+ map_attribute "dictRef", to: :dict_ref
22
+ map_attribute "convention", to: :convention
23
+ map_attribute "shape", to: :shape
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -16,9 +16,27 @@ module Chemicalml
16
16
  attribute :isotope_number, :string
17
17
  attribute :spin_multiplicity, :string
18
18
  attribute :title, :string
19
+ attribute :x2, :string
20
+ attribute :y2, :string
21
+ attribute :x3, :string
22
+ attribute :y3, :string
23
+ attribute :z3, :string
24
+ attribute :xFract, :string
25
+ attribute :yFract, :string
26
+ attribute :zFract, :string
27
+ attribute :atom_parity, :atomParity
19
28
 
29
+ attribute :convention, :string
30
+ attribute :dict_ref, :string
31
+ attribute :ref, :string
32
+ attribute :isotope_ref, :string
33
+ attribute :isotope_list_ref, :string
34
+ attribute :occupancy, :string
35
+ attribute :role, :string
36
+ attribute :space_group_multiplicity, :string
37
+ attribute :point_group_multiplicity, :string
20
38
  xml do
21
- namespace Chemicalml::Cml::Namespace
39
+ namespace Chemicalml::Cml::Namespace
22
40
  root "atom"
23
41
  map_attribute "id", to: :id
24
42
  map_attribute "elementType", to: :element_type
@@ -29,6 +47,24 @@ module Chemicalml
29
47
  map_attribute "isotopeNumber", to: :isotope_number
30
48
  map_attribute "spinMultiplicity", to: :spin_multiplicity
31
49
  map_attribute "title", to: :title
50
+ map_attribute "x2", to: :x2
51
+ map_attribute "y2", to: :y2
52
+ map_attribute "x3", to: :x3
53
+ map_attribute "y3", to: :y3
54
+ map_attribute "z3", to: :z3
55
+ map_attribute "xFract", to: :xFract
56
+ map_attribute "yFract", to: :yFract
57
+ map_attribute "zFract", to: :zFract
58
+ map_element "atomParity", to: :atom_parity
59
+ map_attribute "convention", to: :convention
60
+ map_attribute "dictRef", to: :dict_ref
61
+ map_attribute "ref", to: :ref
62
+ map_attribute "isotopeRef", to: :isotope_ref
63
+ map_attribute "isotopeListRef", to: :isotope_list_ref
64
+ map_attribute "occupancy", to: :occupancy
65
+ map_attribute "role", to: :role
66
+ map_attribute "spaceGroupMultiplicity", to: :space_group_multiplicity
67
+ map_attribute "pointGroupMultiplicity", to: :point_group_multiplicity
32
68
  end
33
69
  end
34
70
  end
@@ -9,10 +9,48 @@ module Chemicalml
9
9
  include Chemicalml::Cml::Role::AtomArray
10
10
  attribute :atoms, :atom, collection: true
11
11
 
12
+ attribute :title, :string
13
+ attribute :id, :string
14
+ attribute :convention, :string
15
+ attribute :dict_ref, :string
16
+ attribute :ref, :string
17
+ attribute :element_type_array, :string
18
+ attribute :count_array, :string
19
+ attribute :formal_charge_array, :string
20
+ attribute :hydrogen_count_array, :string
21
+ attribute :occupancy_array, :string
22
+ attribute :x2_array, :string
23
+ attribute :y2_array, :string
24
+ attribute :x3_array, :string
25
+ attribute :y3_array, :string
26
+ attribute :z3_array, :string
27
+ attribute :x_fract_array, :string
28
+ attribute :y_fract_array, :string
29
+ attribute :z_fract_array, :string
30
+ attribute :atom_i_d_array, :string
12
31
  xml do
13
- namespace Chemicalml::Cml::Namespace
32
+ namespace Chemicalml::Cml::Namespace
14
33
  root "atomArray"
15
34
  map_element "atom", to: :atoms
35
+ map_attribute "title", to: :title
36
+ map_attribute "id", to: :id
37
+ map_attribute "convention", to: :convention
38
+ map_attribute "dictRef", to: :dict_ref
39
+ map_attribute "ref", to: :ref
40
+ map_attribute "elementTypeArray", to: :element_type_array
41
+ map_attribute "countArray", to: :count_array
42
+ map_attribute "formalChargeArray", to: :formal_charge_array
43
+ map_attribute "hydrogenCountArray", to: :hydrogen_count_array
44
+ map_attribute "occupancyArray", to: :occupancy_array
45
+ map_attribute "x2Array", to: :x2_array
46
+ map_attribute "y2Array", to: :y2_array
47
+ map_attribute "x3Array", to: :x3_array
48
+ map_attribute "y3Array", to: :y3_array
49
+ map_attribute "z3Array", to: :z3_array
50
+ map_attribute "xFractArray", to: :x_fract_array
51
+ map_attribute "yFractArray", to: :y_fract_array
52
+ map_attribute "zFractArray", to: :z_fract_array
53
+ map_attribute "atomIDArray", to: :atom_i_d_array
16
54
  end
17
55
  end
18
56
  end
@@ -10,11 +10,19 @@ module Chemicalml
10
10
  attribute :atom_refs4, :string
11
11
  attribute :content, :string
12
12
 
13
+ attribute :title, :string
14
+ attribute :id, :string
15
+ attribute :convention, :string
16
+ attribute :dict_ref, :string
13
17
  xml do
14
- namespace Chemicalml::Cml::Namespace
18
+ namespace Chemicalml::Cml::Namespace
15
19
  root "atomParity"
16
20
  map_attribute "atomRefs4", to: :atom_refs4
17
21
  map_content to: :content
22
+ map_attribute "title", to: :title
23
+ map_attribute "id", to: :id
24
+ map_attribute "convention", to: :convention
25
+ map_attribute "dictRef", to: :dict_ref
18
26
  end
19
27
  end
20
28
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module AtomSet
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::AtomSet
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :size, :string
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "atomSet"
19
+ map_attribute "id", to: :id
20
+ map_attribute "title", to: :title
21
+ map_attribute "dictRef", to: :dict_ref
22
+ map_attribute "convention", to: :convention
23
+ map_attribute "size", to: :size
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module AtomType
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::AtomType
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :elementType, :string
15
+ attribute :ref, :string
16
+
17
+ attribute :name, :string
18
+ attribute :atom_ref, :string
19
+ xml do
20
+ namespace Chemicalml::Cml::Namespace
21
+ root "atomType"
22
+ map_attribute "id", to: :id
23
+ map_attribute "title", to: :title
24
+ map_attribute "dictRef", to: :dict_ref
25
+ map_attribute "convention", to: :convention
26
+ map_attribute "elementType", to: :elementType
27
+ map_attribute "ref", to: :ref
28
+ map_attribute "name", to: :name
29
+ map_attribute "atomRef", to: :atom_ref
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module AtomTypeList
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::AtomTypeList
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :atom_types, :atomType, collection: true
16
+
17
+ attribute :ref, :string
18
+ xml do
19
+ namespace Chemicalml::Cml::Namespace
20
+ map_element "atomType", to: :atom_types
21
+ root "atomTypeList"
22
+ map_attribute "id", to: :id
23
+ map_attribute "title", to: :title
24
+ map_attribute "dictRef", to: :dict_ref
25
+ map_attribute "convention", to: :convention
26
+ map_attribute "ref", to: :ref
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module AtomicBasisFunction
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::AtomicBasisFunction
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :atomRef, :string
15
+ attribute :n, :string
16
+ attribute :l, :string
17
+ attribute :m, :string
18
+ attribute :ms, :string
19
+ attribute :type, :string
20
+
21
+ attribute :symbol, :string
22
+ attribute :lm, :string
23
+ xml do
24
+ namespace Chemicalml::Cml::Namespace
25
+ root "atomicBasisFunction"
26
+ map_attribute "id", to: :id
27
+ map_attribute "title", to: :title
28
+ map_attribute "dictRef", to: :dict_ref
29
+ map_attribute "convention", to: :convention
30
+ map_attribute "atomRef", to: :atomRef
31
+ map_attribute "n", to: :n
32
+ map_attribute "l", to: :l
33
+ map_attribute "m", to: :m
34
+ map_attribute "ms", to: :ms
35
+ map_attribute "type", to: :type
36
+ map_attribute "symbol", to: :symbol
37
+ map_attribute "lm", to: :lm
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Band
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Band
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :kpointRef, :string
15
+ attribute :weight, :string
16
+
17
+ attribute :label, :string
18
+ xml do
19
+ namespace Chemicalml::Cml::Namespace
20
+ root "band"
21
+ map_attribute "id", to: :id
22
+ map_attribute "title", to: :title
23
+ map_attribute "dictRef", to: :dict_ref
24
+ map_attribute "convention", to: :convention
25
+ map_attribute "kpointRef", to: :kpointRef
26
+ map_attribute "weight", to: :weight
27
+ map_attribute "label", to: :label
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module BandList
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::BandList
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :bands, :band, collection: true
16
+
17
+ xml do
18
+ namespace Chemicalml::Cml::Namespace
19
+ map_element "band", to: :bands
20
+ root "bandList"
21
+ map_attribute "id", to: :id
22
+ map_attribute "title", to: :title
23
+ map_attribute "dictRef", to: :dict_ref
24
+ map_attribute "convention", to: :convention
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end