Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
assert pickle(x) == string(x, 'repr')
assert string(x) == '[1, 2, 3, \'4\', "\'5\'", ]'
assert string(x, encoding='repr') == '[1, 2, 3, \'4\', "\'5\'", ]'
assert string(x, encoding='utf_8') == _b('[1, 2, 3, \'4\', "\'5\'", ]')
# some encodings 'missing' from klepto in python 3.x (due to bytes madness)
if 'unicode' in encodings():
assert string(x, encoding='unicode') == unicode('[1, 2, 3, \'4\', "\'5\'", ]')
if 'zlib_codec' in encodings():
assert string(x, encoding='zlib_codec') == 'x\x9c\x8b6\xd4Q0\xd2Q0\xd6QP7Q\xd7QPR7UW\xd2Q\xb0I*\xcd\xcc)\xd1\xcd\xccSH+\xcdK.\xc9\xcc\xcfS\xc8\xcd\xcc\xb3\x8b\x05\x00\xf6(\x0c\x9c'
if 'hex_codec' in encodings():
assert string(x, encoding='hex_codec') == '5b312c20322c20332c202734272c2022273527222c203c6275696c742d696e2066756e6374696f6e206d696e3e5d'
s = stringmap()
assert s(x) == '([1, 2, 3, \'4\', "\'5\'", ],)'
s = stringmap(encoding='utf_8')
assert s(x) == _b('([1, 2, 3, \'4\', "\'5\'", ],)')
# some encodings 'missing' from klepto in python 3.x (due to bytes madness)
if 'unicode' in encodings():
s = stringmap(encoding='unicode')
assert s(x) == unicode('([1, 2, 3, \'4\', "\'5\'", ],)')
if 'zlib_codec' in encodings():
s = stringmap(encoding='zlib_codec')
assert s(x) == 'x\x9c\xd3\x886\xd4Q0\xd2Q0\xd6QP7Q\xd7QPR7UW\xd2Q\xb0I*\xcd\xcc)\xd1\xcd\xccSH+\xcdK.\xc9\xcc\xcfS\xc8\xcd\xcc\xb3\x8b\xd5\xd1\x04\x00\x17\x99\r\x19'
if 'hex_codec' in encodings():
s = stringmap(encoding='hex_codec')
assert s(x) == '285b312c20322c20332c202734272c2022273527222c203c6275696c742d696e2066756e6374696f6e206d696e3e5d2c29'
def test_encoding():
assert string('1') == '1'
assert string('1', encoding='repr') == "'1'"
x = [1,2,3,'4',"'5'", min]
assert hash(x, 'sha1') == '3bdd73e79be4277dcb874d193b8dd08a46bc6885'
assert pickle(x) == string(x, 'repr')
assert string(x) == '[1, 2, 3, \'4\', "\'5\'", ]'
assert string(x, encoding='repr') == '[1, 2, 3, \'4\', "\'5\'", ]'
assert string(x, encoding='utf_8') == _b('[1, 2, 3, \'4\', "\'5\'", ]')
# some encodings 'missing' from klepto in python 3.x (due to bytes madness)
if 'unicode' in encodings():
assert string(x, encoding='unicode') == unicode('[1, 2, 3, \'4\', "\'5\'", ]')
if 'zlib_codec' in encodings():
assert string(x, encoding='zlib_codec') == 'x\x9c\x8b6\xd4Q0\xd2Q0\xd6QP7Q\xd7QPR7UW\xd2Q\xb0I*\xcd\xcc)\xd1\xcd\xccSH+\xcdK.\xc9\xcc\xcfS\xc8\xcd\xcc\xb3\x8b\x05\x00\xf6(\x0c\x9c'
if 'hex_codec' in encodings():
assert string(x, encoding='hex_codec') == '5b312c20322c20332c202734272c2022273527222c203c6275696c742d696e2066756e6374696f6e206d696e3e5d'
s = stringmap()
assert s(x) == '([1, 2, 3, \'4\', "\'5\'", ],)'
s = stringmap(encoding='utf_8')
assert s(x) == _b('([1, 2, 3, \'4\', "\'5\'", ],)')
# some encodings 'missing' from klepto in python 3.x (due to bytes madness)
if 'unicode' in encodings():
s = stringmap(encoding='unicode')
assert s(x) == unicode('([1, 2, 3, \'4\', "\'5\'", ],)')
if memo == None: return
filename = self.__state__['id']
_filename = os.path.join(os.path.dirname(os.path.abspath(filename)), TEMP+hash(random(), 'md5'))
# create a temporary file, and dump the results
try:
if self.__state__['serialized']:
protocol = self.__state__['protocol']
if type(protocol) is str: #XXX: assumes 'json'
pik,mode,kwd = json,'w',{}
else: #XXX: byref=True ?
pik,mode,kwd = dill,'wb',{'protocol':protocol}
with open(_filename, mode) as f:
pik.dump(memo, f, **kwd)
else: #XXX: likely_import for each item in dict... ?
from .tools import _b
open(_filename, 'wb').write(_b('memo = %s' % repr(memo)))
except OSError:
"failed to populate file for %s" % str(filename)
# move the results to the proper place
try:
os.remove(filename)
except: pass
try:
os.renames(_filename, filename)
except OSError:
"error in populating %s" % str(filename)
return
#FIXME: missing __cmp__, __...__
pik.dump(key, f, **kwd)
else: # try to get an import for the object
try: memo = getimportable(value, alias='memo', byname=False)
except AttributeError: #XXX: HACKY... get classes by name
memo = getimportable(value, alias='memo')
#XXX: class instances and such fail... abuse pickle here?
from .tools import _b
with open(_file, 'wb') as f:
f.write(_b(memo))
if input:
try: memo = getimportable(key, alias='memo', byname=False)
except AttributeError:
memo = getimportable(key, alias='memo')
from .tools import _b
with open(_args, 'wb') as f:
f.write(_b(memo))
except OSError:
"failed to populate directory for '%s'" % str(key)
# move the results to the proper place
try: #XXX: possible permissions issues here
self._rmdir(key) #XXX: 'key' must be a suitable dir name
os.renames(self._getdir(_key), self._getdir(key))
# except TypeError: #XXX: catch key that isn't converted to safe filename
# "error in populating directory for '%s'" % str(key)
except OSError: #XXX: if rename fails, may need cleanup (_rmdir ?)
"error in populating directory for '%s'" % str(key)
pik,mode,kwd = json,'w',{}
else: #XXX: byref?
pik,mode,kwd = dill,'wb',{'protocol':protocol}
with open(_file, mode) as f:
pik.dump(value, f, **kwd)
if input:
with open(_args, mode) as f:
pik.dump(key, f, **kwd)
else: # try to get an import for the object
try: memo = getimportable(value, alias='memo', byname=False)
except AttributeError: #XXX: HACKY... get classes by name
memo = getimportable(value, alias='memo')
#XXX: class instances and such fail... abuse pickle here?
from .tools import _b
with open(_file, 'wb') as f:
f.write(_b(memo))
if input:
try: memo = getimportable(key, alias='memo', byname=False)
except AttributeError:
memo = getimportable(key, alias='memo')
from .tools import _b
with open(_args, 'wb') as f:
f.write(_b(memo))
except OSError:
"failed to populate directory for '%s'" % str(key)
# move the results to the proper place
try: #XXX: possible permissions issues here
self._rmdir(key) #XXX: 'key' must be a suitable dir name
os.renames(self._getdir(_key), self._getdir(key))
# except TypeError: #XXX: catch key that isn't converted to safe filename
# "error in populating directory for '%s'" % str(key)
except OSError: #XXX: if rename fails, may need cleanup (_rmdir ?)