[go: up one dir, main page]

Skip to content

Writing XYZ fails if Atoms.info contains a dict value

Writing the Atoms object

struct = Atoms('H4', pbc=[True, True, True], cell=[[4.00759, 0.0, 0.0], [-2.003795, 3.47067475, 0.0], [3.06349683e-16, 5.30613216e-16, 5.00307]], positions=[[-2.003795e-05, 2.31379473, 0.875437189], [2.00381504, 1.15688001, 4.12763281], [2.00381504, 1.15688001, 3.37697219], [-2.003795e-05, 2.31379473, 1.62609781]])
struct.info = {'key_value_pairs': {'dataset': 'deltatest', 'kpoints': array([28, 28, 20]), 'identifier': 'deltatest_H_1.00'}, 'unique_id': '4cf83e2f89c795fb7eaf9662e77542c1'}

to a XYZ file fails with:

Traceback (most recent call last):
  File "tests/ase_write_xyz.py", line 17, in <module>
    ase_io.write(fhandle, struct, format='xyz')
  File "/usr/lib64/python3.5/site-packages/ase/io/formats.py", line 228, in write
    _write(filename, fd, format, io, images, **kwargs)
  File "/usr/lib64/python3.5/site-packages/ase/io/formats.py", line 257, in _write
    io.write(fd, images, **kwargs)
  File "/usr/lib64/python3.5/site-packages/ase/io/extxyz.py", line 539, in write_xyz
    per_frame_results)
  File "/usr/lib64/python3.5/site-packages/ase/io/extxyz.py", line 435, in output_column_format
    comment_str += ' ' + key_val_dict_to_str(info)
  File "/usr/lib64/python3.5/site-packages/ase/io/extxyz.py", line 130, in key_val_dict_to_str
    for x in val.reshape(val.size, order='F'))
  File "/usr/lib64/python3.5/site-packages/ase/io/extxyz.py", line 130, in <genexpr>
    for x in val.reshape(val.size, order='F'))
TypeError: unhashable type: 'dict'