# Path: fabricio/utils.py
# DEFAULT = object()
# def patch(obj, attr, value, default=DEFAULT, force_delete=False):
#     def __init__(self, func=None, default=None):
#     def __get__(self, instance, owner=None):
#     def __call__(self, func):
#     def make_option(self, option, value=None):
#     def make_options(self):
#     def __str__(self):
# def strtobool(value):
# def once_per_command(*args, **kwargs):  # pragma: no cover
#     def __init__(self, iterable=None, priority=None, **kwargs):
#     def items(self):
#     def __init__(self, iterable=None):
#     def __len__(self):
#     def __contains__(self, key):
#     def add(self, key):
#     def discard(self, key):
#     def __iter__(self):
#     def __reversed__(self):
#     def pop(self, last=True):
#     def __repr__(self):
#     def __eq__(self, other):
# class default_property(object):
# class Options(collections.OrderedDict):
# class AttrDict(dict):
# class PriorityDict(dict):
# class OrderedSet(collections.MutableSet):  # pragma: no cover


import json
import warnings
import docker.auth
import docker.utils
import six
import fabricio
from functools import partial
from fabricio import utils

    @utils.default_property
    def info(self):
        command = 'docker inspect --type image {image}'
        info = fabricio.run(
            command.format(image=self),
            abort_exception=ImageNotFoundError,
        )
        return json.loads(info)[0]

    def get_delete_callback(self, force=False):
        command = 'docker rmi {force}{image}'
        force = force and '--force ' or ''
        return partial(
            fabricio.run,
            command.format(image=self, force=force),
            ignore_errors=True,
        )

    def delete(self, force=False, ignore_errors=True):
        delete_callback = self.get_delete_callback(force=force)
        return delete_callback(ignore_errors=ignore_errors)

    @classmethod
    def make_container_options(
        cls,
        temporary=None,
        name=None,
        options=(),
    ):

# Path: fabricio/utils.py
# DEFAULT = object()
# def patch(obj, attr, value, default=DEFAULT, force_delete=False):
#     def __init__(self, func=None, default=None):
#     def __get__(self, instance, owner=None):
#     def __call__(self, func):
#     def make_option(self, option, value=None):
#     def make_options(self):
#     def __str__(self):
# def strtobool(value):
# def once_per_command(*args, **kwargs):  # pragma: no cover
#     def __init__(self, iterable=None, priority=None, **kwargs):
#     def items(self):
#     def __init__(self, iterable=None):
#     def __len__(self):
#     def __contains__(self, key):
#     def add(self, key):
#     def discard(self, key):
#     def __iter__(self):
#     def __reversed__(self):
#     def pop(self, last=True):
#     def __repr__(self):
#     def __eq__(self, other):
# class default_property(object):
# class Options(collections.OrderedDict):
# class AttrDict(dict):
# class PriorityDict(dict):
# class OrderedSet(collections.MutableSet):  # pragma: no cover


# Path: fabricio/docker/image.py
import json
import warnings
import docker.auth
import docker.utils
import six
import fabricio
from functools import partial
from fabricio import utils


    @utils.default_property
    def info(self):
        command = 'docker inspect --type image {image}'
        info = fabricio.run(
            command.format(image=self),
            abort_exception=ImageNotFoundError,
        )
        return json.loads(info)[0]

    def get_delete_callback(self, force=False):
        command = 'docker rmi {force}{image}'
        force = force and '--force ' or ''
        return partial(
            fabricio.run,
            command.format(image=self, force=force),
            ignore_errors=True,
        )

    def delete(self, force=False, ignore_errors=True):
        delete_callback = self.get_delete_callback(force=force)
        return delete_callback(ignore_errors=ignore_errors)

    @classmethod
    def make_container_options(
        cls,
        temporary=None,
        name=None,
        options=(),
    ):

        return utils.Options(