o
    €Ï­  ã                   @   s<   d Z ddlmZ ddlmZ ddd„Zddd„Zd	d
„ ZdS )zf

uritemplate.api
===============

This module contains the very simple API provided by uritemplate.

é    )Ú
OrderedSet)ÚURITemplateNc                 K   ó   t | ƒj|fi |¤ŽS )aq  Expand the template with the given parameters.

    :param str uri: The templated URI to expand
    :param dict var_dict: Optional dictionary with variables and values
    :param kwargs: Alternative way to pass arguments
    :returns: str

    Example::

        expand('https://api.github.com{/end}', {'end': 'users'})
        expand('https://api.github.com{/end}', end='gists')

    .. note:: Passing values by both parts, may override values in
              ``var_dict``. For example::

                  expand('https://{var}', {'var': 'val1'}, var='val2')

              ``val2`` will be used instead of ``val1``.

    )r   Úexpand©ÚuriÚvar_dictÚkwargs© r
   ú8/tmp/google-cloud-sdk/lib/third_party/uritemplate/api.pyr      s   r   c                 K   r   )aÕ  Partially expand the template with the given parameters.

    If all of the parameters for the template are not given, return a
    partially expanded template.

    :param dict var_dict: Optional dictionary with variables and values
    :param kwargs: Alternative way to pass arguments
    :returns: :class:`URITemplate`

    Example::

        t = URITemplate('https://api.github.com{/end}')
        t.partial()  # => URITemplate('https://api.github.com{/end}')

    )r   Úpartialr   r
   r
   r   r   &   s   r   c                 C   s   t t| ƒjƒS )ah  Parse the variables of the template.

    This returns all of the variable names in the URI Template.

    :returns: Set of variable names
    :rtype: set

    Example::

        variables('https://api.github.com{/end})
        # => {'end'}
        variables('https://api.github.com/repos{/username}{/repository}')
        # => {'username', 'repository'}

    )r   r   Úvariable_names)r   r
   r
   r   Ú	variables9   s   r   )N)Ú__doc__Úuritemplate.orderedsetr   Úuritemplate.templater   r   r   r   r
   r
   r
   r   Ú<module>   s    	

