##// END OF EJS Templates
Remove many deprecation and bump traitlets to 5+...
Matthias Bussonnier -
Show More
@@ -256,16 +256,6 b' class BaseIPythonApplication(Application):'
256 # Various stages of Application creation
256 # Various stages of Application creation
257 #-------------------------------------------------------------------------
257 #-------------------------------------------------------------------------
258
258
259 deprecated_subcommands = {}
260
261 def initialize_subcommand(self, subc, argv=None):
262 if subc in self.deprecated_subcommands:
263 self.log.warning("Subcommand `ipython {sub}` is deprecated and will be removed "
264 "in future versions.".format(sub=subc))
265 self.log.warning("You likely want to use `jupyter {sub}` in the "
266 "future".format(sub=subc))
267 return super(BaseIPythonApplication, self).initialize_subcommand(subc, argv)
268
269 def init_crash_handler(self):
259 def init_crash_handler(self):
270 """Create a crash handler, typically setting sys.excepthook to it."""
260 """Create a crash handler, typically setting sys.excepthook to it."""
271 self.crash_handler = self.crash_handler_class(self)
261 self.crash_handler = self.crash_handler_class(self)
@@ -144,22 +144,15 b' def BdbQuit_excepthook(et, ev, tb, excepthook=None):'
144 All other exceptions are processed using the `excepthook`
144 All other exceptions are processed using the `excepthook`
145 parameter.
145 parameter.
146 """
146 """
147 warnings.warn("`BdbQuit_excepthook` is deprecated since version 5.1",
147 raise ValueError(
148 DeprecationWarning, stacklevel=2)
148 "`BdbQuit_excepthook` is deprecated since version 5.1",
149 if et == bdb.BdbQuit:
149 )
150 print('Exiting Debugger.')
151 elif excepthook is not None:
152 excepthook(et, ev, tb)
153 else:
154 # Backwards compatibility. Raise deprecation warning?
155 BdbQuit_excepthook.excepthook_ori(et, ev, tb)
156
150
157
151
158 def BdbQuit_IPython_excepthook(self, et, ev, tb, tb_offset=None):
152 def BdbQuit_IPython_excepthook(self, et, ev, tb, tb_offset=None):
159 warnings.warn(
153 raise ValueError(
160 "`BdbQuit_IPython_excepthook` is deprecated since version 5.1",
154 "`BdbQuit_IPython_excepthook` is deprecated since version 5.1",
161 DeprecationWarning, stacklevel=2)
155 DeprecationWarning, stacklevel=2)
162 print('Exiting Debugger.')
163
156
164
157
165 RGX_EXTRA_INDENT = re.compile(r'(?<=\n)\s+')
158 RGX_EXTRA_INDENT = re.compile(r'(?<=\n)\s+')
@@ -834,13 +834,11 b' class JSONFormatter(BaseFormatter):'
834 if isinstance(r, tuple):
834 if isinstance(r, tuple):
835 # unpack data, metadata tuple for type checking on first element
835 # unpack data, metadata tuple for type checking on first element
836 r, md = r
836 r, md = r
837
837
838 # handle deprecated JSON-as-string form from IPython < 3
838 assert not isinstance(
839 if isinstance(r, str):
839 r, str
840 warnings.warn("JSON expects JSONable list/dict containers, not JSON strings",
840 ), "JSON-as-string has been deprecated since IPython < 3"
841 FormatterWarning)
841
842 r = json.loads(r)
843
844 if md is not None:
842 if md is not None:
845 # put the tuple back together
843 # put the tuple back together
846 r = (r, md)
844 r = (r, md)
@@ -906,7 +906,11 b' class InteractiveShell(SingletonConfigurable):'
906
906
907 if _warn_deprecated and (name in IPython.core.hooks.deprecated):
907 if _warn_deprecated and (name in IPython.core.hooks.deprecated):
908 alternative = IPython.core.hooks.deprecated[name]
908 alternative = IPython.core.hooks.deprecated[name]
909 warn("Hook {} is deprecated. Use {} instead.".format(name, alternative), stacklevel=2)
909 raise ValueError(
910 "Hook {} has been deprecated since IPython 5.0. Use {} instead.".format(
911 name, alternative
912 )
913 )
910
914
911 if not dp:
915 if not dp:
912 dp = IPython.core.hooks.CommandChainDispatcher()
916 dp = IPython.core.hooks.CommandChainDispatcher()
@@ -933,9 +937,10 b' class InteractiveShell(SingletonConfigurable):'
933
937
934 Register a function for calling after code execution.
938 Register a function for calling after code execution.
935 """
939 """
936 warn("ip.register_post_execute is deprecated, use "
940 raise ValueError(
937 "ip.events.register('post_run_cell', func) instead.", stacklevel=2)
941 "ip.register_post_execute is deprecated since IPython 1.0, use "
938 self.events.register('post_run_cell', func)
942 "ip.events.register('post_run_cell', func) instead."
943 )
939
944
940 def _clear_warning_registry(self):
945 def _clear_warning_registry(self):
941 # clear the warning registry, so that different code blocks with
946 # clear the warning registry, so that different code blocks with
@@ -98,11 +98,6 b' shell_aliases = dict('
98 )
98 )
99 shell_aliases['cache-size'] = 'InteractiveShell.cache_size'
99 shell_aliases['cache-size'] = 'InteractiveShell.cache_size'
100
100
101 if traitlets.version_info < (5, 0):
102 # traitlets 4 doesn't handle lists on CLI
103 shell_aliases["ext"] = "InteractiveShellApp.extra_extension"
104
105
106 #-----------------------------------------------------------------------------
101 #-----------------------------------------------------------------------------
107 # Main classes and functions
102 # Main classes and functions
108 #-----------------------------------------------------------------------------
103 #-----------------------------------------------------------------------------
@@ -126,17 +121,6 b' class InteractiveShellApp(Configurable):'
126 help="A list of dotted module names of IPython extensions to load."
121 help="A list of dotted module names of IPython extensions to load."
127 ).tag(config=True)
122 ).tag(config=True)
128
123
129 extra_extension = Unicode(
130 "",
131 help="""
132 DEPRECATED. Dotted module name of a single extra IPython extension to load.
133
134 Only one extension can be added this way.
135
136 Only used with traitlets < 5.0, plural extra_extensions list is used in traitlets 5.
137 """,
138 ).tag(config=True)
139
140 extra_extensions = List(
124 extra_extensions = List(
141 DottedObjectName(),
125 DottedObjectName(),
142 help="""
126 help="""
@@ -293,8 +277,6 b' class InteractiveShellApp(Configurable):'
293 extensions = (
277 extensions = (
294 self.default_extensions + self.extensions + self.extra_extensions
278 self.default_extensions + self.extensions + self.extra_extensions
295 )
279 )
296 if self.extra_extension:
297 extensions.append(self.extra_extension)
298 for ext in extensions:
280 for ext in extensions:
299 try:
281 try:
300 self.log.info("Loading IPython extension: %s" % ext)
282 self.log.info("Loading IPython extension: %s" % ext)
@@ -430,18 +430,6 b' def test_ipython_display_formatter():'
430 f.ipython_display_formatter.enabled = save_enabled
430 f.ipython_display_formatter.enabled = save_enabled
431
431
432
432
433 def test_json_as_string_deprecated():
434 class JSONString(object):
435 def _repr_json_(self):
436 return '{}'
437
438 f = JSONFormatter()
439 with warnings.catch_warnings(record=True) as w:
440 d = f(JSONString())
441 assert d == {}
442 assert len(w) == 1
443
444
445 def test_repr_mime():
433 def test_repr_mime():
446 class HasReprMime(object):
434 class HasReprMime(object):
447 def _repr_mimebundle_(self, include=None, exclude=None):
435 def _repr_mimebundle_(self, include=None, exclude=None):
@@ -262,22 +262,6 b' class TerminalIPythonApp(BaseIPythonApplication, InteractiveShellApp):'
262 # internal, not-configurable
262 # internal, not-configurable
263 something_to_run=Bool(False)
263 something_to_run=Bool(False)
264
264
265 def parse_command_line(self, argv=None):
266 """override to allow old '-pylab' flag with deprecation warning"""
267
268 argv = sys.argv[1:] if argv is None else argv
269
270 if '-pylab' in argv:
271 # deprecated `-pylab` given,
272 # warn and transform into current syntax
273 argv = argv[:] # copy, don't clobber
274 idx = argv.index('-pylab')
275 warnings.warn("`-pylab` flag has been deprecated.\n"
276 " Use `--matplotlib <backend>` and import pylab manually.")
277 argv[idx] = '--pylab'
278
279 return super(TerminalIPythonApp, self).parse_command_line(argv)
280
281 @catch_config_error
265 @catch_config_error
282 def initialize(self, argv=None):
266 def initialize(self, argv=None):
283 """Do actions after construct, but before starting the app."""
267 """Do actions after construct, but before starting the app."""
@@ -67,20 +67,6 b' def get_long_path_name(path):'
67 return _get_long_path_name(path)
67 return _get_long_path_name(path)
68
68
69
69
70 def unquote_filename(name, win32=(sys.platform=='win32')):
71 """ On Windows, remove leading and trailing quotes from filenames.
72
73 This function has been deprecated and should not be used any more:
74 unquoting is now taken care of by :func:`IPython.utils.process.arg_split`.
75 """
76 warn("'unquote_filename' is deprecated since IPython 5.0 and should not "
77 "be used anymore", DeprecationWarning, stacklevel=2)
78 if win32:
79 if name.startswith(("'", '"')) and name.endswith(("'", '"')):
80 name = name[1:-1]
81 return name
82
83
84 def compress_user(path):
70 def compress_user(path):
85 """Reverse of :func:`os.path.expanduser`
71 """Reverse of :func:`os.path.expanduser`
86 """
72 """
@@ -89,7 +75,7 b' def compress_user(path):'
89 path = "~" + path[len(home):]
75 path = "~" + path[len(home):]
90 return path
76 return path
91
77
92 def get_py_filename(name, force_win32=None):
78 def get_py_filename(name):
93 """Return a valid python filename in the current directory.
79 """Return a valid python filename in the current directory.
94
80
95 If the given name is not a file, it adds '.py' and searches again.
81 If the given name is not a file, it adds '.py' and searches again.
@@ -97,10 +83,6 b' def get_py_filename(name, force_win32=None):'
97 """
83 """
98
84
99 name = os.path.expanduser(name)
85 name = os.path.expanduser(name)
100 if force_win32 is not None:
101 warn("The 'force_win32' argument to 'get_py_filename' is deprecated "
102 "since IPython 5.0 and should not be used anymore",
103 DeprecationWarning, stacklevel=2)
104 if not os.path.isfile(name) and not name.endswith('.py'):
86 if not os.path.isfile(name) and not name.endswith('.py'):
105 name += '.py'
87 name += '.py'
106 if os.path.isfile(name):
88 if os.path.isfile(name):
@@ -253,36 +235,6 b' def get_xdg_cache_dir():'
253 return None
235 return None
254
236
255
237
256 @undoc
257 def get_ipython_dir():
258 warn("get_ipython_dir has moved to the IPython.paths module since IPython 4.0.", DeprecationWarning, stacklevel=2)
259 from IPython.paths import get_ipython_dir
260 return get_ipython_dir()
261
262 @undoc
263 def get_ipython_cache_dir():
264 warn("get_ipython_cache_dir has moved to the IPython.paths module since IPython 4.0.", DeprecationWarning, stacklevel=2)
265 from IPython.paths import get_ipython_cache_dir
266 return get_ipython_cache_dir()
267
268 @undoc
269 def get_ipython_package_dir():
270 warn("get_ipython_package_dir has moved to the IPython.paths module since IPython 4.0.", DeprecationWarning, stacklevel=2)
271 from IPython.paths import get_ipython_package_dir
272 return get_ipython_package_dir()
273
274 @undoc
275 def get_ipython_module_path(module_str):
276 warn("get_ipython_module_path has moved to the IPython.paths module since IPython 4.0.", DeprecationWarning, stacklevel=2)
277 from IPython.paths import get_ipython_module_path
278 return get_ipython_module_path(module_str)
279
280 @undoc
281 def locate_profile(profile='default'):
282 warn("locate_profile has moved to the IPython.paths module since IPython 4.0.", DeprecationWarning, stacklevel=2)
283 from IPython.paths import locate_profile
284 return locate_profile(profile=profile)
285
286 def expand_path(s):
238 def expand_path(s):
287 """Expand $VARS and ~names in a string, like a shell
239 """Expand $VARS and ~names in a string, like a shell
288
240
@@ -62,6 +62,7 b' if resource is not None and hasattr(resource, "getrusage"):'
62 Similar to clock(), but return a tuple of user/system times."""
62 Similar to clock(), but return a tuple of user/system times."""
63 return resource.getrusage(resource.RUSAGE_SELF)[:2]
63 return resource.getrusage(resource.RUSAGE_SELF)[:2]
64
64
65
65 else:
66 else:
66 # There is no distinction of user/system time under windows, so we just use
67 # There is no distinction of user/system time under windows, so we just use
67 # time.perff_counter() for everything...
68 # time.perff_counter() for everything...
@@ -171,7 +171,6 b' extras_require = dict('
171 nbconvert=["nbconvert"],
171 nbconvert=["nbconvert"],
172 )
172 )
173
173
174
175 everything = set(chain.from_iterable(extras_require.values()))
174 everything = set(chain.from_iterable(extras_require.values()))
176 extras_require['all'] = list(sorted(everything))
175 extras_require['all'] = list(sorted(everything))
177
176
General Comments 0
You need to be logged in to leave comments. Login now