You should do:

from gluon.sql import SQLCustomType

pickle =
SQLCustomType(
            type
='text',
            native
='text',
            encoder = (lambda x:
cPickle.dumps(s)),
            decoder = (lambda x: cPikcle.loads(s))
            )

Field('mypickle',pickle)

**** SQLCustomField may disappear in the new DAL in faviour of a more
customizable mechanism ****

On Feb 17, 9:20 pm, spiffytech <spiffyt...@gmail.com> wrote:
> That would work, calling MY_PICKLE functions everywhere seems like as
> much work as calling pickle functions. It would be nice if the
> pickling could be done transparently behind the scenes, so my
> controller code could be cleaner and less error-prone.
>
> -Brian
>
> On Feb 17, 2:34 pm, Thadeus Burgess <thade...@thadeusb.com> wrote:
>
> > Could you write a function that handles the inserts/selects instead?
>
> > class MY_PICKLE():
> >     @classmethod
> >     def get(keyname):
> >          pkldump = db(db.pickle_table.keyname == keyname).select().first()
> >          return pickle.loads(pkldump.value)
> >     @classmethod
> >     def save(keyname, value):
> >         pkldump = db(db.pickle_table.keyname == keyname).select().first()
> >         if pkldump:
> >             pkldump.update_record(value=pickle.dumps(value))
> >         else:
> >             db.picke_table.insert(keyname=keyname,value=pickle.dumps(value))
>
> > a_list = MY_PICKLE.get("listkey")
>
> > # do some stuff to list
>
> > MY_PICKLE.save("listkey", a_list)
>
> > -Thadeus
>
> > On Wed, Feb 17, 2010 at 1:20 PM, spiffytech <spiffyt...@gmail.com> wrote:
> > > I'm serializing with Pickle in my app, but it's a hassle to dump/load
> > > the data every time I mess with it. Is there a way to make the
> > > serializing happen automatically with DB access?
>
> > > -Brian
>
> > > On Feb 17, 1:46 pm, Carl <carl.ro...@gmail.com> wrote:
> > >> thanks Jorge; most helpful in pointing me in the right direction.
>
> > >> The python to pickle is simply; for example:
> > >>     import pickle
> > >>     flat_retort = pickle.dumps(retort)
>
> > >> and to unpickle; for example:
> > >>     import pickle
> > >>     options = pickle.loads(rows[0].retort)
>
> > >> On Feb 17, 3:57 pm, JorgeRpo <jorgeh...@gmail.com> wrote:
>
> > >> > On Feb 17, 10:47 am, Carl <carl.ro...@gmail.com> wrote:
>
> > >> > > I have a Python list that I want to store and retrieve from the data
> > >> > > store.
>
> > >> > > The individual items of the list are of no use unless used with the
> > >> > > items of the complete list and there are no use-cases requiring
> > >> > > searching for a specified list item. The number of items in the list
> > >> > > is between one and fifteen (any more is beyond end users to manage).
>
> > >> > > I'd like to store and retrieve the list in a single field. On
> > >> > > retrieval the data would be in a Python list object.
>
> > >> > > What's an approach I can use?
>
> > >> > serialize
> > >> > --
> > >> > sig text
>
> > > --
> > > You received this message because you are subscribed to the Google Groups 
> > > "web2py-users" group.
> > > To post to this group, send email to web...@googlegroups.com.
> > > To unsubscribe from this group, send email to 
> > > web2py+unsubscr...@googlegroups.com.
> > > For more options, visit this group 
> > > athttp://groups.google.com/group/web2py?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to