/lib/galaxy/util/aliaspickler.py
https://bitbucket.org/cistrome/cistrome-harvard/ · Python · 23 lines · 21 code · 2 blank · 0 comment · 0 complexity · 28735b06888eddb6810de6f5b8f70202 MD5 · raw file
- import pickle
- from cStringIO import StringIO
- class AliasUnpickler( pickle.Unpickler ):
- def __init__( self, aliases, *args, **kw):
- pickle.Unpickler.__init__( self, *args, **kw )
- self.aliases = aliases
- def find_class( self, module, name ):
- module, name = self.aliases.get((module,name), (module,name))
- return pickle.Unpickler.find_class( self, module, name )
- class AliasPickleModule( object ):
- def __init__( self, aliases ):
- self.aliases = aliases
- def dump( self, obj, fileobj, protocol=0):
- return pickle.dump( obj, fileobj, protocol )
- def dumps( self, obj, protocol=0 ):
- return pickle.dumps( obj, protocol )
- def load( self, fileobj ):
- return AliasUnpickler( self.aliases, fileobj ).load()
- def loads( self, string ):
- fileobj = StringIO( string )
- return AliasUnpickler( self.aliases, fileobj ).load()