From bba9ad02dc2f378e9cc5241c58665a5cef87eec4 Mon Sep 17 00:00:00 2001 From: Erik Bernhardsson Date: Tue, 31 Mar 2020 11:42:31 -0400 Subject: [PATCH 1/3] replace deprecation warnings with errors --- .travis.yml | 2 +- convoys/multi.py | 19 ++++--------------- convoys/regression.py | 16 ++++------------ convoys/single.py | 10 ++-------- setup.py | 3 +-- 5 files changed, 12 insertions(+), 38 deletions(-) diff --git a/.travis.yml b/.travis.yml index 57de05e..5f96008 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ python: - "3.6" - "3.7" script: - - pip install -U sphinx deprecated + - pip install -U sphinx - sphinx-build -M html docs/ docs/_build/ -W # Try building it before installing the rest, should work - pip install -U coveralls flaky pytest pytest-cov - pip install . diff --git a/convoys/multi.py b/convoys/multi.py index 04ea2e9..af18f34 100644 --- a/convoys/multi.py +++ b/convoys/multi.py @@ -1,4 +1,3 @@ -from deprecated.sphinx import deprecated import numpy from convoys import regression from convoys import single @@ -44,14 +43,9 @@ def predict_ci(self, group, t, ci): def rvs(self, group, *args, **kwargs): return self.base_model.rvs(self._get_x(group), *args, **kwargs) - @deprecated(version='0.2.0', - reason='Use :meth:`predict` or :meth:`predict_ci` instead.') def cdf(self, group, t, ci=None): - '''Returns the predicted values.''' - if ci is not None: - return self.predict_ci(group, t, ci) - else: - return self.predict(group, t) + raise Exception('This method has been removed in 0.3.0. ' + 'Use `predict` or `predict_ci`.') class SingleToMulti(MultiModel): @@ -79,14 +73,9 @@ def predict(self, group, t): def predict_ci(self, group, t, ci): return self._group2model[group].predict_ci(t, ci) - @deprecated(version='0.2.0', - reason='Use :meth:`predict` or :meth:`predict_ci` instead') def cdf(self, group, t, ci=None): - '''Returns the predicted values.''' - if ci is not None: - return self.predict_ci(group, t, ci) - else: - return self.predict(group, t) + raise Exception('This method has been removed in 0.3.0. ' + 'Use `predict` or `predict_ci`.') class Exponential(RegressionToMulti): diff --git a/convoys/regression.py b/convoys/regression.py index a2dfc79..835f6b6 100644 --- a/convoys/regression.py +++ b/convoys/regression.py @@ -1,7 +1,6 @@ from convoys import autograd_scipy_monkeypatch # NOQA import autograd from autograd_gamma import gammainc -from deprecated.sphinx import deprecated import emcee import numpy from scipy.special import gammaincinv @@ -367,20 +366,13 @@ def rvs(self, x, n_curves=1, n_samples=1, T=None): return B, C - @deprecated(version='0.2.0', - reason='Use :meth:`predict` or :meth:`predict_ci` instead.') def cdf(self, x, t, ci=False): - '''Returns the predicted values.''' - if ci: - return self.predict_ci(x, t) - else: - return self.predict(x, t) + raise Exception('This method has been removed in 0.3.0. ' + 'Use `predict` or `predict_ci`.') - @deprecated(version='0.2.0', - reason='Use :meth:`predict_posteriori` instead.') def cdf_posteriori(self, x, t): - '''Returns the a posterior distribution of the predicted values.''' - return self.predict_posteriori(x, t) + raise Exception('This method has been removed in 0.3.0. ' + 'Use `predict_posteriori`.') class Exponential(GeneralizedGamma): diff --git a/convoys/single.py b/convoys/single.py index b9ad300..7b89c43 100644 --- a/convoys/single.py +++ b/convoys/single.py @@ -1,4 +1,3 @@ -from deprecated.sphinx import deprecated import numpy from scipy.special import expit, logit import scipy.stats @@ -87,11 +86,6 @@ def predict_ci(self, t, ci=0.8): ) return res - @deprecated(version='0.2.0', - reason='Use :meth:`predict` or :meth:`predict_ci` instead.') def cdf(self, t, ci=None): - '''Returns the predicted values.''' - if ci is not None: - return self.predict_ci(t) - else: - return self.predict(t) + raise Exception('This method has been removed in 0.3.0. ' + 'Use `predict` or `predict_ci`.') diff --git a/setup.py b/setup.py index 833e5de..1b7a147 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ ''' setup(name='convoys', - version='0.2.1', + version='0.3.0', description='Fit machine learning models to predict conversion using Weibull and Gamma distributions', long_description=long_description, url='https://better.engineering/convoys', @@ -21,7 +21,6 @@ install_requires=[ 'autograd', 'autograd-gamma>=0.2.0', - 'deprecated', 'emcee>=3.0.0', 'matplotlib>=2.0.0', 'pandas>=0.24.0', From 8939dc11e687f710febbef5211f88ec2c108283b Mon Sep 17 00:00:00 2001 From: Erik Bernhardsson Date: Tue, 31 Mar 2020 11:50:36 -0400 Subject: [PATCH 2/3] fix test --- test_convoys.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test_convoys.py b/test_convoys.py index 27d42e5..45f4fda 100644 --- a/test_convoys.py +++ b/test_convoys.py @@ -86,10 +86,6 @@ def test_output_shapes(c=0.3, lambd=0.1, n=1000, k=5): assert model.predict_ci([[X[0]], [X[1]]], [[0, 1, 2]], ci=0.8) \ .shape == (2, 3, 3) - # Assert old interface still works - assert model.cdf(X[0], 0).shape == () - assert model.cdf(X[0], 0, ci=0.8).shape == (3,) - # Fit model without ci (should be the same) model = convoys.regression.Exponential(mcmc=False) model.fit(X, B, T) From fde63be438334936a739933bcab9b70d3938bf82 Mon Sep 17 00:00:00 2001 From: Erik Bernhardsson Date: Wed, 1 Apr 2020 11:39:32 -0400 Subject: [PATCH 3/3] deprecate the ci argument as well --- convoys/regression.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/convoys/regression.py b/convoys/regression.py index 835f6b6..d8af5f0 100644 --- a/convoys/regression.py +++ b/convoys/regression.py @@ -173,9 +173,8 @@ def __init__(self, mcmc=False, fix_k=None, fix_p=None, hierarchical=True, self._hierarchical = hierarchical self._flavor = flavor if ci is not None: - warnings.warn('The `ci` argument is deprecated in 0.2.1 in favor ' - ' of `mcmc`.', DeprecationWarning) - self._mcmc = ci + raise Exception('This method has been removed in 0.3.0. ' + 'Use the `mcmc` argument instead.') def fit(self, X, B, T, W=None): '''Fits the model.