astropy/astropy — pull request #483 by taldcroft (2012-11-16 04:06:37+00:00)
Title: Improvements to io.ascii

This PR makes a number of substantial improvements to `io.ascii` . This addresses:

- #307 : io.ascii - rework internals for Table support
- #335 : Formatted output in io.ascii can generate incorrect column type
- #330 : io.ascii doesn't know about table column formats
- #361 : Issue with null values in IPAC tables
- #469 : Daophot example doesn't keep units
- #463 : astropy.io.ascii and astropy.io.votable fail with this table

There is still some possible minor code and documentation cleanup, but the main changes are complete:

- Improved integration with the ``astropy.table`` Table class so that
table and column metadata (e.g. keywords, units, description,
formatting) are directly available in the output table object. The
CDS, DAOphot, and IPAC format readers now provide this type of
integrated metadata.
- Changed to using `astropy.table` masked tables instead of NumPy
masked arrays for tables with missing values.
- Removed the Memory reader class which was used to convert data input
passed to the ``write`` function into an internal table. Instead
``write`` instantiates an astropy Table object using the data
input to ``write``.
- Removed the NumpyOutputter as the output of reading a table is now
always a ``Table`` object.
- Removed the option of supplying a function as a column output
formatter.
- Added a new ``strip_whitespace`` keyword argument to the ``write``
function. This controls whether whitespace is stripped from
the left and right sides of table elements before writing.
Default is True.
- Fixed a bug in reading IPAC tables with null values.

This PR has a disproportionately long update to CHANGES.rst. I don't know where is the appropriate place to capture all the detailed changes to a subpackage. In this case many of these changes represent API breakage with `asciitable` so users need to know.