Skip to content

hsdiff on ndarray attribute raises AttributeError #426

@jonatantreijs

Description

@jonatantreijs

Running hsdiff on a domain that contains an attribute of type ndarray results in an error.

hsdiff --verbose test.hdf5 /DiffTest5
file: test.hdf5
domain: /DiffTest5
checking group </>
checking attribute attr of /
Traceback (most recent call last):
  File "/Users/jonatantreijs/miniconda3/envs/h5pyd-test/bin/hsdiff", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/Users/jonatantreijs/miniconda3/envs/h5pyd-test/lib/python3.12/site-packages/h5pyd/_apps/hsdiff.py", line 552, in main
    rc = diff_file(fin, fout, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/jonatantreijs/miniconda3/envs/h5pyd-test/lib/python3.12/site-packages/h5pyd/_apps/hsdiff.py", line 419, in diff_file
    diff_group(fin, ctx)
  File "/Users/jonatantreijs/miniconda3/envs/h5pyd-test/lib/python3.12/site-packages/h5pyd/_apps/hsdiff.py", line 216, in diff_group
    result = diff_attrs(src, tgt, ctx)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/jonatantreijs/miniconda3/envs/h5pyd-test/lib/python3.12/site-packages/h5pyd/_apps/hsdiff.py", line 92, in diff_attrs
    if hash(src_attr.tostring()) != hash(tgt_attr.tostring()):
            ^^^^^^^^^^^^^^^^^
AttributeError: 'numpy.ndarray' object has no attribute 'tostring'

I generated the file like this:

import h5py
import numpy as np


with h5py.File("test.hdf5", "w") as f:
    f.attrs["attr"] = np.array([1.0, 2.0, 3.0], dtype="f")

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions