diff --git a/src/nomad_parser_vasp/parsers/__init__.py b/src/nomad_parser_vasp/parsers/__init__.py index 08503ee..21205b2 100644 --- a/src/nomad_parser_vasp/parsers/__init__.py +++ b/src/nomad_parser_vasp/parsers/__init__.py @@ -1,20 +1,23 @@ -from nomad.config.models.plugins import EntryPoint from pydantic import Field +from nomad.config.models.plugins import ParserEntryPoint -class VasprunXMLEntryPoint(EntryPoint): +class VasprunXMLEntryPoint(ParserEntryPoint): parameter: int = Field(0, description='Custom configuration parameter') + parser_class_name='nomad_parser_vasp.parsers.xml_parser.VasprunXMLParser' def load(self): - from nomad_parser_vasp.parsers.xml_parser import VasprunXMLParser + from nomad.parsing import MatchingParserInterface - return VasprunXMLParser( - 'nomad_parser_vasp/parser/xml_parser.py/VasprunXMLParser', **self.dict() - ) + return MatchingParserInterface(**self.dict()) xml_entry_point = VasprunXMLEntryPoint( - name='VasprunXML Parser', + name='nomad-parser-vasp', + python_package='nomad_parser_vasp', + code_name='VASP XML', + code_category='ab initio', + entry_point_type='parser', description='Parser for VASP output in XML format.', mainfile_name_re='.*vasprun\.xml.*', ) diff --git a/src/nomad_parser_vasp/parsers/xml_parser.py b/src/nomad_parser_vasp/parsers/xml_parser.py index 069623c..bcc422e 100644 --- a/src/nomad_parser_vasp/parsers/xml_parser.py +++ b/src/nomad_parser_vasp/parsers/xml_parser.py @@ -1,12 +1,16 @@ -from nomad.datamodel.datamodel import ( - EntryArchive, -) -from structlog.stdlib import ( - BoundLogger, +from typing import ( + TYPE_CHECKING, ) +if TYPE_CHECKING: + from nomad.datamodel.datamodel import ( + EntryArchive, + ) + from structlog.stdlib import ( + BoundLogger, + ) + from nomad.config import config -from nomad.parsing import MatchingParserInterface from nomad.parsing.file_parser.mapping_parser import ( MetainfoParser, XMLParser, @@ -18,16 +22,16 @@ ) -class VasprunXMLParser(MatchingParserInterface): +class VasprunXMLParser: def parse( self, - mainfile: str, - archive: EntryArchive, - logger: BoundLogger, - child_archives: dict[str, EntryArchive] = None, + mainfile: 'str', + archive: 'EntryArchive', + logger: 'BoundLogger', + child_archives: 'dict[str, EntryArchive]' = None, ) -> None: - logger.info('VasprunXMLParser.parse', parameter=configuration.parameter) - mix_alpha = staticmethod(lambda mix, cond: mix if cond else 0) + logger.info(self.__class__.__name__, parameter=configuration.parameter) + mix_alpha = staticmethod(lambda mix, cond: mix if cond else 0) # pylint: disable=W0613 data_parser = MetainfoParser(annotation_key='xml', data_object=Simulation()) XMLParser(filepath=mainfile).convert(data_parser)