diff options
author | Julien Roy <julien@jroy.ca> | 2024-05-15 15:40:16 -0400 |
---|---|---|
committer | Julien Roy <julien@jroy.ca> | 2024-05-15 15:40:16 -0400 |
commit | 67fe63d3932bb4f914cfd4e82d218c847a72fc2a (patch) | |
tree | 91224b05567387979af7967b16d26f6c1a3ab222 | |
parent | 6ad0c5a9ecde00c9c801c2c7f56146e32d2a779f (diff) | |
download | MrRoy-Overlay-67fe63d3932bb4f914cfd4e82d218c847a72fc2a.tar.gz MrRoy-Overlay-67fe63d3932bb4f914cfd4e82d218c847a72fc2a.tar.bz2 MrRoy-Overlay-67fe63d3932bb4f914cfd4e82d218c847a72fc2a.zip |
dev-python/multipart: new package, add 0.2.4
Signed-off-by: Julien Roy <julien@jroy.ca>
-rw-r--r-- | dev-python/multipart/Manifest | 1 | ||||
-rw-r--r-- | dev-python/multipart/files/multipart-urlencoded-test.patch | 35 | ||||
-rw-r--r-- | dev-python/multipart/metadata.xml | 20 | ||||
-rw-r--r-- | dev-python/multipart/multipart-0.2.4.ebuild | 28 |
4 files changed, 84 insertions, 0 deletions
diff --git a/dev-python/multipart/Manifest b/dev-python/multipart/Manifest new file mode 100644 index 0000000..5ed6fce --- /dev/null +++ b/dev-python/multipart/Manifest @@ -0,0 +1 @@ +DIST multipart-0.2.4.tar.gz 22300 BLAKE2B 02e14136559b4af50938b4ab025f84055e8aa51d97e0f3415a6b6b9986ba72dd7226080592a8d603a94e2f4598ef7d0a4772e9bbef01121e10fce5cf483cd5e7 SHA512 8df8bad1f68d41e841e407f276745e7cb7352e9fb8c5d43569a7e5c4d8c0ae429e440933017244d01182271a12a6f43a4d15e353b1082df9563cbf9d6eb2c7f6 diff --git a/dev-python/multipart/files/multipart-urlencoded-test.patch b/dev-python/multipart/files/multipart-urlencoded-test.patch new file mode 100644 index 0000000..e47f692 --- /dev/null +++ b/dev-python/multipart/files/multipart-urlencoded-test.patch @@ -0,0 +1,35 @@ +From 4d4ac6b79c453918ebf40c690e8d57d982ee840b Mon Sep 17 00:00:00 2001 +From: Colin Watson <cjwatson@debian.org> +Date: Fri, 9 Apr 2021 16:54:49 +0100 +Subject: [PATCH] Don't test semicolon separators in urlencoded data + +Python no longer accepts ";" as a separator for `urllib.parse.parse_qs` +by default (https://bugs.python.org/issue42967), causing the multipart +test suite to fail with recent Python versions (3.6.13, 3.7.10, 3.8.8, +3.9.2, 3.10.0a6). + +While we could detect the availability of the `separator` argument and +pass it, since `application/x-www-form-urlencoded` data in `POST` and +`PUT` requests is probably not an issue for web cache poisoning, the +current HTML spec seems clear that only "&" should be considered, so +follow along with Python's API change. +--- + test/test_multipart.py | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/test/test_multipart.py b/test/test_multipart.py +index 38c69d1..6fe864f 100644 +--- a/test/test_multipart.py ++++ b/test/test_multipart.py +@@ -233,10 +233,9 @@ def test_empty(self): + def test_urlencoded(self): + for ctype in ('application/x-www-form-urlencoded', 'application/x-url-encoded'): + self.env['CONTENT_TYPE'] = ctype +- forms, files = self.parse('a=b&c=d;e=f') ++ forms, files = self.parse('a=b&c=d') + self.assertEqual(forms['a'], 'b') + self.assertEqual(forms['c'], 'd') +- self.assertEqual(forms['e'], 'f') + + def test_urlencoded_latin1(self): + for ctype in ('application/x-www-form-urlencoded', 'application/x-url-encoded'): diff --git a/dev-python/multipart/metadata.xml b/dev-python/multipart/metadata.xml new file mode 100644 index 0000000..f59dd1e --- /dev/null +++ b/dev-python/multipart/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <name>Julien Roy</name> + <email>julien@jroy.ca</email> + </maintainer> + <longdescription> + This module provides a parser for the multipart/form-data format. It can read from a file, a socket or a WSGI environment. The parser can be used to replace cgi.FieldStorage to work around its limitations. + </longdescription> + <upstream> + <maintainer> + <name>Marcel Hellkamp</name> + <email>marc@gsites.de</email> + </maintainer> + <bugs-to>https://github.com/defnull/multipart/issues</bugs-to> + <remote-id type="github">defnull/multipart</remote-id> + <remote-id type="pypi">multipart</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-python/multipart/multipart-0.2.4.ebuild b/dev-python/multipart/multipart-0.2.4.ebuild new file mode 100644 index 0000000..0d12882 --- /dev/null +++ b/dev-python/multipart/multipart-0.2.4.ebuild @@ -0,0 +1,28 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..11} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Multipart parser for Python 3" +HOMEPAGE="https://github.com/defnull/multipart" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +distutils_enable_tests unittest + +PATCHES=( + # Merged in master but no release since, so backporting it + "${FILESDIR}/multipart-urlencoded-test.patch" +) + +src_test() { + cd "${S}/test" || die + distutils-r1_src_test +} |