spacetelescope/pysynphot — pull request #41 by pllim (2013-10-07 18:29:18+00:00)
Title: Refactor synphot

Major re-structuring of `pysynphot`, including but not limited to:

* Directory structures are re-organized as recommended by astropy.
* Unit tests are written (some ported from old tests, some new) and now pass in both Python 2 and 3.
* Distribution mechanism now follows astropy's. Unnecessary files not used by installer are removed.
* Documentation restructured to follow astropy documentation layout (but contents still incomplete).
* STScI specific module are moved to `stsynphot` -- `Cache`, `obsbandpass`, `observationmode`
* Obsolete modules are retired -- `extinction`, `renorm` (absorbed into `spectrum`)
* New modules are added -- `synconfig`, `synio`, `synutils`
* Units now use astropy. They now behave like `astropy.units` and not individual classes. `StdSpectrum` and `UnitResponse` are removed. Unit conversion mechanism now uses astropy.
* Added support for astropy `Quantity` objects.
* Spectrum objects (`SourceSpectrum`, `SpectralElement`, `Observation`) now share the same base class (implemented in `spectrum`). Other classes (`FlatSpectrum`, `ArraySpectralElement`, etc) are absorbed into the appropriate remaining spectrum classes as class methods. `renorm` is also a method now, not a separate module.
* Reddening objects now inherit from `spectrum` base class and have different API from before.
* File I/O algorithms are moved to `synio` module. They now uses astropy I/O.
* Generic utility functions are moved to `synutils` module.
* Remote data filenames are now configurable items that are managed via `astropy.config`.
* Throughout the package, PEP8 compliance is applied (within reason), codes are cleaned up, and algorithm and API are improved as necessary.