123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #!/usr/bin/env python
- #
- # Author: Mike McKerns (mmckerns @caltech and @uqfoundation)
- # Copyright (c) 2008-2016 California Institute of Technology.
- # Copyright (c) 2016-2024 The Uncertainty Quantification Foundation.
- # License: 3-clause BSD. The full license text is available at:
- # - https://github.com/uqfoundation/dill/blob/master/LICENSE
- # author, version, license, and long description
- try: # the package is installed
- from .__info__ import __version__, __author__, __doc__, __license__
- except: # pragma: no cover
- import os
- import sys
- parent = os.path.dirname(os.path.abspath(os.path.dirname(__file__)))
- sys.path.append(parent)
- # get distribution meta info
- from version import (__version__, __author__,
- get_license_text, get_readme_as_rst)
- __license__ = get_license_text(os.path.join(parent, 'LICENSE'))
- __license__ = "\n%s" % __license__
- __doc__ = get_readme_as_rst(os.path.join(parent, 'README.md'))
- del os, sys, parent, get_license_text, get_readme_as_rst
- from ._dill import (
- dump, dumps, load, loads, copy,
- Pickler, Unpickler, register, pickle, pickles, check,
- DEFAULT_PROTOCOL, HIGHEST_PROTOCOL, HANDLE_FMODE, CONTENTS_FMODE, FILE_FMODE,
- PickleError, PickleWarning, PicklingError, PicklingWarning, UnpicklingError,
- UnpicklingWarning,
- )
- from .session import (
- dump_module, load_module, load_module_asdict,
- dump_session, load_session # backward compatibility
- )
- from . import detect, logger, session, source, temp
- # get global settings
- from .settings import settings
- # make sure "trace" is turned off
- logger.trace(False)
- objects = {}
- # 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
- """
- from importlib import reload
- # 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__[-491:-118])
- return
- # end of file
|