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
@@ -12,22 +12,38 @@ module Chemicalml
12
12
  attribute :count, :string
13
13
  attribute :formal_charge, :string
14
14
  attribute :spin_multiplicity, :string
15
+ attribute :dict_ref, :string
16
+ attribute :convention, :string
17
+ attribute :chirality, :string
15
18
  attribute :names, :name, collection: true
16
19
  attribute :identifiers, :identifier, collection: true
20
+ attribute :formulas, :formula, collection: true
21
+ attribute :properties, :property, collection: true
22
+ attribute :labels, :label, collection: true
17
23
  attribute :atom_array, :atomArray
18
24
  attribute :bond_array, :bondArray
19
25
  attribute :molecules, :molecule, collection: true
20
26
 
27
+ attribute :crystal, :crystal
28
+ attribute :spectra, :spectrum
29
+ attribute :property_lists, :propertyList, collection: true
30
+
21
31
  xml do
22
- namespace Chemicalml::Cml::Namespace
32
+ namespace Chemicalml::Cml::Namespace
23
33
  root "molecule"
24
34
  map_attribute "id", to: :id
25
35
  map_attribute "title", to: :title
26
36
  map_attribute "count", to: :count
27
37
  map_attribute "formalCharge", to: :formal_charge
28
38
  map_attribute "spinMultiplicity", to: :spin_multiplicity
39
+ map_attribute "dictRef", to: :dict_ref
40
+ map_attribute "convention", to: :convention
41
+ map_attribute "chirality", to: :chirality
29
42
  map_element "name", to: :names
30
43
  map_element "identifier", to: :identifiers
44
+ map_element "formula", to: :formulas
45
+ map_element "property", to: :properties
46
+ map_element "label", to: :labels
31
47
  map_element "atomArray", to: :atom_array
32
48
  map_element "bondArray", to: :bond_array
33
49
  map_element "molecule", to: :molecules
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module MoleculeList
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::MoleculeList
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :molecules, :molecule, collection: true
16
+
17
+ xml do
18
+ namespace Chemicalml::Cml::Namespace
19
+ map_element "molecule", to: :molecules
20
+ root "moleculeList"
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
@@ -12,7 +12,7 @@ module Chemicalml
12
12
  attribute :dict_ref, :string
13
13
 
14
14
  xml do
15
- namespace Chemicalml::Cml::Namespace
15
+ namespace Chemicalml::Cml::Namespace
16
16
  root "name"
17
17
  map_content to: :content
18
18
  map_attribute "convention", to: :convention
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Object
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Object
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :type, :string
15
+
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "object"
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 "type", to: :type
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 Observation
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Observation
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 "observation"
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
@@ -16,7 +16,7 @@ module Chemicalml
16
16
  attribute :matrix, :matrix
17
17
 
18
18
  xml do
19
- namespace Chemicalml::Cml::Namespace
19
+ namespace Chemicalml::Cml::Namespace
20
20
  root "parameter"
21
21
  map_attribute "id", to: :id
22
22
  map_attribute "title", to: :title
@@ -13,7 +13,7 @@ module Chemicalml
13
13
  attribute :parameters, :parameter, collection: true
14
14
 
15
15
  xml do
16
- namespace Chemicalml::Cml::Namespace
16
+ namespace Chemicalml::Cml::Namespace
17
17
  root "parameterList"
18
18
  map_attribute "id", to: :id
19
19
  map_attribute "title", to: :title
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Particle
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Particle
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :type, :string
15
+
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "particle"
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 "type", to: :type
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Peak
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Peak
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :xValue, :string
15
+ attribute :xUnits, :string
16
+ attribute :xMultiplier, :string
17
+ attribute :yValue, :string
18
+ attribute :yUnits, :string
19
+ attribute :yMultiplicity, :string
20
+
21
+ xml do
22
+ namespace Chemicalml::Cml::Namespace
23
+ root "peak"
24
+ map_attribute "id", to: :id
25
+ map_attribute "title", to: :title
26
+ map_attribute "dictRef", to: :dict_ref
27
+ map_attribute "convention", to: :convention
28
+ map_attribute "xValue", to: :xValue
29
+ map_attribute "xUnits", to: :xUnits
30
+ map_attribute "xMultiplier", to: :xMultiplier
31
+ map_attribute "yValue", to: :yValue
32
+ map_attribute "yUnits", to: :yUnits
33
+ map_attribute "yMultiplicity", to: :yMultiplicity
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module PeakGroup
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::PeakGroup
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :peaks, :peak, collection: true
16
+
17
+ xml do
18
+ namespace Chemicalml::Cml::Namespace
19
+ map_element "peak", to: :peaks
20
+ root "peakGroup"
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
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module PeakList
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::PeakList
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :peaks, :peak, collection: true
16
+ attribute :peak_groups, :peakGroup, collection: true
17
+
18
+ xml do
19
+ namespace Chemicalml::Cml::Namespace
20
+ map_element "peak", to: :peaks
21
+ map_element "peakGroup", to: :peak_groups
22
+ root "peakList"
23
+ map_attribute "id", to: :id
24
+ map_attribute "title", to: :title
25
+ map_attribute "dictRef", to: :dict_ref
26
+ map_attribute "convention", to: :convention
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module PeakStructure
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::PeakStructure
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :peakShape, :string
15
+
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "peakStructure"
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 "peakShape", to: :peakShape
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Plane3
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Plane3
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :content, :string
15
+
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "plane3"
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_content to: :content
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Point3
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Point3
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :content, :string
15
+
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "point3"
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_content to: :content
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module Potential
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::Potential
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :formRef, :string
15
+
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "potential"
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 "formRef", to: :formRef
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module PotentialForm
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::PotentialForm
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+ attribute :type, :string
15
+
16
+ xml do
17
+ namespace Chemicalml::Cml::Namespace
18
+ root "potentialForm"
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 "type", to: :type
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module PotentialList
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::PotentialList
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :potentials, :potential, collection: true
16
+
17
+ xml do
18
+ namespace Chemicalml::Cml::Namespace
19
+ map_element "potential", to: :potentials
20
+ root "potentialList"
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
@@ -10,7 +10,7 @@ module Chemicalml
10
10
  attribute :substance, :substance
