Skip to content

Pandas 3.0 breaks reV (a gaps dependent) #114

@WilliamsTravis

Description

@WilliamsTravis

GAPs version checks

  • I have confirmed this bug has not already been reported.

  • I have confirmed this bug exists on the latest version of GAPs.

  • I have confirmed this bug exists on the main branch of GAPs.

Bug Description

Pandas 3.0, released January 21st 2026, breaks reV/rex. Let's just bound the dependency for now.

Reproducible Example

reV generation -c config_generation.json

Full Traceback

File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/cli/config.py", line 409, in run
.kickoff_jobs()
^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/cli/config.py", line 263, in kickoff_jobs
kickoff_job(self.ctx, cmd, exec_kwargs)
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/cli/execution.py", line 60, in kickoff_job
_kickoff_local_job(ctx, cmd)
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/cli/execution.py", line 136, in _kickoff_local_job
stdout, stderr = submit(cmd)
^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/hpc.py", line 659, in submit
stdout, stderr = _subprocess_popen(cmd)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/hpc.py", line 604, in _subprocess_popen
raise OSError(msg)
OSError: Subprocess submission failed with return code 1 and stderr:
Traceback (most recent call last):
File "", line 1, in
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/cli/config.py", line 602, in run_with_status_updates
out = func(**run_kwargs)
^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/reV/generation/generation.py", line 1079, in run
self._init_h5()
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/reV/generation/base.py", line 1051, in _init_h5
Outputs.init_h5(
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/rex/outputs.py", line 1005, in init_h5
with cls(h5_file, **kwargs) as f:
^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/rex/outputs.py", line 1009, in init_h5
f['meta'] = meta
~^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/rex/outputs.py", line 184, in setitem
self._set_meta(ds, arr)
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/rex/outputs.py", line 448, in _set_meta
meta = to_records_array(meta)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/rex/utilities/utilities.py", line 1011, in to_records_array
dtype = get_dtype(c_data)
^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/rex/utilities/utilities.py", line 978, in get_dtype
elif np.issubdtype(dtype, np.floating):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/numpy/_core/numerictypes.py", line 534, in issubdtype
arg1 = dtype(arg1).type
^^^^^^^^^^^
TypeError: Cannot interpret '<StringDtype(na_value=nan)>' as a data type
Traceback (most recent call last):
File "/home/ubuntu/envs/rev/bin/reV", line 8, in
sys.exit(main())
^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/click/core.py", line 1485, in call
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/click/core.py", line 1406, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/click/core.py", line 1873, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/click/core.py", line 1269, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/click/core.py", line 824, in invoke
return callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/click/decorators.py", line 34, in new_func
return f(get_current_context(), *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/cli/config.py", line 421, in from_config
_FromConfig(ctx, config_file, command_config).run()
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/cli/config.py", line 409, in run
.kickoff_jobs()
^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/cli/config.py", line 263, in kickoff_jobs
kickoff_job(self.ctx, cmd, exec_kwargs)
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/cli/execution.py", line 60, in kickoff_job
_kickoff_local_job(ctx, cmd)
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/cli/execution.py", line 136, in _kickoff_local_job
stdout, stderr = submit(cmd)
^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/hpc.py", line 659, in submit
stdout, stderr = _subprocess_popen(cmd)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/hpc.py", line 604, in _subprocess_popen
raise OSError(msg)
OSError: Subprocess submission failed with return code 1 and stderr:
Traceback (most recent call last):
File "", line 1, in
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/gaps/cli/config.py", line 602, in run_with_status_updates
out = func(**run_kwargs)
^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/reV/generation/generation.py", line 1079, in run
self._init_h5()
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/reV/generation/base.py", line 1051, in _init_h5
Outputs.init_h5(
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/rex/outputs.py", line 1005, in init_h5
with cls(h5_file, **kwargs) as f:
^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/rex/outputs.py", line 1009, in init_h5
f['meta'] = meta
~^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/rex/outputs.py", line 184, in setitem
self._set_meta(ds, arr)
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/rex/outputs.py", line 448, in _set_meta
meta = to_records_array(meta)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/rex/utilities/utilities.py", line 1011, in to_records_array
dtype = get_dtype(c_data)
^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/rex/utilities/utilities.py", line 978, in get_dtype
elif np.issubdtype(dtype, np.floating):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/envs/rev/lib/python3.12/site-packages/numpy/_core/numerictypes.py", line 534, in issubdtype
arg1 = dtype(arg1).type
^^^^^^^^^^^
TypeError: Cannot interpret '<StringDtype(na_value=nan)>' as a data type

Expected Behavior

Pipelines ran via gaps will not fail due to updated Pandas functionality.

System and installed versions

  • OS: Linux
  • Compute hardware: Kestrel
  • GAPs Version: 0.8.11
  • Python Version: 3.12
  • Pandas Version: 3.0

Charge code

GDOP.12495.31.01.01

Metadata

Metadata

Assignees

Labels

breakingBreaks something in the API or configbugfixFixed a known bugp-highPriority: high

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions