blob: 4e87d0d19c2f4245b4b1971f59a7e69f693397cd [file] [log] [blame]
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -04001<?xml version="1.0" encoding="ascii"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "DTD/xhtml1-transitional.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5<head>
6 <title>oauth2client.appengine.StorageByKeyName</title>
7 <link rel="stylesheet" href="epydoc.css" type="text/css" />
8 <script type="text/javascript" src="epydoc.js"></script>
9</head>
10
11<body bgcolor="white" text="black" link="blue" vlink="#204080"
12 alink="#204080">
13<!-- ==================== NAVIGATION BAR ==================== -->
14<table class="navbar" border="0" width="100%" cellpadding="0"
15 bgcolor="#a0c0ff" cellspacing="0">
16 <tr valign="middle">
17
18 <!-- Tree link -->
19 <th>&nbsp;&nbsp;&nbsp;<a
20 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
21
22 <!-- Index link -->
23 <th>&nbsp;&nbsp;&nbsp;<a
24 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
25
26 <!-- Help link -->
27 <th>&nbsp;&nbsp;&nbsp;<a
28 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
29
30 <th class="navbar" width="100%"></th>
31 </tr>
32</table>
33<table width="100%" cellpadding="0" cellspacing="0">
34 <tr valign="top">
35 <td width="100%">
36 <span class="breadcrumbs">
37 <a href="oauth2client-module.html">Package&nbsp;oauth2client</a> ::
38 <a href="oauth2client.appengine-module.html">Module&nbsp;appengine</a> ::
39 Class&nbsp;StorageByKeyName
40 </span>
41 </td>
42 <td>
43 <table cellpadding="0" cellspacing="0">
44 <!-- hide/show private -->
45 <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
46 onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
47 <tr><td align="right"><span class="options"
48 >[<a href="frames.html" target="_top">frames</a
49 >]&nbsp;|&nbsp;<a href="oauth2client.appengine.StorageByKeyName-class.html"
50 target="_top">no&nbsp;frames</a>]</span></td></tr>
51 </table>
52 </td>
53 </tr>
54</table>
55<!-- ==================== CLASS DESCRIPTION ==================== -->
56<h1 class="epydoc">Class StorageByKeyName</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName">source&nbsp;code</a></span></p>
57<center>
Joe Gregorio746096f2012-06-15 10:53:36 -040058<center> <map id="class_hierarchy_for_storagebyk" name="class_hierarchy_for_storagebyk">
Joe Gregorio52a5c532013-01-24 16:19:07 -050059<area shape="rect" id="node1" href="oauth2client.appengine.StorageByKeyName-class.html" title="StorageByKeyName" alt="" coords="5,6,147,34"/>
60<area shape="rect" id="node2" href="oauth2client.client.Storage-class.html" title="client.Storage" alt="" coords="171,6,272,34"/>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -040061</map>
Joe Gregorio746096f2012-06-15 10:53:36 -040062 <img src="class_hierarchy_for_storagebyk.gif" alt='' usemap="#class_hierarchy_for_storagebyk" ismap="ismap" class="graph-without-title" />
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -040063</center>
64</center>
65<hr />
66<pre class="literalblock">
Joe Gregorio52a5c532013-01-24 16:19:07 -050067Store and retrieve a credential to and from the App Engine datastore.
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -040068
Joe Gregorio52a5c532013-01-24 16:19:07 -050069This Storage helper presumes the Credentials have been stored as a
70CredentialsProperty or CredentialsNDBProperty on a datastore model class, and
71that entities are stored by key_name.
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -040072
73</pre>
74
75<!-- ==================== INSTANCE METHODS ==================== -->
76<a name="section-InstanceMethods"></a>
77<table class="summary" border="1" cellpadding="3"
78 cellspacing="0" width="100%" bgcolor="white">
79<tr bgcolor="#70b0f0" class="table-header">
80 <td colspan="2" class="table-header">
81 <table border="0" cellpadding="0" cellspacing="0" width="100%">
82 <tr valign="top">
83 <td align="left"><span class="table-header">Instance Methods</span></td>
84 <td align="right" valign="top"
85 ><span class="options">[<a href="#section-InstanceMethods"
86 class="privatelink" onclick="toggle_private();"
87 >hide private</a>]</span></td>
88 </tr>
89 </table>
90 </td>
91</tr>
92<tr>
93 <td width="15%" align="right" valign="top" class="summary">
94 <span class="summary-type">&nbsp;</span>
95 </td><td class="summary">
96 <table width="100%" cellpadding="0" cellspacing="0" border="0">
97 <tr>
Joe Gregoriof4839b02012-09-06 13:47:24 -040098 <td><span class="summary-sig"><a href="oauth2client.appengine.StorageByKeyName-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
99 <span class="summary-sig-arg">model</span>,
100 <span class="summary-sig-arg">key_name</span>,
101 <span class="summary-sig-arg">property_name</span>,
102 <span class="summary-sig-arg">cache</span>=<span class="summary-sig-default">None</span>)</span><br />
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400103 Constructor for Storage.</td>
104 <td align="right" valign="top">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400105 <span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName.__init__">source&nbsp;code</a></span>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400106
107 </td>
108 </tr>
109 </table>
110
111 </td>
112 </tr>
Joe Gregorio52a5c532013-01-24 16:19:07 -0500113<tr class="private">
114 <td width="15%" align="right" valign="top" class="summary">
115 <span class="summary-type">&nbsp;</span>
116 </td><td class="summary">
117 <table width="100%" cellpadding="0" cellspacing="0" border="0">
118 <tr>
119 <td><span class="summary-sig"><a href="oauth2client.appengine.StorageByKeyName-class.html#_is_ndb" class="summary-sig-name" onclick="show_private();">_is_ndb</a>(<span class="summary-sig-arg">self</span>)</span><br />
120 Determine whether the model of the instance is an NDB model.</td>
121 <td align="right" valign="top">
122 <span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName._is_ndb">source&nbsp;code</a></span>
123
124 </td>
125 </tr>
126 </table>
127
128 </td>
129 </tr>
130<tr class="private">
131 <td width="15%" align="right" valign="top" class="summary">
132 <span class="summary-type">&nbsp;</span>
133 </td><td class="summary">
134 <table width="100%" cellpadding="0" cellspacing="0" border="0">
135 <tr>
136 <td><span class="summary-sig"><a href="oauth2client.appengine.StorageByKeyName-class.html#_get_entity" class="summary-sig-name" onclick="show_private();">_get_entity</a>(<span class="summary-sig-arg">self</span>)</span><br />
137 Retrieve entity from datastore.</td>
138 <td align="right" valign="top">
139 <span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName._get_entity">source&nbsp;code</a></span>
140
141 </td>
142 </tr>
143 </table>
144
145 </td>
146 </tr>
147<tr class="private">
148 <td width="15%" align="right" valign="top" class="summary">
149 <span class="summary-type">&nbsp;</span>
150 </td><td class="summary">
151 <table width="100%" cellpadding="0" cellspacing="0" border="0">
152 <tr>
153 <td><span class="summary-sig"><a href="oauth2client.appengine.StorageByKeyName-class.html#_delete_entity" class="summary-sig-name" onclick="show_private();">_delete_entity</a>(<span class="summary-sig-arg">self</span>)</span><br />
154 Delete entity from datastore.</td>
155 <td align="right" valign="top">
156 <span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName._delete_entity">source&nbsp;code</a></span>
157
158 </td>
159 </tr>
160 </table>
161
162 </td>
163 </tr>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400164<tr>
165 <td width="15%" align="right" valign="top" class="summary">
166 <span class="summary-type">&nbsp;</span>
167 </td><td class="summary">
168 <table width="100%" cellpadding="0" cellspacing="0" border="0">
169 <tr>
170 <td><span class="summary-sig"><a href="oauth2client.appengine.StorageByKeyName-class.html#locked_get" class="summary-sig-name">locked_get</a>(<span class="summary-sig-arg">self</span>)</span><br />
171 Retrieve Credential from datastore.</td>
172 <td align="right" valign="top">
173 <span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName.locked_get">source&nbsp;code</a></span>
174
175 </td>
176 </tr>
177 </table>
178
179 </td>
180 </tr>
181<tr>
182 <td width="15%" align="right" valign="top" class="summary">
183 <span class="summary-type">&nbsp;</span>
184 </td><td class="summary">
185 <table width="100%" cellpadding="0" cellspacing="0" border="0">
186 <tr>
187 <td><span class="summary-sig"><a href="oauth2client.appengine.StorageByKeyName-class.html#locked_put" class="summary-sig-name">locked_put</a>(<span class="summary-sig-arg">self</span>,
188 <span class="summary-sig-arg">credentials</span>)</span><br />
189 Write a Credentials to the datastore.</td>
190 <td align="right" valign="top">
191 <span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName.locked_put">source&nbsp;code</a></span>
192
193 </td>
194 </tr>
195 </table>
196
197 </td>
198 </tr>
199<tr>
200 <td width="15%" align="right" valign="top" class="summary">
201 <span class="summary-type">&nbsp;</span>
202 </td><td class="summary">
203 <table width="100%" cellpadding="0" cellspacing="0" border="0">
204 <tr>
205 <td><span class="summary-sig"><a href="oauth2client.appengine.StorageByKeyName-class.html#locked_delete" class="summary-sig-name">locked_delete</a>(<span class="summary-sig-arg">self</span>)</span><br />
206 Delete Credential from datastore.</td>
207 <td align="right" valign="top">
208 <span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName.locked_delete">source&nbsp;code</a></span>
209
210 </td>
211 </tr>
212 </table>
213
214 </td>
215 </tr>
216 <tr>
217 <td colspan="2" class="summary">
218 <p class="indent-wrapped-lines"><b>Inherited from <code><a href="oauth2client.client.Storage-class.html">client.Storage</a></code></b>:
219 <code><a href="oauth2client.client.Storage-class.html#acquire_lock">acquire_lock</a></code>,
220 <code><a href="oauth2client.client.Storage-class.html#delete">delete</a></code>,
221 <code><a href="oauth2client.client.Storage-class.html#get">get</a></code>,
222 <code><a href="oauth2client.client.Storage-class.html#put">put</a></code>,
223 <code><a href="oauth2client.client.Storage-class.html#release_lock">release_lock</a></code>
224 </p>
225 <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
226 <code>__delattr__</code>,
227 <code>__format__</code>,
228 <code>__getattribute__</code>,
229 <code>__hash__</code>,
230 <code>__new__</code>,
231 <code>__reduce__</code>,
232 <code>__reduce_ex__</code>,
233 <code>__repr__</code>,
234 <code>__setattr__</code>,
235 <code>__sizeof__</code>,
236 <code>__str__</code>,
237 <code>__subclasshook__</code>
238 </p>
239 </td>
240 </tr>
241</table>
242<!-- ==================== PROPERTIES ==================== -->
243<a name="section-Properties"></a>
244<table class="summary" border="1" cellpadding="3"
245 cellspacing="0" width="100%" bgcolor="white">
246<tr bgcolor="#70b0f0" class="table-header">
247 <td colspan="2" class="table-header">
248 <table border="0" cellpadding="0" cellspacing="0" width="100%">
249 <tr valign="top">
250 <td align="left"><span class="table-header">Properties</span></td>
251 <td align="right" valign="top"
252 ><span class="options">[<a href="#section-Properties"
253 class="privatelink" onclick="toggle_private();"
254 >hide private</a>]</span></td>
255 </tr>
256 </table>
257 </td>
258</tr>
259 <tr>
260 <td colspan="2" class="summary">
261 <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
262 <code>__class__</code>
263 </p>
264 </td>
265 </tr>
266</table>
267<!-- ==================== METHOD DETAILS ==================== -->
268<a name="section-MethodDetails"></a>
269<table class="details" border="1" cellpadding="3"
270 cellspacing="0" width="100%" bgcolor="white">
271<tr bgcolor="#70b0f0" class="table-header">
272 <td colspan="2" class="table-header">
273 <table border="0" cellpadding="0" cellspacing="0" width="100%">
274 <tr valign="top">
275 <td align="left"><span class="table-header">Method Details</span></td>
276 <td align="right" valign="top"
277 ><span class="options">[<a href="#section-MethodDetails"
278 class="privatelink" onclick="toggle_private();"
279 >hide private</a>]</span></td>
280 </tr>
281 </table>
282 </td>
283</tr>
284</table>
285<a name="__init__"></a>
286<div>
287<table class="details" border="1" cellpadding="3"
288 cellspacing="0" width="100%" bgcolor="white">
289<tr><td>
290 <table width="100%" cellpadding="0" cellspacing="0" border="0">
291 <tr valign="top"><td>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400292 <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
293 <span class="sig-arg">model</span>,
294 <span class="sig-arg">key_name</span>,
295 <span class="sig-arg">property_name</span>,
296 <span class="sig-arg">cache</span>=<span class="sig-default">None</span>)</span>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400297 <br /><em class="fname">(Constructor)</em>
298 </h3>
299 </td><td align="right" valign="top"
Joe Gregoriof4839b02012-09-06 13:47:24 -0400300 ><span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName.__init__">source&nbsp;code</a></span>&nbsp;
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400301 </td>
302 </tr></table>
303
304 <pre class="literalblock">
305Constructor for Storage.
306
307Args:
Joe Gregorio52a5c532013-01-24 16:19:07 -0500308 model: db.Model or ndb.Model, model class
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400309 key_name: string, key name for the entity that has the credentials
310 property_name: string, name of the property that is a CredentialsProperty
Joe Gregorio52a5c532013-01-24 16:19:07 -0500311 or CredentialsNDBProperty.
312 cache: memcache, a write-through cache to put in front of the datastore.
313 If the model you are using is an NDB model, using a cache will be
314 redundant since the model uses an instance cache and memcache for you.
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400315
316</pre>
317 <dl class="fields">
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400318 <dt>Decorators:</dt>
319 <dd><ul class="nomargin-top">
320 <li><code>@util.positional(4)</code></li>
321 </ul></dd>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400322 <dt>Overrides:
323 object.__init__
324 </dt>
325 </dl>
326</td></tr></table>
327</div>
Joe Gregorio52a5c532013-01-24 16:19:07 -0500328<a name="_is_ndb"></a>
329<div class="private">
330<table class="details" border="1" cellpadding="3"
331 cellspacing="0" width="100%" bgcolor="white">
332<tr><td>
333 <table width="100%" cellpadding="0" cellspacing="0" border="0">
334 <tr valign="top"><td>
335 <h3 class="epydoc"><span class="sig"><span class="sig-name">_is_ndb</span>(<span class="sig-arg">self</span>)</span>
336 </h3>
337 </td><td align="right" valign="top"
338 ><span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName._is_ndb">source&nbsp;code</a></span>&nbsp;
339 </td>
340 </tr></table>
341
342 <pre class="literalblock">
343Determine whether the model of the instance is an NDB model.
344
345Returns:
346 Boolean indicating whether or not the model is an NDB or DB model.
347
348</pre>
349 <dl class="fields">
350 </dl>
351</td></tr></table>
352</div>
353<a name="_get_entity"></a>
354<div class="private">
355<table class="details" border="1" cellpadding="3"
356 cellspacing="0" width="100%" bgcolor="white">
357<tr><td>
358 <table width="100%" cellpadding="0" cellspacing="0" border="0">
359 <tr valign="top"><td>
360 <h3 class="epydoc"><span class="sig"><span class="sig-name">_get_entity</span>(<span class="sig-arg">self</span>)</span>
361 </h3>
362 </td><td align="right" valign="top"
363 ><span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName._get_entity">source&nbsp;code</a></span>&nbsp;
364 </td>
365 </tr></table>
366
367 <pre class="literalblock">
368Retrieve entity from datastore.
369
370Uses a different model method for db or ndb models.
371
372Returns:
373 Instance of the model corresponding to the current storage object
374 and stored using the key name of the storage object.
375
376</pre>
377 <dl class="fields">
378 </dl>
379</td></tr></table>
380</div>
381<a name="_delete_entity"></a>
382<div class="private">
383<table class="details" border="1" cellpadding="3"
384 cellspacing="0" width="100%" bgcolor="white">
385<tr><td>
386 <table width="100%" cellpadding="0" cellspacing="0" border="0">
387 <tr valign="top"><td>
388 <h3 class="epydoc"><span class="sig"><span class="sig-name">_delete_entity</span>(<span class="sig-arg">self</span>)</span>
389 </h3>
390 </td><td align="right" valign="top"
391 ><span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName._delete_entity">source&nbsp;code</a></span>&nbsp;
392 </td>
393 </tr></table>
394
395 <pre class="literalblock">
396Delete entity from datastore.
397
398Attempts to delete using the key_name stored on the object, whether or not
399the given key is in the datastore.
400
401</pre>
402 <dl class="fields">
403 </dl>
404</td></tr></table>
405</div>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400406<a name="locked_get"></a>
407<div>
408<table class="details" border="1" cellpadding="3"
409 cellspacing="0" width="100%" bgcolor="white">
410<tr><td>
411 <table width="100%" cellpadding="0" cellspacing="0" border="0">
412 <tr valign="top"><td>
413 <h3 class="epydoc"><span class="sig"><span class="sig-name">locked_get</span>(<span class="sig-arg">self</span>)</span>
414 </h3>
415 </td><td align="right" valign="top"
416 ><span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName.locked_get">source&nbsp;code</a></span>&nbsp;
417 </td>
418 </tr></table>
419
420 <pre class="literalblock">
421Retrieve Credential from datastore.
422
423Returns:
424 oauth2client.Credentials
425
426</pre>
427 <dl class="fields">
428 <dt>Overrides:
429 <a href="oauth2client.client.Storage-class.html#locked_get">client.Storage.locked_get</a>
430 </dt>
431 </dl>
432</td></tr></table>
433</div>
434<a name="locked_put"></a>
435<div>
436<table class="details" border="1" cellpadding="3"
437 cellspacing="0" width="100%" bgcolor="white">
438<tr><td>
439 <table width="100%" cellpadding="0" cellspacing="0" border="0">
440 <tr valign="top"><td>
441 <h3 class="epydoc"><span class="sig"><span class="sig-name">locked_put</span>(<span class="sig-arg">self</span>,
442 <span class="sig-arg">credentials</span>)</span>
443 </h3>
444 </td><td align="right" valign="top"
445 ><span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName.locked_put">source&nbsp;code</a></span>&nbsp;
446 </td>
447 </tr></table>
448
449 <pre class="literalblock">
450Write a Credentials to the datastore.
451
452Args:
453 credentials: Credentials, the credentials to store.
454
455</pre>
456 <dl class="fields">
457 <dt>Overrides:
458 <a href="oauth2client.client.Storage-class.html#locked_put">client.Storage.locked_put</a>
459 </dt>
460 </dl>
461</td></tr></table>
462</div>
463<a name="locked_delete"></a>
464<div>
465<table class="details" border="1" cellpadding="3"
466 cellspacing="0" width="100%" bgcolor="white">
467<tr><td>
468 <table width="100%" cellpadding="0" cellspacing="0" border="0">
469 <tr valign="top"><td>
470 <h3 class="epydoc"><span class="sig"><span class="sig-name">locked_delete</span>(<span class="sig-arg">self</span>)</span>
471 </h3>
472 </td><td align="right" valign="top"
473 ><span class="codelink"><a href="oauth2client.appengine-pysrc.html#StorageByKeyName.locked_delete">source&nbsp;code</a></span>&nbsp;
474 </td>
475 </tr></table>
476
477 <pre class="literalblock">
478Delete Credential from datastore.
479
480</pre>
481 <dl class="fields">
482 <dt>Overrides:
483 <a href="oauth2client.client.Storage-class.html#locked_delete">client.Storage.locked_delete</a>
484 </dt>
485 </dl>
486</td></tr></table>
487</div>
488<br />
489<!-- ==================== NAVIGATION BAR ==================== -->
490<table class="navbar" border="0" width="100%" cellpadding="0"
491 bgcolor="#a0c0ff" cellspacing="0">
492 <tr valign="middle">
493
494 <!-- Tree link -->
495 <th>&nbsp;&nbsp;&nbsp;<a
496 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
497
498 <!-- Index link -->
499 <th>&nbsp;&nbsp;&nbsp;<a
500 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
501
502 <!-- Help link -->
503 <th>&nbsp;&nbsp;&nbsp;<a
504 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
505
506 <th class="navbar" width="100%"></th>
507 </tr>
508</table>
509<table border="0" cellpadding="0" cellspacing="0" width="100%%">
510 <tr>
511 <td align="left" class="footer">
Joe Gregorio52a5c532013-01-24 16:19:07 -0500512 Generated by Epydoc 3.0.1 on Thu Jan 24 16:14:40 2013
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400513 </td>
514 <td align="right" class="footer">
515 <a target="mainFrame" href="http://epydoc.sourceforge.net"
516 >http://epydoc.sourceforge.net</a>
517 </td>
518 </tr>
519</table>
520
521<script type="text/javascript">
522 <!--
523 // Private objects are initially displayed (because if
524 // javascript is turned off then we want them to be
525 // visible); but by default, we want to hide them. So hide
526 // them unless we have a cookie that says to show them.
527 checkCookie();
528 // -->
529</script>
530</body>
531</html>