def _import_ase(filename, **kwargs): """ Imports a structure in a number of formats using the ASE routines. """ from os.path import abspath from aiida.orm.data.structure import StructureData try: import ase.io except ImportError: echo.echo_critical("You have not installed the package ase. \n" "You can install it with: pip install ase") store = kwargs.pop('store') view_in_ase = kwargs.pop('view') echo.echo('importing structure from: \n {}'.format(abspath(filename))) filepath = abspath(filename) try: asecell = ase.io.read(filepath) new_structure = StructureData(ase=asecell) if store: new_structure.store() if view_in_ase: from ase.visualize import view view(new_structure.get_ase()) echo.echo(' Succesfully imported structure {}, ' '(PK = {})'.format(new_structure.get_formula(), new_structure.pk)) except ValueError as err: echo.echo_critical(err)
def _import_xyz(filename, **kwargs): """ Imports an XYZ-file. """ from os.path import abspath from aiida.orm.data.structure import StructureData vacuum_addition = kwargs.pop('vacuum_addition') vacuum_factor = kwargs.pop('vacuum_factor') pbc = [bool(i) for i in kwargs.pop('pbc')] store = kwargs.pop('store') view_in_ase = kwargs.pop('view') echo.echo('importing XYZ-structure from: \n {}'.format(abspath(filename))) filepath = abspath(filename) with open(filepath) as fobj: xyz_txt = fobj.read() new_structure = StructureData() # pylint: disable=protected-access try: new_structure._parse_xyz(xyz_txt) new_structure._adjust_default_cell(vacuum_addition=vacuum_addition, vacuum_factor=vacuum_factor, pbc=pbc) if store: new_structure.store() if view_in_ase: from ase.visualize import view view(new_structure.get_ase()) echo.echo(' Succesfully imported structure {}, ' '(PK = {})'.format(new_structure.get_formula(), new_structure.pk)) except ValueError as err: echo.echo_critical(err)