chemicalml 0.1.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.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rubocop.yml +20 -0
- data/CHANGELOG.md +21 -0
- data/CLAUDE.md +198 -0
- data/Gemfile +14 -0
- data/LICENSE +24 -0
- data/NOTICES.adoc +115 -0
- data/README.adoc +87 -0
- data/Rakefile +8 -0
- data/TODO.align/01-cml-base-mixins.md +122 -0
- data/TODO.align/02-real-schema-hierarchies.md +88 -0
- data/TODO.align/03-configuration.md +50 -0
- data/TODO.align/04-parse-entry-points.md +59 -0
- data/TODO.align/05-schema-aware-translator.md +33 -0
- data/TODO.align/06-no-respond-to.md +44 -0
- data/TODO.align/07-canon-xml-comparison.md +43 -0
- data/TODO.align/08-expand-fixtures.md +37 -0
- data/TODO.align/09-final-spec-lint.md +29 -0
- data/TODO.align/10-role-marker-modules.md +54 -0
- data/TODO.align/11-dry-configuration.md +63 -0
- data/TODO.align/12-wire-class-macro.md +51 -0
- data/TODO.align/13-wire-namespace.md +44 -0
- data/TODO.align/14-schema24-correctness.md +37 -0
- data/TODO.align/15-canon-fixture-roundtrip.md +38 -0
- data/TODO.align/16-schema24-convention-coverage.md +33 -0
- data/TODO.align/17-final-spec-lint.md +28 -0
- data/TODO.align/README.md +27 -0
- data/TODO.align/README.round2.md +24 -0
- data/TODO.cml-full/01-reference-docs.md +43 -0
- data/TODO.cml-full/02-schema-versioned-model.md +70 -0
- data/TODO.cml-full/03-fixtures-scrape.md +52 -0
- data/TODO.cml-full/04-convention-framework.md +69 -0
- data/TODO.cml-full/05-dictionary-layer.md +77 -0
- data/TODO.cml-full/06-extend-canonical-translator.md +60 -0
- data/TODO.cml-full/07-attribution-notices.md +42 -0
- data/TODO.cml-full/08-autoload-only.md +48 -0
- data/TODO.cml-full/09-spec-coverage.md +38 -0
- data/TODO.cml-full/README.md +23 -0
- data/chemicalml.gemspec +35 -0
- data/data/dictionaries/_index.yaml +14 -0
- data/data/dictionaries/compchem.yaml +481 -0
- data/data/dictionaries/unit_non_si.yaml +53 -0
- data/data/dictionaries/unit_si.yaml +87 -0
- data/data/dictionaries/unit_type.yaml +113 -0
- data/lib/chemicalml/cml/array.rb +10 -0
- data/lib/chemicalml/cml/atom.rb +10 -0
- data/lib/chemicalml/cml/atom_array.rb +10 -0
- data/lib/chemicalml/cml/atom_parity.rb +10 -0
- data/lib/chemicalml/cml/base/array.rb +36 -0
- data/lib/chemicalml/cml/base/atom.rb +38 -0
- data/lib/chemicalml/cml/base/atom_array.rb +22 -0
- data/lib/chemicalml/cml/base/atom_parity.rb +24 -0
- data/lib/chemicalml/cml/base/bond.rb +28 -0
- data/lib/chemicalml/cml/base/bond_array.rb +22 -0
- data/lib/chemicalml/cml/base/bond_stereo.rb +28 -0
- data/lib/chemicalml/cml/base/cml_module.rb +40 -0
- data/lib/chemicalml/cml/base/dictionary.rb +32 -0
- data/lib/chemicalml/cml/base/dictionary_entry.rb +34 -0
- data/lib/chemicalml/cml/base/document.rb +26 -0
- data/lib/chemicalml/cml/base/formula.rb +38 -0
- data/lib/chemicalml/cml/base/identifier.rb +26 -0
- data/lib/chemicalml/cml/base/label.rb +28 -0
- data/lib/chemicalml/cml/base/list.rb +36 -0
- data/lib/chemicalml/cml/base/matrix.rb +38 -0
- data/lib/chemicalml/cml/base/metadata.rb +30 -0
- data/lib/chemicalml/cml/base/metadata_list.rb +28 -0
- data/lib/chemicalml/cml/base/molecule.rb +40 -0
- data/lib/chemicalml/cml/base/name.rb +26 -0
- data/lib/chemicalml/cml/base/parameter.rb +34 -0
- data/lib/chemicalml/cml/base/parameter_list.rb +28 -0
- data/lib/chemicalml/cml/base/product.rb +22 -0
- data/lib/chemicalml/cml/base/product_list.rb +22 -0
- data/lib/chemicalml/cml/base/property.rb +34 -0
- data/lib/chemicalml/cml/base/property_list.rb +28 -0
- data/lib/chemicalml/cml/base/reactant.rb +22 -0
- data/lib/chemicalml/cml/base/reactant_list.rb +22 -0
- data/lib/chemicalml/cml/base/reaction.rb +32 -0
- data/lib/chemicalml/cml/base/reaction_list.rb +22 -0
- data/lib/chemicalml/cml/base/scalar.rb +32 -0
- data/lib/chemicalml/cml/base/substance.rb +30 -0
- data/lib/chemicalml/cml/base/unit.rb +38 -0
- data/lib/chemicalml/cml/base/unit_list.rb +30 -0
- data/lib/chemicalml/cml/base/unit_type.rb +28 -0
- data/lib/chemicalml/cml/base/unit_type_list.rb +30 -0
- data/lib/chemicalml/cml/base.rb +51 -0
- data/lib/chemicalml/cml/bond.rb +10 -0
- data/lib/chemicalml/cml/bond_array.rb +10 -0
- data/lib/chemicalml/cml/bond_stereo.rb +10 -0
- data/lib/chemicalml/cml/cml_module.rb +10 -0
- data/lib/chemicalml/cml/dictionary.rb +10 -0
- data/lib/chemicalml/cml/dictionary_entry.rb +10 -0
- data/lib/chemicalml/cml/document.rb +10 -0
- data/lib/chemicalml/cml/elements.rb +58 -0
- data/lib/chemicalml/cml/formula.rb +10 -0
- data/lib/chemicalml/cml/identifier.rb +10 -0
- data/lib/chemicalml/cml/label.rb +10 -0
- data/lib/chemicalml/cml/list.rb +10 -0
- data/lib/chemicalml/cml/matrix.rb +10 -0
- data/lib/chemicalml/cml/metadata.rb +10 -0
- data/lib/chemicalml/cml/metadata_list.rb +10 -0
- data/lib/chemicalml/cml/molecule.rb +10 -0
- data/lib/chemicalml/cml/name.rb +10 -0
- data/lib/chemicalml/cml/namespace.rb +17 -0
- data/lib/chemicalml/cml/parameter.rb +10 -0
- data/lib/chemicalml/cml/parameter_list.rb +10 -0
- data/lib/chemicalml/cml/product.rb +10 -0
- data/lib/chemicalml/cml/product_list.rb +10 -0
- data/lib/chemicalml/cml/property.rb +10 -0
- data/lib/chemicalml/cml/property_list.rb +10 -0
- data/lib/chemicalml/cml/reactant.rb +10 -0
- data/lib/chemicalml/cml/reactant_list.rb +10 -0
- data/lib/chemicalml/cml/reaction.rb +10 -0
- data/lib/chemicalml/cml/reaction_list.rb +10 -0
- data/lib/chemicalml/cml/role/array.rb +13 -0
- data/lib/chemicalml/cml/role/atom.rb +13 -0
- data/lib/chemicalml/cml/role/atom_array.rb +13 -0
- data/lib/chemicalml/cml/role/atom_parity.rb +13 -0
- data/lib/chemicalml/cml/role/bond.rb +13 -0
- data/lib/chemicalml/cml/role/bond_array.rb +13 -0
- data/lib/chemicalml/cml/role/bond_stereo.rb +13 -0
- data/lib/chemicalml/cml/role/cml_module.rb +14 -0
- data/lib/chemicalml/cml/role/dictionary.rb +13 -0
- data/lib/chemicalml/cml/role/dictionary_entry.rb +13 -0
- data/lib/chemicalml/cml/role/document.rb +13 -0
- data/lib/chemicalml/cml/role/formula.rb +13 -0
- data/lib/chemicalml/cml/role/identifier.rb +13 -0
- data/lib/chemicalml/cml/role/label.rb +13 -0
- data/lib/chemicalml/cml/role/list.rb +13 -0
- data/lib/chemicalml/cml/role/matrix.rb +13 -0
- data/lib/chemicalml/cml/role/metadata.rb +13 -0
- data/lib/chemicalml/cml/role/metadata_list.rb +13 -0
- data/lib/chemicalml/cml/role/molecule.rb +13 -0
- data/lib/chemicalml/cml/role/name.rb +13 -0
- data/lib/chemicalml/cml/role/parameter.rb +13 -0
- data/lib/chemicalml/cml/role/parameter_list.rb +13 -0
- data/lib/chemicalml/cml/role/product.rb +13 -0
- data/lib/chemicalml/cml/role/product_list.rb +13 -0
- data/lib/chemicalml/cml/role/property.rb +13 -0
- data/lib/chemicalml/cml/role/property_list.rb +13 -0
- data/lib/chemicalml/cml/role/reactant.rb +13 -0
- data/lib/chemicalml/cml/role/reactant_list.rb +13 -0
- data/lib/chemicalml/cml/role/reaction.rb +13 -0
- data/lib/chemicalml/cml/role/reaction_list.rb +13 -0
- data/lib/chemicalml/cml/role/scalar.rb +13 -0
- data/lib/chemicalml/cml/role/substance.rb +13 -0
- data/lib/chemicalml/cml/role/unit.rb +13 -0
- data/lib/chemicalml/cml/role/unit_list.rb +13 -0
- data/lib/chemicalml/cml/role/unit_type.rb +13 -0
- data/lib/chemicalml/cml/role/unit_type_list.rb +13 -0
- data/lib/chemicalml/cml/role.rb +54 -0
- data/lib/chemicalml/cml/scalar.rb +10 -0
- data/lib/chemicalml/cml/schema24/configuration.rb +19 -0
- data/lib/chemicalml/cml/schema24.rb +40 -0
- data/lib/chemicalml/cml/schema3/configuration.rb +17 -0
- data/lib/chemicalml/cml/schema3.rb +40 -0
- data/lib/chemicalml/cml/substance.rb +10 -0
- data/lib/chemicalml/cml/translator/value_translations.rb +265 -0
- data/lib/chemicalml/cml/translator.rb +233 -0
- data/lib/chemicalml/cml/unit.rb +10 -0
- data/lib/chemicalml/cml/unit_list.rb +10 -0
- data/lib/chemicalml/cml/unit_type.rb +10 -0
- data/lib/chemicalml/cml/unit_type_list.rb +10 -0
- data/lib/chemicalml/cml/visitable.rb +65 -0
- data/lib/chemicalml/cml/wire_class_macro.rb +45 -0
- data/lib/chemicalml/cml.rb +55 -0
- data/lib/chemicalml/context_configuration.rb +127 -0
- data/lib/chemicalml/convention/base.rb +48 -0
- data/lib/chemicalml/convention/compchem/constraints/compchem_module_must_contain_job_list.rb +33 -0
- data/lib/chemicalml/convention/compchem/constraints/job_must_contain_initialization.rb +38 -0
- data/lib/chemicalml/convention/compchem/constraints.rb +14 -0
- data/lib/chemicalml/convention/compchem.rb +28 -0
- data/lib/chemicalml/convention/constraint.rb +79 -0
- data/lib/chemicalml/convention/dictionary/constraints/entry_ids_unique_within_dictionary.rb +33 -0
- data/lib/chemicalml/convention/dictionary/constraints/entry_must_have_id_and_term.rb +34 -0
- data/lib/chemicalml/convention/dictionary/constraints.rb +14 -0
- data/lib/chemicalml/convention/dictionary.rb +28 -0
- data/lib/chemicalml/convention/molecular/constraints/atom_array_must_contain_atoms.rb +30 -0
- data/lib/chemicalml/convention/molecular/constraints/atom_ids_unique_within_molecule.rb +42 -0
- data/lib/chemicalml/convention/molecular/constraints/bond_must_reference_atoms_in_same_molecule.rb +54 -0
- data/lib/chemicalml/convention/molecular/constraints.rb +19 -0
- data/lib/chemicalml/convention/molecular.rb +29 -0
- data/lib/chemicalml/convention/registry.rb +50 -0
- data/lib/chemicalml/convention/unit_dictionary/constraints/unit_must_have_symbol_and_unit_type.rb +46 -0
- data/lib/chemicalml/convention/unit_dictionary/constraints.rb +12 -0
- data/lib/chemicalml/convention/unit_dictionary.rb +27 -0
- data/lib/chemicalml/convention/unit_type_dictionary/constraints/unit_type_must_have_id_and_name.rb +34 -0
- data/lib/chemicalml/convention/unit_type_dictionary/constraints.rb +12 -0
- data/lib/chemicalml/convention/unit_type_dictionary.rb +27 -0
- data/lib/chemicalml/convention/violation.rb +36 -0
- data/lib/chemicalml/convention.rb +39 -0
- data/lib/chemicalml/dictionary/entry.rb +59 -0
- data/lib/chemicalml/dictionary/enum.rb +51 -0
- data/lib/chemicalml/dictionary/link.rb +32 -0
- data/lib/chemicalml/dictionary/loader.rb +60 -0
- data/lib/chemicalml/dictionary/model.rb +64 -0
- data/lib/chemicalml/dictionary/registry.rb +75 -0
- data/lib/chemicalml/dictionary.rb +26 -0
- data/lib/chemicalml/errors.rb +7 -0
- data/lib/chemicalml/model/atom.rb +40 -0
- data/lib/chemicalml/model/bond.rb +33 -0
- data/lib/chemicalml/model/cml_array.rb +27 -0
- data/lib/chemicalml/model/cml_module.rb +45 -0
- data/lib/chemicalml/model/document.rb +29 -0
- data/lib/chemicalml/model/formula.rb +34 -0
- data/lib/chemicalml/model/identifier.rb +21 -0
- data/lib/chemicalml/model/label.rb +21 -0
- data/lib/chemicalml/model/matrix.rb +29 -0
- data/lib/chemicalml/model/metadata.rb +23 -0
- data/lib/chemicalml/model/metadata_list.rb +25 -0
- data/lib/chemicalml/model/molecule.rb +38 -0
- data/lib/chemicalml/model/name.rb +21 -0
- data/lib/chemicalml/model/node.rb +45 -0
- data/lib/chemicalml/model/parameter.rb +27 -0
- data/lib/chemicalml/model/parameter_list.rb +25 -0
- data/lib/chemicalml/model/product.rb +21 -0
- data/lib/chemicalml/model/product_list.rb +21 -0
- data/lib/chemicalml/model/property.rb +28 -0
- data/lib/chemicalml/model/property_list.rb +25 -0
- data/lib/chemicalml/model/reactant.rb +21 -0
- data/lib/chemicalml/model/reactant_list.rb +21 -0
- data/lib/chemicalml/model/reaction.rb +41 -0
- data/lib/chemicalml/model/reaction_list.rb +23 -0
- data/lib/chemicalml/model/scalar.rb +25 -0
- data/lib/chemicalml/model/substance.rb +25 -0
- data/lib/chemicalml/model.rb +38 -0
- data/lib/chemicalml/schema/definition.rb +41 -0
- data/lib/chemicalml/schema/registry.rb +30 -0
- data/lib/chemicalml/schema.rb +35 -0
- data/lib/chemicalml/version.rb +5 -0
- data/lib/chemicalml/versioned_parser.rb +43 -0
- data/lib/chemicalml.rb +47 -0
- data/lib/tasks/reference_fetch.rake +105 -0
- data/lib/tasks/scrape_fixtures.rake +133 -0
- data/reference-docs/conventions/compchem.md +141 -0
- data/reference-docs/conventions/dictionary.md +119 -0
- data/reference-docs/conventions/index.md +56 -0
- data/reference-docs/conventions/molecular.md +115 -0
- data/reference-docs/conventions/unit-dictionary.md +92 -0
- data/reference-docs/conventions/unitType-dictionary.md +51 -0
- data/reference-docs/dictionaries/compchem.md +335 -0
- data/reference-docs/dictionaries/index.md +52 -0
- data/reference-docs/examples/schema24-index.md +50 -0
- data/reference-docs/examples/schema3-compchem-index.md +14 -0
- data/reference-docs/examples/schema3-molecular-index.md +28 -0
- data/reference-docs/schemas/schema24/schema.xsd +10624 -0
- data/reference-docs/schemas/schema3/schema.xsd +11459 -0
- metadata +306 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <parameter> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::Parameter and Schema24::Parameter.
|
|
9
|
+
module Parameter
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <parameterlist> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::ParameterList and Schema24::ParameterList.
|
|
9
|
+
module ParameterList
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <product> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::Product and Schema24::Product.
|
|
9
|
+
module Product
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <productlist> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::ProductList and Schema24::ProductList.
|
|
9
|
+
module ProductList
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <property> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::Property and Schema24::Property.
|
|
9
|
+
module Property
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <propertylist> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::PropertyList and Schema24::PropertyList.
|
|
9
|
+
module PropertyList
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <reactant> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::Reactant and Schema24::Reactant.
|
|
9
|
+
module Reactant
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <reactantlist> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::ReactantList and Schema24::ReactantList.
|
|
9
|
+
module ReactantList
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <reaction> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::Reaction and Schema24::Reaction.
|
|
9
|
+
module Reaction
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <reactionlist> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::ReactionList and Schema24::ReactionList.
|
|
9
|
+
module ReactionList
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <scalar> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::Scalar and Schema24::Scalar.
|
|
9
|
+
module Scalar
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <substance> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::Substance and Schema24::Substance.
|
|
9
|
+
module Substance
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <unit> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::Unit and Schema24::Unit.
|
|
9
|
+
module Unit
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <unitlist> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::UnitList and Schema24::UnitList.
|
|
9
|
+
module UnitList
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <unittype> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::UnitType and Schema24::UnitType.
|
|
9
|
+
module UnitType
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Role
|
|
6
|
+
# Type marker for any wire class implementing the CML
|
|
7
|
+
# <unittypelist> element, regardless of schema version.
|
|
8
|
+
# Included by Schema3::UnitTypeList and Schema24::UnitTypeList.
|
|
9
|
+
module UnitTypeList
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
# Role marker modules — one per CML element. Included by every
|
|
6
|
+
# schema-versioned wire class for that element (`Schema3::Molecule`
|
|
7
|
+
# and `Schema24::Molecule` both `include Role::Molecule`).
|
|
8
|
+
#
|
|
9
|
+
# Constraints and translator rules check `node.is_a?(Role::Molecule)`
|
|
10
|
+
# instead of `is_a?(Schema3::Molecule) || is_a?(Schema24::Molecule)`.
|
|
11
|
+
# Adding Schema5 later requires zero constraint edits — Schema5's
|
|
12
|
+
# classes just include the relevant Role modules.
|
|
13
|
+
#
|
|
14
|
+
# Each Role module is empty — it's a pure type marker, no methods.
|
|
15
|
+
module Role
|
|
16
|
+
autoload :Array, "chemicalml/cml/role/array"
|
|
17
|
+
autoload :Atom, "chemicalml/cml/role/atom"
|
|
18
|
+
autoload :AtomArray, "chemicalml/cml/role/atom_array"
|
|
19
|
+
autoload :AtomParity, "chemicalml/cml/role/atom_parity"
|
|
20
|
+
autoload :Bond, "chemicalml/cml/role/bond"
|
|
21
|
+
autoload :BondArray, "chemicalml/cml/role/bond_array"
|
|
22
|
+
autoload :BondStereo, "chemicalml/cml/role/bond_stereo"
|
|
23
|
+
autoload :Dictionary, "chemicalml/cml/role/dictionary"
|
|
24
|
+
autoload :DictionaryEntry, "chemicalml/cml/role/dictionary_entry"
|
|
25
|
+
autoload :Document, "chemicalml/cml/role/document"
|
|
26
|
+
autoload :Formula, "chemicalml/cml/role/formula"
|
|
27
|
+
autoload :Identifier, "chemicalml/cml/role/identifier"
|
|
28
|
+
autoload :Label, "chemicalml/cml/role/label"
|
|
29
|
+
autoload :List, "chemicalml/cml/role/list"
|
|
30
|
+
autoload :Matrix, "chemicalml/cml/role/matrix"
|
|
31
|
+
autoload :Metadata, "chemicalml/cml/role/metadata"
|
|
32
|
+
autoload :MetadataList, "chemicalml/cml/role/metadata_list"
|
|
33
|
+
autoload :Molecule, "chemicalml/cml/role/molecule"
|
|
34
|
+
autoload :Module, "chemicalml/cml/role/cml_module"
|
|
35
|
+
autoload :Name, "chemicalml/cml/role/name"
|
|
36
|
+
autoload :Parameter, "chemicalml/cml/role/parameter"
|
|
37
|
+
autoload :ParameterList, "chemicalml/cml/role/parameter_list"
|
|
38
|
+
autoload :Product, "chemicalml/cml/role/product"
|
|
39
|
+
autoload :ProductList, "chemicalml/cml/role/product_list"
|
|
40
|
+
autoload :Property, "chemicalml/cml/role/property"
|
|
41
|
+
autoload :PropertyList, "chemicalml/cml/role/property_list"
|
|
42
|
+
autoload :Reaction, "chemicalml/cml/role/reaction"
|
|
43
|
+
autoload :ReactionList, "chemicalml/cml/role/reaction_list"
|
|
44
|
+
autoload :Reactant, "chemicalml/cml/role/reactant"
|
|
45
|
+
autoload :ReactantList, "chemicalml/cml/role/reactant_list"
|
|
46
|
+
autoload :Scalar, "chemicalml/cml/role/scalar"
|
|
47
|
+
autoload :Substance, "chemicalml/cml/role/substance"
|
|
48
|
+
autoload :Unit, "chemicalml/cml/role/unit"
|
|
49
|
+
autoload :UnitList, "chemicalml/cml/role/unit_list"
|
|
50
|
+
autoload :UnitType, "chemicalml/cml/role/unit_type"
|
|
51
|
+
autoload :UnitTypeList, "chemicalml/cml/role/unit_type_list"
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Backward-compatible alias. New code should reference the versioned
|
|
4
|
+
# class directly: Chemicalml::Cml::Schema3::Scalar.
|
|
5
|
+
module Chemicalml
|
|
6
|
+
module Cml
|
|
7
|
+
remove_const(:Scalar) if const_defined?(:Scalar, false)
|
|
8
|
+
const_set(:Scalar, Chemicalml::Cml::Schema3::Scalar)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Schema24
|
|
6
|
+
module Configuration
|
|
7
|
+
extend Chemicalml::ContextConfiguration
|
|
8
|
+
|
|
9
|
+
CONTEXT_ID = :chemicalml_schema24
|
|
10
|
+
|
|
11
|
+
# Schema 2.4 lacks the generic <module> element (introduced
|
|
12
|
+
# in Schema 3) — skip its registration.
|
|
13
|
+
def self.register_models!
|
|
14
|
+
register_elements!(except: Chemicalml::Cml::Elements::SCHEMA3_ONLY)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
# Schema 2.4 wire classes. Same generation pattern as Schema 3,
|
|
6
|
+
# but skips elements that don't exist in Schema 2.4 (notably
|
|
7
|
+
# `<module>`, which was introduced in Schema 3).
|
|
8
|
+
#
|
|
9
|
+
# Schema-2.4-specific deviations live in additional
|
|
10
|
+
# `Base::Schema24Only::*` modules included by the relevant class
|
|
11
|
+
# via `Base::*` mixins.
|
|
12
|
+
module Schema24
|
|
13
|
+
extend Chemicalml::VersionedParser
|
|
14
|
+
autoload :Configuration, "chemicalml/cml/schema24/configuration"
|
|
15
|
+
|
|
16
|
+
SCHEMA = Chemicalml::Schema::Registry.lookup(:schema24)
|
|
17
|
+
|
|
18
|
+
skip = Chemicalml::Cml::Elements::SCHEMA3_ONLY.to_set
|
|
19
|
+
Chemicalml::Cml::Elements::ALL.each_key do |class_name|
|
|
20
|
+
next if skip.include?(class_name)
|
|
21
|
+
|
|
22
|
+
base_module = Chemicalml::Cml::Base.const_get(class_name)
|
|
23
|
+
klass = Class.new(Lutaml::Model::Serializable) do
|
|
24
|
+
include base_module
|
|
25
|
+
include Chemicalml::Cml::Visitable
|
|
26
|
+
end
|
|
27
|
+
klass.define_singleton_method(:lutaml_default_register) { :chemicalml_schema24 }
|
|
28
|
+
const_set(class_name, klass)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.schema
|
|
32
|
+
SCHEMA
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.ensure_registered!
|
|
36
|
+
Configuration.ensure_registered!
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
module Schema3
|
|
6
|
+
module Configuration
|
|
7
|
+
extend Chemicalml::ContextConfiguration
|
|
8
|
+
|
|
9
|
+
CONTEXT_ID = :chemicalml_schema3
|
|
10
|
+
|
|
11
|
+
def self.register_models!
|
|
12
|
+
register_elements!
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Chemicalml
|
|
4
|
+
module Cml
|
|
5
|
+
# Schema 3 wire classes. Each is a `Lutaml::Model::Serializable`
|
|
6
|
+
# subclass that includes the shared declaration mixin from
|
|
7
|
+
# `Chemicalml::Cml::Base::*` and `Chemicalml::Cml::Visitable`.
|
|
8
|
+
#
|
|
9
|
+
# The full element set is generated in-place from
|
|
10
|
+
# `Chemicalml::Cml::Elements::ALL` — adding a new CML element
|
|
11
|
+
# means adding one entry there, not 35+ boilerplate files here.
|
|
12
|
+
# Schema-3-specific deviations live in additional
|
|
13
|
+
# `Base::Schema3Only::*` modules included by the relevant class
|
|
14
|
+
# via `Base::*` mixins.
|
|
15
|
+
module Schema3
|
|
16
|
+
extend Chemicalml::VersionedParser
|
|
17
|
+
autoload :Configuration, "chemicalml/cml/schema3/configuration"
|
|
18
|
+
|
|
19
|
+
SCHEMA = Chemicalml::Schema::Registry.lookup(:schema3)
|
|
20
|
+
|
|
21
|
+
Chemicalml::Cml::Elements::ALL.each_key do |class_name|
|
|
22
|
+
base_module = Chemicalml::Cml::Base.const_get(class_name)
|
|
23
|
+
klass = Class.new(Lutaml::Model::Serializable) do
|
|
24
|
+
include base_module
|
|
25
|
+
include Chemicalml::Cml::Visitable
|
|
26
|
+
end
|
|
27
|
+
klass.define_singleton_method(:lutaml_default_register) { :chemicalml_schema3 }
|
|
28
|
+
const_set(class_name, klass)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.schema
|
|
32
|
+
SCHEMA
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.ensure_registered!
|
|
36
|
+
Configuration.ensure_registered!
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Backward-compatible alias. New code should reference the versioned
|
|
4
|
+
# class directly: Chemicalml::Cml::Schema3::Substance.
|
|
5
|
+
module Chemicalml
|
|
6
|
+
module Cml
|
|
7
|
+
remove_const(:Substance) if const_defined?(:Substance, false)
|
|
8
|
+
const_set(:Substance, Chemicalml::Cml::Schema3::Substance)
|
|
9
|
+
end
|
|
10
|
+
end
|