commit:     f55f598ee724942a5cde5caa019f591589373fe9
Author:     Julien Roy <julien <AT> jroy <DOT> ca>
AuthorDate: Thu Apr 13 00:46:32 2023 +0000
Commit:     Julien Roy <julien <AT> jroy <DOT> ca>
CommitDate: Thu Apr 13 00:46:32 2023 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=f55f598e

dev-python/multipart: new package, add 0.2.4

Signed-off-by: Julien Roy <julien <AT> jroy.ca>

 dev-python/multipart/Manifest                      |  1 +
 .../files/multipart-urlencoded-test.patch          | 35 ++++++++++++++++++++++
 dev-python/multipart/metadata.xml                  | 20 +++++++++++++
 dev-python/multipart/multipart-0.2.4.ebuild        | 28 +++++++++++++++++
 4 files changed, 84 insertions(+)

diff --git a/dev-python/multipart/Manifest b/dev-python/multipart/Manifest
new file mode 100644
index 000000000..5ed6fcea6
--- /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 000000000..e47f692c7
--- /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 <[email protected]>
+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 000000000..f59dd1ead
--- /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>[email protected]</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>[email protected]</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 000000000..450d3180d
--- /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_{9..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
+}

Reply via email to