This page contains ideas for code refactoring ideas and hack proposals for the LSST2017 meeting. The "Hack Lounge" is open from Monday morning to Thursday evening in the COTTONWOOD room. On Friday the Python 3 session is in ASTER II.
Please edit this page with ideas. Larger changes should get their own confluence page linked from here. Standalone tasks should be linked to JIRA tickets that should be included below.
Use pytest as test runner
To use the pytest test runner you will need to use lsstsw rebuild with:
The first step is to have a clean build of
lsst_ci with the above ticket branches. If everyone is happy with the way pytest is working we can then merge these changes and start making changes that depend on this.
- For each package that has had the tests renamed as
test_(see next entry) you can set
tests/SConscriptfile to enable automatic test discovery.
- Once automatic test discovery is enabled you can enable flake8 testing by copying in a
setup.cfgfrom, for example, the
shapeletpackage. (see also the one in
meas_basewhich shows how to disable some flake8 tests per file).
Test file renaming and removing executable bit (Jonathan Sick)
Migrate from pyfits to astropy.io.fits
- galsim (looks like this just needs edit to table file)
For each package, make it flake8 clean and update the travis settings in the repository to use flake8 to check each pull request.
As we make packages flake8 clean and "pytest" clean we can add the
--flake8 option to pytest so that flake8 consistency is checked during test phase.
Update Flake8 to check docstring/comment line length independently of code line length
Warnings from tests
Many tests generate warnings (3 tests in afw), we should assess these and try to fix them.
Many tests trigger deprecation warnings.
afw issues some for incorrect
assert calls. Run
pytest -Wd to display all the warnings –
afw currently has 123 warnings.
SAL Updates (Dave Mills / Unknown User (pschella))
- Python 3
Migrate to matplotlib2? (Unknown User (wmwood-vasey)?)
We will need an RFC to change the minimal version of
matplotlib, but we can use this week to demonstrate the benefits from that change.