Package rekall :: Package ui :: Module renderer :: Class BaseRenderer
[frames] | no frames]

Class BaseRenderer

source code


All renderers inherit from this.

This class defines the only public interface for the rendering system. This is the API which should be used by Rekall plugins to render the output. Derived classes can add additional methods, but these should not be directly used by the plugins - otherwise plugins will fail when being rendered with different renderer implementations.

Nested Classes
  __metaclass__
Automatic Plugin Registration through metaclasses.
  table_class
Renderers contain tables.
  top_level_class
All renderers inherit from this.
Instance Methods
 
__init__(self, session=None)
x.__init__(...) initializes x; see help(type(x)) for signature
source code
 
__enter__(self) source code
 
__exit__(self, exc_type, exc_value, trace) source code
 
start(self, plugin_name=None, kwargs=None)
The method is called when new output is required.
source code
 
end(self)
Tells the renderer that we finished using it for a while.
source code
 
write(self, data)
Renderer should write some data.
source code
 
section(self, name=None, width=50)
Start a new section.
source code
 
format(self, formatstring, *data)
Write formatted data.
source code
 
flush(self)
Renderer should flush data.
source code
 
table_header(self, columns=None, **options)
Table header renders the title row of a table.
source code
 
table_row(self, *row, **kwargs)
Outputs a single row of a table.
source code
 
report_error(self, message)
Render the error in an appropriate way.
source code
 
RenderProgress(self, *_, **kwargs)
Will be called to render a progress message to the user.
source code
 
open(self, directory=None, filename=None, mode='rb')
Opens a file for writing or reading.
source code
 
get_object_renderer(self, target=None, type=None, target_renderer=None, **options) source code
 
Log(self, record)
Logs a log message.
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Methods
 
ImplementationByClass(self, name) source code
 
ImplementationByName(self, name) source code
Class Variables
  name = None
hash(x)
  last_spin_time = 0
  last_gc_time = 0
  progress_interval = 0.2
  table = None
hash(x)
  classes = {'BaseRenderer': <class 'rekall.ui.renderer.BaseRend...
  classes_by_name = {None: [<class 'rekall.ui.renderer.BaseRende...
  plugin_feature = 'BaseRenderer'
Properties

Inherited from object: __class__

Method Details

__init__(self, session=None)
(Constructor)

source code 

x.__init__(...) initializes x; see help(type(x)) for signature

Overrides: object.__init__
(inherited documentation)

start(self, plugin_name=None, kwargs=None)

source code 
The method is called when new output is required.

Metadata about the running plugin is provided so the renderer may log it
if desired.

Args:
   plugin_name: The name of the plugin which is running.
   kwargs: The args for this plugin.

section(self, name=None, width=50)

source code 

Start a new section.

Sections are used to separate distinct entries (e.g. reports of different files).

format(self, formatstring, *data)

source code 

Write formatted data.

For renderers that need access to the raw data (e.g. to check for NoneObjects), it is preferred to call this method directly rather than to format the string in the plugin itself.

By default we just call the format string directly.

table_header(self, columns=None, **options)

source code 

Table header renders the title row of a table.

This also stores the header types to ensure everything is formatted appropriately. It must be a list of specs rather than a dict for ordering purposes.

Log(self, record)

source code 

Logs a log message. Implement if you want to handle logging.


Class Variable Details

classes

Value:
{'BaseRenderer': <class 'rekall.ui.renderer.BaseRenderer'>,
 'DataExportRenderer': <class 'rekall.plugins.renderers.data_export.Da\
taExportRenderer'>,
 'IdentityRenderer': <class 'rekall.ui.identity.IdentityRenderer'>,
 'JsonRenderer': <class 'rekall.ui.json_renderer.JsonRenderer'>,
 'TestRenderer': <class 'rekall.ui.text.TestRenderer'>,
 'TextRenderer': <class 'rekall.ui.text.TextRenderer'>,
 'WideTextRenderer': <class 'rekall.ui.text.WideTextRenderer'>}

classes_by_name

Value:
{None: [<class 'rekall.ui.renderer.BaseRenderer'>,
        <class 'rekall.ui.identity.IdentityRenderer'>],
 'data': [<class 'rekall.plugins.renderers.data_export.DataExportRende\
rer'>],
 'json': [<class 'rekall.ui.json_renderer.JsonRenderer'>],
 'test': [<class 'rekall.ui.text.TestRenderer'>],
 'text': [<class 'rekall.ui.text.TextRenderer'>],
 'wide': [<class 'rekall.ui.text.WideTextRenderer'>]}