# Module: `core.displaypub`

An interface for publishing rich data to frontends.

There are two components of the display system:

- Display formatters, which take a Python object and compute the representation of the object in various formats (text, HTML, SVG, etc.).
- The display publisher that is used to send the representation data to the various frontends.

This module defines the logic display publishing. The display publisher uses the `display_data` message type that is defined in the IPython messaging spec.

Authors:

- Brian Granger

## 2 Classes

class `IPython.core.displaypub.``DisplayPublisher`(**kwargs)

  Bases: `IPython.config.configurable.Configurable`

  A traited class that publishes display data to frontends.

  Instances of this class are created by the main IPython object and should be accessed there.

  `clear_output`(wait=False)

    Clear the output of the cell receiving output.

  `publish`(source, data, metadata=None)

    Publish data and metadata to all frontends.

    See the `display_data` message in the messaging documentation for more details about this message type.

    The following MIME types are currently implemented:

    - text/plain
    - text/html
    - text/latex
    - application/json
    - application/javascript
    - image/png
    - image/jpeg
    - image/svg+xml

    Parameters:

    source : str

    > A string that give the function or method that created the data, such as ‘IPython.core.page’.

    data : dict

    > A dictionary having keys that are valid MIME types (like ‘text/plain’ or ‘image/svg+xml’) and values that are the data for that MIME type. The data itself must be a JSON’able data structure. Minimally all data should have the ‘text/plain’ data, which can be displayed by all frontends. If more than the plain text is given, it is up to the frontend to decide which representation to use.

    metadata : dict

    > A dictionary for metadata related to the data. This can contain arbitrary key, value pairs that frontends can use to interpret the data. Metadata specific to each mime-type can be specified in the metadata dict with the same mime-type keys as the data itself.

class `IPython.core.displaypub.``CapturingDisplayPublisher`(**kwargs)

  Bases: `IPython.core.displaypub.DisplayPublisher`

  A DisplayPublisher that stores

## 1 Function

`IPython.core.displaypub.``publish_display_data`(source, data, metadata=None)

  Publish data and metadata to all frontends.

  See the `display_data` message in the messaging documentation for more details about this message type.

  The following MIME types are currently implemented:

  - text/plain
  - text/html
  - text/latex
  - application/json
  - application/javascript
  - image/png
  - image/jpeg
  - image/svg+xml

  Parameters:

  source : str

  > A string that give the function or method that created the data, such as ‘IPython.core.page’.

  data : dict

  > A dictionary having keys that are valid MIME types (like ‘text/plain’ or ‘image/svg+xml’) and values that are the data for that MIME type. The data itself must be a JSON’able data structure. Minimally all data should have the ‘text/plain’ data, which can be displayed by all frontends. If more than the plain text is given, it is up to the frontend to decide which representation to use.

  metadata : dict

  > A dictionary for metadata related to the data. This can contain arbitrary key, value pairs that frontends can use to interpret the data. mime-type keys matching those in data can be used to specify metadata about particular representations.