{ "cells": [ { "cell_type": "code", "execution_count": 5, "id": "2f01a012-002a-465c-9b09-681bdb3fc26d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "class\n", "type\n", "stream\n", "expver\n", "dataset\n", "model\n", "repres\n", "obsgroup\n", "reportype\n", "levtype\n", "levelist\n", "param\n", "date\n", "year\n", "month\n", "hdate\n", "offsetdate\n", "fcmonth\n", "fcperiod\n", "time\n", "offsettime\n", "step\n", "anoffset\n", "reference\n", "number\n", "quantile\n", "domain\n", "frequency\n", "direction\n", "diagnostic\n", "iteration\n", "channel\n", "ident\n", "instrument\n", "method\n", "origin\n", "system\n", "activity\n", "experiment\n", "generation\n", "realization\n", "resolution\n" ] } ], "source": [ "language_yaml = \"./language.yaml\"\n", "import yaml\n", "\n", "with open(language_yaml, \"r\") as f:\n", " mars_language = yaml.safe_load(f)[\"_field\"]\n", "\n", "for k in mars_language.keys(): print(k)" ] }, { "cell_type": "code", "execution_count": 11, "id": "be9074a8-a56f-4fd0-a466-de8904faaa1c", "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 36, "id": "9dd26fe4-5da5-48a5-9e43-83ac1085f7e6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "([Key(key='class', value='od', key_spec=class=od, reason='Matches'),\n", " Key(key='stream', value=5, key_spec=stream, reason='Matches'),\n", " Key(key='date', value='', key_spec=date, reason='Key Missing')],\n", " [Key(key='class', value='ensemble', key_spec=class=ensemble, reason='Matches'),\n", " Key(key='number', value='2', key_spec=number, reason='Matches'),\n", " Key(key='stream', value=5, key_spec=stream, reason='Matches'),\n", " Key(key='date', value='', key_spec=date, reason='Key Missing')])" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from fdb_schema import FDBSchemaFile\n", "schema = FDBSchemaFile(\"./test_schema\")\n", "\n", "r = {\n", " \"class\" : [\"ensemble\", \"od\"],\n", " \"number\" : \"2\",\n", " \"stream\" : 5,\n", "}\n", "\n", "a, b = schema.match_all(r)\n", "a, b" ] }, { "cell_type": "code", "execution_count": null, "id": "f46268e3-e197-47b9-bb6e-94f06e0bf648", "metadata": {}, "outputs": [], "source": [ "([],\n", " [[Key(key='class', value='od', key_spec=class=od, reason='Matches'),\n", " Key(key='stream', value=5, key_spec=stream, reason='Matches'),\n", " Key(key='date', value='', key_spec=date, reason='Key Missing')],\n", " \n", " [Key(key='class', value='ensemble', key_spec=class=ensemble, reason='Matches'),\n", " Key(key='number', value='2', key_spec=number, reason='Matches'),\n", " Key(key='stream', value=5, key_spec=stream, reason='Matches'),\n", " Key(key='date', value='', key_spec=date, reason='Key Missing')]])" ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:micromamba-ionbeam]", "language": "python", "name": "conda-env-micromamba-ionbeam-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.0" } }, "nbformat": 4, "nbformat_minor": 5 }