%define scl rh-python36 %{?scl:%scl_package %{name}} %{!?scl:%global pkg_name %{name}} %define name python-mimeparse %define version 1.6.0 %define unmangled_version 1.6.0 %define unmangled_version 1.6.0 %define release 1 Summary: A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges. %{?scl:Requires: %{scl}-runtime} %{?scl:BuildRequires: %{scl}-runtime} Name: %{?scl_prefix}python-mimeparse Version: %{version} Release: %{release} Source0: python-mimeparse-%{unmangled_version}.tar.gz License: UNKNOWN Group: Development/Libraries BuildRoot: %{_tmppath}/python-mimeparse-%{version}-%{release}-buildroot Prefix: %{_prefix} BuildArch: noarch Vendor: DB Tsai Packager: Martin Juhl Url: https://github.com/dbtsai/python-mimeparse %description Python-MimeParse ================ .. image:: https://travis-ci.org/dbtsai/python-mimeparse.svg?branch=master :target: https://travis-ci.org/dbtsai/python-mimeparse This module provides basic functions for handling mime-types. It can handle matching mime-types against a list of media-ranges. See section 5.3.2 of the HTTP 1.1 Semantics and Content specification [RFC 7231] for a complete explanation: https://tools.ietf.org/html/rfc7231#section-5.3.2 Installation ------------ Use **pip**: .. code-block:: sh $ pip install python-mimeparse It supports Python 2.7 - 3.5 and PyPy. Functions --------- **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. Testing ------- Run the tests by typing: ``python mimeparse_test.py``. The tests require Python 2.6. To make sure that the package works in all the supported environments, you can run **tox** tests: .. code-block:: sh $ pip install tox $ tox The format of the JSON test data file is as follows: A top-level JSON object which has a key for each of the functions to be tested. The value corresponding to that key is a list of tests. Each test contains: the argument or arguments to the function being tested, the expected results and an optional description. %prep %{?scl:scl enable %{scl} - << \EOF} set -ex %setup -n python-mimeparse-%{unmangled_version} -n python-mimeparse-%{unmangled_version} %{?scl:EOF} %build %{?scl:scl enable %{scl} - << \EOF} set -ex python3 setup.py build %{?scl:EOF} %install %{?scl:scl enable %{scl} - << \EOF} set -ex python3 setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES %{?scl:EOF} %clean %{?scl:scl enable %{scl} - << \EOF} set -ex rm -rf $RPM_BUILD_ROOT %{?scl:EOF} %files -f INSTALLED_FILES %defattr(-,root,root)