From d8fca3972a6d25674faabcf2446429c8308fffe0 Mon Sep 17 00:00:00 2001 From: Sarthak Kapoor Date: Thu, 15 Aug 2024 10:57:01 +0200 Subject: [PATCH 1/4] Rename extract_json_data to data_file_name; make it str edit quant --- .../schema_packages/polymerization.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nomad_polymerization_reactions/schema_packages/polymerization.py b/src/nomad_polymerization_reactions/schema_packages/polymerization.py index 4ec6418..7cdda6d 100644 --- a/src/nomad_polymerization_reactions/schema_packages/polymerization.py +++ b/src/nomad_polymerization_reactions/schema_packages/polymerization.py @@ -96,11 +96,11 @@ class PolymerizationReaction(Activity, Schema): description='Reference to the publication containing the data.', section_def=PublicationReference, ) - extracted_json_data = Quantity( + data_file_name = Quantity( type=str, description='Data file containing the extracted data.', a_eln=ELNAnnotation( - component=ELNComponentEnum.FileEditQuantity, + component=ELNComponentEnum.StringEditQuantity, ), ) From e01b804c423d73e74948982daa40a1d05dca5a70 Mon Sep 17 00:00:00 2001 From: Sarthak Kapoor Date: Wed, 14 Aug 2024 18:34:01 +0200 Subject: [PATCH 2/4] Add PolymerizationReactionReference section --- .../schema_packages/polymerization.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/nomad_polymerization_reactions/schema_packages/polymerization.py b/src/nomad_polymerization_reactions/schema_packages/polymerization.py index 7cdda6d..cfceeae 100644 --- a/src/nomad_polymerization_reactions/schema_packages/polymerization.py +++ b/src/nomad_polymerization_reactions/schema_packages/polymerization.py @@ -20,6 +20,7 @@ PubChemPureSubstanceSection, PublicationReference, PureSubstanceComponent, + SectionReference, ) from nomad.metainfo import Quantity, SchemaPackage, SubSection @@ -117,4 +118,11 @@ def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None: super().normalize(archive, logger) +class PolymerizationReactionReference(SectionReference): + reference = SubSection( + section_def=PolymerizationReaction, + description='Reference to the polymerization reaction.', + ) + + m_package.__init_metainfo__() From 7f994d46233896f8a1d2e116b9dc533cad9e7ed8 Mon Sep 17 00:00:00 2001 From: Sarthak Kapoor Date: Wed, 14 Aug 2024 18:34:59 +0200 Subject: [PATCH 3/4] Add `AddPolymerizationReactions` section --- .../schema_packages/polymerization.py | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/nomad_polymerization_reactions/schema_packages/polymerization.py b/src/nomad_polymerization_reactions/schema_packages/polymerization.py index cfceeae..6bb9dec 100644 --- a/src/nomad_polymerization_reactions/schema_packages/polymerization.py +++ b/src/nomad_polymerization_reactions/schema_packages/polymerization.py @@ -16,6 +16,7 @@ from nomad.datamodel.metainfo.annotations import ELNAnnotation, ELNComponentEnum from nomad.datamodel.metainfo.basesections import ( Activity, + BaseSection, CompositeSystem, PubChemPureSubstanceSection, PublicationReference, @@ -125,4 +126,46 @@ class PolymerizationReactionReference(SectionReference): ) +class AddPolymerizationReactions(BaseSection, Schema): + """ + A section to add polymerization reaction entries in the current upload. + Each entry is also referenced in this section. + """ + + zip_file = Quantity( + type=str, + description=""" + Zip file containing data files in JSON format. Each file contains data for + one polymerization reaction. + """, + a_eln=ELNAnnotation( + component=ELNComponentEnum.FileEditQuantity, + ), + ) + polymerization_reactions = SubSection( + section_def=PolymerizationReactionReference, + repeats=True, + description='References to polymerization reaction entries.', + ) + reprocess = Quantity( + type=bool, + description='Reprocess the zip file to generate entries.', + a_eln=ELNAnnotation( + component=ELNComponentEnum.BoolEditQuantity, + ), + default=True, + ) + + def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None: + logger.info( + 'AddPolymerizationReactions.normalize', parameter=configuration.parameter + ) + super().normalize(archive, logger) + if self.zip_file and self.reprocess: + ## create entry archives with overwriting + ## use generate archive from json + ## add the entry to the polymerization_reactions reference list + self.reprocess = False + + m_package.__init_metainfo__() From 7cc9e51f0cb09973b3cf49ac4d11300e8c6d8d95 Mon Sep 17 00:00:00 2001 From: Sarthak Kapoor Date: Thu, 15 Aug 2024 10:55:02 +0200 Subject: [PATCH 4/4] Add zipped data --- tests/data/processed_reactions_small.zip | Bin 0 -> 466392 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/data/processed_reactions_small.zip diff --git a/tests/data/processed_reactions_small.zip b/tests/data/processed_reactions_small.zip new file mode 100644 index 0000000000000000000000000000000000000000..5c1988fbb7bf0bde4483579f9583696228b26a77 GIT binary patch literal 466392 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 Jy!2xM@&M)KeUktH literal 0 HcmV?d00001