### Navigation

- index
- modules |
- next |
- previous |
- home|
- search|
- documentation »
- The IPython API »

# parallel.controller.dictdb

## Module: `parallel.controller.dictdb`

Inheritance diagram for `IPython.parallel.controller.dictdb`:

A Task logger that presents our DB interface, but exists entirely in memory and implemented with dicts.

Authors:

- Min RK

TaskRecords are dicts of the form: {

> ‘msg_id’ : str(uuid), ‘client_uuid’ : str(uuid), ‘engine_uuid’ : str(uuid) or None, ‘header’ : dict(header), ‘content’: dict(content), ‘buffers’: list(buffers), ‘submitted’: datetime, ‘started’: datetime or None, ‘completed’: datetime or None, ‘resubmitted’: datetime or None, ‘result_header’ : dict(header) or None, ‘result_content’ : dict(content) or None, ‘result_buffers’ : list(buffers) or None,

} With this info, many of the special categories of tasks can be defined by query:

pending: completed is None client’s outstanding: client_uuid = uuid && completed is None MIA: arrived is None (and completed is None) etc.

EngineRecords are dicts of the form: {

> ‘eid’ : int(id), ‘uuid’: str(uuid)

} This may be extended, but is currently.

We support a subset of mongodb operators:
  $lt,$gt,$lte,$gte,$ne,$in,$nin,$all,$mod,$exists

## Classes

### `BaseDB`

class `IPython.parallel.controller.dictdb.``BaseDB`(**kwargs)

  Bases: `IPython.config.configurable.LoggingConfigurable`

  Empty Parent class so traitlets work on DB.

  `__init__`(**kwargs)

    Create a configurable given a config config.

    Parameters :

    config : Config

    > If this is empty, default values are used. If config is a `Config` instance, it will be used to configure the instance.

    Notes

    Subclasses of Configurable must call the `__init__()` method of `Configurable` before doing anything else and using `super()`:

        class MyConfigurable(Configurable):
            def __init__(self, config=None):
                super(MyConfigurable, self).__init__(config)
                # Then any other code you need to finish initialization.

    This ensures that instances will be configured properly.

  classmethod `class_config_section`()

    Get the config class config section

  classmethod `class_get_help`()

    Get the help string for this class in ReST format.

  classmethod `class_get_trait_help`(trait)

    Get the help string for a single trait.

  classmethod `class_print_help`()

    Get the help string for a single trait and print it.

  classmethod `class_trait_names`(**metadata)

    Get a list of all the names of this classes traits.

    This method is just like the `trait_names()` method, but is unbound.

  classmethod `class_traits`(**metadata)

    Get a list of all the traits of this class.

    This method is just like the `traits()` method, but is unbound.

    The TraitTypes returned don’t know anything about the values that the various HasTrait’s instances are holding.

    This follows the same algorithm as traits does and does not allow for any simple way of specifying merely that a metadata name exists, but has any value. This is because get_metadata returns None if a metadata key doesn’t exist.

  `config`

    A trait whose value must be an instance of a specified class.

    The value can also be an instance of a subclass of the specified class.

  `created` = None
  `log`

    A trait whose value must be an instance of a specified class.

    The value can also be an instance of a subclass of the specified class.

  `on_trait_change`(handler, name=None, remove=False)

    Setup a handler to be called when a trait changes.

    This is used to setup dynamic notifications of trait changes.

    Static handlers can be created by creating methods on a HasTraits subclass with the naming convention ‘_[traitname]_changed’. Thus, to create static handler for the trait ‘a’, create the method _a_changed(self, name, old, new) (fewer arguments can be used, see below).

    Parameters :

    handler : callable

    > A callable that is called when a trait changes. Its signature can be handler(), handler(name), handler(name, new) or handler(name, old, new).

    name : list, str, None

    > If None, the handler will apply to all traits. If a list of str, handler will apply to all names in the list. If a str, the handler will apply just to that name.

    remove : bool

    > If False (the default), then install the handler. If True then unintall it.

  `session`

    A trait for unicode strings.

  `trait_metadata`(traitname, key)

    Get metadata values for trait by key.

  `trait_names`(**metadata)

    Get a list of all the names of this classes traits.

  `traits`(**metadata)

    Get a list of all the traits of this class.

    The TraitTypes returned don’t know anything about the values that the various HasTrait’s instances are holding.

    This follows the same algorithm as traits does and does not allow for any simple way of specifying merely that a metadata name exists, but has any value. This is because get_metadata returns None if a metadata key doesn’t exist.

