UMR-CNRM / ctypesForFortran

Bindings to Fortran subroutines using ctypes
Other
0 stars 1 forks source link

Incompatibility with Numpy 2.0 (Ubuntu 24.04) #4

Closed AlexandreMary closed 1 month ago

AlexandreMary commented 1 month ago

Noticed on LFA format of epygram : numpy.core.defchararray does not exist anymore, cf. traceback:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/mary/repositories/EPyGrAM/src/epygram/formats/__init__.py", line 139, in resource
    fmt = guess(filename)
          ^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/src/epygram/formats/__init__.py", line 114, in guess
    r = fpx.dataformat(filename=filename, openmode='r', format=f)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/.epygram_repo_venv/lib/python3.12/site-packages/footprints/collectors.py", line 389, in load
    return self.pickup(desc).get(self.tag, None)
           ^^^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/.epygram_repo_venv/lib/python3.12/site-packages/footprints/collectors.py", line 310, in pickup
    return self.pickup_and_cache(desc, resolvecache=resolvecache)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/.epygram_repo_venv/lib/python3.12/site-packages/footprints/collectors.py", line 284, in pickup_and_cache
    desc[self.tag] = self.find_best(desc, resolvecache=resolvecache)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/.epygram_repo_venv/lib/python3.12/site-packages/footprints/collectors.py", line 385, in find_best
    return topcl(topr, checked=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/src/epygram/formats/DDHLFA.py", line 74, in __init__
    if not all([v in guess.listfields() for v in ['ECHEANCE', 'DATE', 'DOCFICHIER',
                     ^^^^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/src/epygram/formats/LFA.py", line 162, in listfields
    return super(LFA, self).listfields()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/src/epygram/base.py", line 833, in listfields
    fieldslist = self._listfields(**kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/src/epygram/resources/FileResource.py", line 51, in nowopen
    return mtd(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/src/epygram/formats/LFA.py", line 169, in _listfields
    (list_length, fieldslist) = LFA4py.wlfalaft(self._unit,
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/.epygram_repo_venv/lib/python3.12/site-packages/ctypesForFortran/__init__.py", line 685, in wrapper
    argument = numpy.core.defchararray.ljust(argument, sig[1][0])
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/.epygram_repo_venv/lib/python3.12/site-packages/numpy/core/__init__.py", line 30, in __getattr__
    attr = getattr(_core, attr_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mary/repositories/EPyGrAM/.epygram_repo_venv/lib/python3.12/site-packages/numpy/_core/__init__.py", line 167, in __getattr__
    raise AttributeError(f"Module {__name__!r} has no attribute {name!r}")
AttributeError: Module 'numpy._core' has no attribute 'defchararray'
AlexandreMary commented 1 month ago

OK fixed in 1.1.3 To be rephased in 2.x.x ?

SebastienRietteMTO commented 2 weeks ago

Cherry-picked in 2.x.x