code: def from_specification(specification, env_prefix=None, separator='.',
                         parent_names=None):
      
      items = {}
      for item_name, item_info in six.iteritems(specification):
          names = copy.copy(parent_names) if parent_names else []
          items[item_name] = _generate_item(item_name,
                                            item_info,
                                            env_prefix,
                                            separator,
                                            names)
      return items
docs: Used to create YapconfItems from a specification dictionary.
  
      Args:
          specification (dict): The specification used to
              initialize ``YapconfSpec``
          env_prefix (str): Prefix to add to environment names
          separator (str): Separator for nested items
          parent_names (list): Parents names of any given item
  
      Returns:
          A dictionary of names to YapconfItems