docs: def provided(self, spec_name, default_okay=True):
          """
          Checks to see whether the corresponding data spec was provided an
          explicit input, as opposed to derivatives or missing optional inputs
  
          Parameters
          ----------
          spec_name : str
              Name of a data spec
          """
          try:
              spec = self.bound_spec(spec_name)
          except ArcanaMissingDataException:
              return False
          if isinstance(spec, BaseInputSpec):
              return spec.default is not None and default_okay
          else:
              return True