pydata/pandas — pull request #2346 by jreback (2012-11-24 20:47:44+00:00)
Title: Pytables: bug fixes, code cleanup, and much updated docs

Should be completely backwards compatible
mainly bug fixes, code clean, and much updated docs
should merge cleanly

1. added __str__ (to do __repr__)
2. added __delitem__ to support store deletion syntatic sugar
3. row removal in tables is much faster if rows are consecutive
(remove also returns the number of rows removed if a table)
4. added Term class, refactored Selection (this is backwards compatible)
Term is a concise way of specifying conditions for queries, e.g.

Term(dict(field = 'index', op = '>', value = '20121114'))
Term('index', '20121114')
Term('index', '>', '20121114')
Term('index', ['20121114','20121114'])
Term('index', datetime(2012,11,14))
Term('index>20121114')

added alias to the Term class; you can specify the nomial indexers
(e.g. index in DataFrame, major_axis/minor_axis or alias in Panel)

this should close GH #1996

5. added Col class to manage the column conversions
6. BUG: added min_itemsize parameter and checks in pytables to allow setting of indexer columns minimum size (current implemenation will truncate indexer columns that are too long in a subsequent append - loss of info)
7. added indexing support via method create_table_index (requires 2.3 in PyTables)
btw now works quite well as Int64 indicies are used as opposed to the Time64Col which has a bug); includes a check on the pytables version requirement

this should close GH #698

8. signficantlly updated docs for pytables to reflect all changes; added docs for Table sections
9. BUG: a store would fail if appending but the put had not been done before (see test_append)
this the result of incompatibility testing on the index_kind
10. BUG: minor change to select and remove: require a table ONLY if where is also provided (and not None)

all tests pass; tests added for new features

I have some implementation changes to make to Tables to make writing quite a bit faster
but will do in a future commit