157 lines
3.8 KiB
Plaintext
157 lines
3.8 KiB
Plaintext
{
|
|
"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
|
|
}
|