human
Complete this python program:
def create_stubs(stubs_to_create=None):
assistant
#Here is the Python code you requested.

    """decorator to simplify setting up multiple stubs at once via mox
    :param stubs_to_create: methods to stub in one or more modules
    :type stubs_to_create: dict
    The keys are python paths to the module containing the methods to mock.
    To mock a method in openstack_dashboard/api/nova.py, the key is::
    api.nova
    The values are either a tuple or list of methods to mock in the module
    indicated by the key.
    For example::
    (\server_list\,)
    -or-
    (\flavor_list\, \server_list\,)
    -or-
    [\flavor_list\, \server_list\]
    Additionally, multiple modules can be mocked at once::
    api.nova: (\flavor_list\, \server_list\),
    api.glance: (\image_list_detailed\,),
    """
    if (stubs_to_create is None):
        stubs_to_create = {}
    if (not isinstance(stubs_to_create, dict)):
        raise TypeError(('create_stub    must    be    passed    a    dict,    but    a    %s    was    given.' % type(stubs_to_create).__name__))
    def inner_stub_out(fn):
        @wraps(fn)
        def instance_stub_out(self, *args, **kwargs):
            for key in stubs_to_create:
                if (not (isinstance(stubs_to_create[key], tuple) or isinstance(stubs_to_create[key], list))):
                    raise TypeError(('The    values    of    the    create_stub    dict    must    be    lists    or    tuples,    but    is    a    %s.' % type(stubs_to_create[key]).__name__))
                for value in stubs_to_create[key]:
                    self.mox.StubOutWithMock(key, value)
            return fn(self, *args, **kwargs)
        return instance_stub_out
    return inner_stub_out