diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2014-12-14 20:30:52 +0000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2015-03-06 04:41:48 +0100 |
commit | 889d0adab1f303fccabd225e0162ca488ab26164 (patch) | |
tree | ba82a135598a8eae7efcae2ee05897ddda0d0818 | |
parent | f1d744364619f8d4a5b3609b97b53dfe6b18abb8 (diff) | |
download | samba-889d0adab1f303fccabd225e0162ca488ab26164.tar.gz samba-889d0adab1f303fccabd225e0162ca488ab26164.tar.xz samba-889d0adab1f303fccabd225e0162ca488ab26164.zip |
Remove bundled but unused mimeparse.
Change-Id: I245607c0d27dbeae638f2f50c3b4d560eb9b70f8
Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r-- | lib/mimeparse/__init__.py | 0 | ||||
-rw-r--r-- | lib/mimeparse/mimeparse.py | 167 | ||||
-rw-r--r-- | lib/mimeparse/mimeparse_test.py | 68 | ||||
-rw-r--r-- | lib/mimeparse/setup.py | 50 | ||||
-rwxr-xr-x | lib/update-external.sh | 5 | ||||
-rw-r--r-- | lib/wscript_build | 1 |
6 files changed, 0 insertions, 291 deletions
diff --git a/lib/mimeparse/__init__.py b/lib/mimeparse/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 --- a/lib/mimeparse/__init__.py +++ /dev/null diff --git a/lib/mimeparse/mimeparse.py b/lib/mimeparse/mimeparse.py deleted file mode 100644 index 7fb4e43477..0000000000 --- a/lib/mimeparse/mimeparse.py +++ /dev/null @@ -1,167 +0,0 @@ -"""MIME-Type Parser - -This module provides basic functions for handling mime-types. It can handle -matching mime-types against a list of media-ranges. See section 14.1 of the -HTTP specification [RFC 2616] for a complete explanation. - - http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1 - -Contents: - - parse_mime_type(): Parses a mime-type into its component parts. - - parse_media_range(): Media-ranges are mime-types with wild-cards and a 'q' - quality parameter. - - quality(): Determines the quality ('q') of a mime-type when - compared against a list of media-ranges. - - quality_parsed(): Just like quality() except the second parameter must be - pre-parsed. - - best_match(): Choose the mime-type with the highest quality ('q') - from a list of candidates. -""" - -__version__ = '0.1.3' -__author__ = 'Joe Gregorio' -__email__ = 'joe@bitworking.org' -__license__ = 'MIT License' -__credits__ = '' - - -def parse_mime_type(mime_type): - """Parses a mime-type into its component parts. - - Carves up a mime-type and returns a tuple of the (type, subtype, params) - where 'params' is a dictionary of all the parameters for the media range. - For example, the media range 'application/xhtml;q=0.5' would get parsed - into: - - ('application', 'xhtml', {'q', '0.5'}) - """ - parts = mime_type.split(';') - params = dict([tuple([s.strip() for s in param.split('=', 1)])\ - for param in parts[1:] - ]) - full_type = parts[0].strip() - # Java URLConnection class sends an Accept header that includes a - # single '*'. Turn it into a legal wildcard. - if full_type == '*': - full_type = '*/*' - (type, subtype) = full_type.split('/') - - return (type.strip(), subtype.strip(), params) - - -def parse_media_range(range): - """Parse a media-range into its component parts. - - Carves up a media range and returns a tuple of the (type, subtype, - params) where 'params' is a dictionary of all the parameters for the media - range. For example, the media range 'application/*;q=0.5' would get parsed - into: - - ('application', '*', {'q', '0.5'}) - - In addition this function also guarantees that there is a value for 'q' - in the params dictionary, filling it in with a proper default if - necessary. - """ - (type, subtype, params) = parse_mime_type(range) - if 'q' not in params or not params['q'] or \ - not float(params['q']) or float(params['q']) > 1\ - or float(params['q']) < 0: - params['q'] = '1' - - return (type, subtype, params) - - -def fitness_and_quality_parsed(mime_type, parsed_ranges): - """Find the best match for a mime-type amongst parsed media-ranges. - - Find the best match for a given mime-type against a list of media_ranges - that have already been parsed by parse_media_range(). Returns a tuple of - the fitness value and the value of the 'q' quality parameter of the best - match, or (-1, 0) if no match was found. Just as for quality_parsed(), - 'parsed_ranges' must be a list of parsed media ranges. - """ - best_fitness = -1 - best_fit_q = 0 - (target_type, target_subtype, target_params) =\ - parse_media_range(mime_type) - for (type, subtype, params) in parsed_ranges: - type_match = (type == target_type or\ - type == '*' or\ - target_type == '*') - subtype_match = (subtype == target_subtype or\ - subtype == '*' or\ - target_subtype == '*') - if type_match and subtype_match: - param_matches = sum([1 for (key, value) in \ - target_params.items() if key != 'q' and \ - key in params and value == params[key]], 0) - fitness = (type == target_type) and 100 or 0 - fitness += (subtype == target_subtype) and 10 or 0 - fitness += param_matches - if fitness > best_fitness: - best_fitness = fitness - best_fit_q = params['q'] - - return best_fitness, float(best_fit_q) - - -def quality_parsed(mime_type, parsed_ranges): - """Find the best match for a mime-type amongst parsed media-ranges. - - Find the best match for a given mime-type against a list of media_ranges - that have already been parsed by parse_media_range(). Returns the 'q' - quality parameter of the best match, 0 if no match was found. This function - bahaves the same as quality() except that 'parsed_ranges' must be a list of - parsed media ranges. """ - - return fitness_and_quality_parsed(mime_type, parsed_ranges)[1] - - -def quality(mime_type, ranges): - """Return the quality ('q') of a mime-type against a list of media-ranges. - - Returns the quality 'q' of a mime-type when compared against the - media-ranges in ranges. For example: - - >>> quality('text/html','text/*;q=0.3, text/html;q=0.7, - text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5') - 0.7 - - """ - parsed_ranges = [parse_media_range(r) for r in ranges.split(',')] - - return quality_parsed(mime_type, parsed_ranges) - - -def best_match(supported, header): - """Return mime-type with the highest quality ('q') from list of candidates. - - Takes a list of supported mime-types and finds the best match for all the - media-ranges listed in header. The value of header must be a string that - conforms to the format of the HTTP Accept: header. The value of 'supported' - is a list of mime-types. The list of supported mime-types should be sorted - in order of increasing desirability, in case of a situation where there is - a tie. - - >>> best_match(['application/xbel+xml', 'text/xml'], - 'text/*;q=0.5,*/*; q=0.1') - 'text/xml' - """ - split_header = _filter_blank(header.split(',')) - parsed_header = [parse_media_range(r) for r in split_header] - weighted_matches = [] - pos = 0 - for mime_type in supported: - weighted_matches.append((fitness_and_quality_parsed(mime_type, - parsed_header), pos, mime_type)) - pos += 1 - weighted_matches.sort() - - return weighted_matches[-1][0][1] and weighted_matches[-1][2] or '' - - -def _filter_blank(i): - for s in i: - if s.strip(): - yield s diff --git a/lib/mimeparse/mimeparse_test.py b/lib/mimeparse/mimeparse_test.py deleted file mode 100644 index 969cbf35e8..0000000000 --- a/lib/mimeparse/mimeparse_test.py +++ /dev/null @@ -1,68 +0,0 @@ -""" -Python tests for Mime-Type Parser. - -This module loads a json file and converts the tests specified therein to a set -of PyUnitTestCases. Then it uses PyUnit to run them and report their status. -""" -__version__ = "0.1" -__author__ = 'Ade Oshineye' -__email__ = "ade@oshineye.com" -__credits__ = "" - -import mimeparse -import unittest -from functools import partial -# Conditional import to support Python 2.5 -try: - import json -except ImportError: - import simplejson as json - -def test_parse_media_range(args, expected): - expected = tuple(expected) - result = mimeparse.parse_media_range(args) - message = "Expected: '%s' but got %s" % (expected, result) - assert expected == result, message - -def test_quality(args, expected): - result = mimeparse.quality(args[0], args[1]) - message = "Expected: '%s' but got %s" % (expected, result) - assert expected == result, message - -def test_best_match(args, expected): - result = mimeparse.best_match(args[0], args[1]) - message = "Expected: '%s' but got %s" % (expected, result) - assert expected == result, message - -def test_parse_mime_type(args, expected): - expected = tuple(expected) - result = mimeparse.parse_mime_type(args) - message = "Expected: '%s' but got %s" % (expected, result) - assert expected == result, message - -def add_tests(suite, json_object, func_name, test_func): - test_data = json_object[func_name] - for test_datum in test_data: - args, expected = test_datum[0], test_datum[1] - desc = "%s(%s) with expected result: %s" % (func_name, str(args), str(expected)) - if len(test_datum) == 3: - desc = test_datum[2] + " : " + desc - func = partial(test_func, *(args, expected)) - func.__name__ = test_func.__name__ - testcase = unittest.FunctionTestCase(func, description=desc) - suite.addTest(testcase) - -def run_tests(): - json_object = json.load(open("testdata.json")) - - suite = unittest.TestSuite() - add_tests(suite, json_object, "parse_media_range", test_parse_media_range) - add_tests(suite, json_object, "quality", test_quality) - add_tests(suite, json_object, "best_match", test_best_match) - add_tests(suite, json_object, "parse_mime_type", test_parse_mime_type) - - test_runner = unittest.TextTestRunner(verbosity=1) - test_runner.run(suite) - -if __name__ == "__main__": - run_tests() diff --git a/lib/mimeparse/setup.py b/lib/mimeparse/setup.py deleted file mode 100644 index de3e81b412..0000000000 --- a/lib/mimeparse/setup.py +++ /dev/null @@ -1,50 +0,0 @@ -# -*- coding: utf-8 -*- - -#old way -from distutils.core import setup - -#new way -#from setuptools import setup, find_packages - -setup(name='mimeparse', - version='0.1.4', - description='A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges.', - long_description=""" -This module provides basic functions for handling mime-types. It can handle -matching mime-types against a list of media-ranges. See section 14.1 of -the HTTP specification [RFC 2616] for a complete explanation. - - http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1 - -Contents: - - parse_mime_type(): Parses a mime-type into its component parts. - - parse_media_range(): Media-ranges are mime-types with wild-cards and a 'q' quality parameter. - - quality(): Determines the quality ('q') of a mime-type when compared against a list of media-ranges. - - quality_parsed(): Just like quality() except the second parameter must be pre-parsed. - - best_match(): Choose the mime-type with the highest quality ('q') from a list of candidates. - """, - classifiers=[ - # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers - 'Intended Audience :: Developers', - 'License :: OSI Approved :: MIT License', - 'Programming Language :: Python', - 'Topic :: Internet :: WWW/HTTP', - 'Topic :: Software Development :: Libraries :: Python Modules', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.5', - 'Programming Language :: Python :: 2.6', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.1', - 'Programming Language :: Python :: 3.2', - 'Programming Language :: Python :: 3.3', - ], - keywords='mime-type', - author='Joe Gregorio', - author_email='joe@bitworking.org', - maintainer='Joe Gregorio', - maintainer_email='joe@bitworking.org', - url='http://code.google.com/p/mimeparse/', - license='MIT', - py_modules=['mimeparse'] - ) diff --git a/lib/update-external.sh b/lib/update-external.sh index b6faa56743..8e69059679 100755 --- a/lib/update-external.sh +++ b/lib/update-external.sh @@ -24,11 +24,6 @@ git clone git://github.com/madler/zlib "$WORKDIR/zlib" rm -rf "$WORKDIR/zlib/.git" rsync --exclude=wscript -avz --delete "$WORKDIR/zlib/" "$THIRD_PARTY_DIR/zlib/" -echo "Updating mimeparse..." -svn co http://mimeparse.googlecode.com/svn/trunk/ "$WORKDIR/mimeparse" -rm -rf "$WORKDIR/mimeparse/.svn" -rsync -avz --delete "$WORKDIR/mimeparse/" "$LIBDIR/mimeparse/" - echo "Updating pyiso8601..." hg clone https://bitbucket.org/micktwomey/pyiso8601 "$WORKDIR/pyiso8601" rm -rf "$WORKDIR/pyiso8601/.hg" diff --git a/lib/wscript_build b/lib/wscript_build index b1a42d2e97..2432df5e2f 100644 --- a/lib/wscript_build +++ b/lib/wscript_build @@ -4,7 +4,6 @@ import os, Options # work out what python external libraries we need to install external_libs = { - "mimeparse": "mimeparse/mimeparse", } list = [] |