From 883d1b7736f28f9e51d8d4d18900eb0f1a02f8d5 Mon Sep 17 00:00:00 2001 From: Ask Hjorth Larsen <asklarsen@gmail.com> Date: Mon, 4 Jul 2016 20:20:22 +0200 Subject: [PATCH] move files around --- .../parser-siesta/H2O}/0_NORMAL_EXIT | 0 .../parser-siesta/H2O}/BASIS_ENTHALPY | 0 .../parser-siesta/H2O}/BASIS_HARRIS_ENTHALPY | 0 {H2O => parser/parser-siesta/H2O}/CLOCK | 0 .../parser-siesta/H2O}/FORCE_STRESS | 0 {H2O => parser/parser-siesta/H2O}/H.ion | 0 {H2O => parser/parser-siesta/H2O}/H.ion.xml | 0 {H2O => parser/parser-siesta/H2O}/H.psf | 0 .../parser-siesta/H2O}/INPUT_TMP.95611 | 0 .../parser-siesta/H2O}/NON_TRIMMED_KP_LIST | 0 {H2O => parser/parser-siesta/H2O}/O.ion | 0 {H2O => parser/parser-siesta/H2O}/O.ion.xml | 0 {H2O => parser/parser-siesta/H2O}/O.psf | 0 .../parser-siesta/H2O}/fdf-95611.log | 0 {H2O => parser/parser-siesta/H2O}/h2o.BONDS | 0 .../parser-siesta/H2O}/h2o.BONDS_FINAL | 0 {H2O => parser/parser-siesta/H2O}/h2o.DM | Bin {H2O => parser/parser-siesta/H2O}/h2o.EIG | 0 {H2O => parser/parser-siesta/H2O}/h2o.FA | 0 {H2O => parser/parser-siesta/H2O}/h2o.KP | 0 .../parser-siesta/H2O}/h2o.ORB_INDX | 0 .../parser-siesta/H2O}/h2o.STRUCT_OUT | 0 {H2O => parser/parser-siesta/H2O}/h2o.XV | 0 {H2O => parser/parser-siesta/H2O}/h2o.alloc | 0 {H2O => parser/parser-siesta/H2O}/h2o.fdf | 0 {H2O => parser/parser-siesta/H2O}/h2o.xml | 0 {H2O => parser/parser-siesta/H2O}/out | 0 parser/parser-siesta/parser.py | 24 ++++++++++++++++++ parser/parser-siesta/setup_paths.py | 6 +++++ parser/parser-siesta/util.py | 20 +++++++++++++++ 30 files changed, 50 insertions(+) rename {H2O => parser/parser-siesta/H2O}/0_NORMAL_EXIT (100%) rename {H2O => parser/parser-siesta/H2O}/BASIS_ENTHALPY (100%) rename {H2O => parser/parser-siesta/H2O}/BASIS_HARRIS_ENTHALPY (100%) rename {H2O => parser/parser-siesta/H2O}/CLOCK (100%) rename {H2O => parser/parser-siesta/H2O}/FORCE_STRESS (100%) rename {H2O => parser/parser-siesta/H2O}/H.ion (100%) rename {H2O => parser/parser-siesta/H2O}/H.ion.xml (100%) rename {H2O => parser/parser-siesta/H2O}/H.psf (100%) rename {H2O => parser/parser-siesta/H2O}/INPUT_TMP.95611 (100%) rename {H2O => parser/parser-siesta/H2O}/NON_TRIMMED_KP_LIST (100%) rename {H2O => parser/parser-siesta/H2O}/O.ion (100%) rename {H2O => parser/parser-siesta/H2O}/O.ion.xml (100%) rename {H2O => parser/parser-siesta/H2O}/O.psf (100%) rename {H2O => parser/parser-siesta/H2O}/fdf-95611.log (100%) rename {H2O => parser/parser-siesta/H2O}/h2o.BONDS (100%) rename {H2O => parser/parser-siesta/H2O}/h2o.BONDS_FINAL (100%) rename {H2O => parser/parser-siesta/H2O}/h2o.DM (100%) rename {H2O => parser/parser-siesta/H2O}/h2o.EIG (100%) rename {H2O => parser/parser-siesta/H2O}/h2o.FA (100%) rename {H2O => parser/parser-siesta/H2O}/h2o.KP (100%) rename {H2O => parser/parser-siesta/H2O}/h2o.ORB_INDX (100%) rename {H2O => parser/parser-siesta/H2O}/h2o.STRUCT_OUT (100%) rename {H2O => parser/parser-siesta/H2O}/h2o.XV (100%) rename {H2O => parser/parser-siesta/H2O}/h2o.alloc (100%) rename {H2O => parser/parser-siesta/H2O}/h2o.fdf (100%) rename {H2O => parser/parser-siesta/H2O}/h2o.xml (100%) rename {H2O => parser/parser-siesta/H2O}/out (100%) create mode 100644 parser/parser-siesta/parser.py create mode 100644 parser/parser-siesta/setup_paths.py create mode 100644 parser/parser-siesta/util.py diff --git a/H2O/0_NORMAL_EXIT b/parser/parser-siesta/H2O/0_NORMAL_EXIT similarity index 100% rename from H2O/0_NORMAL_EXIT rename to parser/parser-siesta/H2O/0_NORMAL_EXIT diff --git a/H2O/BASIS_ENTHALPY b/parser/parser-siesta/H2O/BASIS_ENTHALPY similarity index 100% rename from H2O/BASIS_ENTHALPY rename to parser/parser-siesta/H2O/BASIS_ENTHALPY diff --git a/H2O/BASIS_HARRIS_ENTHALPY b/parser/parser-siesta/H2O/BASIS_HARRIS_ENTHALPY similarity index 100% rename from H2O/BASIS_HARRIS_ENTHALPY rename to parser/parser-siesta/H2O/BASIS_HARRIS_ENTHALPY diff --git a/H2O/CLOCK b/parser/parser-siesta/H2O/CLOCK similarity index 100% rename from H2O/CLOCK rename to parser/parser-siesta/H2O/CLOCK diff --git a/H2O/FORCE_STRESS b/parser/parser-siesta/H2O/FORCE_STRESS similarity index 100% rename from H2O/FORCE_STRESS rename to parser/parser-siesta/H2O/FORCE_STRESS diff --git a/H2O/H.ion b/parser/parser-siesta/H2O/H.ion similarity index 100% rename from H2O/H.ion rename to parser/parser-siesta/H2O/H.ion diff --git a/H2O/H.ion.xml b/parser/parser-siesta/H2O/H.ion.xml similarity index 100% rename from H2O/H.ion.xml rename to parser/parser-siesta/H2O/H.ion.xml diff --git a/H2O/H.psf b/parser/parser-siesta/H2O/H.psf similarity index 100% rename from H2O/H.psf rename to parser/parser-siesta/H2O/H.psf diff --git a/H2O/INPUT_TMP.95611 b/parser/parser-siesta/H2O/INPUT_TMP.95611 similarity index 100% rename from H2O/INPUT_TMP.95611 rename to parser/parser-siesta/H2O/INPUT_TMP.95611 diff --git a/H2O/NON_TRIMMED_KP_LIST b/parser/parser-siesta/H2O/NON_TRIMMED_KP_LIST similarity index 100% rename from H2O/NON_TRIMMED_KP_LIST rename to parser/parser-siesta/H2O/NON_TRIMMED_KP_LIST diff --git a/H2O/O.ion b/parser/parser-siesta/H2O/O.ion similarity index 100% rename from H2O/O.ion rename to parser/parser-siesta/H2O/O.ion diff --git a/H2O/O.ion.xml b/parser/parser-siesta/H2O/O.ion.xml similarity index 100% rename from H2O/O.ion.xml rename to parser/parser-siesta/H2O/O.ion.xml diff --git a/H2O/O.psf b/parser/parser-siesta/H2O/O.psf similarity index 100% rename from H2O/O.psf rename to parser/parser-siesta/H2O/O.psf diff --git a/H2O/fdf-95611.log b/parser/parser-siesta/H2O/fdf-95611.log similarity index 100% rename from H2O/fdf-95611.log rename to parser/parser-siesta/H2O/fdf-95611.log diff --git a/H2O/h2o.BONDS b/parser/parser-siesta/H2O/h2o.BONDS similarity index 100% rename from H2O/h2o.BONDS rename to parser/parser-siesta/H2O/h2o.BONDS diff --git a/H2O/h2o.BONDS_FINAL b/parser/parser-siesta/H2O/h2o.BONDS_FINAL similarity index 100% rename from H2O/h2o.BONDS_FINAL rename to parser/parser-siesta/H2O/h2o.BONDS_FINAL diff --git a/H2O/h2o.DM b/parser/parser-siesta/H2O/h2o.DM similarity index 100% rename from H2O/h2o.DM rename to parser/parser-siesta/H2O/h2o.DM diff --git a/H2O/h2o.EIG b/parser/parser-siesta/H2O/h2o.EIG similarity index 100% rename from H2O/h2o.EIG rename to parser/parser-siesta/H2O/h2o.EIG diff --git a/H2O/h2o.FA b/parser/parser-siesta/H2O/h2o.FA similarity index 100% rename from H2O/h2o.FA rename to parser/parser-siesta/H2O/h2o.FA diff --git a/H2O/h2o.KP b/parser/parser-siesta/H2O/h2o.KP similarity index 100% rename from H2O/h2o.KP rename to parser/parser-siesta/H2O/h2o.KP diff --git a/H2O/h2o.ORB_INDX b/parser/parser-siesta/H2O/h2o.ORB_INDX similarity index 100% rename from H2O/h2o.ORB_INDX rename to parser/parser-siesta/H2O/h2o.ORB_INDX diff --git a/H2O/h2o.STRUCT_OUT b/parser/parser-siesta/H2O/h2o.STRUCT_OUT similarity index 100% rename from H2O/h2o.STRUCT_OUT rename to parser/parser-siesta/H2O/h2o.STRUCT_OUT diff --git a/H2O/h2o.XV b/parser/parser-siesta/H2O/h2o.XV similarity index 100% rename from H2O/h2o.XV rename to parser/parser-siesta/H2O/h2o.XV diff --git a/H2O/h2o.alloc b/parser/parser-siesta/H2O/h2o.alloc similarity index 100% rename from H2O/h2o.alloc rename to parser/parser-siesta/H2O/h2o.alloc diff --git a/H2O/h2o.fdf b/parser/parser-siesta/H2O/h2o.fdf similarity index 100% rename from H2O/h2o.fdf rename to parser/parser-siesta/H2O/h2o.fdf diff --git a/H2O/h2o.xml b/parser/parser-siesta/H2O/h2o.xml similarity index 100% rename from H2O/h2o.xml rename to parser/parser-siesta/H2O/h2o.xml diff --git a/H2O/out b/parser/parser-siesta/H2O/out similarity index 100% rename from H2O/out rename to parser/parser-siesta/H2O/out diff --git a/parser/parser-siesta/parser.py b/parser/parser-siesta/parser.py new file mode 100644 index 0000000..83766fb --- /dev/null +++ b/parser/parser-siesta/parser.py @@ -0,0 +1,24 @@ +from __future__ import print_function +import sys +import setup_paths + +from nomadcore.simple_parser import mainFunction, SimpleMatcher as SM +from nomadcore.local_meta_info import loadJsonFile, InfoKindEl +from nomadcore.unit_conversion.unit_conversion \ + import register_userdefined_quantity + + +arg = sys.argv[1] + +infoFileDescription = SM( + name='root', + weak=True, + startReStr='', + fixedStartValues={'program_name': 'siesta'}, + sections=['section_run'], + subFlags=SM.SubFlags.Sequenced, + subMatchers=[ + SM(r'Siesta Version: (?P<program_version>\S*)') + ]) + + diff --git a/parser/parser-siesta/setup_paths.py b/parser/parser-siesta/setup_paths.py new file mode 100644 index 0000000..e0a0fb0 --- /dev/null +++ b/parser/parser-siesta/setup_paths.py @@ -0,0 +1,6 @@ +import sys, os, os.path +baseDir = os.path.dirname(os.path.abspath(__file__)) +commonDir = os.path.normpath(os.path.join(baseDir,"../../../../python-common/common/python")) + +if not commonDir in sys.path: + sys.path.insert(0, commonDir) diff --git a/parser/parser-siesta/util.py b/parser/parser-siesta/util.py new file mode 100644 index 0000000..6b0f4fc --- /dev/null +++ b/parser/parser-siesta/util.py @@ -0,0 +1,20 @@ +OCT_ENERGY_UNIT_NAME = 'usrOctEnergyUnit' +f_num = r'[-+]?(\d*\.\d+|\d+\.\d*)' # e.g.: 0.7 1. -.1 +e_num = r'[-+]?\d*\.\d+[EeDd][-+]\d*' # e.g.: -7.642e-300 +i_num = r'[-+\d]*' + +def numpattern(id, unit=None, pattern=f_num): + if unit is None: + pat = r'(?P<%(id)s>%(pattern)s)' + else: + pat = r'(?P<%(id)s__%(unit)s>%(pattern)s)' + return pat % dict(id=id, unit=unit, pattern=pattern) + +def pat(meta, regex): + return '(?P<%s>%s)' % (meta, regex) +def word(meta): + return pat(meta, regex=r'\S*') +def integer(meta): + return pat(meta, regex=i_num) +def floating(meta): + return pat(meta, regex='%s|%s' % (f_num, e_num)) -- GitLab