### `CompositeFilter`

class `IPython.parallel.controller.dictdb.``CompositeFilter`(dikt)

  Bases: `object`

  Composite filter for matching multiple properties.

  `__init__`(dikt)

### `DictDB`

class `IPython.parallel.controller.dictdb.``DictDB`(**kwargs)

  Bases: `IPython.parallel.controller.dictdb.BaseDB`

  Basic in-memory dict-based object for saving Task Records.

  This is the first object to present the DB interface for logging tasks out of memory.

  The interface is based on MongoDB, so adding a MongoDB backend should be straightforward.

  `__init__`(**kwargs)

    Create a configurable given a config config.

    Parameters :

    config : Config

    > If this is empty, default values are used. If config is a `Config` instance, it will be used to configure the instance.

    Notes

    Subclasses of Configurable must call the `__init__()` method of `Configurable` before doing anything else and using `super()`:

        class MyConfigurable(Configurable):
            def __init__(self, config=None):
                super(MyConfigurable, self).__init__(config)
                # Then any other code you need to finish initialization.

    This ensures that instances will be configured properly.

  `add_record`(msg_id, rec)

    Add a new Task Record, by msg_id.

  classmethod `class_config_section`()

    Get the config class config section

  classmethod `class_get_help`()

    Get the help string for this class in ReST format.

  classmethod `class_get_trait_help`(trait)

    Get the help string for a single trait.

  classmethod `class_print_help`()

    Get the help string for a single trait and print it.

  classmethod `class_trait_names`(**metadata)

    Get a list of all the names of this classes traits.

    This method is just like the `trait_names()` method, but is unbound.

  classmethod `class_traits`(**metadata)

    Get a list of all the traits of this class.

    This method is just like the `traits()` method, but is unbound.

    The TraitTypes returned don’t know anything about the values that the various HasTrait’s instances are holding.

    This follows the same algorithm as traits does and does not allow for any simple way of specifying merely that a metadata name exists, but has any value. This is because get_metadata returns None if a metadata key doesn’t exist.

  `config`

    A trait whose value must be an instance of a specified class.

    The value can also be an instance of a subclass of the specified class.

  `created` = None
  `drop_matching_records`(check)

    Remove a record from the DB.

  `drop_record`(msg_id)

    Remove a record from the DB.

  `find_records`(check, keys=None)

    Find records matching a query dict, optionally extracting subset of keys.

    Returns dict keyed by msg_id of matching records.

    Parameters :

    check: dict :

    > mongodb-style query argument

    keys: list of strs [optional] :

    > if specified, the subset of keys to extract. msg_id will always be included.

  `get_history`()

    get all msg_ids, ordered by time submitted.

  `get_record`(msg_id)

    Get a specific Task Record, by msg_id.

  `log`

    A trait whose value must be an instance of a specified class.

    The value can also be an instance of a subclass of the specified class.

  `on_trait_change`(handler, name=None, remove=False)

    Setup a handler to be called when a trait changes.

    This is used to setup dynamic notifications of trait changes.

    Static handlers can be created by creating methods on a HasTraits subclass with the naming convention ‘_[traitname]_changed’. Thus, to create static handler for the trait ‘a’, create the method _a_changed(self, name, old, new) (fewer arguments can be used, see below).

    Parameters :

    handler : callable

    > A callable that is called when a trait changes. Its signature can be handler(), handler(name), handler(name, new) or handler(name, old, new).

    name : list, str, None

    > If None, the handler will apply to all traits. If a list of str, handler will apply to all names in the list. If a str, the handler will apply just to that name.

    remove : bool

    > If False (the default), then install the handler. If True then unintall it.

  `session`

    A trait for unicode strings.

  `trait_metadata`(traitname, key)

    Get metadata values for trait by key.

  `trait_names`(**metadata)

    Get a list of all the names of this classes traits.

  `traits`(**metadata)

    Get a list of all the traits of this class.

    The TraitTypes returned don’t know anything about the values that the various HasTrait’s instances are holding.

    This follows the same algorithm as traits does and does not allow for any simple way of specifying merely that a metadata name exists, but has any value. This is because get_metadata returns None if a metadata key doesn’t exist.

  `update_record`(msg_id, rec)

    Update the data in an existing record.

### Navigation

- index
- modules |
- next |
- previous |
- home|
- search|
- documentation »
- The IPython API »