various HDFStore fixes regarding tables
commit d1f439c: added optional keyword argument 'itemsize' to HDFStore.put and HDFStore.append to control string length; default 255

it sets the string length of strings in the index and columns for the table (rather than the previous behavior, which was to take the max string length from the longest index/column string in the dataset that is used to create the table). Default is 255.

commit 2b13848: nicer error message for store.put('ccc', DataFrame(['hi'], ['a'], ['col']), table=True); also fixes a bug in d1f439

commit 2bce685: before this commit, the following would discard column1:
store.put('eee', DataFrame([0], ['a'], ['column1'])); store.append('eee', DataFrame([1], ['a'], ['column2'])); store['eee']
even with this commit, strings such as column names which are longer than "itemsize" and which are .appended in the future will be silently truncated. I recommend that a warning be raised when this happens, but i didn't add that myself because i couldn't easily find the place where the truncation occurs, or how to extract the current string length.

i'm having trouble building so i won't be able to try writing unit tests. however, here are tests for these commits:

from pandas import *; store = HDFStore('test.h5')

store.put('ccc', DataFrame(['hi'], ['a'], ['col']), table=True); 
 # should raise "TypeError: At this time, Pandas HDFStore tables only support floating point values."

store.put('fff', DataFrame(['0'], ['a'], ['column1'])); store.append('fff', DataFrame([1], ['a'], ['column2'])); 
 # should raise "ValueError: Can only append to Tables"

store.put('fff', DataFrame([0], ['a'], ['column1']), table=True); store.append('fff', DataFrame([1], ['a'], ['column2'])); store['fff']
 # should yield
 #    column1  column2
 # a  0        1  
 #   (this was true even before the present commits)

store.append('j', DataFrame([0], ['a'], ['column1'])); store.append('j', DataFrame([1], ['a'], ['column2'])); store['j'] 
 # should yield:
 #    column1  column2
 # a  0        1  
 #   (this was true even before the present commits)

The test suite (pandas/io/tests/test_pytables.py) fails after applying these changes. There are also no unit tests for the new functionality added / fixed. Could you get the tests to pass and write a couple of tests exploring the things you worked on? Otherwise I won't be able to merge this for a while until I can find the time to do it myself

Secondly...slight git faux pas-- the changes are in your master branch. you'll want to clean up your master this is done (or move this work to a branch and fix up master right away)
 Just pinging you to see if you want to follow through with these changes (and getting the test suite to pass)
 Ping
 oops, sure, not sure when tho :(

On Thu, Feb 23, 2012 at 11:46:25AM -0800, Wes McKinney wrote:

> Ping
> 
> ---
> 
> Reply to this email directly or view it on GitHub:
> https://github.com/pydata/pandas/pull/515#issuecomment-4143638
 Closing this PR-- if you get a chance to return to this at some point please let me know
