Issue #848: PR #926 causes build failure for the docs (yt_analysis/yt)
New issue 848: PR #926 causes build failure for the docs https://bitbucket.org/yt_analysis/yt/issue/848/pr-926-causes-build-failure-f... Kacper Kowalik: After pull request #926 following script: ``` #!python from yt.mods import * from yt.analysis_modules.halo_analysis.api import * import tempfile import shutil import os tmpdir = tempfile.mkdtemp() data_pf = load('Enzo_64/RD0006/RedshiftOutput0006') halos_pf = load('rockstar_halos/halos_0.0.bin') hc = HaloCatalog(data_pf=data_pf, halos_pf=halos_pf, output_dir=os.path.join(tmpdir, 'halo_catalog')) hc.add_filter("quantity_value", "particle_mass", ">", 1e14, "Msun") hc.add_callback("sphere", factor=2.0) hc.add_callback("profile", x_field="radius", y_fields=[("gas", "overdensity")], weight_field="cell_volume", accumulation=False, storage="virial_quantities_profiles") hc.add_callback("virial_quantities", ["radius"], profile_storage = "virial_quantities_profiles") hc.add_callback('delete_attribute','virial_quantities_profiles') hc.add_callback('sphere', radius_field='radius_200', factor=5, field_parameters=dict(virial_radius=('quantity', 'radius_200'))) hc.add_callback('profile', 'virial_radius', [('gas','temperature')], storage='virial_profiles', weight_field='cell_mass', accumulation=False, output_dir='profiles') hc.add_callback("save_profiles", storage="virial_profiles", output_dir="profiles") hc.create() ``` yields ``` #!text Traceback (most recent call last): File "bug.py", line 28, in <module> hc.create() File "yt/analysis_modules/halo_analysis/halo_catalog.py", line 284, in create self._run(save_halos, save_catalog, njobs=njobs, dynamic=dynamic) File "yt/utilities/parallel_tools/parallel_analysis_interface.py", line 244, in barrierize return func(*args, **kwargs) File "yt/analysis_modules/halo_analysis/halo_catalog.py", line 375, in _run action(new_halo) File "yt/analysis_modules/halo_analysis/halo_callbacks.py", line 55, in __call__ self.function(halo, *self.args, **self.kwargs) File "yt/analysis_modules/halo_analysis/halo_callbacks.py", line 213, in profile x_range = list(halo.data_object.quantities.extrema(x_field, non_zero=True)) File "/home/xarth/yt/src/yt-my/yt/data_objects/derived_quantities.py", line 483, in __call__ rv = super(Extrema, self).__call__(fields, non_zero) File "yt/data_objects/derived_quantities.py", line 68, in __call__ values = [self.data_source.pf.arr(values[i]) for i in range(self.num_vals)] File "yt/units/yt_array.py", line 288, in __new__ if isinstance(input_array[0], YTArray): IndexError: list index out of range ``` There two issues here: 1. `yt_array:YTArray.__new__` should take into account that empty list is iterable. Simple `elif iterable(input_array) and input_array` should fix that. 1. Real bug is that quantity *Extrema* for *radius* suddenly returns empty list for `halo.data_object` Responsible: ngoldbaum
participants (1)
-
Kacper Kowalik