Beginning with 2nd June, only the "Single Sign On" option for login to the GitLab web interface will be possible. If you don't have an MPCDF wide second factor so far, please get one at our SelfService (https://selfservice.mpcdf.mpg.de). The GitLab internal second factor will not work.
This MR adds the possibility of using scalar quantities from custom schemas (both Python and YAML) in queries, aggregations and in app definitions. A new documentation for Apps is also included.
That path in the data is no longer enough to target a quantity. E.g. data.sample.id
may be defined by several different schemas. We need to add an identifier for the schema in the quantity name.
Schemas are identified using the qualified_name
of the root section (can be fetched with section.qualified_name()
):
nomadschemaexample.schema.MySchema
entry_id:gTqaJYQ7IH20dl5PeX7ZPzkHudI8.MySchema
The other option would be to use the reference syntax (can be fetched with definition_reference()
), but the references to YAML files are very hard to use, as they look like this: ../uploads/Yl6DTVCVS1GqYRwEhmexrA/raw/schema.archive.yaml#/definitions/section_definitions/1
.
The full quantity identifier is <path>#<schema_name>
to target a quantity in the schema. E.g. data.sample.id#nomadschemaexample.schema.MySchema
.
The GUI will support simplified rendering of schema identifiers to remove clutter from the UI, but in the app config and in our backend the quantities need to be identified by this full name.
Currently #
is used as a separator between path and schema name. The choice is complicated by the fact that many separator are reserved for other purposes:
.
denotes section hierarchy in paths, and is also used in schema identifiers.:
is used in the YAML schema name and also for query modifiers, e.g. material.elements:all: ['Si', 'C']
/
is used in inner_section_definitions and in YAML schema paths&
is reserved for url query parameters@
is reserved for indicating a hash digest for a definition. Used to e.g. distinguish between different versions of a schema.For technical reasons, the API calls targeting YAML quantities will need to include the data type. The current syntax is like this: <path>#<schema_name>#<dtype>
. This data type is added fully transparently by the GUI, but it is up to the user to include it in manual API calls (you will get a meaningful warning if you omit it).
git checkout search
PYTHONPATH
: export PYTHONPATH="${PYTHONPATH}:/<root folder>/nomad-FAIR/tests/data/plugins"
nomad.yaml
file: nomad.yaml
git checkout search
upload_id
and entry_id
for the schema.nomad.yaml
file: nomad.yaml so that it uses the entry_id
you got from the previous step.upload_id
in line 8 of this script: generator.py. Run the script, zip the produced dataset folder.search_quantities
is populated.