docs: def parse(cls, data):
          """
          Parse a Config structure out of a Python dict (that's likely deserialized from YAML).
  
          :param data: Config-y dict
          :type data: dict
          :return: Config object
          :rtype: valohai_yaml.objs.Config
          """
          parsers = {
              'step': ([], Step.parse),
              'endpoint': ([], Endpoint.parse),
          }
          for datum in data:
              assert isinstance(datum, dict)
              for type, (items, parse) in parsers.items():
                  if type in datum:
                      items.append(parse(datum[type]))
                      break
              else:
                  raise ValueError('No parser for {0}'.format(datum))
          inst = cls(
              steps=parsers['step'][0],
              endpoints=parsers['endpoint'][0],
          )
          inst._original_data = data
          return inst