diff --git a/wien2kparser/parser_wien2k.py b/wien2kparser/parser_wien2k.py index d2c53f8fb0cdd9d4ee25b047602bda433f12abf3..f496ada3cd1e8b91b9a7eb0ae01ceaccf22be3f5 100644 --- a/wien2kparser/parser_wien2k.py +++ b/wien2kparser/parser_wien2k.py @@ -13,9 +13,9 @@ import wien2kparser.wien2k_parser_in1c as wien2k_parser_in1c import wien2kparser.wien2k_parser_in2c as wien2k_parser_in2c import wien2kparser.wien2k_parser_in1 as wien2k_parser_in1 import wien2kparser.wien2k_parser_in2 as wien2k_parser_in2 -import wien2kparser.setup_paths as setup_paths import logging as _logging +from nomad.parsing.legacy import CoESimpleMatcherParser ################################################################ # This is the parser for the main output file (.scf) of WIEN2k. @@ -266,47 +266,26 @@ mainFileDescription = SM( ]) -# which values to cache or forward (mapping meta name -> CachingLevel) +class Wien2kParser(CoESimpleMatcherParser): -cachingLevelForMetaName = { + def metainfo_env(self): + from .metainfo import m_env + return m_env - "XC_functional_name": CachingLevel.ForwardAndCache, - "energy_total": CachingLevel.ForwardAndCache + def create_super_context(self): + return Wien2kContext() - } + def create_simple_matcher(self): + return mainFileDescription -# loading metadata from nomad-meta-info/meta_info/nomad_meta_info/fhi_aims.nomadmetainfo.json + def create_parser_description(self): + return { + "name": "Wien2k", + "version": "1.0" + } -parserInfo = { - "name": "Wien2k", - "version": "1.0" -} - -class Wien2kParser(): - """ A proper class envolop for running this parser from within python. """ - def __init__(self, backend, **kwargs): - self.backend_factory = backend - - def parse(self, mainfile): - from unittest.mock import patch - _logging.getLogger('nomadcore').setLevel(_logging.WARNING) - backend = self.backend_factory("wien2k.nomadmetainfo.json") - with patch.object(sys, 'argv', ['<exe>', '--uri', 'nmd://uri', mainfile]): - mainFunction( - mainFileDescription, - None, - parserInfo, - cachingLevelForMetaName = cachingLevelForMetaName, - superContext=Wien2kContext(), - superBackend=backend) - - return backend - - -if __name__ == "__main__": - import metainfo - metaInfoPath = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(metainfo.__file__)), "wien2k.nomadmetainfo.json")) - metaInfoEnv, warnings = loadJsonFile(filePath = metaInfoPath, dependencyLoader = None, extraArgsHandling = InfoKindEl.ADD_EXTRA_ARGS, uri = None) - - superContext = Wien2kContext() - mainFunction(mainFileDescription, metaInfoEnv, parserInfo, superContext = superContext) + def create_caching_levels(self): + return { + "XC_functional_name": CachingLevel.ForwardAndCache, + "energy_total": CachingLevel.ForwardAndCache + } diff --git a/wien2kparser/setup_paths.py b/wien2kparser/setup_paths.py deleted file mode 100644 index ed289a03788bc3b3a21431c039bb1668ea8f961d..0000000000000000000000000000000000000000 --- a/wien2kparser/setup_paths.py +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 2016-2018 Daria Tomecka, Fawzi Mohamed -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -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/wien2kparser/wien2k_parser_in0.py b/wien2kparser/wien2k_parser_in0.py index f3de4f7c8ec8b7e6d311746b6b67ce9d112c5e67..73c49c6dd98d99ac24ab7e94d6dccf2965453abb 100644 --- a/wien2kparser/wien2k_parser_in0.py +++ b/wien2kparser/wien2k_parser_in0.py @@ -1,5 +1,4 @@ from builtins import object -import wien2kparser.setup_paths as setup_paths from nomadcore.simple_parser import mainFunction, CachingLevel from nomadcore.simple_parser import SimpleMatcher as SM from nomadcore.local_meta_info import loadJsonFile, InfoKindEl diff --git a/wien2kparser/wien2k_parser_in1.py b/wien2kparser/wien2k_parser_in1.py index e8dfdcdd27e04b2499dd51e8d5aee4241926acd7..96805243290cb9a46427dcff9666d709f54a64ec 100644 --- a/wien2kparser/wien2k_parser_in1.py +++ b/wien2kparser/wien2k_parser_in1.py @@ -1,5 +1,4 @@ from builtins import object -import wien2kparser.setup_paths as setup_paths from nomadcore.simple_parser import mainFunction, CachingLevel from nomadcore.simple_parser import SimpleMatcher as SM from nomadcore.local_meta_info import loadJsonFile, InfoKindEl diff --git a/wien2kparser/wien2k_parser_in1c.py b/wien2kparser/wien2k_parser_in1c.py index 95c862e3eff825f68dfb714a2f807497a19b19d8..1a9ce54b91d9815887998ffcff15aeac922732dc 100644 --- a/wien2kparser/wien2k_parser_in1c.py +++ b/wien2kparser/wien2k_parser_in1c.py @@ -1,5 +1,4 @@ from builtins import object -import wien2kparser.setup_paths as setup_paths from nomadcore.simple_parser import mainFunction, CachingLevel from nomadcore.simple_parser import SimpleMatcher as SM from nomadcore.local_meta_info import loadJsonFile, InfoKindEl diff --git a/wien2kparser/wien2k_parser_in2.py b/wien2kparser/wien2k_parser_in2.py index 452918aba7ddaeb71e9807c423d0296c717b0234..46a3f7546fd0109bc147ddb988e6b3ccf27014c6 100644 --- a/wien2kparser/wien2k_parser_in2.py +++ b/wien2kparser/wien2k_parser_in2.py @@ -1,5 +1,4 @@ from builtins import object -import wien2kparser.setup_paths as setup_paths from nomadcore.simple_parser import mainFunction, CachingLevel from nomadcore.simple_parser import SimpleMatcher as SM from nomadcore.local_meta_info import loadJsonFile, InfoKindEl diff --git a/wien2kparser/wien2k_parser_in2c.py b/wien2kparser/wien2k_parser_in2c.py index 693a62d6582c1b99d0e738e6ef59b9ff46f4532d..07a10ae2101a4a85169bec2b851c49ce4d0f4f4c 100644 --- a/wien2kparser/wien2k_parser_in2c.py +++ b/wien2kparser/wien2k_parser_in2c.py @@ -1,5 +1,4 @@ from builtins import object -import wien2kparser.setup_paths as setup_paths from nomadcore.simple_parser import mainFunction, CachingLevel from nomadcore.simple_parser import SimpleMatcher as SM from nomadcore.local_meta_info import loadJsonFile, InfoKindEl diff --git a/wien2kparser/wien2k_parser_struct.py b/wien2kparser/wien2k_parser_struct.py index 27ffa5267bf66d5fd0332392f85853abe5c696be..c6b6627f5862b93190863b3dd83db5d9407af1ce 100644 --- a/wien2kparser/wien2k_parser_struct.py +++ b/wien2kparser/wien2k_parser_struct.py @@ -1,5 +1,4 @@ from builtins import object -import wien2kparser.setup_paths as setup_paths from nomadcore.simple_parser import mainFunction, CachingLevel from nomadcore.simple_parser import SimpleMatcher as SM from nomadcore.local_meta_info import loadJsonFile, InfoKindEl