diff --git a/vaspparser/__init__.py b/vaspparser/__init__.py index 9b0f6bcc7d9ea7e2b7e33e79ca113ee47d1d8b61..d1799db6b5e91fe8ebf63c2b1c5582d131ad0eb2 100644 --- a/vaspparser/__init__.py +++ b/vaspparser/__init__.py @@ -14,6 +14,8 @@ import os import logging +import gzip +import bz2 from nomadcore.baseclasses import ParserInterface import nomadcore.baseclasses @@ -26,7 +28,7 @@ from vaspparser.parser_outcar import VaspOutcarParser class VASPRunParser: """ The main parser class that is called for all run types. Parses the VASP - .out output files. + .xml output files. """ def __init__(self, parser_context): self.parser_context = parser_context @@ -36,7 +38,14 @@ class VASPRunParser: superContext = VasprunContext(logger=nomadcore.baseclasses.logger) parser = XmlParser(parserInfo, superContext) backend = self.parser_context.super_backend - parser.parse(os.path.abspath(filepath), open(filepath), backend) + + open_file = open + if filepath.endswith('.gz'): + open_file = gzip.open + elif filepath.endswith('.bz2'): + open_file = bz2.open + + parser.parse(os.path.abspath(filepath), open_file(filepath, 'rt'), backend) class VASPRunParserInterface(ParserInterface):