PageRenderTime 414ms CodeModel.GetById 141ms app.highlight 142ms RepoModel.GetById 119ms app.codeStats 1ms

/apidocs/pyechonest.util-module.html

http://echo-nest-remix.googlecode.com/
HTML | 536 lines | 501 code | 23 blank | 12 comment | 0 complexity | d330e220a5c3cbbf4f80575c21b92dc1 MD5 | raw file
  1<?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>pyechonest.util</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  <!-- Project homepage -->
 31      <th class="navbar" align="right" width="100%">
 32        <table border="0" cellpadding="0" cellspacing="0">
 33          <tr><th class="navbar" align="center"
 34            ><a class="navbar" target="_top" href="http://code.google.com/p/echo-nest-remix/">Project Homepage</a></th>
 35          </tr></table></th>
 36  </tr>
 37</table>
 38<table width="100%" cellpadding="0" cellspacing="0">
 39  <tr valign="top">
 40    <td width="100%">
 41      <span class="breadcrumbs">
 42        <a href="pyechonest-module.html">Package&nbsp;pyechonest</a> ::
 43        Module&nbsp;util
 44      </span>
 45    </td>
 46    <td>
 47      <table cellpadding="0" cellspacing="0">
 48        <!-- hide/show private -->
 49        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
 50    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
 51        <tr><td align="right"><span class="options"
 52            >[<a href="frames.html" target="_top">frames</a
 53            >]&nbsp;|&nbsp;<a href="pyechonest.util-module.html"
 54            target="_top">no&nbsp;frames</a>]</span></td></tr>
 55      </table>
 56    </td>
 57  </tr>
 58</table>
 59<!-- ==================== MODULE DESCRIPTION ==================== -->
 60<h1 class="epydoc">Module util</h1><p class="nomargin-top"><span class="codelink"><a href="pyechonest.util-pysrc.html">source&nbsp;code</a></span></p>
 61<p>Copyright (c) 2010 The Echo Nest. All rights reserved.
 62Created by Tyler Williams on 2010-04-25.</p>
 63<p>Utility functions to support the Echo Nest web API interface.</p>
 64
 65<!-- ==================== CLASSES ==================== -->
 66<a name="section-Classes"></a>
 67<table class="summary" border="1" cellpadding="3"
 68       cellspacing="0" width="100%" bgcolor="white">
 69<tr bgcolor="#70b0f0" class="table-header">
 70  <td colspan="2" class="table-header">
 71    <table border="0" cellpadding="0" cellspacing="0" width="100%">
 72      <tr valign="top">
 73        <td align="left"><span class="table-header">Classes</span></td>
 74        <td align="right" valign="top"
 75         ><span class="options">[<a href="#section-Classes"
 76         class="privatelink" onclick="toggle_private();"
 77         >hide private</a>]</span></td>
 78      </tr>
 79    </table>
 80  </td>
 81</tr>
 82<tr>
 83    <td width="15%" align="right" valign="top" class="summary">
 84      <span class="summary-type">&nbsp;</span>
 85    </td><td class="summary">
 86        <a href="pyechonest.util.EchoNestAPIError-class.html" class="summary-name">EchoNestAPIError</a><br />
 87      Generic API errors.
 88    </td>
 89  </tr>
 90<tr>
 91    <td width="15%" align="right" valign="top" class="summary">
 92      <span class="summary-type">&nbsp;</span>
 93    </td><td class="summary">
 94        <a href="pyechonest.util.attrdict-class.html" class="summary-name">attrdict</a>
 95    </td>
 96  </tr>
 97</table>
 98<!-- ==================== FUNCTIONS ==================== -->
 99<a name="section-Functions"></a>
