frontend.frontendbase

Module: frontend.frontendbase

Inheritance diagram for IPython.frontend.frontendbase:

frontendbase provides an interface and base class for GUI frontends for IPython.kernel/IPython.kernel.core.

Frontend implementations will likely want to subclass FrontEndBase.

Author: Barry Wark

Classes

FrontEndBase

class IPython.frontend.frontendbase.FrontEndBase(shell=None, history=None)

Bases: object

FrontEndBase manages the state tasks for a CLI frontend:
  • Input and output history management
  • Input/continuation and output prompt generation
Some issues (due to possibly unavailable engine):
  • How do we get the current cell number for the engine?
  • How do we handle completions?
__init__()
continuation_prompt()

Returns the current continuation prompt

execute()

Execute the block and return the result.

Parameters:

block : {str, AST} blockID : any

Caller may provide an ID to identify this block. result[‘blockID’] := blockID
Result:
Deferred result of self.interpreter.execute
get_history_next()

Returns next history string and increment history cursor.

get_history_previous()

Returns previous history string and decrement history cursor.

input_prompt()

Returns the current input prompt

It would be great to use ipython1.core.prompts.Prompt1 here

is_complete()

Determine if block is complete.

Parameters block : string

Result True if block can be sent to the engine without compile errors. False otherwise.

output_prompt()

Returns the output prompt for result

render_error()

Subclasses must override to render the failure.

In asynchronous frontends, this method will be called as a twisted.internet.defer.Deferred’s callback. Implementations should thus return result when finished.

render_result()

Subclasses must override to render result.

In asynchronous frontends, this method will be called as a twisted.internet.defer.Deferred’s callback. Implementations should thus return result when finished.

update_cell_prompt()

Subclass may override to update the input prompt for a block.

This method only really makes sens in asyncrhonous frontend. Since this method will be called as a twisted.internet.defer.Deferred’s callback, implementations should return result when finished.

IFrontEnd

class IPython.frontend.frontendbase.IFrontEnd(name, bases=(), attrs=None, __doc__=None, __module__=None)

Bases: zope.interface.Interface

Interface for frontends. All methods return t.i.d.Deferred

classmethod __init__()

IFrontEndFactory

class IPython.frontend.frontendbase.IFrontEndFactory(name, bases=(), attrs=None, __doc__=None, __module__=None)

Bases: zope.interface.Interface

Factory interface for frontends.

classmethod __init__()

Table Of Contents

Previous topic

frontend.asyncfrontendbase

Next topic

frontend.linefrontendbase

This Page