CHANGES
--------

Version 0.9.5

    Notes
    ~~~~~

    ATpy is now released under an MIT license

    New Features
    ~~~~~~~~~~~~

    - added support for querying the IRSA archive and the Virtual Observatory.
      See http://atpy.github.com/format_online.html for more details.

    - added support for writing arbitrary ASCII tables using the asciitable module

    - added support for copying all column metadata in one go when creating a
      new column based on an old column:

        >>> t.add_column('b', column_header=t.columns[a])

    - read attributes from HDF5 tables

    - allow tables to be read/written directly to HDF5 groups

    - added a simple HTML writer

    API/Internal changes
    ~~~~~~~~~~~~~~~~~~~~

    - use an ordered dictionary for keywords to preserve order

    Bug fixes
    ~~~~~~~~~

    - improved handling of booleans in FITS tables

    - fixed minor bugs in reading in tables from HDF5 files

    - ensure that VO table column names are valid python variable names (patch
      provided by Marshall Perrin)

Version 0.9.4

    New Features
    ~~~~~~~~~~~~

    - specify whether to used masked arrays by default via an .atpyrc file
      and/or via a set_masked_default function.

    - added support for the asciitable module, which opens up support to read
      in arbitrary ASCII tables. Formats supported by default include CDS
      format (aka Machine Readable Tables), RDB, and DAOphot tables. In
      addition, the full asciitable API is available.

    - added support for reading/writing Table and TableSet to HDF5 files. This
      includes appending to existing files, and reading from/writing to
      groups.

    - improved output when doing 'print table' where table is a Table
      instance.

    - added support for Python 3

    API/Internal changes
    ~~~~~~~~~~~~~~~~~~~~

    - significant speedup for reading large FITS tables

    - table columns can now be accessed using the item notation, t['column']

    - table can now be accessed by name in table sets, via ts['table_name']

    Bug fixes
    ~~~~~~~~~

    - fixed a bug that prevented ASCII FITS tables from being read in

    - fixed a bug that meant that only the first table in a list was used when
      creating a TableSet from a list of Tables.

    - fixed copy() method for Table

    - fixed several other minor bugs

Version 0.9.3

    Restores compatibility with Python 2.5

Version 0.9.2

    The main change in this version is that internal data storage is now done
    using NumPy structured arrays (and optionally NumPy masked structured
    arrays). We have worked on preventing precision loss and improving
    conservation of column types when reading/writing to files/databases.
    Finally, we have re-vamped the documentation.

    New Features
    ~~~~~~~~~~~~

    - tables are now stored as structured arrays

    - new masked= argument during Table initialization (default is False).
      Allows masked arrays to be used. To use this feature, it is preferable
      to be using a recent svn NumPy version.

    - full SQL queries for MySQL, PostGreSQL, and SQLite

    - access column information through Table.columns, indexed either by
      column name or number. Supports iteration.

    - verbose argument for read/write

    - new Table.rows() method to select specific rows

    - new Table.add_empty_column() method

    - new Table.append() method to combine two tables

    - new Table.sort() method

    - added comments/keywords for TableSet() class as a whole

    - new before=/after=/position= arguments for Table.add_column() and
      Table.add_empty_column()

    - new smart_typing= argument for IPAC tables (see docstring)

    - raise Exception if SQL query returns no results

    - basic support for primary keys

    - added 'overwrite' argument for all types

    API/Internal changes
    ~~~~~~~~~~~~~~~~~~~~

    - fits_read, vo_read, ipac_read, sql_read, and equivalent methods are now
      depracated - use read(...) instead and specify type= if necessary.

    - Table.units, Table.types, Table.nulls, and Table.formats are deprecated.
      Use Table.columns instead.

    - Read/Write methods are now 'registered' with ATpy, rather than being
      inherited by the Table class. This allows users to write their own
      readers/writers and register them with atpy.register_reader,
      atpy.register_writer, atpy.register_set_reader, and
      atpy.register_set_writer

    - Allow users to specify new extensions to associate with different table
      types via atpy.register_extensions

    Bug fixes
    ~~~~~~~~~

    - fixed a bug that meant that values could not be assigned when accessing
      a column via attributes (e.g. t.column_name[1] = 1)

    - fixed a bug with creating empty table sets

    - fixed a bug with pedantic= option for VO tables

    - fixed a bug that prevented lists from being passed to add_column

    - fixed float precision for IPAC and VO tables

    - better handling of the different integer types (unsigned/signed 8, 16,
      32, 64-bit) for VO tables, FITS tbales, and SQL databases

    - fixed bug when writing strings to FITS files

    - fixed issues when reading strings from SQL databases

    - new unittest.py

Version 0.9.1

    The main changes with this update are the removal of the pkg_ressources
    module dependency (which caused problems for a number of users) and a
    number of bug fixes.

    New Features
    ~~~~~~~~~~~~

    - removed pkg_ressources dependency. Versions are now checked using
      distutils, which is more standard

    - added support for boolean columns in FITS and VO tables

    API changes
    ~~~~~~~~~~~

    - added dtype= argument to Table.add_column to force conversion to a
      given type on the fly

    - added pendatic= argument for VO Table

    - tables in SQL databases are now referred to by name instead of tid

    Bug fixes
    ~~~~~~~~~

    - fixed an issue which occurred with string columns in VO tables on
      MacOS X with Python 2.6 64-bit

    - fixed a bug which prevented the where() method to work correctly

    - improved handling of null values

    - allow non-standard 'long' datatype for IPAC tables

    - fixed bug with remove_column

    - improved handling of SQL tables

    - fixed bug with IPAC table output

    - fixed several other minor bugs


Version 0.9.0

    First public beta release