<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def bound_spec(self, name):
 """ Returns an input selector or derived spec bound to the study, i.e. where the repository tree is checked for existing outputs Parameters name : Str A name of a fileset or field """

        # If the provided "name" is actually a data item or parameter then
        # replace it with its name.
        if isinstance(name, BaseData):
            name = name.name
        # Get the spec from the class
        spec = self.data_spec(name)
        try:
            bound = self._inputs[name]
        except KeyError:
            if not spec.derived and spec.default is None:
                raise ArcanaMissingDataException(
                    "Acquired (i.e. non-generated) fileset '{}' "
                    "was not supplied when the study '{}' was "
                    "initiated".format(name, self.name))
            else:
                try:
                    bound = self._bound_specs[name]
                except KeyError:
                    bound = self._bound_specs[name] = spec.bind(self)
        return bound