Skip to content

Commit

Permalink
Update EntryPoint setup
Browse files Browse the repository at this point in the history
  • Loading branch information
ndaelman committed Sep 11, 2024
1 parent d500ac4 commit 9f7cb39
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 20 deletions.
17 changes: 10 additions & 7 deletions src/nomad_parser_vasp/parsers/__init__.py
Original file line number Diff line number Diff line change
@@ -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.*',
)
30 changes: 17 additions & 13 deletions src/nomad_parser_vasp/parsers/xml_parser.py
Original file line number Diff line number Diff line change
@@ -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,
Expand All @@ -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)
Expand Down

0 comments on commit 9f7cb39

Please sign in to comment.