Source code for ase2sprkkr.ase.register

#First, register the io format by the old way
try:
    from ase.utils.plugins import ExternalIOFormat
    SPRKKRFormat = ExternalIOFormat(
        desc="SPRKKR potential file",
        module="ase2sprkkr.ase.io",
        code="+F",  # read & write, file-based
        ext=["pot", "pot_new"],
    )
except ImportError:
    pass

#Then the new way
try:
    from ase._4.plugins.calculator import CalculatorPlugin
    from ase._4.plugins.io import IOFormatPlugin

[docs] def calculator(): from ..sprkkr.calculator import SPRKKR # NOQA: E402 return SPRKKR
[docs] def sprkkr_reader(): from ..ase.io import read_sprkkr return read_sprkkr
[docs] def sprkkr_writer(): from ..ase.io import write_sprkkr return write_sprkkr
from ase2sprkkr.ase import io import ase2sprkkr __ase_plugins__ = { CalculatorPlugin( "SPRKKR", module=ase2sprkkr, implementation = calculator, bibtex="""@misc{sprkkr_software, author = {Ebert, H.}, title = {The Munich {SPRKKR} package, version 8.6}, howpublished = {University of Munich}, year = {2024}, url = {https://uni-muenchen.de} }""", ), IOFormatPlugin( name = "SPRKKR", description="SPRKKR potential file", bibtex="""@misc{sprkkr_software, author = {Ebert, H.}, title = {The Munich {SPRKKR} package, version 8.6}, howpublished = {University of Munich}, year = {2024}, url = {https://uni-muenchen.de} }""", module=io, code="+F", # read & write, file-based extensions=["pot", "pot_new"], reader=sprkkr_reader, writer=sprkkr_writer ) } def register(): pass registered = True except ImportError: registered = False
[docs] def register(): global registered if registered: return # fallback to the old way else: from ase.calculators.calculator import register_calculator_class from ase2sprkkr import SPRKKR registered = True register_calculator_class("sprkkr", SPRKKR)