100<table class="summary" border="1" cellpadding="3"
101       cellspacing="0" width="100%" bgcolor="white">
102<tr bgcolor="#70b0f0" class="table-header">
103  <td colspan="2" class="table-header">
104    <table border="0" cellpadding="0" cellspacing="0" width="100%">
105      <tr valign="top">
106        <td align="left"><span class="table-header">Functions</span></td>
107        <td align="right" valign="top"
108         ><span class="options">[<a href="#section-Functions"
109         class="privatelink" onclick="toggle_private();"
110         >hide private</a>]</span></td>
111      </tr>
112    </table>
113  </td>
114</tr>
115<tr>
116    <td width="15%" align="right" valign="top" class="summary">
117      <span class="summary-type">&nbsp;</span>
118    </td><td class="summary">
119      <table width="100%" cellpadding="0" cellspacing="0" border="0">
120        <tr>
121          <td><span class="summary-sig"><a name="get_successful_response"></a><span class="summary-sig-name">get_successful_response</span>(<span class="summary-sig-arg">raw_json</span>)</span></td>
122          <td align="right" valign="top">
123            <span class="codelink"><a href="pyechonest.util-pysrc.html#get_successful_response">source&nbsp;code</a></span>
124            
125          </td>
126        </tr>
127      </table>
128      
129    </td>
130  </tr>
131<tr>
132    <td width="15%" align="right" valign="top" class="summary">
133      <span class="summary-type">&nbsp;</span>
134    </td><td class="summary">
135      <table width="100%" cellpadding="0" cellspacing="0" border="0">
136        <tr>
137          <td><span class="summary-sig"><a name="reallyunicode"></a><span class="summary-sig-name">reallyunicode</span>(<span class="summary-sig-arg">s</span>,
138        <span class="summary-sig-arg">encoding</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">utf-8</code><code class="variable-quote">'</code></span>)</span></td>
139          <td align="right" valign="top">
140            <span class="codelink"><a href="pyechonest.util-pysrc.html#reallyunicode">source&nbsp;code</a></span>
141            
142          </td>
143        </tr>
144      </table>
145      
146    </td>
147  </tr>
148<tr>
149    <td width="15%" align="right" valign="top" class="summary">
150      <span class="summary-type">&nbsp;</span>
151    </td><td class="summary">
152      <table width="100%" cellpadding="0" cellspacing="0" border="0">
153        <tr>
154          <td><span class="summary-sig"><a name="reallyUTF8"></a><span class="summary-sig-name">reallyUTF8</span>(<span class="summary-sig-arg">s</span>)</span></td>
155          <td align="right" valign="top">
156            <span class="codelink"><a href="pyechonest.util-pysrc.html#reallyUTF8">source&nbsp;code</a></span>
157            
158          </td>
159        </tr>
160      </table>
161      
162    </td>
163  </tr>
164<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 name="codegen"></a><span class="summary-sig-name">codegen</span>(<span class="summary-sig-arg">filename</span>,
171        <span class="summary-sig-arg">start</span>=<span class="summary-sig-default">0</span>,
172        <span class="summary-sig-arg">duration</span>=<span class="summary-sig-default">30</span>)</span></td>
173          <td align="right" valign="top">
174            <span class="codelink"><a href="pyechonest.util-pysrc.html#codegen">source&nbsp;code</a></span>
175            
176          </td>
177        </tr>
178      </table>
179      
180    </td>
181  </tr>
182<tr>
183    <td width="15%" align="right" valign="top" class="summary">
184      <span class="summary-type">&nbsp;</span>
185    </td><td class="summary">
186      <table width="100%" cellpadding="0" cellspacing="0" border="0">
187        <tr>
188          <td><span class="summary-sig"><a href="pyechonest.util-module.html#callm" class="summary-sig-name">callm</a>(<span class="summary-sig-arg">method</span>,
189        <span class="summary-sig-arg">param_dict</span>,
190        <span class="summary-sig-arg">POST</span>=<span class="summary-sig-default">False</span>,
191        <span class="summary-sig-arg">socket_timeout</span>=<span class="summary-sig-default">None</span>,
192        <span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>)</span><br />
193      Call the api!
194Param_dict is a <em>regular</em> <em>python</em> <em>dictionary</em> so if you want to have multi-valued params
195put them in a list.</td>
196          <td align="right" valign="top">
197            <span class="codelink"><a href="pyechonest.util-pysrc.html#callm">source&nbsp;code</a></span>
198            
199          </td>
200        </tr>
201      </table>
202      
203    </td>
204  </tr>
205<tr>
206    <td width="15%" align="right" valign="top" class="summary">
207      <span class="summary-type">&nbsp;</span>
208    </td><td class="summary">
209      <table width="100%" cellpadding="0" cellspacing="0" border="0">
210        <tr>
211          <td><span class="summary-sig"><a href="pyechonest.util-module.html#postChunked" class="summary-sig-name">postChunked</a>(<span class="summary-sig-arg">host</span>,
212        <span class="summary-sig-arg">selector</span>,
213        <span class="summary-sig-arg">fields</span>,
214        <span class="summary-sig-arg">files</span>)</span><br />
215      Attempt to replace postMultipart() with nearly-identical interface.</td>
216          <td align="right" valign="top">
217            <span class="codelink"><a href="pyechonest.util-pysrc.html#postChunked">source&nbsp;code</a></span>
218            
219          </td>
220        </tr>
221      </table>
222      
223    </td>
224  </tr>
225</table>
226<!-- ==================== VARIABLES ==================== -->
227<a name="section-Variables"></a>
228<table class="summary" border="1" cellpadding="3"
229       cellspacing="0" width="100%" bgcolor="white">
230<tr bgcolor="#70b0f0" class="table-header">
231  <td colspan="2" class="table-header">
232    <table border="0" cellpadding="0" cellspacing="0" width="100%">
233      <tr valign="top">
234        <td align="left"><span class="table-header">Variables</span></td>
235        <td align="right" valign="top"
236         ><span class="options">[<a href="#section-Variables"
237         class="privatelink" onclick="toggle_private();"
238         >hide private</a>]</span></td>
239      </tr>
240    </table>
241  </td>
242</tr>
243<tr>
244    <td width="15%" align="right" valign="top" class="summary">
245      <span class="summary-type">&nbsp;</span>
246    </td><td class="summary">
247        <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger(__name__)">logging.getLogger(__name__)</code>
248    </td>
249  </tr>
250<tr>
251    <td width="15%" align="right" valign="top" class="summary">
252      <span class="summary-type">&nbsp;</span>
253    </td><td class="summary">
254        <a href="pyechonest.util-module.html#TYPENAMES" class="summary-name">TYPENAMES</a> = <code title="(('AR', 'artist'),
255 ('SO', 'song'),
256 ('RE', 'release'),
257 ('TR', 'track'),
258 ('PE', 'person'),
259 ('DE', 'device'),
260 ('LI', 'listener'),
261 ('ED', 'editor'),
262..."><code class="variable-group">(</code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">AR</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">artist</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">SO</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">song</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">, </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">RE</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">release</code><code class="variable-ellipsis">...</code></code>
263    </td>
264  </tr>
265<tr>
266    <td width="15%" align="right" valign="top" class="summary">
267      <span class="summary-type">&nbsp;</span>
268    </td><td class="summary">
269        <a href="pyechonest.util-module.html#foreign_regex" class="summary-name">foreign_regex</a> = <code title="re.compile(r'^.+?:(artist|song|release|track|person|device|listener|ed\
270itor|tweditor):([^\^]+)\^?([0-9\.]+)?')">re.compile(r'^.<code class="re-op">+?</code>:<code class="re-group">(</code>artist<code class="re-op">|</code>song<code class="re-op">|</code>release<code class="re-op">|</code>track<code class="re-op">|</code>p<code class="variable-ellipsis">...</code></code>
271    </td>
272  </tr>
273<tr>
274    <td width="15%" align="right" valign="top" class="summary">
275      <span class="summary-type">&nbsp;</span>
276    </td><td class="summary">
277        <a href="pyechonest.util-module.html#short_regex" class="summary-name">short_regex</a> = <code title="re.compile(r'^((AR|SO|RE|TR|PE|DE|LI|ED|TW)[0-9A-Z]{16})\^?([0-9\.]+)?\
278')">re.compile(r'^<code class="re-group">(</code><code class="re-group">(</code>AR<code class="re-op">|</code>SO<code class="re-op">|</code>RE<code class="re-op">|</code>TR<code class="re-op">|</code>PE<code class="re-op">|</code>DE<code class="re-op">|</code>LI<code class="re-op">|</code>ED<code class="re-op">|</code>TW<code class="re-group">)</code><code class="re-group">[</code>0<code class="re-op">-</code>9A<code class="variable-ellipsis">...</code></code>
279    </td>
280  </tr>
281<tr>
282    <td width="15%" align="right" valign="top" class="summary">
283      <span class="summary-type">&nbsp;</span>
284    </td><td class="summary">
285        <a href="pyechonest.util-module.html#long_regex" class="summary-name">long_regex</a> = <code title="re.compile(r'music://id.echonest.com/.+?/(AR|SO|RE|TR|PE|DE|LI|ED|TW)/\
286(AR|SO|RE|TR|PE|DE|LI|ED|TW)[0-9A-Z]{16}\^?([0-9\.]+)?')">re.compile(r'music://id.echonest.com/.<code class="re-op">+?</code>/<code class="re-group">(</code>AR<code class="re-op">|</code>SO<code class="re-op">|</code>R<code class="variable-ellipsis">...</code></code>
287    </td>
288  </tr>
289<tr>
290    <td width="15%" align="right" valign="top" class="summary">
291      <span class="summary-type">&nbsp;</span>
292    </td><td class="summary">
293        <a name="headers"></a><span class="summary-name">headers</span> = <code title="[('User-Agent', 'Pyechonest 4.2.5')]"><code class="variable-group">[</code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">User-Agent</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">Pyechonest 4.2.5</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-group">]</code></code>
294    </td>
295  </tr>
296<tr>
297    <td width="15%" align="right" valign="top" class="summary">
298      <span class="summary-type">&nbsp;</span>
299    </td><td class="summary">
300        <a name="opener"></a><span class="summary-name">opener</span> = <code title="urllib2.build_opener()">urllib2.build_opener()</code>
301    </td>
302  </tr>
303<tr>
304    <td width="15%" align="right" valign="top" class="summary">
305      <span class="summary-type">&nbsp;</span>
306    </td><td class="summary">
307        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'pyechonest'"><code class="variable-quote">'</code><code class="variable-string">pyechonest</code><code class="variable-quote">'</code></code>
308    </td>
309  </tr>
310</table>
311<!-- ==================== FUNCTION DETAILS ==================== -->
312<a name="section-FunctionDetails"></a>
313<table class="details" border="1" cellpadding="3"
314       cellspacing="0" width="100%" bgcolor="white">
315<tr bgcolor="#70b0f0" class="table-header">
316  <td colspan="2" class="table-header">
317    <table border="0" cellpadding="0" cellspacing="0" width="100%">
318      <tr valign="top">
319        <td align="left"><span class="table-header">Function Details</span></td>
320        <td align="right" valign="top"
321         ><span class="options">[<a href="#section-FunctionDetails"
322         class="privatelink" onclick="toggle_private();"
323         >hide private</a>]</span></td>
324      </tr>
325    </table>
326  </td>
327</tr>
328</table>
329<a name="callm"></a>
330<div>
331<table class="details" border="1" cellpadding="3"
332       cellspacing="0" width="100%" bgcolor="white">
333<tr><td>
334  <table width="100%" cellpadding="0" cellspacing="0" border="0">
335  <tr valign="top"><td>
336  <h3 class="epydoc"><span class="sig"><span class="sig-name">callm</span>(<span class="sig-arg">method</span>,
337        <span class="sig-arg">param_dict</span>,
338        <span class="sig-arg">POST</span>=<span class="sig-default">False</span>,
339        <span class="sig-arg">socket_timeout</span>=<span class="sig-default">None</span>,
340        <span class="sig-arg">data</span>=<span class="sig-default">None</span>)</span>
341  </h3>
342  </td><td align="right" valign="top"
343    ><span class="codelink"><a href="pyechonest.util-pysrc.html#callm">source&nbsp;code</a></span>&nbsp;
344    </td>
345  </tr></table>
346  
347  <p>Call the api!
348Param_dict is a <em>regular</em> <em>python</em> <em>dictionary</em> so if you want to have multi-valued params
349put them in a list.</p>
350<p>** note, if we require 2.6, we can get rid of this timeout munging.</p>
351  <dl class="fields">
352  </dl>
353</td></tr></table>
354</div>
355<a name="postChunked"></a>
356<div>
357<table class="details" border="1" cellpadding="3"
358       cellspacing="0" width="100%" bgcolor="white">
359<tr><td>
360  <table width="100%" cellpadding="0" cellspacing="0" border="0">
361  <tr valign="top"><td>
362  <h3 class="epydoc"><span class="sig"><span class="sig-name">postChunked</span>(<span class="sig-arg">host</span>,
363        <span class="sig-arg">selector</span>,
364        <span class="sig-arg">fields</span>,
365        <span class="sig-arg">files</span>)</span>
366  </h3>
367  </td><td align="right" valign="top"
368    ><span class="codelink"><a href="pyechonest.util-pysrc.html#postChunked">source&nbsp;code</a></span>&nbsp;
369    </td>
370  </tr></table>
371  
372  <p>Attempt to replace postMultipart() with nearly-identical interface.
373(The files tuple no longer requires the filename, and we only return
374the response body.)
375Uses the urllib2_file.py originally from
376<a class="rst-reference external" href="http://fabien.seisen.org" target="_top">http://fabien.seisen.org</a> which was also drawn heavily from
377<a class="rst-reference external" href="http://code.activestate.com/recipes/146306/" target="_top">http://code.activestate.com/recipes/146306/</a> .</p>
378<p>This urllib2_file.py is more desirable because of the chunked
379uploading from a file pointer (no need to read entire file into
380memory) and the ability to work from behind a proxy (due to its
381basis on urllib2).</p>
382  <dl class="fields">
383  </dl>
384</td></tr></table>
385</div>
386<br />
387<!-- ==================== VARIABLES DETAILS ==================== -->
388<a name="section-VariablesDetails"></a>
389<table class="details" border="1" cellpadding="3"
390       cellspacing="0" width="100%" bgcolor="white">
391<tr bgcolor="#70b0f0" class="table-header">
392  <td colspan="2" class="table-header">
393    <table border="0" cellpadding="0" cellspacing="0" width="100%">
394      <tr valign="top">
395        <td align="left"><span class="table-header">Variables Details</span></td>
396        <td align="right" valign="top"
397         ><span class="options">[<a href="#section-VariablesDetails"
398         class="privatelink" onclick="toggle_private();"
399         >hide private</a>]</span></td>
400      </tr>
401    </table>
402  </td>
403</tr>
404</table>
405<a name="TYPENAMES"></a>
406<div>
407<table class="details" border="1" cellpadding="3"
408       cellspacing="0" width="100%" bgcolor="white">
409<tr><td>
410  <h3 class="epydoc">TYPENAMES</h3>
411  
412  <dl class="fields">
413  </dl>
414  <dl class="fields">
415    <dt>Value:</dt>
416      <dd><table><tr><td><pre class="variable">
417<code class="variable-group">(</code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">AR</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">artist</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
418 <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">SO</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">song</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
419 <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">RE</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">release</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
420 <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">TR</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">track</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
421 <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">PE</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">person</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
422 <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">DE</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">device</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
423 <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">LI</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">listener</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
424 <code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">ED</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">editor</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
425<code class="variable-ellipsis">...</code>
426</pre></td></tr></table>
427</dd>
428  </dl>
429</td></tr></table>
430</div>
431<a name="foreign_regex"></a>
432<div>
433<table class="details" border="1" cellpadding="3"
434       cellspacing="0" width="100%" bgcolor="white">
435<tr><td>
436  <h3 class="epydoc">foreign_regex</h3>
437  
438  <dl class="fields">
439  </dl>
440  <dl class="fields">
441    <dt>Value:</dt>
442      <dd><table><tr><td><pre class="variable">
443re.compile(r'^.<code class="re-op">+?</code>:<code class="re-group">(</code>artist<code class="re-op">|</code>song<code class="re-op">|</code>release<code class="re-op">|</code>track<code class="re-op">|</code>person<code class="re-op">|</code>device<code class="re-op">|</code>listener<code class="re-op">|</code>ed<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
444itor<code class="re-op">|</code>tweditor<code class="re-group">)</code>:<code class="re-group">(</code><code class="re-group">[^</code>\^<code class="re-group">]</code><code class="re-op">+</code><code class="re-group">)</code>\^<code class="re-op">?</code><code class="re-group">(</code><code class="re-group">[</code>0<code class="re-op">-</code>9\.<code class="re-group">]</code><code class="re-op">+</code><code class="re-group">)</code><code class="re-op">?</code>')
445</pre></td></tr></table>
446</dd>
447  </dl>
448</td></tr></table>
449</div>
450<a name="short_regex"></a>
451<div>
452<table class="details" border="1" cellpadding="3"
453       cellspacing="0" width="100%" bgcolor="white">
454<tr><td>
455  <h3 class="epydoc">short_regex</h3>
456  
457  <dl class="fields">
458  </dl>
459  <dl class="fields">
460    <dt>Value:</dt>
461      <dd><table><tr><td><pre class="variable">
462re.compile(r'^<code class="re-group">(</code><code class="re-group">(</code>AR<code class="re-op">|</code>SO<code class="re-op">|</code>RE<code class="re-op">|</code>TR<code class="re-op">|</code>PE<code class="re-op">|</code>DE<code class="re-op">|</code>LI<code class="re-op">|</code>ED<code class="re-op">|</code>TW<code class="re-group">)</code><code class="re-group">[</code>0<code class="re-op">-</code>9A<code class="re-op">-</code>Z<code class="re-group">]</code><code class="re-op">{16}</code><code class="re-group">)</code>\^<code class="re-op">?</code><code class="re-group">(</code><code class="re-group">[</code>0<code class="re-op">-</code>9\.<code class="re-group">]</code><code class="re-op">+</code><code class="re-group">)</code><code class="re-op">?</code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
463')
464</pre></td></tr></table>
465</dd>
466  </dl>
467</td></tr></table>
468</div>
469<a name="long_regex"></a>
470<div>
471<table class="details" border="1" cellpadding="3"
472       cellspacing="0" width="100%" bgcolor="white">
473<tr><td>
474  <h3 class="epydoc">long_regex</h3>
475  
476  <dl class="fields">
477  </dl>
478  <dl class="fields">
479    <dt>Value:</dt>
480      <dd><table><tr><td><pre class="variable">
481re.compile(r'music://id.echonest.com/.<code class="re-op">+?</code>/<code class="re-group">(</code>AR<code class="re-op">|</code>SO<code class="re-op">|</code>RE<code class="re-op">|</code>TR<code class="re-op">|</code>PE<code class="re-op">|</code>DE<code class="re-op">|</code>LI<code class="re-op">|</code>ED<code class="re-op">|</code>TW<code class="re-group">)</code>/<code class="re-group"></code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
482<code class="re-group">(</code>AR<code class="re-op">|</code>SO<code class="re-op">|</code>RE<code class="re-op">|</code>TR<code class="re-op">|</code>PE<code class="re-op">|</code>DE<code class="re-op">|</code>LI<code class="re-op">|</code>ED<code class="re-op">|</code>TW<code class="re-group">)</code><code class="re-group">[</code>0<code class="re-op">-</code>9A<code class="re-op">-</code>Z<code class="re-group">]</code><code class="re-op">{16}</code>\^<code class="re-op">?</code><code class="re-group">(</code><code class="re-group">[</code>0<code class="re-op">-</code>9\.<code class="re-group">]</code><code class="re-op">+</code><code class="re-group">)</code><code class="re-op">?</code>')
483</pre></td></tr></table>
484</dd>
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  <!-- Project homepage -->
507      <th class="navbar" align="right" width="100%">
508        <table border="0" cellpadding="0" cellspacing="0">
509          <tr><th class="navbar" align="center"
510            ><a class="navbar" target="_top" href="http://code.google.com/p/echo-nest-remix/">Project Homepage</a></th>
511          </tr></table></th>
512  </tr>
513</table>
514<table border="0" cellpadding="0" cellspacing="0" width="100%%">
515  <tr>
516    <td align="left" class="footer">
517    Generated by Epydoc 3.0.1 on Wed Sep  1 16:08:57 2010
518    </td>
519    <td align="right" class="footer">
520      <a target="mainFrame" href="http://epydoc.sourceforge.net"
521        >http://epydoc.sourceforge.net</a>
522    </td>
523  </tr>
524</table>
525
526<script type="text/javascript">
527  <!--
528  // Private objects are initially displayed (because if
529  // javascript is turned off then we want them to be
530  // visible); but by default, we want to hide them.  So hide
531  // them unless we have a cookie that says to show them.
532  checkCookie();
533  // -->
534</script>
535</body>
536</html>