def render(self, bindings):
        """Renders a string from a path template using the provided bindings.

        Args:
            bindings (dict): A dictionary of var names to binding strings.

        Returns:
            str: The rendered instantiation of this path template.

        Raises:
            ValidationError: If a key isn't provided or if a sub-template can't
                be parsed.
        """
        out = []
        binding = False
        for segment in self.segments:
            if segment.kind == _BINDING:
                if segment.literal not in bindings:
                    raise ValidationException(
                        ('rendering error: value for key \'{}\' '
                         'not provided').format(segment.literal))
                out.extend(PathTemplate(bindings[segment.literal]).segments)
                binding = True
            elif segment.kind == _END_BINDING:
                binding = False
            else:
                if binding:
                    continue
                out.append(segment)
        path = _format(out)
        self.match(path)
        return path
def render ( self , bindings ) : out = [ ] binding = False for segment in self . segments : if segment . kind == _BINDING : if segment . literal not in bindings : raise ValidationException ( ( 'rendering error: value for key \'{}\' ' 'not provided' ) . format ( segment . literal ) ) out . extend ( PathTemplate ( bindings [ segment . literal ] ) . segments ) binding = True elif segment . kind == _END_BINDING : binding = False else : if binding : continue out . append ( segment ) path = _format ( out ) self . match ( path ) return path
Renders a string from a path template using the provided bindings.

        Args:
            bindings (dict): A dictionary of var names to binding strings.

        Returns:
            str: The rendered instantiation of this path template.

        Raises:
            ValidationError: If a key isn't provided or if a sub-template can't
                be parsed.