halotools icon indicating copy to clipboard operation
halotools copied to clipboard

Bring 3.5 compatibility to windows

Open aphearin opened this issue 9 years ago • 1 comments

Currently, PYTHON_VERSION=2.7 for appveyor.yml. During #531, @bsipocz discovered that halotools is not 3.5 compatible in windows environments. There is a single test failure, the test_reader_configurations function in halotools/sim_manager/tests/test_rockstar_hlist_reader.py raises a mysterious IndexError when run on AppVeyor in python 3.5. This test passes for all versions of python executed in a Unix environment, and this test also passes on AppVeyor windows environment for python 2.7.

When this test failure is resolved, and 3.5 compatibility is brought to windows, then PYTHON_VERSION should be set to 3.5 in appveyor.yml.

aphearin avatar May 31 '16 19:05 aphearin

Full log is available here: https://ci.appveyor.com/project/Astropy/halotools/build/1.0.267/job/2dlreqgxgafug44r

The traceback of the failure:

================================== FAILURES =================================== 
_____________ TestRockstarHlistReader.test_reader_configurations ______________ 

self = <halotools.sim_manager.tests.test_rockstar_hlist_reader.TestRockstarHlistReader testMethod=test_reader_configurations> 

    @pytest.mark.skipif('not HAS_H5PY') 
    def test_reader_configurations(self): 
        """ 
            """ 
        num_halos = 100 
        temp_fname = os.path.join(self.tmpdir, 'temp_ascii_halo_catalog.list') 
        write_temporary_ascii(num_halos, temp_fname) 

        columns_to_keep_dict = ( 
            {'halo_spin_bullock': (0, 'f4'), 'halo_id': (1, 'i8'), 
            'halo_x': (3, 'f4'), 
            'halo_y': (4, 'f4'), 
            'halo_z': (5, 'f4'), 
            }) 

        reader = RockstarHlistReader( 
            input_fname=temp_fname, 
            columns_to_keep_dict=columns_to_keep_dict, 
            output_fname='std_cache_loc', 
            simname='bolplanck', halo_finder='rockstar', redshift=11.8008, 
            version_name='dummy', Lbox=250., particle_mass=1.35e8, 
            ) 
>       reader.read_halocat([], add_supplementary_halocat_columns=False) 

halotools\sim_manager\tests\test_rockstar_hlist_reader.py:304:  
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
halotools\sim_manager\rockstar_hlist_reader.py:602: in read_halocat 
    result = self._read_ascii(**kwargs) 
halotools\sim_manager\rockstar_hlist_reader.py:665: in _read_ascii 
    return TabularAsciiReader.read_ascii(self, **kwargs) 
halotools\sim_manager\tabular_ascii_reader.py:577: in read_ascii 
    self.data_chunk_generator(num_rows_in_chunk, f)), dtype=self.dt) 
halotools\sim_manager\tabular_ascii_reader.py:482: in data_chunk_generator 
    yield tuple(parsed_line[i] for i in self.column_indices_to_keep) 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

.0 = <list_iterator object at 0x000000ACA79365C0> 

>   yield tuple(parsed_line[i] for i in self.column_indices_to_keep) 
E   IndexError: list index out of range 

halotools\sim_manager\tabular_ascii_reader.py:482: IndexError 
---------------------------- Captured stdout call ----------------------------- 


The information about your ascii file and the metadata about the catalog 
have been processed and no exceptions were raised. 
Use the ``read_halocat`` method to read the ascii data, 
setting the write_to_disk and update_cache_log arguments as you like. 
See the docstring of the ``read_halocat`` method
for details about these options. 


...Processing ASCII data of file: 
C:\Users\appveyor\tmp_testingdir\temp_ascii_halo_catalog.list

Total number of rows in detected data = 100
Number of rows in detected header = 4 

... working on chunk 0 of 1 
============= 1 failed, 671 passed, 53 skipped in 396.87 seconds ============== 
Command exited with code 1

bsipocz avatar May 31 '16 21:05 bsipocz