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>googleapiclient.mimeparse</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 <!-- Home link --> 18 <th> <a 19 href="googleapiclient-module.html">Home</a> </th> 20 21 <!-- Tree link --> 22 <th> <a 23 href="module-tree.html">Trees</a> </th> 24 25 <!-- Index link --> 26 <th> <a 27 href="identifier-index.html">Indices</a> </th> 28 29 <!-- Help link --> 30 <th> <a 31 href="help.html">Help</a> </th> 32 33 <th class="navbar" width="100%"></th> 34 </tr> 35</table> 36<table width="100%" cellpadding="0" cellspacing="0"> 37 <tr valign="top"> 38 <td width="100%"> 39 <span class="breadcrumbs"> 40 <a href="googleapiclient-module.html">Package googleapiclient</a> :: 41 Module mimeparse 42 </span> 43 </td> 44 <td> 45 <table cellpadding="0" cellspacing="0"> 46 <!-- hide/show private --> 47 <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" 48 onclick="toggle_private();">hide private</a>]</span></td></tr> 49 <tr><td align="right"><span class="options" 50 >[<a href="frames.html" target="_top">frames</a 51 >] | <a href="googleapiclient.mimeparse-module.html" 52 target="_top">no frames</a>]</span></td></tr> 53 </table> 54 </td> 55 </tr> 56</table> 57<!-- ==================== MODULE DESCRIPTION ==================== --> 58<h1 class="epydoc">Module mimeparse</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html">source code</a></span></p> 59<pre class="literalblock"> 60MIME-Type Parser 61 62This module provides basic functions for handling mime-types. It can handle 63matching mime-types against a list of media-ranges. See section 14.1 of the 64HTTP specification [RFC 2616] for a complete explanation. 65 66 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1 67 68Contents: 69 - parse_mime_type(): Parses a mime-type into its component parts. 70 - parse_media_range(): Media-ranges are mime-types with wild-cards and a 'q' 71 quality parameter. 72 - quality(): Determines the quality ('q') of a mime-type when 73 compared against a list of media-ranges. 74 - quality_parsed(): Just like quality() except the second parameter must be 75 pre-parsed. 76 - best_match(): Choose the mime-type with the highest quality ('q') 77 from a list of candidates. 78 79</pre> 80 81<hr /> 82<div class="fields"> <p><strong>Version:</strong> 83 0.1.3 84 </p> 85 <p><strong>Author:</strong> 86 Joe Gregorio 87 </p> 88 <p><strong>License:</strong> 89 MIT License 90 </p> 91</div><!-- ==================== FUNCTIONS ==================== --> 92<a name="section-Functions"></a> 93<table class="summary" border="1" cellpadding="3" 94 cellspacing="0" width="100%" bgcolor="white"> 95<tr bgcolor="#70b0f0" class="table-header"> 96 <td colspan="2" class="table-header"> 97 <table border="0" cellpadding="0" cellspacing="0" width="100%"> 98 <tr valign="top"> 99 <td align="left"><span class="table-header">Functions</span></td> 100 <td align="right" valign="top" 101 ><span class="options">[<a href="#section-Functions" 102 class="privatelink" onclick="toggle_private();" 103 >hide private</a>]</span></td> 104 </tr> 105 </table> 106 </td> 107</tr> 108<tr> 109 <td width="15%" align="right" valign="top" class="summary"> 110 <span class="summary-type"> </span> 111 </td><td class="summary"> 112 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 113 <tr> 114 <td><span class="summary-sig"><a href="googleapiclient.mimeparse-module.html#parse_mime_type" class="summary-sig-name">parse_mime_type</a>(<span class="summary-sig-arg">mime_type</span>)</span><br /> 115 Parses a mime-type into its component parts.</td> 116 <td align="right" valign="top"> 117 <span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#parse_mime_type">source code</a></span> 118 119 </td> 120 </tr> 121 </table> 122 123 </td> 124 </tr> 125<tr> 126 <td width="15%" align="right" valign="top" class="summary"> 127 <span class="summary-type"> </span> 128 </td><td class="summary"> 129 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 130 <tr> 131 <td><span class="summary-sig"><a href="googleapiclient.mimeparse-module.html#parse_media_range" class="summary-sig-name">parse_media_range</a>(<span class="summary-sig-arg">range</span>)</span><br /> 132 Parse a media-range into its component parts.</td> 133 <td align="right" valign="top"> 134 <span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#parse_media_range">source code</a></span> 135 136 </td> 137 </tr> 138 </table> 139 140 </td> 141 </tr> 142<tr> 143 <td width="15%" align="right" valign="top" class="summary"> 144 <span class="summary-type"> </span> 145 </td><td class="summary"> 146 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 147 <tr> 148 <td><span class="summary-sig"><a href="googleapiclient.mimeparse-module.html#fitness_and_quality_parsed" class="summary-sig-name">fitness_and_quality_parsed</a>(<span class="summary-sig-arg">mime_type</span>, 149 <span class="summary-sig-arg">parsed_ranges</span>)</span><br /> 150 Find the best match for a mime-type amongst parsed media-ranges.</td> 151 <td align="right" valign="top"> 152 <span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#fitness_and_quality_parsed">source code</a></span> 153 154 </td> 155 </tr> 156 </table> 157 158 </td> 159 </tr> 160<tr> 161 <td width="15%" align="right" valign="top" class="summary"> 162 <span class="summary-type"> </span> 163 </td><td class="summary"> 164 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 165 <tr> 166 <td><span class="summary-sig"><a href="googleapiclient.mimeparse-module.html#quality_parsed" class="summary-sig-name">quality_parsed</a>(<span class="summary-sig-arg">mime_type</span>, 167 <span class="summary-sig-arg">parsed_ranges</span>)</span><br /> 168 Find the best match for a mime-type amongst parsed media-ranges.</td> 169 <td align="right" valign="top"> 170 <span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#quality_parsed">source code</a></span> 171 172 </td> 173 </tr> 174 </table> 175 176 </td> 177 </tr> 178<tr> 179 <td width="15%" align="right" valign="top" class="summary"> 180 <span class="summary-type"> </span> 181 </td><td class="summary"> 182 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 183 <tr> 184 <td><span class="summary-sig"><a href="googleapiclient.mimeparse-module.html#quality" class="summary-sig-name">quality</a>(<span class="summary-sig-arg">mime_type</span>, 185 <span class="summary-sig-arg">ranges</span>)</span><br /> 186 Return the quality ('q') of a mime-type against a list of 187 media-ranges.</td> 188 <td align="right" valign="top"> 189 <span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#quality">source code</a></span> 190 191 </td> 192 </tr> 193 </table> 194 195 </td> 196 </tr> 197<tr> 198 <td width="15%" align="right" valign="top" class="summary"> 199 <span class="summary-type"> </span> 200 </td><td class="summary"> 201 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 202 <tr> 203 <td><span class="summary-sig"><a href="googleapiclient.mimeparse-module.html#best_match" class="summary-sig-name">best_match</a>(<span class="summary-sig-arg">supported</span>, 204 <span class="summary-sig-arg">header</span>)</span><br /> 205 Return mime-type with the highest quality ('q') from list of 206 candidates.</td> 207 <td align="right" valign="top"> 208 <span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#best_match">source code</a></span> 209 210 </td> 211 </tr> 212 </table> 213 214 </td> 215 </tr> 216<tr class="private"> 217 <td width="15%" align="right" valign="top" class="summary"> 218 <span class="summary-type"> </span> 219 </td><td class="summary"> 220 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 221 <tr> 222 <td><span class="summary-sig"><a name="_filter_blank"></a><span class="summary-sig-name">_filter_blank</span>(<span class="summary-sig-arg">i</span>)</span></td> 223 <td align="right" valign="top"> 224 <span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#_filter_blank">source code</a></span> 225 226 </td> 227 </tr> 228 </table> 229 230 </td> 231 </tr> 232</table> 233<!-- ==================== VARIABLES ==================== --> 234<a name="section-Variables"></a> 235<table class="summary" border="1" cellpadding="3" 236 cellspacing="0" width="100%" bgcolor="white"> 237<tr bgcolor="#70b0f0" class="table-header"> 238 <td colspan="2" class="table-header"> 239 <table border="0" cellpadding="0" cellspacing="0" width="100%"> 240 <tr valign="top"> 241 <td align="left"><span class="table-header">Variables</span></td> 242 <td align="right" valign="top" 243 ><span class="options">[<a href="#section-Variables" 244 class="privatelink" onclick="toggle_private();" 245 >hide private</a>]</span></td> 246 </tr> 247 </table> 248 </td> 249</tr> 250<tr> 251 <td width="15%" align="right" valign="top" class="summary"> 252 <span class="summary-type"> </span> 253 </td><td class="summary"> 254 <a name="__email__"></a><span class="summary-name">__email__</span> = <code title="'[email protected]'"><code class="variable-quote">'</code><code class="variable-string">[email protected]</code><code class="variable-quote">'</code></code> 255 </td> 256 </tr> 257<tr> 258 <td width="15%" align="right" valign="top" class="summary"> 259 <span class="summary-type"> </span> 260 </td><td class="summary"> 261 <a name="__credits__"></a><span class="summary-name">__credits__</span> = <code title="''"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></code> 262 </td> 263 </tr> 264<tr> 265 <td width="15%" align="right" valign="top" class="summary"> 266 <span class="summary-type"> </span> 267 </td><td class="summary"> 268 <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code> 269 </td> 270 </tr> 271</table> 272<!-- ==================== FUNCTION DETAILS ==================== --> 273<a name="section-FunctionDetails"></a> 274<table class="details" border="1" cellpadding="3" 275 cellspacing="0" width="100%" bgcolor="white"> 276<tr bgcolor="#70b0f0" class="table-header"> 277 <td colspan="2" class="table-header"> 278 <table border="0" cellpadding="0" cellspacing="0" width="100%"> 279 <tr valign="top"> 280 <td align="left"><span class="table-header">Function Details</span></td> 281 <td align="right" valign="top" 282 ><span class="options">[<a href="#section-FunctionDetails" 283 class="privatelink" onclick="toggle_private();" 284 >hide private</a>]</span></td> 285 </tr> 286 </table> 287 </td> 288</tr> 289</table> 290<a name="parse_mime_type"></a> 291<div> 292<table class="details" border="1" cellpadding="3" 293 cellspacing="0" width="100%" bgcolor="white"> 294<tr><td> 295 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 296 <tr valign="top"><td> 297 <h3 class="epydoc"><span class="sig"><span class="sig-name">parse_mime_type</span>(<span class="sig-arg">mime_type</span>)</span> 298 </h3> 299 </td><td align="right" valign="top" 300 ><span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#parse_mime_type">source code</a></span> 301 </td> 302 </tr></table> 303 304 <pre class="literalblock"> 305Parses a mime-type into its component parts. 306 307Carves up a mime-type and returns a tuple of the (type, subtype, params) 308where 'params' is a dictionary of all the parameters for the media range. 309For example, the media range 'application/xhtml;q=0.5' would get parsed 310into: 311 312 ('application', 'xhtml', {'q', '0.5'}) 313 314 315</pre> 316 <dl class="fields"> 317 </dl> 318</td></tr></table> 319</div> 320<a name="parse_media_range"></a> 321<div> 322<table class="details" border="1" cellpadding="3" 323 cellspacing="0" width="100%" bgcolor="white"> 324<tr><td> 325 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 326 <tr valign="top"><td> 327 <h3 class="epydoc"><span class="sig"><span class="sig-name">parse_media_range</span>(<span class="sig-arg">range</span>)</span> 328 </h3> 329 </td><td align="right" valign="top" 330 ><span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#parse_media_range">source code</a></span> 331 </td> 332 </tr></table> 333 334 <pre class="literalblock"> 335Parse a media-range into its component parts. 336 337Carves up a media range and returns a tuple of the (type, subtype, 338params) where 'params' is a dictionary of all the parameters for the media 339range. For example, the media range 'application/*;q=0.5' would get parsed 340into: 341 342 ('application', '*', {'q', '0.5'}) 343 344In addition this function also guarantees that there is a value for 'q' 345in the params dictionary, filling it in with a proper default if 346necessary. 347 348</pre> 349 <dl class="fields"> 350 </dl> 351</td></tr></table> 352</div> 353<a name="fitness_and_quality_parsed"></a> 354<div> 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">fitness_and_quality_parsed</span>(<span class="sig-arg">mime_type</span>, 361 <span class="sig-arg">parsed_ranges</span>)</span> 362 </h3> 363 </td><td align="right" valign="top" 364 ><span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#fitness_and_quality_parsed">source code</a></span> 365 </td> 366 </tr></table> 367 368 <p>Find the best match for a mime-type amongst parsed media-ranges.</p> 369 <p>Find the best match for a given mime-type against a list of 370 media_ranges that have already been parsed by parse_media_range(). 371 Returns a tuple of the fitness value and the value of the 'q' quality 372 parameter of the best match, or (-1, 0) if no match was found. Just as 373 for quality_parsed(), 'parsed_ranges' must be a list of parsed media 374 ranges.</p> 375 <dl class="fields"> 376 </dl> 377</td></tr></table> 378</div> 379<a name="quality_parsed"></a> 380<div> 381<table class="details" border="1" cellpadding="3" 382 cellspacing="0" width="100%" bgcolor="white"> 383<tr><td> 384 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 385 <tr valign="top"><td> 386 <h3 class="epydoc"><span class="sig"><span class="sig-name">quality_parsed</span>(<span class="sig-arg">mime_type</span>, 387 <span class="sig-arg">parsed_ranges</span>)</span> 388 </h3> 389 </td><td align="right" valign="top" 390 ><span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#quality_parsed">source code</a></span> 391 </td> 392 </tr></table> 393 394 <p>Find the best match for a mime-type amongst parsed media-ranges.</p> 395 <p>Find the best match for a given mime-type against a list of 396 media_ranges that have already been parsed by parse_media_range(). 397 Returns the 'q' quality parameter of the best match, 0 if no match was 398 found. This function bahaves the same as quality() except that 399 'parsed_ranges' must be a list of parsed media ranges.</p> 400 <dl class="fields"> 401 </dl> 402</td></tr></table> 403</div> 404<a name="quality"></a> 405<div> 406<table class="details" border="1" cellpadding="3" 407 cellspacing="0" width="100%" bgcolor="white"> 408<tr><td> 409 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 410 <tr valign="top"><td> 411 <h3 class="epydoc"><span class="sig"><span class="sig-name">quality</span>(<span class="sig-arg">mime_type</span>, 412 <span class="sig-arg">ranges</span>)</span> 413 </h3> 414 </td><td align="right" valign="top" 415 ><span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#quality">source code</a></span> 416 </td> 417 </tr></table> 418 419 <p>Return the quality ('q') of a mime-type against a list of 420 media-ranges.</p> 421 <p>Returns the quality 'q' of a mime-type when compared against the 422 media-ranges in ranges. For example:</p> 423<pre class="py-doctest"> 424<span class="py-prompt">>>> </span>quality(<span class="py-string">'text/html'</span>,'text/*;q=0.3, text/html;q=0.7, 425<span class="py-output"> text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5')</span> 426<span class="py-output">0.7</span></pre> 427 <dl class="fields"> 428 </dl> 429</td></tr></table> 430</div> 431<a name="best_match"></a> 432<div> 433<table class="details" border="1" cellpadding="3" 434 cellspacing="0" width="100%" bgcolor="white"> 435<tr><td> 436 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 437 <tr valign="top"><td> 438 <h3 class="epydoc"><span class="sig"><span class="sig-name">best_match</span>(<span class="sig-arg">supported</span>, 439 <span class="sig-arg">header</span>)</span> 440 </h3> 441 </td><td align="right" valign="top" 442 ><span class="codelink"><a href="googleapiclient.mimeparse-pysrc.html#best_match">source code</a></span> 443 </td> 444 </tr></table> 445 446 <p>Return mime-type with the highest quality ('q') from list of 447 candidates.</p> 448 <p>Takes a list of supported mime-types and finds the best match for all 449 the media-ranges listed in header. The value of header must be a string 450 that conforms to the format of the HTTP Accept: header. The value of 451 'supported' is a list of mime-types. The list of supported mime-types 452 should be sorted in order of increasing desirability, in case of a 453 situation where there is a tie.</p> 454<pre class="py-doctest"> 455<span class="py-prompt">>>> </span>best_match([<span class="py-string">'application/xbel+xml'</span>, <span class="py-string">'text/xml'</span>], 456<span class="py-output"> 'text/*;q=0.5,*/*; q=0.1')</span> 457<span class="py-output">'text/xml'</span></pre> 458 <dl class="fields"> 459 </dl> 460</td></tr></table> 461</div> 462<br /> 463<!-- ==================== NAVIGATION BAR ==================== --> 464<table class="navbar" border="0" width="100%" cellpadding="0" 465 bgcolor="#a0c0ff" cellspacing="0"> 466 <tr valign="middle"> 467 <!-- Home link --> 468 <th> <a 469 href="googleapiclient-module.html">Home</a> </th> 470 471 <!-- Tree link --> 472 <th> <a 473 href="module-tree.html">Trees</a> </th> 474 475 <!-- Index link --> 476 <th> <a 477 href="identifier-index.html">Indices</a> </th> 478 479 <!-- Help link --> 480 <th> <a 481 href="help.html">Help</a> </th> 482 483 <th class="navbar" width="100%"></th> 484 </tr> 485</table> 486<table border="0" cellpadding="0" cellspacing="0" width="100%%"> 487 <tr> 488 <td align="left" class="footer"> 489 Generated by Epydoc 3.0.1 on Fri Oct 2 20:46:22 2020 490 </td> 491 <td align="right" class="footer"> 492 <a target="mainFrame" href="http://epydoc.sourceforge.net" 493 >http://epydoc.sourceforge.net</a> 494 </td> 495 </tr> 496</table> 497 498<script type="text/javascript"> 499 <!-- 500 // Private objects are initially displayed (because if 501 // javascript is turned off then we want them to be 502 // visible); but by default, we want to hide them. So hide 503 // them unless we have a cookie that says to show them. 504 checkCookie(); 505 // --> 506</script> 507</body> 508</html> 509