threeML / hawc_hal

HAWC Accelerated Likelihood - python-only framework for HAWC data analysis
BSD 3-Clause "New" or "Revised" License
11 stars 22 forks source link

Fix pytest #37

Closed henrikef closed 3 years ago

henrikef commented 3 years ago

Fix errors about "calling fixtures directly" in pytest. Tests pass for me locally now (except for one known failure in test_geminga_paper. Would be happy about feedback, I'm not an expert on pytest.

henrikef commented 3 years ago

Ugh... Tests still fail.

For python 2, tons of ValueError: cannot set WRITEABLE flag to True of this array. ( https://travis-ci.org/github/threeML/hawc_hal/jobs/738193403#L1850 )

For python 3, pip install hawc_hal fails, see https://github.com/threeML/hawc_hal/issues/38

🙈

henrikef commented 3 years ago

Ok. The good news is that the install seems to work & tests pass for python 3.7 (at least for macos).

For python 2.7, there are still issues: In the Mac environment, the conda environment could not be resolved. In the linux one, conda installed a really old version of astromodels/threeML (and some other packages) for some reason, leading to compatibility issues down the line. I'm looking into it, but not sure what's going on.

Do we need to keep python 2.7 support?

ndilalla commented 3 years ago

Ok. The good news is that the install seems to work & tests pass for python 3.7 (at least for macos).

For python 2.7, there are still issues: In the Mac environment, the conda environment could not be resolved. In the linux one, conda installed a really old version of astromodels/threeML (and some other packages) for some reason, leading to compatibility issues down the line. I'm looking into it, but not sure what's going on.

Do we need to keep python 2.7 support?

Hi @henrikef, I think the reason is that the script is trying to install root5 but this is no longer supported since version 2.0.0. You can also "help" conda to solve the environment by requiring to install "threeml>=2" and "astromodels>=2". Let me know if it helps.

henrikef commented 3 years ago

Thanks! I've been trying offline to get HAL running in a python 2.7 environment, but no luck so far. I'm having problems installing root_numpy and there are some conflicts with the chainconsumer package, I'm not even sure where that dependency comes from. I'll try again and make sure not to use root5.

ndilalla commented 3 years ago

Mmh, interesting. Let me know if you need help with it.

henrikef commented 3 years ago

Hm. I tried with conda create -n test-environment -c conda-forge -c threeml python=2.7 "astromodels>=2" "threeml>=2" healpy root and then pip install --no-binary :all: root_numpy, and I get a bunch of compiler errors (error: ISO C++17 does not allow 'register' storage class specifier).

Any ideas? (This is on macOS 10.15.7).

I attach the full output of both the conda install and the (failed) pip install below.

conda.log pip.log

ndilalla commented 3 years ago

Let me try on my laptop.

henrikef commented 3 years ago

I will go ahead and merge this one for now, as we were not able to get the python2 tests to pass offline either, but python 3 seems fine.