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

See  RFC-370 - Getting issue details... STATUS  and  DM-11514 - Getting issue details... STATUS .


To use the pytest test runner you will need to use lsstsw rebuild with:

$ rebuild -r tickets/DM-11514 -r tickets/DM-11514-base


The first step is to have a clean build of lsst_sims and 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 pyList=[] in the tests/SConscript file to enable automatic test discovery.
  • Once automatic test discovery is enabled you can enable flake8 testing by copying in a setup.cfg from, for example, the shapelet package. (see also the one in meas_base which 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

  • afw
  • daf_butlerUtils
  • galsim (looks like this just needs edit to table file)
  • obs_base
  • obs_subaru

Flake8 fixes

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

See https://github.com/PyCQA/pycodestyle/issues/344

John Parejko and Paul Price have expressed interest in leading this one. Jonathan Sick might have some ideas on where to implement.

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))

  • Pybind11
  • Python 3
  • Ndarray?

Migrate to matplotlib2? (Michael Wood-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.

  • No labels