[x] Move the contents nomad/datamodel/metainfo/eln/perovskite_solar_cell_database into the src folder of a NOMAD plugin.
The init.py holds the overall schema, a huge file. Split every section into individual .py files. e.g. ref.py to make it more manageable.
The schema.py in this plugin should hold the final composition of the entry. You can import the other sections from the individual codes where you split them.
m_package = Package(name='perovskite_database')
class PerovskiteSolarCell(EntryData):
"""
This schema is adapted to map the data in the [Perovskite Solar Cell Database
Project](https://www.perovskitedatabase.com/). The descriptions in the quantities
represent the instructions given to the user who manually curated the data.
"""
m_def = Section(
label='Perovskite Solar Cell',
a_eln=dict(lane_width='400px'),
categories=[UseCaseElnCategory])
ref = SubSection(section_def=Ref)
cell = SubSection(section_def=Cell)
module = SubSection(section_def=Module)
substrate = SubSection(section_def=Substrate)
etl = SubSection(section_def=ETL)
perovskite = SubSection(section_def=Perovskite)
perovskite_deposition = SubSection(section_def=PerovskiteDeposition)
htl = SubSection(section_def=HTL)
backcontact = SubSection(section_def=Backcontact)
add = SubSection(section_def=Add)
encapsulation = SubSection(section_def=Encapsulation)
jv = SubSection(section_def=JV)
stabilised = SubSection(section_def=Stabilised)
eqe = SubSection(section_def=EQE)
stability = SubSection(section_def=Stability)
outdoor = SubSection(section_def=Outdoor)
m_package.__init_metainfo__()
[x] Change in entry_writer.py the m_def to write the entries, which currently targets the schema in the NOMAD source code.
[x] Create some entries with entry_writer.py, upload them, and test them locally.
[x] Move the contents
nomad/datamodel/metainfo/eln/perovskite_solar_cell_database
into the src folder of a NOMAD plugin.init.py
holds the overall schema, a huge file. Split every section into individual.py
files. e.g.ref.py
to make it more manageable.schema.py
in this plugin should hold the final composition of the entry. You can import the other sections from the individual codes where you split them.nomad-measurements
plugin as an example where mkdocs, pyproject.toml and GitHub actions have been set up.entry_writer.py
them_def
to write the entries, which currently targets the schema in the NOMAD source code.entry_writer.py
, upload them, and test them locally.