Opened 11 days ago

Closed 6 days ago

#69938 closed defect (fixed)

py312-h5py @3.11.0: ValueError: Not a datatype (not a datatype)

Reported by: Michael-P-Allen (Mike Allen) Owned by: eborisch (Eric A. Borisch)
Priority: Normal Milestone:
Component: ports Version:
Keywords: haspatch Cc: Dave-Allured (Dave Allured)
Port: py-h5py hdf5

Description

Following the upgrade to hdf5 @1.14.4.2_1+cxx+fortran+gfortran+hl I get an error message in Python when I load h5py. I took care to uninstall and reinstall the py-h5py and py312-h5py ports, so now I have:

$ port installed | grep hdf
  hdf5 @1.14.3_4+cxx+fortran+gfortran+hl
  hdf5 @1.14.4.2_0+cxx+fortran+gfortran+hl
  hdf5 @1.14.4.2_1+cxx+fortran+gfortran+hl (active)
$ port installed | grep h5
  py-h5py @3.11.0_1 (active)
  py312-h5py @3.11.0_1 (active)

The error I get is:

$ python
Python 3.12.3 (main, Apr 12 2024, 20:23:48) [Clang 15.0.0 (clang-1500.1.0.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import h5py
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/h5py/__init__.py", line 45, in <module>
    from ._conv import register_converters as _register_converters, \
  File "h5py/_conv.pyx", line 1, in init h5py._conv
  File "h5py/h5r.pyx", line 1, in init h5py.h5r
  File "h5py/h5p.pyx", line 1, in init h5py.h5p
  File "h5py/h5t.pyx", line 235, in init h5py.h5t
  File "h5py/h5t.pyx", line 80, in h5py.h5t.lockid
  File "h5py/h5t.pyx", line 49, in h5py.h5t.typewrap
ValueError: Not a datatype (not a datatype)

The error message goes away if I do sudo port activate hdf5 @1.14.4.2_0+cxx+fortran+gfortran+hl and then run python, so it must be associated with the patch introduced in hdf5 in #69861. (Also h5py worked fine with the previous version hdf5 @1.14.3_4+cxx+fortran+gfortran+hl). However, it seemed best to open a new ticket. I am running with Xcode v15.3, Sonoma 14.4.1 on an Intel-based Mac mini.

Change History (6)

comment:1 Changed 11 days ago by jmroot (Joshua Root)

Owner: set to eborisch
Port: hdf5 added
Status: newassigned

comment:2 Changed 11 days ago by Michael-P-Allen (Mike Allen)

In case it helps, I see (what looks like) the same issue arising in https://github.com/h5py/h5py/issues/2419 . I'm absolutely not competent to follow it up or suggest a fix, though.

comment:3 Changed 11 days ago by ryandesign (Ryan Carsten Schmidt)

Keywords: haspatch added
Summary: Error on loading h5pypy312-h5py @3.11.0: ValueError: Not a datatype (not a datatype)

Thanks for the pointer to that issue where it looks like two different problems are discussed and for which I've submitted two PR:

Last edited 10 days ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:4 Changed 10 days ago by Dave-Allured (Dave Allured)

Cc: Dave-Allured added

comment:5 Changed 6 days ago by ryandesign (Ryan Carsten Schmidt)

In 592739c6867e902c4aa8d50a8187c0cfdbc3d0d0/macports-ports (master):

hdf5: Fix leak of internal IDs

See: #69938

Also clean up fetch and extract code.

comment:6 Changed 6 days ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

In 1ae9fac3e1eeb8462f1d7e35a22dac15597b2f15/macports-ports (master):

py-h5py: Use float16 datatype only if available

Closes: #69938

Also remove reinplace that hasn't been needed since 3.6.0.

Note: See TracTickets for help on using tickets.