11
11
 
12
12
  xml do
13
- namespace Chemicalml::Cml::Namespace
13
+ namespace Chemicalml::Cml::Namespace
14
14
  root "product"
15
15
  map_element "substance", to: :substance
16
16
  end
@@ -10,7 +10,7 @@ module Chemicalml
10
10
  attribute :products, :product, collection: true
11
11
 
12
12
  xml do
13
- namespace Chemicalml::Cml::Namespace
13
+ namespace Chemicalml::Cml::Namespace
14
14
  root "productList"
15
15
  map_element "product", to: :products
16
16
  end
@@ -16,7 +16,7 @@ module Chemicalml
16
16
  attribute :matrix, :matrix
17
17
 
18
18
  xml do
19
- namespace Chemicalml::Cml::Namespace
19
+ namespace Chemicalml::Cml::Namespace
20
20
  root "property"
21
21
  map_attribute "id", to: :id
22
22
  map_attribute "title", to: :title
@@ -13,7 +13,7 @@ module Chemicalml
13
13
  attribute :properties, :property, collection: true
14
14
 
15
15
  xml do
16
- namespace Chemicalml::Cml::Namespace
16
+ namespace Chemicalml::Cml::Namespace
17
17
  root "propertyList"
18
18
  map_attribute "id", to: :id
19
19
  map_attribute "title", to: :title
@@ -10,7 +10,7 @@ module Chemicalml
10
10
  attribute :substance, :substance
11
11
 
12
12
  xml do
13
- namespace Chemicalml::Cml::Namespace
13
+ namespace Chemicalml::Cml::Namespace
14
14
  root "reactant"
15
15
  map_element "substance", to: :substance
16
16
  end
@@ -10,7 +10,7 @@ module Chemicalml
10
10
  attribute :reactants, :reactant, collection: true
11
11
 
12
12
  xml do
13
- namespace Chemicalml::Cml::Namespace
13
+ namespace Chemicalml::Cml::Namespace
14
14
  root "reactantList"
15
15
  map_element "reactant", to: :reactants
16
16
  end
@@ -11,16 +11,24 @@ module Chemicalml
11
11
  attribute :title, :string
12
12
  attribute :type, :string
13
13
  attribute :state, :string
14
+ attribute :dict_ref, :string
15
+ attribute :convention, :string
14
16
  attribute :reactant_list, :reactantList
15
17
  attribute :product_list, :productList
16
18
 
19
+ attribute :spectator_list, :spectatorList
20
+ attribute :condition_list, :conditionList
21
+ attribute :metadata_lists, :metadataList, collection: true
22
+
17
23
  xml do
18
- namespace Chemicalml::Cml::Namespace
24
+ namespace Chemicalml::Cml::Namespace
19
25
  root "reaction"
20
26
  map_attribute "id", to: :id
21
27
  map_attribute "title", to: :title
22
28
  map_attribute "type", to: :type
23
29
  map_attribute "state", to: :state
30
+ map_attribute "dictRef", to: :dict_ref
31
+ map_attribute "convention", to: :convention
24
32
  map_element "reactantList", to: :reactant_list
25
33
  map_element "productList", to: :product_list
26
34
  end
@@ -10,7 +10,7 @@ module Chemicalml
10
10
  attribute :reactions, :reaction, collection: true
11
11
 
12
12
  xml do
13
- namespace Chemicalml::Cml::Namespace
13
+ namespace Chemicalml::Cml::Namespace
14
14
  root "reactionList"
15
15
  map_element "reaction", to: :reactions
16
16
  end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module ReactionScheme
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::ReactionScheme
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :reaction_step_lists, :reactionStepList, collection: true
16
+ attribute :reactions, :reaction, collection: true
17
+
18
+ xml do
19
+ namespace Chemicalml::Cml::Namespace
20
+ map_element "reactionStepList", to: :reaction_step_lists
21
+ map_element "reaction", to: :reactions
22
+ root "reactionScheme"
23
+ map_attribute "id", to: :id
24
+ map_attribute "title", to: :title
25
+ map_attribute "dictRef", to: :dict_ref
26
+ map_attribute "convention", to: :convention
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chemicalml
4
+ module Cml
5
+ module Base
6
+ module ReactionStep
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+ include Chemicalml::Cml::Role::ReactionStep
10
+ attribute :id, :string
11
+ attribute :title, :string
12
+ attribute :dict_ref, :string
13
+ attribute :convention, :string
14
+
15
+ attribute :reaction, :reaction
16
+ attribute :reactant_list, :reactantList
17
+ attribute :product_list, :productList
18
+
19
+ xml do
20
+ namespace Chemicalml::Cml::Namespace
21
+ map_element "reaction", to: :reaction
22
+ map_element "reactantList", to: :reactant_list
23
+ map_element "productList", to: :product_list
24
+ root "reactionStep"
25
+ map_attribute "id", to: :id
26
+ map_attribute "title", to: :title
27
+ map_attribute "dictRef", to: :dict_ref
28
+ map_attribute "convention", to: :convention
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end