ipython/ipython — pull request #7074 by Carreau (2014-12-01 17:12:55+00:00)
Title: Try to make deprecation/Provisionality moar explicit.

Just playing around a with decorator to mark deprecated feature and have an option that woudl actually make them Warn or raise if used :

```
In [3]: ip = get_ipython();ip.config._merge({'z':3})

In [4]: from IPython.utils import deprecate; deprecate.nocompat=True

In [5]: ip = get_ipython();ip.config._merge({'z':3})
---------------------------------------------------------------------------
DeprecationWarning Traceback (most recent call last)
in ()
----> 1 ip = get_ipython();ip.config._merge({'z':3})

/usr/local/lib/python3.4/site-packages/IPython/utils/deprecate.py in _raise(*args, **kwargs)
130 def _raise(*args,**kwargs):
131 if _comp(version) or nocompat:
--> 132 raise DeprecationWarning('This is a deprecated feature, it will eb removed after %s ' % str(version))
133 else:
134 return func(*args,**kwargs)

DeprecationWarning: This is a deprecated feature, it will eb removed after (4, 0, 0)
```

Also once we bump IPython version above the limit for the deprecation. The thing will raise even earlier to remind us that there is something to clean up.

From a discussion with @ogrisel yesterday in the train. And about the fact that numpy turn their deprecation warning as real error during testing to ensure they don't usetheir own deprecated apis.