def bind_required_kwargs(required_kwargs, obj, **kwargs):
    """ Method binds each element of ``required_kwargs`` to
    the input object ``obj``, or raises and exception for cases
    where a mandatory keyword argument was not passed to the
    ``obj`` constructor.

    Used throughout the package when a required keyword argument
    has no obvious default value.

    Parameters
    ----------
    required_kwargs : list
        List of strings of the keyword arguments that are required
        when instantiating the input ``obj``.

    obj : object
        The object being instantiated.

    Notes
    -----
    The `bind_required_kwargs` method assumes that each
    required keyword argument should be bound to ``obj``
    as attribute with the same name as the keyword.
    """
    for key in required_kwargs:
        if key in list(kwargs.keys()):
            setattr(obj, key, kwargs[key])
        else:
            class_name = obj.__class__.__name__
            msg = (key + ' is a required keyword argument ' +
                'to instantiate the ' + class_name + ' class')
            raise KeyError(msg)
