code: def extract(self, params):
          
          structure = Structure(fields=dict([(p.name, p)
                                             for p in self._parameters]))
          try:
              tree = structure.coerce(self._convert_flat_to_nest(params))
              rest = {}
          except UnknownParametersError, error:
              tree = error.result
              rest = self._convert_nest_to_flat(error.unknown)
          return Arguments(tree), rest
docs: Extract parameters from a raw C{dict} according to this schema.
  
          @param params: The raw parameters to parse.
          @return: A tuple of an L{Arguments} object holding the extracted
              arguments and any unparsed arguments.