code: def configure(defaults, metadata, loader):
      
      config = Configuration(defaults)
      config.merge(loader(metadata))
      validate(defaults, metadata, config)
      return config
docs: Build a fresh configuration.
  
      :params defaults: a nested dictionary of keys and their default values
      :params metadata: the graph metadata
      :params loader: a configuration loader