Plugins¶
Plugins allow one to add Python-based functionality to NOMAD without a custom NOMAD image or release. Plugins can be installed at NOMAD start-up time. Therefore, a NOMAD installation or Oasis can be configured with a different custom set of plugins or disable unnecessary plugins.
Note
You might also want to read the how-to guide on plugins
Plugin entry point reference¶
This is a list of the available plugin entry point configuration models.
APIEntryPoint¶
Base model for API plugin entry points.
name | type | |
---|---|---|
prefix | str |
The prefix for the API. The URL for the API will be the base URL of the NOMAD installation followed by this prefix. The prefix must not collide with any other API prefixes. There is no default, this field must be set. |
name | str | None |
Name of the plugin entry point. |
description | str | None |
A human readable description of the plugin entry point. |
AppEntryPoint¶
Base model for app plugin entry points.
name | type | |
---|---|---|
app | App |
The app configuration. default: PydanticUndefined |
name | str | None |
Name of the plugin entry point. |
description | str | None |
A human readable description of the plugin entry point. |
ExampleUploadEntryPoint¶
Base model for example upload plugin entry points.
name | type | |
---|---|---|
name | str | None |
Name of the plugin entry point. |
description | str | None |
Longer description of the example upload. default: PydanticUndefined |
category | str | None |
Category for the example upload. default: PydanticUndefined |
title | str | None |
Title of the example upload. default: PydanticUndefined |
resources | None | list[UploadResource | str] | UploadResource | str |
List of data resources for this example upload. |
path | str | None |
deprecated |
url | str | None |
deprecated |
NormalizerEntryPoint¶
Base model for normalizer plugin entry points.
name | type | |
---|---|---|
level | int |
Integer that determines the execution order of this normalizer within the processing of an individual entry. Normalizers with the lowest level is run first. default: 0 |
name | str | None |
Name of the plugin entry point. |
description | str | None |
A human readable description of the plugin entry point. |
ParserEntryPoint¶
Base model for parser plugin entry points.
name | type | |
---|---|---|
level | int |
Integer that determines the execution order of this parser within an upload. Parser with lowest level will be executed first. Note that this only controls the order in which matched parsers are executed, but does not affect the order in which parsers are matched to files. default: 0 |
aliases | list[str] |
List of alternative parser names. default: [] |
mainfile_name_re | str |
A regular expression that is applied the name of a potential mainfile. If this expression is given, the parser is only considered for a file, if the expression matches. default: .* |
mainfile_mime_re | str |
A regular expression that is applied the mime type of a potential mainfile. If this expression is given, the parser is only considered for a file, if the expression matches. default: .* |
mainfile_alternative | bool |
If True, the parser only matches a file, if no other file in the same directory matches a parser. default: False |
supported_compressions | list[str] |
Files compressed with the given formats (e.g. xz, gz) are uncompressed and matched like normal files. default: [] |
name | str | None |
Name of the plugin entry point. |
description | str | None |
A human readable description of the plugin entry point. |
mainfile_contents_re | str | None |
A regular expression that is applied the content of a potential mainfile. If this expression is given, the parser is only considered for a file, if the expression matches. |
mainfile_binary_header | bytes | None |
Matches a binary file if the given bytes are included in the file. |
mainfile_binary_header_re | bytes | None |
Matches a binary file if the given binary regular expression bytes matches the file contents. |
mainfile_contents_dict | dict | None |
Is used to match structured data files like JSON or HDF5. |
SchemaPackageEntryPoint¶
Base model for schema package plugin entry points.
name | type | |
---|---|---|
name | str | None |
Name of the plugin entry point. |
description | str | None |
A human readable description of the plugin entry point. |
Default plugin entry points¶
This is a list of the plugin entry points that are activated by default:
example_upload: example_uploads/1_basic_examples/1_theory, example_uploads/1_basic_examples/2_eln, example_uploads/1_basic_examples/3_tables, example_uploads/2_tutorials/1_rdm_tutorial, example_uploads/2_tutorials/2_cow_tutorial, nomad_external_eln_integrations.example_uploads:elabftwexample, pynxtools_xps.nomad.entrypoints:xps_example, pynxtools_mpes.nomad.entrypoints:mpes_example, pynxtools_ellips.nomad.entrypoints:ellips_example, pynxtools.nomad.entrypoints:iv_temp_example, nomad_plugin_gui.example_uploads:ui_demonstration_example_upload, pynxtools_stm.nomad.entrypoints:stm_example, pynxtools_stm.nomad.entrypoints:sts_example, pynxtools_apm.nomad.entrypoints:apm_example, pynxtools_em.nomad.entrypoints:em_example, nomad_catalysis.example_uploads:catalysis
app: apps/1_all/1_entries, apps/2_theory/1_calculations, apps/2_theory/2_materials, apps/3_experiment/1_eln, apps/3_experiment/2_eels, nomad_simulation_apps.apps:alexandria_entry_point, nomad_porous_materials.apps:mofapp, nomad_aitoolkit.apps:aitoolkit, nomad_catalysis.apps:catalysis, perovskite_solar_cell_database.apps:perovskite_ions, perovskite_solar_cell_database.apps:perovskite_solar_cell_database_app, perovskite_solar_cell_database.apps:solar_cells
normalizer: simulationworkflownormalizer:simulationworkflow_normalizer_entry_point, bandstructurenormalizer:bandstructure_normalizer_entry_point, dosnormalizer:dos_normalizer_entry_point, spectranormalizer:spectra_normalizer_entry_point, nomad_porous_materials.normalizers:porositynormalizer, systemnormalizer:system_normalizer_entry_point, soapnormalizer:soap_normalizer_entry_point
schema_package: runschema:run_schema_entry_point, nomad_external_eln_integrations.schema_packages.elabftw:elabftw_schema, nomad_external_eln_integrations.schema_packages.labfolder:labfolder_schema, nomad_external_eln_integrations.schema_packages.openbis:openbis_schema, simulationworkflowschema:simulationworkflow_schema_entry_point, pynxtools.nomad.entrypoints:nexus_data_converter, pynxtools.nomad.entrypoints:nexus_schema, nomad_plugin_gui.schema_packages:demo_schema, nomad_plugin_gui.schema_packages:exercise_schema, nomad_plugin_gui.schema_packages:values_test_schema, nomad_simulations.schema_packages:nomad_simulations_plugin, nomad_aitoolkit:aitoolkit, nomad_catalysis.schema_packages:catalysis, perovskite_solar_cell_database:perovskite_composition, perovskite_solar_cell_database:perovskite_solar_cell
parser: nomad_external_eln_integrations.parsers:chemotion_parser_entry_point, nomad_external_eln_integrations.parsers:elabftw_parser_entry_point, workflowparsers:aflow_parser_entry_point, workflowparsers:asr_parser_entry_point, workflowparsers:atomate_parser_entry_point, workflowparsers:elastic_parser_entry_point, workflowparsers:fhivibes_parser_entry_point, workflowparsers:lobster_parser_entry_point, workflowparsers:phonopy_parser_entry_point, workflowparsers:quantum_espresso_epw_parser_entry_point, workflowparsers:quantum_espresso_phonon_parser_entry_point, workflowparsers:quantum_espresso_xspectra_parser_entry_point, databaseparsers:openkim_parser_entry_point, electronicparsers:abacus_parser_entry_point, electronicparsers:abinit_parser_entry_point, electronicparsers:ams_parser_entry_point, electronicparsers:atk_parser_entry_point, electronicparsers:bigdft_parser_entry_point, electronicparsers:castep_parser_entry_point, electronicparsers:charmm_parser_entry_point, electronicparsers:cp2k_parser_entry_point, electronicparsers:cpmd_parser_entry_point, electronicparsers:crystal_parser_entry_point, electronicparsers:dmol3_parser_entry_point, electronicparsers:edmft_parser_entry_point, electronicparsers:elk_parser_entry_point, electronicparsers:exciting_parser_entry_point, electronicparsers:fhiaims_parser_entry_point, electronicparsers:fleur_parser_entry_point, electronicparsers:fplo_parser_entry_point, electronicparsers:gamess_parser_entry_point, electronicparsers:gaussian_parser_entry_point, electronicparsers:gpaw_parser_entry_point, electronicparsers:magres_parser_entry_point, electronicparsers:molcas_parser_entry_point, electronicparsers:mopac_parser_entry_point, electronicparsers:nwchem_parser_entry_point, electronicparsers:ocean_parser_entry_point, electronicparsers:octopus_parser_entry_point, electronicparsers:onetep_parser_entry_point, electronicparsers:openmx_parser_entry_point, electronicparsers:orca_parser_entry_point, electronicparsers:psi4_parser_entry_point, electronicparsers:qball_parser_entry_point, electronicparsers:qbox_parser_entry_point, electronicparsers:quantumespresso_parser_entry_point, electronicparsers:siesta_parser_entry_point, electronicparsers:soliddmft_parser_entry_point, electronicparsers:tbstudio_parser_entry_point, electronicparsers:turbomole_parser_entry_point, electronicparsers:vasp_parser_entry_point, electronicparsers:w2dynamics_parser_entry_point, electronicparsers:wannier90_parser_entry_point, electronicparsers:wien2k_parser_entry_point, electronicparsers:yambo_parser_entry_point, pynxtools.nomad.entrypoints:nexus_parser, atomisticparsers:amber_parser_entry_point, atomisticparsers:asap_parser_entry_point, atomisticparsers:ase_parser_entry_point, atomisticparsers:bopfox_parser_entry_point, atomisticparsers:dftbplus_parser_entry_point, atomisticparsers:dlpoly_parser_entry_point, atomisticparsers:gromacs_parser_entry_point, atomisticparsers:gromos_parser_entry_point, atomisticparsers:gulp_parser_entry_point, atomisticparsers:h5md_parser_entry_point, atomisticparsers:lammps_parser_entry_point, atomisticparsers:libatoms_parser_entry_point, atomisticparsers:namd_parser_entry_point, atomisticparsers:tinker_parser_entry_point, atomisticparsers:xtb_parser_entry_point, eelsdbparser:eelsdb_parser_entry_point, perovskite_solar_cell_database:ion_parser
api: nomad_plugin_gui.apis:app_api, nomad_plugin_gui.apis:gui_api