mirror of https://github.com/sgoudham/Enso-Bot.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
3.5 KiB
Python
128 lines
3.5 KiB
Python
5 years ago
|
#!/usr/bin/env python
|
||
|
#
|
||
|
# Author: Mike McKerns (mmckerns @caltech and @uqfoundation)
|
||
|
# Copyright (c) 2008-2016 California Institute of Technology.
|
||
|
# Copyright (c) 2016-2019 The Uncertainty Quantification Foundation.
|
||
|
# License: 3-clause BSD. The full license text is available at:
|
||
|
# - https://github.com/uqfoundation/dill/blob/master/LICENSE
|
||
|
|
||
|
# get version numbers, license, and long description
|
||
|
try:
|
||
|
from .info import this_version as __version__
|
||
|
from .info import readme as __doc__, license as __license__
|
||
|
except ImportError:
|
||
|
msg = """First run 'python setup.py build' to build dill."""
|
||
|
raise ImportError(msg)
|
||
|
|
||
|
__author__ = 'Mike McKerns'
|
||
|
|
||
|
__doc__ = """
|
||
|
""" + __doc__
|
||
|
|
||
|
__license__ = """
|
||
|
""" + __license__
|
||
|
|
||
|
from ._dill import dump, dumps, load, loads, dump_session, load_session, \
|
||
|
Pickler, Unpickler, register, copy, pickle, pickles, check, \
|
||
|
HIGHEST_PROTOCOL, DEFAULT_PROTOCOL, PicklingError, UnpicklingError, \
|
||
|
HANDLE_FMODE, CONTENTS_FMODE, FILE_FMODE
|
||
|
from . import source, temp, detect
|
||
|
|
||
|
# get global settings
|
||
|
from .settings import settings
|
||
|
|
||
|
# make sure "trace" is turned off
|
||
|
detect.trace(False)
|
||
|
|
||
|
try:
|
||
|
from importlib import reload
|
||
|
except ImportError:
|
||
|
try:
|
||
|
from imp import reload
|
||
|
except ImportError:
|
||
|
pass
|
||
|
|
||
|
# put the objects in order, if possible
|
||
|
try:
|
||
|
from collections import OrderedDict as odict
|
||
|
except ImportError:
|
||
|
try:
|
||
|
from ordereddict import OrderedDict as odict
|
||
|
except ImportError:
|
||
|
odict = dict
|
||
|
objects = odict()
|
||
|
# local import of dill._objects
|
||
|
#from . import _objects
|
||
|
#objects.update(_objects.succeeds)
|
||
|
#del _objects
|
||
|
|
||
|
# local import of dill.objtypes
|
||
|
from . import objtypes as types
|
||
|
|
||
|
def load_types(pickleable=True, unpickleable=True):
|
||
|
"""load pickleable and/or unpickleable types to ``dill.types``
|
||
|
|
||
|
``dill.types`` is meant to mimic the ``types`` module, providing a
|
||
|
registry of object types. By default, the module is empty (for import
|
||
|
speed purposes). Use the ``load_types`` function to load selected object
|
||
|
types to the ``dill.types`` module.
|
||
|
|
||
|
Args:
|
||
|
pickleable (bool, default=True): if True, load pickleable types.
|
||
|
unpickleable (bool, default=True): if True, load unpickleable types.
|
||
|
|
||
|
Returns:
|
||
|
None
|
||
|
"""
|
||
|
# local import of dill.objects
|
||
|
from . import _objects
|
||
|
if pickleable:
|
||
|
objects.update(_objects.succeeds)
|
||
|
else:
|
||
|
[objects.pop(obj,None) for obj in _objects.succeeds]
|
||
|
if unpickleable:
|
||
|
objects.update(_objects.failures)
|
||
|
else:
|
||
|
[objects.pop(obj,None) for obj in _objects.failures]
|
||
|
objects.update(_objects.registered)
|
||
|
del _objects
|
||
|
# reset contents of types to 'empty'
|
||
|
[types.__dict__.pop(obj) for obj in list(types.__dict__.keys()) \
|
||
|
if obj.find('Type') != -1]
|
||
|
# add corresponding types from objects to types
|
||
|
reload(types)
|
||
|
|
||
|
def extend(use_dill=True):
|
||
|
'''add (or remove) dill types to/from the pickle registry
|
||
|
|
||
|
by default, ``dill`` populates its types to ``pickle.Pickler.dispatch``.
|
||
|
Thus, all ``dill`` types are available upon calling ``'import pickle'``.
|
||
|
To drop all ``dill`` types from the ``pickle`` dispatch, *use_dill=False*.
|
||
|
|
||
|
Args:
|
||
|
use_dill (bool, default=True): if True, extend the dispatch table.
|
||
|
|
||
|
Returns:
|
||
|
None
|
||
|
'''
|
||
|
from ._dill import _revert_extension, _extend
|
||
|
if use_dill: _extend()
|
||
|
else: _revert_extension()
|
||
|
return
|
||
|
|
||
|
extend()
|
||
|
|
||
|
def license():
|
||
|
"""print license"""
|
||
|
print (__license__)
|
||
|
return
|
||
|
|
||
|
def citation():
|
||
|
"""print citation"""
|
||
|
print (__doc__[-501:-123])
|
||
|
return
|
||
|
|
||
|
del odict
|
||
|
|
||
|
# end of file
|