From 80587fd9d60c450f0b70ca40c25ab2567c1af164 Mon Sep 17 00:00:00 2001 From: "Himanen, Lauri (himanel1)" <lauri.himanen@aalto.fi> Date: Thu, 21 Jan 2016 11:29:51 +0200 Subject: [PATCH] Moved package one level deeper, can't use mainFunction anymore so next creating my own... --- .../parser-cp2k/cp2karser.egg-info/PKG-INFO | 10 +++++ .../cp2karser.egg-info/SOURCES.txt | 10 +++++ .../cp2karser.egg-info/dependency_links.txt | 1 + .../cp2karser.egg-info/not-zip-safe | 1 + .../cp2karser.egg-info/requires.txt | 3 ++ .../cp2karser.egg-info/top_level.txt | 1 + parser/parser-cp2k/cp2kparser/__init__.py | 2 + .../cp2kparser}/__main__.py | 0 .../cp2kparser}/parsing/__init__.py | 0 .../parsing/cp2kinputenginedata/__init__.py | 0 .../cp2k_262/cp2k_input.xml | 0 .../cp2k_262/cp2k_input_tree.pickle | Bin .../cp2k_262/references.html | 0 .../cp2kinputenginedata/cp2k_262/units.html | 0 .../parsing/cp2kinputenginedata/input_tree.py | 0 .../cp2kinputenginedata/xmlpreparser.py | 0 .../cp2kparser}/parsing/csvparsing.py | 0 .../cp2kparser}/parsing/implementations.py | 10 ++--- .../cp2kparser}/parsing/inputparsing.py | 0 .../cp2kparser}/parsing/outputparsing.py | 2 +- .../cp2kparser/parsing}/parser.py | 12 +----- .../parser-cp2k/cp2kparser/scalainterface.py | 37 +++++++++++++++++ .../cp2kparser}/utils/__init__.py | 0 .../cp2kparser}/utils/baseclasses.py | 39 +++--------------- .../cp2kparser}/utils/logconfig.py | 0 .../cp2kparser}/utils/testing.py | 0 parser/{ => parser-cp2k}/setup.py | 4 +- parser/parsercp2k/__init__.py | 2 - parser/parsercp2k/parsing/autoparser.py | 26 ------------ parser/parsercp2k/setup_paths.py | 8 ---- 30 files changed, 81 insertions(+), 87 deletions(-) create mode 100644 parser/parser-cp2k/cp2karser.egg-info/PKG-INFO create mode 100644 parser/parser-cp2k/cp2karser.egg-info/SOURCES.txt create mode 100644 parser/parser-cp2k/cp2karser.egg-info/dependency_links.txt create mode 100644 parser/parser-cp2k/cp2karser.egg-info/not-zip-safe create mode 100644 parser/parser-cp2k/cp2karser.egg-info/requires.txt create mode 100644 parser/parser-cp2k/cp2karser.egg-info/top_level.txt create mode 100644 parser/parser-cp2k/cp2kparser/__init__.py rename parser/{parsercp2k => parser-cp2k/cp2kparser}/__main__.py (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/parsing/__init__.py (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/parsing/cp2kinputenginedata/__init__.py (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/parsing/cp2kinputenginedata/cp2k_262/cp2k_input.xml (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/parsing/cp2kinputenginedata/cp2k_262/cp2k_input_tree.pickle (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/parsing/cp2kinputenginedata/cp2k_262/references.html (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/parsing/cp2kinputenginedata/cp2k_262/units.html (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/parsing/cp2kinputenginedata/input_tree.py (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/parsing/cp2kinputenginedata/xmlpreparser.py (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/parsing/csvparsing.py (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/parsing/implementations.py (98%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/parsing/inputparsing.py (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/parsing/outputparsing.py (99%) rename parser/{parsercp2k => parser-cp2k/cp2kparser/parsing}/parser.py (88%) create mode 100644 parser/parser-cp2k/cp2kparser/scalainterface.py rename parser/{parsercp2k => parser-cp2k/cp2kparser}/utils/__init__.py (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/utils/baseclasses.py (89%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/utils/logconfig.py (100%) rename parser/{parsercp2k => parser-cp2k/cp2kparser}/utils/testing.py (100%) rename parser/{ => parser-cp2k}/setup.py (91%) delete mode 100644 parser/parsercp2k/__init__.py delete mode 100644 parser/parsercp2k/parsing/autoparser.py delete mode 100644 parser/parsercp2k/setup_paths.py diff --git a/parser/parser-cp2k/cp2karser.egg-info/PKG-INFO b/parser/parser-cp2k/cp2karser.egg-info/PKG-INFO new file mode 100644 index 0000000..4733d8b --- /dev/null +++ b/parser/parser-cp2k/cp2karser.egg-info/PKG-INFO @@ -0,0 +1,10 @@ +Metadata-Version: 1.0 +Name: cp2karser +Version: 0.1 +Summary: NoMaD parser implementation for CP2K +Home-page: UNKNOWN +Author: Lauri Himanen +Author-email: lauri.himanen@gmail.com +License: GPL3 +Description: UNKNOWN +Platform: UNKNOWN diff --git a/parser/parser-cp2k/cp2karser.egg-info/SOURCES.txt b/parser/parser-cp2k/cp2karser.egg-info/SOURCES.txt new file mode 100644 index 0000000..c2661e9 --- /dev/null +++ b/parser/parser-cp2k/cp2karser.egg-info/SOURCES.txt @@ -0,0 +1,10 @@ +setup.py +cp2karser.egg-info/PKG-INFO +cp2karser.egg-info/SOURCES.txt +cp2karser.egg-info/dependency_links.txt +cp2karser.egg-info/not-zip-safe +cp2karser.egg-info/requires.txt +cp2karser.egg-info/top_level.txt +cp2kparser/__init__.py +cp2kparser/__main__.py +cp2kparser/scalainterface.py \ No newline at end of file diff --git a/parser/parser-cp2k/cp2karser.egg-info/dependency_links.txt b/parser/parser-cp2k/cp2karser.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/parser/parser-cp2k/cp2karser.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/parser/parser-cp2k/cp2karser.egg-info/not-zip-safe b/parser/parser-cp2k/cp2karser.egg-info/not-zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/parser/parser-cp2k/cp2karser.egg-info/not-zip-safe @@ -0,0 +1 @@ + diff --git a/parser/parser-cp2k/cp2karser.egg-info/requires.txt b/parser/parser-cp2k/cp2karser.egg-info/requires.txt new file mode 100644 index 0000000..b029f20 --- /dev/null +++ b/parser/parser-cp2k/cp2karser.egg-info/requires.txt @@ -0,0 +1,3 @@ +pint +numpy +ase \ No newline at end of file diff --git a/parser/parser-cp2k/cp2karser.egg-info/top_level.txt b/parser/parser-cp2k/cp2karser.egg-info/top_level.txt new file mode 100644 index 0000000..2209159 --- /dev/null +++ b/parser/parser-cp2k/cp2karser.egg-info/top_level.txt @@ -0,0 +1 @@ +cp2kparser diff --git a/parser/parser-cp2k/cp2kparser/__init__.py b/parser/parser-cp2k/cp2kparser/__init__.py new file mode 100644 index 0000000..0a1233a --- /dev/null +++ b/parser/parser-cp2k/cp2kparser/__init__.py @@ -0,0 +1,2 @@ +import cp2kparser.utils.logconfig +from cp2kparser.parsing.parser import CP2KParser diff --git a/parser/parsercp2k/__main__.py b/parser/parser-cp2k/cp2kparser/__main__.py similarity index 100% rename from parser/parsercp2k/__main__.py rename to parser/parser-cp2k/cp2kparser/__main__.py diff --git a/parser/parsercp2k/parsing/__init__.py b/parser/parser-cp2k/cp2kparser/parsing/__init__.py similarity index 100% rename from parser/parsercp2k/parsing/__init__.py rename to parser/parser-cp2k/cp2kparser/parsing/__init__.py diff --git a/parser/parsercp2k/parsing/cp2kinputenginedata/__init__.py b/parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/__init__.py similarity index 100% rename from parser/parsercp2k/parsing/cp2kinputenginedata/__init__.py rename to parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/__init__.py diff --git a/parser/parsercp2k/parsing/cp2kinputenginedata/cp2k_262/cp2k_input.xml b/parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/cp2k_262/cp2k_input.xml similarity index 100% rename from parser/parsercp2k/parsing/cp2kinputenginedata/cp2k_262/cp2k_input.xml rename to parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/cp2k_262/cp2k_input.xml diff --git a/parser/parsercp2k/parsing/cp2kinputenginedata/cp2k_262/cp2k_input_tree.pickle b/parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/cp2k_262/cp2k_input_tree.pickle similarity index 100% rename from parser/parsercp2k/parsing/cp2kinputenginedata/cp2k_262/cp2k_input_tree.pickle rename to parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/cp2k_262/cp2k_input_tree.pickle diff --git a/parser/parsercp2k/parsing/cp2kinputenginedata/cp2k_262/references.html b/parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/cp2k_262/references.html similarity index 100% rename from parser/parsercp2k/parsing/cp2kinputenginedata/cp2k_262/references.html rename to parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/cp2k_262/references.html diff --git a/parser/parsercp2k/parsing/cp2kinputenginedata/cp2k_262/units.html b/parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/cp2k_262/units.html similarity index 100% rename from parser/parsercp2k/parsing/cp2kinputenginedata/cp2k_262/units.html rename to parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/cp2k_262/units.html diff --git a/parser/parsercp2k/parsing/cp2kinputenginedata/input_tree.py b/parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/input_tree.py similarity index 100% rename from parser/parsercp2k/parsing/cp2kinputenginedata/input_tree.py rename to parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/input_tree.py diff --git a/parser/parsercp2k/parsing/cp2kinputenginedata/xmlpreparser.py b/parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/xmlpreparser.py similarity index 100% rename from parser/parsercp2k/parsing/cp2kinputenginedata/xmlpreparser.py rename to parser/parser-cp2k/cp2kparser/parsing/cp2kinputenginedata/xmlpreparser.py diff --git a/parser/parsercp2k/parsing/csvparsing.py b/parser/parser-cp2k/cp2kparser/parsing/csvparsing.py similarity index 100% rename from parser/parsercp2k/parsing/csvparsing.py rename to parser/parser-cp2k/cp2kparser/parsing/csvparsing.py diff --git a/parser/parsercp2k/parsing/implementations.py b/parser/parser-cp2k/cp2kparser/parsing/implementations.py similarity index 98% rename from parser/parsercp2k/parsing/implementations.py rename to parser/parser-cp2k/cp2kparser/parsing/implementations.py index 9ea3cf6..7c4ccc8 100644 --- a/parser/parsercp2k/parsing/implementations.py +++ b/parser/parser-cp2k/cp2kparser/parsing/implementations.py @@ -1,11 +1,11 @@ import re import os import logging -from parsercp2k.parsing.csvparsing import CSVParser -from parsercp2k.parsing.inputparsing import CP2KInputParser -from parsercp2k.parsing.cp2kinputenginedata.input_tree import CP2KInput -from parsercp2k.parsing.outputparsing import * -from parsercp2k.utils.baseclasses import ParserImplementation +from cp2kparser.parsing.csvparsing import CSVParser +from cp2kparser.parsing.inputparsing import CP2KInputParser +from cp2kparser.parsing.cp2kinputenginedata.input_tree import CP2KInput +from cp2kparser.parsing.outputparsing import * +from cp2kparser.utils.baseclasses import ParserImplementation from nomadcore.coordinate_reader import CoordinateReader logger = logging.getLogger(__name__) diff --git a/parser/parsercp2k/parsing/inputparsing.py b/parser/parser-cp2k/cp2kparser/parsing/inputparsing.py similarity index 100% rename from parser/parsercp2k/parsing/inputparsing.py rename to parser/parser-cp2k/cp2kparser/parsing/inputparsing.py diff --git a/parser/parsercp2k/parsing/outputparsing.py b/parser/parser-cp2k/cp2kparser/parsing/outputparsing.py similarity index 99% rename from parser/parsercp2k/parsing/outputparsing.py rename to parser/parser-cp2k/cp2kparser/parsing/outputparsing.py index 6ae0058..f051ef5 100644 --- a/parser/parsercp2k/parsing/outputparsing.py +++ b/parser/parser-cp2k/cp2kparser/parsing/outputparsing.py @@ -204,7 +204,7 @@ class CP2KOutputParser262(object): cell[1, :] = b_comp cell[2, :] = c_comp - backend.addArrayValues("cell", cell, unit="angstrom") + backend.addArrayValues("simulation_cell", cell, unit="angstrom") # Get the number of atoms numbers = section["cp2k_section_numbers"] diff --git a/parser/parsercp2k/parser.py b/parser/parser-cp2k/cp2kparser/parsing/parser.py similarity index 88% rename from parser/parsercp2k/parser.py rename to parser/parser-cp2k/cp2kparser/parsing/parser.py index be9428e..36fca10 100644 --- a/parser/parsercp2k/parser.py +++ b/parser/parser-cp2k/cp2kparser/parsing/parser.py @@ -1,8 +1,7 @@ import re import logging -import parsercp2k.setup_paths -from parsercp2k.utils.baseclasses import Parser -from parsercp2k.parsing.implementations import * +from cp2kparser.utils.baseclasses import Parser +from cp2kparser.parsing.implementations import * logger = logging.getLogger(__name__) @@ -71,10 +70,3 @@ class CP2KParser(Parser): the nomadtoolkit. """ return "cp2k.nomadmetainfo.json" - - -#=============================================================================== -# This is what gets run when the scala layer calls for this parser -if __name__ == "__main__": - cp2kparser = CP2KParser() - cp2kparser.scala_main_function() diff --git a/parser/parser-cp2k/cp2kparser/scalainterface.py b/parser/parser-cp2k/cp2kparser/scalainterface.py new file mode 100644 index 0000000..bbb946a --- /dev/null +++ b/parser/parser-cp2k/cp2kparser/scalainterface.py @@ -0,0 +1,37 @@ +""" +This is the access point to the parser for the scala layer in the nomad project. +""" +import os +from cp2kparser import CP2KParser +from nomadcore.local_meta_info import loadJsonFile, InfoKindEl +from nomadcore.simple_parser import mainFunction + +# This is what gets run when the scala layer calls for this parser. Currently +# only the outputparser is used because the scala layer doesn't support +# auxiliary files. Also the version identification is skipped and the structure +# used in CP2K 2.6.2 is assumed. +if __name__ == "__main__": + cp2kparser = CP2KParser() + + # Get the outputparser class + outputparser = globals()["CP2KOutputParser{}".format("262")](None, None) + + # Setup the metainfos + metaInfoPath = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../../../nomad-meta-info/meta_info/nomad_meta_info/{}".format(cp2kparser.get_metainfo_filename()))) + metaInfoEnv, warnings = loadJsonFile(filePath=metaInfoPath, dependencyLoader=None, extraArgsHandling=InfoKindEl.ADD_EXTRA_ARGS, uri=None) + + # Parser info + parserInfo = {'name': 'cp2k-parser', 'version': '1.0'} + + # Adjust caching of metadata + cachingLevelForMetaName = outputparser.cachingLevelForMetaName + + # Supercontext is where the objet where the callback functions for + # section closing are found + superContext = outputparser + + # Main file description is the SimpleParser tree + mainFileDescription = outputparser.outputstructure + + # Use the main function from nomadcore + mainFunction(mainFileDescription, metaInfoEnv, parserInfo, superContext=superContext, cachingLevelForMetaName=cachingLevelForMetaName, onClose={}) diff --git a/parser/parsercp2k/utils/__init__.py b/parser/parser-cp2k/cp2kparser/utils/__init__.py similarity index 100% rename from parser/parsercp2k/utils/__init__.py rename to parser/parser-cp2k/cp2kparser/utils/__init__.py diff --git a/parser/parsercp2k/utils/baseclasses.py b/parser/parser-cp2k/cp2kparser/utils/baseclasses.py similarity index 89% rename from parser/parsercp2k/utils/baseclasses.py rename to parser/parser-cp2k/cp2kparser/utils/baseclasses.py index c6a5450..34aff6e 100644 --- a/parser/parsercp2k/utils/baseclasses.py +++ b/parser/parser-cp2k/cp2kparser/utils/baseclasses.py @@ -3,11 +3,8 @@ import sys import logging import StringIO from abc import ABCMeta, abstractmethod -from parsercp2k.parsing.outputparsing import * from nomadcore.simple_parser import SimpleParserBuilder, defaultParseFile, extractOnCloseTriggers -from nomadcore.local_meta_info import loadJsonFile, InfoKindEl from nomadcore.caching_backend import CachingLevel, ActiveBackend -from nomadcore.simple_parser import mainFunction logger = logging.getLogger(__name__) @@ -16,8 +13,11 @@ class Parser(object): """A base class for nomad parsers. Attributes: - self.implementation: an object that actually does the parsing and is + implementation: an object that actually does the parsing and is setup by this class based on the given contents. + parser_context: A wrapper class for all the parser related information. + This is contructed here and then passed onto the different + implementations. """ __metaclass__ = ABCMeta parser_name = None @@ -97,39 +97,12 @@ class Parser(object): logger.error("No parser implementation has been setup.") # Write the starting bracket - self.backend.fileOut.write("[") + self.implementation.backend.fileOut.write("[") self.implementation.parse() # Write the ending bracket - self.backend.fileOut.write("]\n") - - def scala_main_function(self): - """This function gets called when the scala calls for a parser. - """ - - # Get the outputparser class - outputparser = globals()["CP2KOutputParser{}".format("262")](None, None) - - # Setup the metainfos - metaInfoPath = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../../../nomad-meta-info/meta_info/nomad_meta_info/{}".format(self.get_metainfo_filename()))) - metaInfoEnv, warnings = loadJsonFile(filePath=metaInfoPath, dependencyLoader=None, extraArgsHandling=InfoKindEl.ADD_EXTRA_ARGS, uri=None) - - # Parser info - parserInfo = {'name': 'cp2k-parser', 'version': '1.0'} - - # Adjust caching of metadata - cachingLevelForMetaName = outputparser.cachingLevelForMetaName - - # Supercontext is where the objet where the callback functions for - # section closing are found - superContext = outputparser - - # Main file description is the SimpleParser tree - mainFileDescription = outputparser.outputstructure - - # Use the main function from nomadcore - mainFunction(mainFileDescription, metaInfoEnv, parserInfo, superContext=superContext, cachingLevelForMetaName=cachingLevelForMetaName, onClose={}) + self.implementation.backend.fileOut.write("]\n") #=============================================================================== diff --git a/parser/parsercp2k/utils/logconfig.py b/parser/parser-cp2k/cp2kparser/utils/logconfig.py similarity index 100% rename from parser/parsercp2k/utils/logconfig.py rename to parser/parser-cp2k/cp2kparser/utils/logconfig.py diff --git a/parser/parsercp2k/utils/testing.py b/parser/parser-cp2k/cp2kparser/utils/testing.py similarity index 100% rename from parser/parsercp2k/utils/testing.py rename to parser/parser-cp2k/cp2kparser/utils/testing.py diff --git a/parser/setup.py b/parser/parser-cp2k/setup.py similarity index 91% rename from parser/setup.py rename to parser/parser-cp2k/setup.py index 4282820..03a5a1d 100644 --- a/parser/setup.py +++ b/parser/parser-cp2k/setup.py @@ -5,7 +5,7 @@ from setuptools import setup, find_packages def main(): # Start package setup setup( - name="parsercp2k", + name="cp2karser", version="0.1", include_package_data=True, package_data={ @@ -15,7 +15,7 @@ def main(): author="Lauri Himanen", author_email="lauri.himanen@gmail.com", license="GPL3", - packages=["parsercp2k"], + packages=["cp2kparser"], install_requires=[ 'pint', 'numpy', diff --git a/parser/parsercp2k/__init__.py b/parser/parsercp2k/__init__.py deleted file mode 100644 index 26705c5..0000000 --- a/parser/parsercp2k/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -import parsercp2k.utils.logconfig -from parsercp2k.parser import CP2KParser diff --git a/parser/parsercp2k/parsing/autoparser.py b/parser/parsercp2k/parsing/autoparser.py deleted file mode 100644 index bebecb4..0000000 --- a/parser/parsercp2k/parsing/autoparser.py +++ /dev/null @@ -1,26 +0,0 @@ -import sys -import os -import cStringIO -from parsercp2k.implementation.cp2kparserversioner import CP2KParserVersioner -from parsercp2k.generics.testing import get_parser - - -#=============================================================================== -def parse_path(path, metainfo_to_keep=[], metainfo_to_skip=[], dump=False): - """Generates a cp2k parser using the tools defined in testing.py and parses - the contents in the given path - """ - # If a dump is requested, the results will be saved to a file under the - # current folder - if dump: - stream = cStringIO.StringIO() - else: - stream = sys.stdout - parserbuilder = CP2KParserVersioner - metainfopath = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../../nomad-meta-info/meta_info/nomad_meta_info/cp2k.nomadmetainfo.json")) - parser = get_parser(path, metainfopath, parserbuilder, metainfo_to_keep, metainfo_to_skip, stream) - parser.parse() - - if dump: - outputfile = open(path + "/parseroutput.json", "w") - outputfile.write(stream.getvalue()) diff --git a/parser/parsercp2k/setup_paths.py b/parser/parsercp2k/setup_paths.py deleted file mode 100644 index 89200e0..0000000 --- a/parser/parsercp2k/setup_paths.py +++ /dev/null @@ -1,8 +0,0 @@ -import sys -import os -baseDir = os.path.dirname(os.path.abspath(__file__)) -commonDir = os.path.normpath(os.path.join(baseDir, "../../../../python-common/common/python")) - -if os.path.exists(commonDir): - if not commonDir in sys.path: - sys.path.insert(0, commonDir) -- GitLab