#!/usr/bin/env python # encoding: utf-8 """ Oh my @#*%, where did ipapi go? Originally, this module was designed to be a public api for IPython. It is now deprecated and replaced by :class:`IPython.core.Interactive` shell. Almost all of the methods that were here are now there, but possibly renamed. During our transition, we will keep this simple module with its :func:`get` function. It too will eventually go away when the new component querying interface is fully used. Authors: * Brian Granger """ #----------------------------------------------------------------------------- # Copyright (C) 2008-2009 The IPython Development Team # # Distributed under the terms of the BSD License. The full license is in # the file COPYING, distributed as part of this software. #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- # Imports #----------------------------------------------------------------------------- from IPython.core.error import TryNext, UsageError from IPython.core.component import Component from warnings import warn #----------------------------------------------------------------------------- # Classes and functions #----------------------------------------------------------------------------- msg = """ This module (IPython.core.ipapi) is being deprecated. For now, all we offer here is the ``get`` function for getting the most recently created InteractiveShell instance.""" warn(msg, category=DeprecationWarning, stacklevel=1) def get(): """Get the most recently created InteractiveShell instance.""" insts = Component.get_instances(name='__IP') most_recent = insts[0] for inst in insts[1:]: if inst.created > most_recent.created: most_recent = inst return most_recent.getapi()