Open GoogleCodeExporter opened 9 years ago
wow, that's pretty cool. would you mind adding it to the main code body and
test it, and we'll roll it into our next dev release. Would it be possible to
add something for "p" as well?
thanks!
Original comment by tobyro...@gmail.com
on 19 Mar 2013 at 6:50
Sorry I don't use SVN.
Add these imports:
import copy_reg
try:
import cPickle as pickle
except ImportError:
import pickle
Add this before the Pyp class:
copy_reg.pickle(PypStr, lambda self: (str, (str(self),)))
copy_reg.pickle(PowerPipeList, lambda self: (list, (list(self),)))
copy_reg.pickle(PypList, lambda self: (list, (list(self),)))
Add this method to PowerPipeList:
def pickle(self):
"""Usage with bash redirections:
$ python -i <(informative_command | pyp "w[0].isdigit() | pp.sort() | pp.pickle()")
>>> pp
['1 a', '2 b', '3 c']
Usage with files:
$ informative_command | pyp "w[0].isdigit() | pp.sort() | pp.pickle()" > my_data.py
$ python -i my_data.py
>>> pp
['1 a', '2 b', '3 c']
pp.pickle() must be the last command in the chain.
"""
return "import cPickle; pp = cPickle.loads(%r)" % (pickle.dumps(self),)
What do you want p.pickle() to do? It would pickle each line seperately but
then there is no way to manipulate that string using pyp nor is there a way to
load it into python.
Original comment by tomer.ch...@gmail.com
on 19 Mar 2013 at 9:07
Actually would be better if it generated "import pickle" if the cPickle import
failed, although this is quite rare.
Original comment by tomer.ch...@gmail.com
on 19 Mar 2013 at 9:10
pretty cool. we'll try to add this to the next dev version. You're right, using
pp is best.
Original comment by tobyro...@gmail.com
on 22 Mar 2013 at 11:29
Original issue reported on code.google.com by
tomer.ch...@gmail.com
on 19 Mar 2013 at 1:38