GPy/GPy/__init__.py
2015-11-05 09:52:27 +00:00

73 lines
2.3 KiB
Python

# Copyright (c) 2012, GPy authors (see AUTHORS.txt).
# Licensed under the BSD 3-clause license (see LICENSE.txt)
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
from . import core
from . import models
from . import mappings
from . import inference
from . import util
from . import examples
from . import likelihoods
from . import testing
from . import kern
from . import plotting
# backwards compatibility
import sys
backwards_compatibility = ['lists_and_dicts', 'observable_array', 'ties_and_remappings', 'index_operations']
for bc in backwards_compatibility:
sys.modules['GPy.core.parameterization.{!s}'.format(bc)] = getattr(core.parameterization, bc)
# Direct imports for convenience:
from .core import Model
from .core.parameterization import priors
from paramz import Param, Parameterized, ObsAr, transformations as constraints
from .__version__ import __version__
from numpy.testing import Tester
#@nottest
try:
#Get rid of nose dependency by only ignoring if you have nose installed
from nose.tools import nottest
@nottest
def tests(verbose=10):
Tester(testing).test(verbose=verbose)
except:
def tests(verbose=10):
Tester(testing).test(verbose=verbose)
def load(file_or_path):
"""
Load a previously pickled model, using `m.pickle('path/to/file.pickle)'
:param file_name: path/to/file.pickle
"""
# This is the pickling pain when changing _src -> src
import inspect
sys.modules['GPy.kern._src'] = kern.src
for name, module in inspect.getmembers(kern.src):
if not name.startswith('_'):
sys.modules['GPy.kern._src.{}'.format(name)] = module
try:
import cPickle as pickle
if isinstance(file_or_path, basestring):
with open(file_or_path, 'rb') as f:
m = pickle.load(f)
else:
m = pickle.load(file_or_path)
except: # python3
import pickle
if isinstance(file_or_path, str):
with open(file_or_path, 'rb') as f:
u = pickle._Unpickler(f) # @UndefinedVariable
u.encoding = 'latin1'
m = u.load()
else:
u = pickle._Unpickler(file_or_path) # @UndefinedVariable
u.encoding = 'latin1'
m = u.load()
return m