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