:mod:`dip.io.default_io_manager`
================================
.. module:: dip.io.default_io_manager

The :mod:`dip.io.default_io_manager` module contains dip's default
:term:`i/o manager` implementation.


:class:`IoManager`
------------------
.. class:: IoManager

    Base class: :class:`~dip.model.Model`

    The IoManager class is the default implementation of the
    :class:`~dip.io.IIoManager` interface.

    .. method:: IoManager.read(model, location, format)

        Read a model from a location using a particular format.
        
        :param model:
            is the model.
        :param location:
            is the location as a string.  This should identify a valid and
            unambiguous storage location.
        :param format:
            is the format.
        :return:
            the read model.  This may be the original model populated from the
            storage location, or it may be a different model (of an appropriate
            type) created from the storage location.  If ``None`` is returned
            then it is assumed that the read was abandoned and the user
            informed appropriately.

    .. method:: IoManager.readable_locations_from_string(location, format='')

        Get the list of readable storage location instances for which a
        location specified as a string is valid.
        
        :param location:
            is the location as a string.
        :param format:
            is the identifier of the optional format.
        :return:
            the list of storage location instances.

    .. method:: IoManager.readable_storage(format='')

        Get the list of the storage instances that can be read from using a
        particular format.
        
        :param format:
            is the identifier of the optional format.
        :return:
            the list of storage instances.

    .. method:: IoManager.write(model, location, format)

        Write a model to a location using a particular format.
        
        :param model:
            is the model.
        :param location:
            is the location as a string.  This should identify a valid and
            unambiguous storage location.
        :param format:
            is the format.

    .. method:: IoManager.writeable_locations_from_string(location, format='')

        Get the list of writeable storage location instances for which a
        location specified as a string is valid.
        
        :param location:
            is the location as a string.
        :param format:
            is the identifier of the optional format.
        :return:
            the list of storage location instances.

    .. method:: IoManager.writeable_storage(format='')

        Get the list of the storage instances that can be written to using
        a particular format.
        
        :param format:
            is the identifier of the optional format.
        :return:
            the list of storage instances.
