def spec(self, name):
        """
        Returns either the input corresponding to a fileset or field
        field spec or a spec or parameter that has either
        been passed to the study as an input or can be derived.

        Parameters
        ----------
        name : Str | BaseData | Parameter
            A parameter, fileset or field or name of one
        """
        # If the provided "name" is actually a data item or parameter then
        # replace it with its name.
        if isinstance(name, (BaseData, Parameter)):
            name = name.name
        # If name is a parameter than return the parameter spec
        if name in self._param_specs:
            return self._param_specs[name]
        else:
            return self.bound_spec(name)