| <?xml version="1.0" encoding="ascii"?> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| "DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <title>googleapiclient._helpers</title> |
| <link rel="stylesheet" href="epydoc.css" type="text/css" /> |
| <script type="text/javascript" src="epydoc.js"></script> |
| </head> |
| |
| <body bgcolor="white" text="black" link="blue" vlink="#204080" |
| alink="#204080"> |
| <!-- ==================== NAVIGATION BAR ==================== --> |
| <table class="navbar" border="0" width="100%" cellpadding="0" |
| bgcolor="#a0c0ff" cellspacing="0"> |
| <tr valign="middle"> |
| <!-- Home link --> |
| <th> <a |
| href="googleapiclient-module.html">Home</a> </th> |
| |
| <!-- Tree link --> |
| <th> <a |
| href="module-tree.html">Trees</a> </th> |
| |
| <!-- Index link --> |
| <th> <a |
| href="identifier-index.html">Indices</a> </th> |
| |
| <!-- Help link --> |
| <th> <a |
| href="help.html">Help</a> </th> |
| |
| <th class="navbar" width="100%"></th> |
| </tr> |
| </table> |
| <table width="100%" cellpadding="0" cellspacing="0"> |
| <tr valign="top"> |
| <td width="100%"> |
| <span class="breadcrumbs"> |
| <a href="googleapiclient-module.html">Package googleapiclient</a> :: |
| Module _helpers |
| </span> |
| </td> |
| <td> |
| <table cellpadding="0" cellspacing="0"> |
| <!-- hide/show private --> |
| <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" |
| onclick="toggle_private();">hide private</a>]</span></td></tr> |
| <tr><td align="right"><span class="options" |
| >[<a href="frames.html" target="_top">frames</a |
| >] | <a href="googleapiclient._helpers-module.html" |
| target="_top">no frames</a>]</span></td></tr> |
| </table> |
| </td> |
| </tr> |
| </table> |
| <!-- ==================== MODULE DESCRIPTION ==================== --> |
| <h1 class="epydoc">Module _helpers</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient._helpers-pysrc.html">source code</a></span></p> |
| <p>Helper functions for commonly used utilities.</p> |
| |
| <!-- ==================== FUNCTIONS ==================== --> |
| <a name="section-Functions"></a> |
| <table class="summary" border="1" cellpadding="3" |
| cellspacing="0" width="100%" bgcolor="white"> |
| <tr bgcolor="#70b0f0" class="table-header"> |
| <td colspan="2" class="table-header"> |
| <table border="0" cellpadding="0" cellspacing="0" width="100%"> |
| <tr valign="top"> |
| <td align="left"><span class="table-header">Functions</span></td> |
| <td align="right" valign="top" |
| ><span class="options">[<a href="#section-Functions" |
| class="privatelink" onclick="toggle_private();" |
| >hide private</a>]</span></td> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| <tr> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <table width="100%" cellpadding="0" cellspacing="0" border="0"> |
| <tr> |
| <td><span class="summary-sig"><a href="googleapiclient._helpers-module.html#positional" class="summary-sig-name">positional</a>(<span class="summary-sig-arg">max_positional_args</span>)</span><br /> |
| A decorator to declare that only the first N arguments may be positional.</td> |
| <td align="right" valign="top"> |
| <span class="codelink"><a href="googleapiclient._helpers-pysrc.html#positional">source code</a></span> |
| |
| </td> |
| </tr> |
| </table> |
| |
| </td> |
| </tr> |
| <tr> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <table width="100%" cellpadding="0" cellspacing="0" border="0"> |
| <tr> |
| <td><span class="summary-sig"><a href="googleapiclient._helpers-module.html#parse_unique_urlencoded" class="summary-sig-name">parse_unique_urlencoded</a>(<span class="summary-sig-arg">content</span>)</span><br /> |
| Parses unique key-value parameters from urlencoded content.</td> |
| <td align="right" valign="top"> |
| <span class="codelink"><a href="googleapiclient._helpers-pysrc.html#parse_unique_urlencoded">source code</a></span> |
| |
| </td> |
| </tr> |
| </table> |
| |
| </td> |
| </tr> |
| <tr> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <table width="100%" cellpadding="0" cellspacing="0" border="0"> |
| <tr> |
| <td><span class="summary-sig"><a href="googleapiclient._helpers-module.html#update_query_params" class="summary-sig-name">update_query_params</a>(<span class="summary-sig-arg">uri</span>, |
| <span class="summary-sig-arg">params</span>)</span><br /> |
| Updates a URI with new query parameters.</td> |
| <td align="right" valign="top"> |
| <span class="codelink"><a href="googleapiclient._helpers-pysrc.html#update_query_params">source code</a></span> |
| |
| </td> |
| </tr> |
| </table> |
| |
| </td> |
| </tr> |
| <tr class="private"> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <table width="100%" cellpadding="0" cellspacing="0" border="0"> |
| <tr> |
| <td><span class="summary-sig"><a href="googleapiclient._helpers-module.html#_add_query_parameter" class="summary-sig-name" onclick="show_private();">_add_query_parameter</a>(<span class="summary-sig-arg">url</span>, |
| <span class="summary-sig-arg">name</span>, |
| <span class="summary-sig-arg">value</span>)</span><br /> |
| Adds a query parameter to a url.</td> |
| <td align="right" valign="top"> |
| <span class="codelink"><a href="googleapiclient._helpers-pysrc.html#_add_query_parameter">source code</a></span> |
| |
| </td> |
| </tr> |
| </table> |
| |
| </td> |
| </tr> |
| </table> |
| <!-- ==================== VARIABLES ==================== --> |
| <a name="section-Variables"></a> |
| <table class="summary" border="1" cellpadding="3" |
| cellspacing="0" width="100%" bgcolor="white"> |
| <tr bgcolor="#70b0f0" class="table-header"> |
| <td colspan="2" class="table-header"> |
| <table border="0" cellpadding="0" cellspacing="0" width="100%"> |
| <tr valign="top"> |
| <td align="left"><span class="table-header">Variables</span></td> |
| <td align="right" valign="top" |
| ><span class="options">[<a href="#section-Variables" |
| class="privatelink" onclick="toggle_private();" |
| >hide private</a>]</span></td> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| <tr> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger(__name__)">logging.getLogger(__name__)</code> |
| </td> |
| </tr> |
| <tr> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <a name="POSITIONAL_WARNING"></a><span class="summary-name">POSITIONAL_WARNING</span> = <code title="'WARNING'"><code class="variable-quote">'</code><code class="variable-string">WARNING</code><code class="variable-quote">'</code></code> |
| </td> |
| </tr> |
| <tr> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <a name="POSITIONAL_EXCEPTION"></a><span class="summary-name">POSITIONAL_EXCEPTION</span> = <code title="'EXCEPTION'"><code class="variable-quote">'</code><code class="variable-string">EXCEPTION</code><code class="variable-quote">'</code></code> |
| </td> |
| </tr> |
| <tr> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <a name="POSITIONAL_IGNORE"></a><span class="summary-name">POSITIONAL_IGNORE</span> = <code title="'IGNORE'"><code class="variable-quote">'</code><code class="variable-string">IGNORE</code><code class="variable-quote">'</code></code> |
| </td> |
| </tr> |
| <tr> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <a name="POSITIONAL_SET"></a><span class="summary-name">POSITIONAL_SET</span> = <code title="frozenset(['EXCEPTION', 'IGNORE', 'WARNING'])"><code class="variable-group">frozenset([</code><code class="variable-quote">'</code><code class="variable-string">EXCEPTION</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">IGNORE</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">WARNING</code><code class="variable-quote">'</code><code class="variable-group">])</code></code> |
| </td> |
| </tr> |
| <tr> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <a name="positional_parameters_enforcement"></a><span class="summary-name">positional_parameters_enforcement</span> = <code title="'WARNING'"><code class="variable-quote">'</code><code class="variable-string">WARNING</code><code class="variable-quote">'</code></code> |
| </td> |
| </tr> |
| <tr class="private"> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <a name="_SYM_LINK_MESSAGE"></a><span class="summary-name">_SYM_LINK_MESSAGE</span> = <code title="'File: {0}: Is a symbolic link.'"><code class="variable-quote">'</code><code class="variable-string">File: {0}: Is a symbolic link.</code><code class="variable-quote">'</code></code> |
| </td> |
| </tr> |
| <tr class="private"> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <a name="_IS_DIR_MESSAGE"></a><span class="summary-name">_IS_DIR_MESSAGE</span> = <code title="'{0}: Is a directory'"><code class="variable-quote">'</code><code class="variable-string">{0}: Is a directory</code><code class="variable-quote">'</code></code> |
| </td> |
| </tr> |
| <tr class="private"> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <a href="googleapiclient._helpers-module.html#_MISSING_FILE_MESSAGE" class="summary-name" onclick="show_private();">_MISSING_FILE_MESSAGE</a> = <code title="'Cannot access {0}: No such file or directory'"><code class="variable-quote">'</code><code class="variable-string">Cannot access {0}: No such file or di</code><code class="variable-ellipsis">...</code></code> |
| </td> |
| </tr> |
| <tr> |
| <td width="15%" align="right" valign="top" class="summary"> |
| <span class="summary-type"> </span> |
| </td><td class="summary"> |
| <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'googleapiclient'"><code class="variable-quote">'</code><code class="variable-string">googleapiclient</code><code class="variable-quote">'</code></code> |
| </td> |
| </tr> |
| </table> |
| <!-- ==================== FUNCTION DETAILS ==================== --> |
| <a name="section-FunctionDetails"></a> |
| <table class="details" border="1" cellpadding="3" |
| cellspacing="0" width="100%" bgcolor="white"> |
| <tr bgcolor="#70b0f0" class="table-header"> |
| <td colspan="2" class="table-header"> |
| <table border="0" cellpadding="0" cellspacing="0" width="100%"> |
| <tr valign="top"> |
| <td align="left"><span class="table-header">Function Details</span></td> |
| <td align="right" valign="top" |
| ><span class="options">[<a href="#section-FunctionDetails" |
| class="privatelink" onclick="toggle_private();" |
| >hide private</a>]</span></td> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| </table> |
| <a name="positional"></a> |
| <div> |
| <table class="details" border="1" cellpadding="3" |
| cellspacing="0" width="100%" bgcolor="white"> |
| <tr><td> |
| <table width="100%" cellpadding="0" cellspacing="0" border="0"> |
| <tr valign="top"><td> |
| <h3 class="epydoc"><span class="sig"><span class="sig-name">positional</span>(<span class="sig-arg">max_positional_args</span>)</span> |
| </h3> |
| </td><td align="right" valign="top" |
| ><span class="codelink"><a href="googleapiclient._helpers-pysrc.html#positional">source code</a></span> |
| </td> |
| </tr></table> |
| |
| <pre class="literalblock"> |
| A decorator to declare that only the first N arguments may be positional. |
| |
| This decorator makes it easy to support Python 3 style keyword-only |
| parameters. For example, in Python 3 it is possible to write:: |
| |
| def fn(pos1, *, kwonly1=None, kwonly1=None): |
| ... |
| |
| All named parameters after ``*`` must be a keyword:: |
| |
| fn(10, 'kw1', 'kw2') # Raises exception. |
| fn(10, kwonly1='kw1') # Ok. |
| |
| Example |
| ^^^^^^^ |
| |
| To define a function like above, do:: |
| |
| @positional(1) |
| def fn(pos1, kwonly1=None, kwonly2=None): |
| ... |
| |
| If no default value is provided to a keyword argument, it becomes a |
| required keyword argument:: |
| |
| @positional(0) |
| def fn(required_kw): |
| ... |
| |
| This must be called with the keyword parameter:: |
| |
| fn() # Raises exception. |
| fn(10) # Raises exception. |
| fn(required_kw=10) # Ok. |
| |
| When defining instance or class methods always remember to account for |
| ``self`` and ``cls``:: |
| |
| class MyClass(object): |
| |
| @positional(2) |
| def my_method(self, pos1, kwonly1=None): |
| ... |
| |
| @classmethod |
| @positional(2) |
| def my_method(cls, pos1, kwonly1=None): |
| ... |
| |
| The positional decorator behavior is controlled by |
| ``_helpers.positional_parameters_enforcement``, which may be set to |
| ``POSITIONAL_EXCEPTION``, ``POSITIONAL_WARNING`` or |
| ``POSITIONAL_IGNORE`` to raise an exception, log a warning, or do |
| nothing, respectively, if a declaration is violated. |
| |
| Args: |
| max_positional_arguments: Maximum number of positional arguments. All |
| parameters after the this index must be |
| keyword only. |
| |
| Returns: |
| A decorator that prevents using arguments after max_positional_args |
| from being used as positional parameters. |
| |
| Raises: |
| TypeError: if a key-word only argument is provided as a positional |
| parameter, but only if |
| _helpers.positional_parameters_enforcement is set to |
| POSITIONAL_EXCEPTION. |
| |
| </pre> |
| <dl class="fields"> |
| </dl> |
| </td></tr></table> |
| </div> |
| <a name="parse_unique_urlencoded"></a> |
| <div> |
| <table class="details" border="1" cellpadding="3" |
| cellspacing="0" width="100%" bgcolor="white"> |
| <tr><td> |
| <table width="100%" cellpadding="0" cellspacing="0" border="0"> |
| <tr valign="top"><td> |
| <h3 class="epydoc"><span class="sig"><span class="sig-name">parse_unique_urlencoded</span>(<span class="sig-arg">content</span>)</span> |
| </h3> |
| </td><td align="right" valign="top" |
| ><span class="codelink"><a href="googleapiclient._helpers-pysrc.html#parse_unique_urlencoded">source code</a></span> |
| </td> |
| </tr></table> |
| |
| <pre class="literalblock"> |
| Parses unique key-value parameters from urlencoded content. |
| |
| Args: |
| content: string, URL-encoded key-value pairs. |
| |
| Returns: |
| dict, The key-value pairs from ``content``. |
| |
| Raises: |
| ValueError: if one of the keys is repeated. |
| |
| </pre> |
| <dl class="fields"> |
| </dl> |
| </td></tr></table> |
| </div> |
| <a name="update_query_params"></a> |
| <div> |
| <table class="details" border="1" cellpadding="3" |
| cellspacing="0" width="100%" bgcolor="white"> |
| <tr><td> |
| <table width="100%" cellpadding="0" cellspacing="0" border="0"> |
| <tr valign="top"><td> |
| <h3 class="epydoc"><span class="sig"><span class="sig-name">update_query_params</span>(<span class="sig-arg">uri</span>, |
| <span class="sig-arg">params</span>)</span> |
| </h3> |
| </td><td align="right" valign="top" |
| ><span class="codelink"><a href="googleapiclient._helpers-pysrc.html#update_query_params">source code</a></span> |
| </td> |
| </tr></table> |
| |
| <pre class="literalblock"> |
| Updates a URI with new query parameters. |
| |
| If a given key from ``params`` is repeated in the ``uri``, then |
| the URI will be considered invalid and an error will occur. |
| |
| If the URI is valid, then each value from ``params`` will |
| replace the corresponding value in the query parameters (if |
| it exists). |
| |
| Args: |
| uri: string, A valid URI, with potential existing query parameters. |
| params: dict, A dictionary of query parameters. |
| |
| Returns: |
| The same URI but with the new query parameters added. |
| |
| </pre> |
| <dl class="fields"> |
| </dl> |
| </td></tr></table> |
| </div> |
| <a name="_add_query_parameter"></a> |
| <div class="private"> |
| <table class="details" border="1" cellpadding="3" |
| cellspacing="0" width="100%" bgcolor="white"> |
| <tr><td> |
| <table width="100%" cellpadding="0" cellspacing="0" border="0"> |
| <tr valign="top"><td> |
| <h3 class="epydoc"><span class="sig"><span class="sig-name">_add_query_parameter</span>(<span class="sig-arg">url</span>, |
| <span class="sig-arg">name</span>, |
| <span class="sig-arg">value</span>)</span> |
| </h3> |
| </td><td align="right" valign="top" |
| ><span class="codelink"><a href="googleapiclient._helpers-pysrc.html#_add_query_parameter">source code</a></span> |
| </td> |
| </tr></table> |
| |
| <pre class="literalblock"> |
| Adds a query parameter to a url. |
| |
| Replaces the current value if it already exists in the URL. |
| |
| Args: |
| url: string, url to add the query parameter to. |
| name: string, query parameter name. |
| value: string, query parameter value. |
| |
| Returns: |
| Updated query parameter. Does not update the url if value is None. |
| |
| </pre> |
| <dl class="fields"> |
| </dl> |
| </td></tr></table> |
| </div> |
| <br /> |
| <!-- ==================== VARIABLES DETAILS ==================== --> |
| <a name="section-VariablesDetails"></a> |
| <table class="details" border="1" cellpadding="3" |
| cellspacing="0" width="100%" bgcolor="white"> |
| <tr bgcolor="#70b0f0" class="table-header"> |
| <td colspan="2" class="table-header"> |
| <table border="0" cellpadding="0" cellspacing="0" width="100%"> |
| <tr valign="top"> |
| <td align="left"><span class="table-header">Variables Details</span></td> |
| <td align="right" valign="top" |
| ><span class="options">[<a href="#section-VariablesDetails" |
| class="privatelink" onclick="toggle_private();" |
| >hide private</a>]</span></td> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| </table> |
| <a name="_MISSING_FILE_MESSAGE"></a> |
| <div class="private"> |
| <table class="details" border="1" cellpadding="3" |
| cellspacing="0" width="100%" bgcolor="white"> |
| <tr><td> |
| <h3 class="epydoc">_MISSING_FILE_MESSAGE</h3> |
| |
| <dl class="fields"> |
| </dl> |
| <dl class="fields"> |
| <dt>Value:</dt> |
| <dd><table><tr><td><pre class="variable"> |
| <code class="variable-quote">'</code><code class="variable-string">Cannot access {0}: No such file or directory</code><code class="variable-quote">'</code> |
| </pre></td></tr></table> |
| </dd> |
| </dl> |
| </td></tr></table> |
| </div> |
| <br /> |
| <!-- ==================== NAVIGATION BAR ==================== --> |
| <table class="navbar" border="0" width="100%" cellpadding="0" |
| bgcolor="#a0c0ff" cellspacing="0"> |
| <tr valign="middle"> |
| <!-- Home link --> |
| <th> <a |
| href="googleapiclient-module.html">Home</a> </th> |
| |
| <!-- Tree link --> |
| <th> <a |
| href="module-tree.html">Trees</a> </th> |
| |
| <!-- Index link --> |
| <th> <a |
| href="identifier-index.html">Indices</a> </th> |
| |
| <!-- Help link --> |
| <th> <a |
| href="help.html">Help</a> </th> |
| |
| <th class="navbar" width="100%"></th> |
| </tr> |
| </table> |
| <table border="0" cellpadding="0" cellspacing="0" width="100%%"> |
| <tr> |
| <td align="left" class="footer"> |
| Generated by Epydoc 3.0.1 on Fri Oct 2 20:46:22 2020 |
| </td> |
| <td align="right" class="footer"> |
| <a target="mainFrame" href="http://epydoc.sourceforge.net" |
| >http://epydoc.sourceforge.net</a> |
| </td> |
| </tr> |
| </table> |
| |
| <script type="text/javascript"> |
| <!-- |
| // Private objects are initially displayed (because if |
| // javascript is turned off then we want them to be |
| // visible); but by default, we want to hide them. So hide |
| // them unless we have a cookie that says to show them. |
| checkCookie(); |
| // --> |
| </script> |
| </body> |
| </html> |