Hi Matt,

Thanks! Using pickle with another file seems to work fine.

Best,
Andrew

On Mon, Jan 21, 2013 at 3:50 AM, Matthew Turk <matthewturk@gmail.com> wrote:
Hi Andrew,

This looks to me like the pickle for your objects has a null
terminated string.  It's possible the newest h5py could fix this, or
that you could specify a string length when pickling to h5py, but the
easier solution might be to pickle the object to a file by itself:

import cPickle
cPIckle.dump(obj, open("my_file.cpkl", "wb"), protocol=-1)

Let us know if that works!

-Matt

On Sun, Jan 20, 2013 at 12:48 PM, Andrew Myers <atmyers@berkeley.edu> wrote:
> Dear yt users,
>
> I've generated some clumps, and would like to save them to look at later.
> When I try
>
> pf.h.save_object(master_clump, 'Clumps')
>
> I get the following error, which looks like it's coming fron hdf5. Has
> anybody seen this before?
>
> Thanks,
> Andrew
>
> ---------------------------------------------------------------------------
> ValueError                                Traceback (most recent call last)
> <ipython-input-13-0bda0f3d0b42> in <module>()
> ----> 1 pf.h.save_object(master_clump, 'Clumps')
>
> /indirect/o/atmyers/yt-x86_64/src/yt-hg/yt/data_objects/hierarchy.pyc in
> save_object(self, obj, name)
>     299         """
>     300         s = cPickle.dumps(obj, protocol=-1)
> --> 301         self.save_data(s, "/Objects", name, force = True)
>     302
>     303     def load_object(self, name):
>
> /indirect/o/atmyers/yt-x86_64/src/yt-hg/yt/data_objects/hierarchy.pyc in
> _save_data(self, array, node, name, set_attr, force, passthrough)
>     274         for q in node.split('/'):
>     275             if q: myGroup = myGroup.require_group(q)
> --> 276         arr = myGroup.create_dataset(name,data=array)
>     277         if set_attr is not None:
>     278             for i, j in set_attr.items(): arr.attrs[i] = j
>
> /o/atmyers/yt-x86_64/lib/python2.7/site-packages/h5py/_hl/group.pyc in
> create_dataset(self, name, shape, dtype, data, **kwds)
>      69         """
>      70
> ---> 71         dsid = dataset.make_new_dset(self, shape, dtype, data,
> **kwds)
>      72         dset = dataset.Dataset(dsid)
>      73         if name is not None:
>
> /o/atmyers/yt-x86_64/lib/python2.7/site-packages/h5py/_hl/dataset.pyc in
> make_new_dset(parent, shape, dtype, data, chunks, compression, shuffle,
> fletcher32, maxshape, compression_opts, fillvalue)
>      92
>      93     if data is not None:
> ---> 94         dset_id.write(h5s.ALL, h5s.ALL, data)
>      95
>      96     return dset_id
>
> /o/atmyers/yt-x86_64/lib/python2.7/site-packages/h5py/h5d.so in
> h5py.h5d.DatasetID.write (h5py/h5d.c:2866)()
>
> /o/atmyers/yt-x86_64/lib/python2.7/site-packages/h5py/_proxy.so in
> h5py._proxy.dset_rw (h5py/_proxy.c:1766)()
>
> /o/atmyers/yt-x86_64/lib/python2.7/site-packages/h5py/defs.so in
> h5py.defs.H5Tconvert (h5py/defs.c:18439)()
>
> /o/atmyers/yt-x86_64/lib/python2.7/site-packages/h5py/_errors.so in
> h5py._errors.set_exception (h5py/_errors.c:711)()
>
> /o/atmyers/yt-x86_64/lib/python2.7/site-packages/h5py/_conv.so in
> h5py._conv.str2vlen (h5py/_conv.c:3382)()
>
> /o/atmyers/yt-x86_64/lib/python2.7/site-packages/h5py/_conv.so in
> h5py._conv.generic_converter (h5py/_conv.c:1302)()
>
> /o/atmyers/yt-x86_64/lib/python2.7/site-packages/h5py/_conv.so in
> h5py._conv.conv_str2vlen (h5py/_conv.c:2158)()
>
> ValueError: VLEN strings do not support embedded NULLs
>
>
>
>
> _______________________________________________
> yt-users mailing list
> yt-users@lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>
_______________________________________________
yt-users mailing list
yt-users@lists.spacepope.org
http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org