Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/iniparse/files/, dev-python/iniparse/
Date: Sun, 17 Oct 2021 08:58:17
Message-Id: 1634461082.c88513dce8983a53d2a4df81207f173e29e0b0e2.mgorny@gentoo
1 commit: c88513dce8983a53d2a4df81207f173e29e0b0e2
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Sun Oct 17 08:56:00 2021 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Sun Oct 17 08:58:02 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c88513dc
7
8 dev-python/iniparse: Remove old
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 dev-python/iniparse/Manifest | 1 -
13 .../iniparse/files/iniparse-0.4-python3.patch | 523 ---------------------
14 dev-python/iniparse/files/iniparse-0.4-tests.patch | 27 --
15 dev-python/iniparse/iniparse-0.4-r2.ebuild | 29 --
16 4 files changed, 580 deletions(-)
17
18 diff --git a/dev-python/iniparse/Manifest b/dev-python/iniparse/Manifest
19 index cc0c0529beb..5c42f6cb341 100644
20 --- a/dev-python/iniparse/Manifest
21 +++ b/dev-python/iniparse/Manifest
22 @@ -1,2 +1 @@
23 -DIST iniparse-0.4.tar.gz 31278 BLAKE2B 1d92322cedd115a68f4133f477ca772e4d24b48991c07fecf3d22e86ac39f0626ffa7cebecfa15a200dc9fcbfac205c1e17aefa35e335a1f86f3919a3f9c1d58 SHA512 d59eae7c1ce474c89eddb0b0cbff5973444571728aa0c6ce5b3632984353415f7eec4de63cf007c276df0d1bb914b2ea5dd0acc00f3a261285c8e2e9883fbe9a
24 DIST iniparse-0.5.tar.gz 32233 BLAKE2B 3da99f9d828318f78ddb8789afe63a7fdec017eaf41df5f420b0f358a9724eb787f312c9964238d9e42ebecce143d37f72858c7935cafbcf0221229b89033026 SHA512 b3f10d1b36497c3c5c71cb0a1ac73d74d8944f4ad3b7acc4a4b0246c2f1a20c184d9af20bbb3cb8ec4f57fddfb5e103b92688847debb4200ef0583353d7f9556
25
26 diff --git a/dev-python/iniparse/files/iniparse-0.4-python3.patch b/dev-python/iniparse/files/iniparse-0.4-python3.patch
27 deleted file mode 100644
28 index a5ebb73e711..00000000000
29 --- a/dev-python/iniparse/files/iniparse-0.4-python3.patch
30 +++ /dev/null
31 @@ -1,523 +0,0 @@
32 -Index: iniparse/__init__.py
33 -===================================================================
34 ---- a/iniparse/__init__.py (revision 146)
35 -+++ b/iniparse/__init__.py (working copy)
36 -@@ -3,17 +3,17 @@
37 - # Copyright (c) 2007 Tim Lauridsen <tla@××××××.dk>
38 - # All Rights Reserved. See LICENSE-PSF & LICENSE for details.
39 -
40 --from ini import INIConfig, change_comment_syntax
41 --from config import BasicConfig, ConfigNamespace
42 --from compat import RawConfigParser, ConfigParser, SafeConfigParser
43 --from utils import tidy
44 -+from .ini import INIConfig, change_comment_syntax
45 -+from .config import BasicConfig, ConfigNamespace
46 -+from .compat import RawConfigParser, ConfigParser, SafeConfigParser
47 -+from .utils import tidy
48 -
49 --from ConfigParser import DuplicateSectionError, \
50 -- NoSectionError, NoOptionError, \
51 -- InterpolationMissingOptionError, \
52 -- InterpolationDepthError, \
53 -- InterpolationSyntaxError, \
54 -- DEFAULTSECT, MAX_INTERPOLATION_DEPTH
55 -+from .configparser import DuplicateSectionError, \
56 -+ NoSectionError, NoOptionError, \
57 -+ InterpolationMissingOptionError, \
58 -+ InterpolationDepthError, \
59 -+ InterpolationSyntaxError, \
60 -+ DEFAULTSECT, MAX_INTERPOLATION_DEPTH
61 -
62 - __all__ = [
63 - 'BasicConfig', 'ConfigNamespace',
64 -Index: iniparse/compat.py
65 -===================================================================
66 ---- a/iniparse/compat.py (revision 146)
67 -+++ b/iniparse/compat.py (working copy)
68 -@@ -12,20 +12,22 @@
69 - """
70 -
71 - import re
72 --from ConfigParser import DuplicateSectionError, \
73 -- NoSectionError, NoOptionError, \
74 -- InterpolationMissingOptionError, \
75 -- InterpolationDepthError, \
76 -- InterpolationSyntaxError, \
77 -- DEFAULTSECT, MAX_INTERPOLATION_DEPTH
78 -+from .configparser import DuplicateSectionError, \
79 -+ NoSectionError, NoOptionError, \
80 -+ InterpolationMissingOptionError, \
81 -+ InterpolationDepthError, \
82 -+ InterpolationSyntaxError, \
83 -+ DEFAULTSECT, MAX_INTERPOLATION_DEPTH
84 -
85 - # These are imported only for compatiability.
86 - # The code below does not reference them directly.
87 --from ConfigParser import Error, InterpolationError, \
88 -- MissingSectionHeaderError, ParsingError
89 -+from .configparser import Error, InterpolationError, \
90 -+ MissingSectionHeaderError, ParsingError
91 -
92 --import ini
93 -+import six
94 -
95 -+from . import ini
96 -+
97 - class RawConfigParser(object):
98 - def __init__(self, defaults=None, dict_type=dict):
99 - if dict_type != dict:
100 -@@ -56,7 +58,7 @@
101 - # The default section is the only one that gets the case-insensitive
102 - # treatment - so it is special-cased here.
103 - if section.lower() == "default":
104 -- raise ValueError, 'Invalid section name: %s' % section
105 -+ raise ValueError('Invalid section name: %s' % section)
106 -
107 - if self.has_section(section):
108 - raise DuplicateSectionError(section)
109 -@@ -88,7 +90,7 @@
110 - filename may also be given.
111 - """
112 - files_read = []
113 -- if isinstance(filenames, basestring):
114 -+ if isinstance(filenames, six.string_types):
115 - filenames = [filenames]
116 - for filename in filenames:
117 - try:
118 -@@ -143,7 +145,7 @@
119 - def getboolean(self, section, option):
120 - v = self.get(section, option)
121 - if v.lower() not in self._boolean_states:
122 -- raise ValueError, 'Not a boolean: %s' % v
123 -+ raise ValueError('Not a boolean: %s' % v)
124 - return self._boolean_states[v.lower()]
125 -
126 - def has_option(self, section, option):
127 -@@ -234,7 +236,7 @@
128 - if "%(" in value:
129 - try:
130 - value = value % vars
131 -- except KeyError, e:
132 -+ except KeyError as e:
133 - raise InterpolationMissingOptionError(
134 - option, section, rawval, e.args[0])
135 - else:
136 -@@ -283,7 +285,7 @@
137 - _badpercent_re = re.compile(r"%[^%]|%$")
138 -
139 - def set(self, section, option, value):
140 -- if not isinstance(value, basestring):
141 -+ if not isinstance(value, six.string_types):
142 - raise TypeError("option values must be strings")
143 - # check for bad percent signs:
144 - # first, replace all "good" interpolations
145 -Index: iniparse/config.py
146 -===================================================================
147 ---- a/iniparse/config.py (revision 146)
148 -+++ b/iniparse/config.py (working copy)
149 -@@ -143,7 +143,7 @@
150 -
151 - >>> n.aaa = 42
152 - >>> del n.x
153 -- >>> print n
154 -+ >>> print(n)
155 - aaa = 42
156 - name.first = paramjit
157 - name.last = oberoi
158 -@@ -152,7 +152,7 @@
159 -
160 - >>> isinstance(n.name, ConfigNamespace)
161 - True
162 -- >>> print n.name
163 -+ >>> print(n.name)
164 - first = paramjit
165 - last = oberoi
166 - >>> sorted(list(n.name))
167 -@@ -160,7 +160,7 @@
168 -
169 - Finally, values can be read from a file as follows:
170 -
171 -- >>> from StringIO import StringIO
172 -+ >>> from six import StringIO
173 - >>> sio = StringIO('''
174 - ... # comment
175 - ... ui.height = 100
176 -@@ -171,7 +171,7 @@
177 - ... ''')
178 - >>> n = BasicConfig()
179 - >>> n._readfp(sio)
180 -- >>> print n
181 -+ >>> print(n)
182 - complexity = medium
183 - data.secret.password = goodness=gracious me
184 - have_python
185 -@@ -199,7 +199,7 @@
186 -
187 - def __str__(self, prefix=''):
188 - lines = []
189 -- keys = self._data.keys()
190 -+ keys = list(self._data.keys())
191 - keys.sort()
192 - for name in keys:
193 - value = self._data[name]
194 -@@ -258,7 +258,7 @@
195 - >>> n.ui.display_clock = True
196 - >>> n.ui.display_qlength = True
197 - >>> n.ui.width = 150
198 -- >>> print n
199 -+ >>> print(n)
200 - playlist.expand_playlist = True
201 - ui.display_clock = True
202 - ui.display_qlength = True
203 -@@ -267,7 +267,7 @@
204 - >>> from iniparse import ini
205 - >>> i = ini.INIConfig()
206 - >>> update_config(i, n)
207 -- >>> print i
208 -+ >>> print(i)
209 - [playlist]
210 - expand_playlist = True
211 - <BLANKLINE>
212 -@@ -277,7 +277,7 @@
213 - width = 150
214 -
215 - """
216 -- for name in source:
217 -+ for name in sorted(source):
218 - value = source[name]
219 - if isinstance(value, ConfigNamespace):
220 - if name in target:
221 -Index: iniparse/configparser.py
222 -===================================================================
223 ---- a/iniparse/configparser.py (revision 0)
224 -+++ b/iniparse/configparser.py (working copy)
225 -@@ -0,0 +1,7 @@
226 -+try:
227 -+ from ConfigParser import *
228 -+ # not all objects get imported with __all__
229 -+ from ConfigParser import Error, InterpolationMissingOptionError
230 -+except ImportError:
231 -+ from configparser import *
232 -+ from configparser import Error, InterpolationMissingOptionError
233 -Index: iniparse/ini.py
234 -===================================================================
235 ---- a/iniparse/ini.py (revision 146)
236 -+++ b/iniparse/ini.py (working copy)
237 -@@ -7,7 +7,7 @@
238 -
239 - Example:
240 -
241 -- >>> from StringIO import StringIO
242 -+ >>> from six import StringIO
243 - >>> sio = StringIO('''# configure foo-application
244 - ... [foo]
245 - ... bar1 = qualia
246 -@@ -16,14 +16,14 @@
247 - ... special = 1''')
248 -
249 - >>> cfg = INIConfig(sio)
250 -- >>> print cfg.foo.bar1
251 -+ >>> print(cfg.foo.bar1)
252 - qualia
253 -- >>> print cfg['foo-ext'].special
254 -+ >>> print(cfg['foo-ext'].special)
255 - 1
256 - >>> cfg.foo.newopt = 'hi!'
257 - >>> cfg.baz.enabled = 0
258 -
259 -- >>> print cfg
260 -+ >>> print(cfg)
261 - # configure foo-application
262 - [foo]
263 - bar1 = qualia
264 -@@ -42,10 +42,12 @@
265 - # Backward-compatiable with ConfigParser
266 -
267 - import re
268 --from ConfigParser import DEFAULTSECT, ParsingError, MissingSectionHeaderError
269 -+from .configparser import DEFAULTSECT, ParsingError, MissingSectionHeaderError
270 -
271 --import config
272 -+import six
273 -
274 -+from . import config
275 -+
276 - class LineType(object):
277 - line = None
278 -
279 -@@ -278,6 +280,8 @@
280 - value = property(get_value, set_value)
281 -
282 - def __str__(self):
283 -+ for c in self.contents:
284 -+ pass#print(c.__str__())
285 - s = [x.__str__() for x in self.contents]
286 - return '\n'.join(s)
287 -
288 -@@ -465,7 +469,7 @@
289 - self._sections = {}
290 - if defaults is None: defaults = {}
291 - self._defaults = INISection(LineContainer(), optionxformsource=self)
292 -- for name, value in defaults.iteritems():
293 -+ for name, value in defaults.items():
294 - self._defaults[name] = value
295 - if fp is not None:
296 - self._readfp(fp)
297 -@@ -551,7 +555,7 @@
298 -
299 - for line in readline_iterator(fp):
300 - # Check for BOM on first line
301 -- if linecount == 0 and isinstance(line, unicode):
302 -+ if linecount == 0 and isinstance(line, six.text_type):
303 - if line[0] == u'\ufeff':
304 - line = line[1:]
305 - self._bom = True
306 -Index: iniparse/utils.py
307 -===================================================================
308 ---- a/iniparse/utils.py (revision 146)
309 -+++ b/iniparse/utils.py (working copy)
310 -@@ -1,5 +1,5 @@
311 --import compat
312 --from ini import LineContainer, EmptyLine
313 -+from . import compat
314 -+from .ini import LineContainer, EmptyLine
315 -
316 - def tidy(cfg):
317 - """Clean up blank lines.
318 -Index: tests/__init__.py
319 -===================================================================
320 ---- a/tests/__init__.py (revision 146)
321 -+++ b/tests/__init__.py (working copy)
322 -@@ -1,12 +1,12 @@
323 - import unittest, doctest
324 -
325 --import test_ini
326 --import test_misc
327 --import test_fuzz
328 --import test_compat
329 --import test_unicode
330 --import test_tidy
331 --import test_multiprocessing
332 -+from . import test_ini
333 -+from . import test_misc
334 -+from . import test_fuzz
335 -+from . import test_compat
336 -+from . import test_unicode
337 -+from . import test_tidy
338 -+from . import test_multiprocessing
339 - from iniparse import config
340 - from iniparse import ini
341 -
342 -Index: tests/test_compat.py
343 -===================================================================
344 ---- a/tests/test_compat.py (revision 146)
345 -+++ b/tests/test_compat.py (working copy)
346 -@@ -1,9 +1,16 @@
347 - from iniparse import compat as ConfigParser
348 --import StringIO
349 -+from six import StringIO
350 -+try:
351 -+ import UserDict
352 -+except ImportError:
353 -+ import collections as UserDict
354 - import unittest
355 --import UserDict
356 -
357 --from test import test_support
358 -+import sys
359 -+if sys.version_info[0] < 3:
360 -+ from test import test_support
361 -+else:
362 -+ from test import support as test_support
363 -
364 - class SortedDict(UserDict.UserDict):
365 - def items(self):
366 -@@ -35,7 +42,7 @@
367 -
368 - def fromstring(self, string, defaults=None):
369 - cf = self.newconfig(defaults)
370 -- sio = StringIO.StringIO(string)
371 -+ sio = StringIO(string)
372 - cf.readfp(sio)
373 - return cf
374 -
375 -@@ -161,7 +168,7 @@
376 - "No Section!\n")
377 -
378 - def parse_error(self, exc, src):
379 -- sio = StringIO.StringIO(src)
380 -+ sio = StringIO(src)
381 - self.assertRaises(exc, self.cf.readfp, sio)
382 -
383 - def test_query_errors(self):
384 -@@ -181,7 +188,7 @@
385 - def get_error(self, exc, section, option):
386 - try:
387 - self.cf.get(section, option)
388 -- except exc, e:
389 -+ except exc as e:
390 - return e
391 - else:
392 - self.fail("expected exception type %s.%s"
393 -@@ -227,7 +234,7 @@
394 - "foo: another very\n"
395 - " long line"
396 - )
397 -- output = StringIO.StringIO()
398 -+ output = StringIO()
399 - cf.write(output)
400 - self.assertEqual(
401 - output.getvalue(),
402 -@@ -465,7 +472,7 @@
403 - "o1=4\n"
404 - "[a]\n"
405 - "k=v\n")
406 -- output = StringIO.StringIO()
407 -+ output = StringIO()
408 - self.cf.write(output)
409 - self.assertEquals(output.getvalue(),
410 - "[a]\n"
411 -Index: tests/test_fuzz.py
412 -===================================================================
413 ---- a/tests/test_fuzz.py (revision 146)
414 -+++ b/tests/test_fuzz.py (working copy)
415 -@@ -1,9 +1,10 @@
416 - import re
417 - import os
418 - import random
419 -+import sys
420 - import unittest
421 --import ConfigParser
422 --from StringIO import StringIO
423 -+from six import StringIO
424 -+from six.moves import configparser
425 - from iniparse import compat, ini, tidy
426 -
427 - # TODO:
428 -@@ -96,24 +97,25 @@
429 - s = '\n'.join(good_lines)
430 - cc = compat.RawConfigParser()
431 - cc.readfp(StringIO(s))
432 -- cc_py = ConfigParser.RawConfigParser()
433 -+ cc_py = configparser.RawConfigParser()
434 - cc_py.readfp(StringIO(s))
435 - # compare the two configparsers
436 - self.assertEqualConfig(cc_py, cc)
437 - # check that tidy does not change semantics
438 - tidy(cc)
439 -- cc_tidy = ConfigParser.RawConfigParser()
440 -+ cc_tidy = configparser.RawConfigParser()
441 - cc_tidy.readfp(StringIO(str(cc.data)))
442 - self.assertEqualConfig(cc_py, cc_tidy)
443 - except AssertionError:
444 - fname = 'fuzz-test-iter-%d.ini' % fuzz_iter
445 -- print 'Fuzz test failed at iteration', fuzz_iter
446 -- print 'Writing out failing INI file as', fname
447 -+ print('Fuzz test failed at iteration', fuzz_iter)
448 -+ print('Writing out failing INI file as', fname)
449 - f = open(fname, 'w')
450 - f.write(s)
451 - f.close()
452 - raise
453 -
454 -+ @unittest.skipIf(sys.version_info[0] > 2, 'http://code.google.com/p/iniparse/issues/detail?id=22#c9')
455 - def assertEqualConfig(self, c1, c2):
456 - self.assertEqualSorted(c1.sections(), c2.sections())
457 - self.assertEqualSorted(c1.defaults().items(), c2.defaults().items())
458 -@@ -123,9 +125,7 @@
459 - self.assertEqual(c1.get(sec, opt), c2.get(sec, opt))
460 -
461 - def assertEqualSorted(self, l1, l2):
462 -- l1.sort()
463 -- l2.sort()
464 -- self.assertEqual(l1, l2)
465 -+ self.assertEqual(sorted(l1), sorted(l2))
466 -
467 - class suite(unittest.TestSuite):
468 - def __init__(self):
469 -Index: tests/test_ini.py
470 -===================================================================
471 ---- a/tests/test_ini.py (revision 146)
472 -+++ b/tests/test_ini.py (working copy)
473 -@@ -1,5 +1,5 @@
474 - import unittest
475 --from StringIO import StringIO
476 -+from six import StringIO
477 -
478 - from iniparse import ini
479 - from iniparse import compat
480 -@@ -196,13 +196,13 @@
481 - self.assertEqual(p._data.find('section2').find('just').value, 'kidding')
482 -
483 - itr = p._data.finditer('section1')
484 -- v = itr.next()
485 -+ v = next(itr)
486 - self.assertEqual(v.find('help').value, 'yourself')
487 - self.assertEqual(v.find('but').value, 'also me')
488 -- v = itr.next()
489 -+ v = next(itr)
490 - self.assertEqual(v.find('help').value, 'me')
491 - self.assertEqual(v.find('I\'m').value, 'desperate')
492 -- self.assertRaises(StopIteration, itr.next)
493 -+ self.assertRaises(StopIteration, next, itr)
494 -
495 - self.assertRaises(KeyError, p._data.find, 'section')
496 - self.assertRaises(KeyError, p._data.find('section2').find, 'ahem')
497 -Index: tests/test_misc.py
498 -===================================================================
499 ---- a/tests/test_misc.py (revision 146)
500 -+++ b/tests/test_misc.py (working copy)
501 -@@ -1,9 +1,9 @@
502 - import re
503 - import unittest
504 - import pickle
505 --import ConfigParser
506 -+from six.moves import configparser
507 -+from six import StringIO
508 - from textwrap import dedent
509 --from StringIO import StringIO
510 - from iniparse import compat, ini
511 -
512 - class CaseSensitiveConfigParser(compat.ConfigParser):
513 -Index: tests/test_tidy.py
514 -===================================================================
515 ---- a/tests/test_tidy.py (revision 146)
516 -+++ b/tests/test_tidy.py (working copy)
517 -@@ -1,6 +1,6 @@
518 - import unittest
519 - from textwrap import dedent
520 --from StringIO import StringIO
521 -+from six import StringIO
522 -
523 - from iniparse import tidy,INIConfig
524 - from iniparse.ini import EmptyLine
525 -Index: tests/test_unicode.py
526 -===================================================================
527 ---- a/tests/test_unicode.py (revision 146)
528 -+++ b/tests/test_unicode.py (working copy)
529 -@@ -1,5 +1,5 @@
530 - import unittest
531 --from StringIO import StringIO
532 -+import six
533 - from iniparse import compat, ini
534 -
535 - class test_unicode(unittest.TestCase):
536 -@@ -17,14 +17,14 @@
537 - """
538 -
539 - def basic_tests(self, s, strable):
540 -- f = StringIO(s)
541 -+ f = six.StringIO(s)
542 - i = ini.INIConfig(f)
543 -- self.assertEqual(unicode(i), s)
544 -- self.assertEqual(type(i.foo.bar), unicode)
545 -+ self.assertEqual(six.text_type(i), s)
546 -+ self.assertEqual(type(i.foo.bar), six.text_type)
547 - if strable:
548 - self.assertEqual(str(i), str(s))
549 - else:
550 -- self.assertRaises(UnicodeEncodeError, lambda: str(i))
551 -+ self.assertRaises(UnicodeEncodeError, lambda: six.text_type(i).encode('ascii'))
552 - return i
553 -
554 - def test_ascii(self):
555
556 diff --git a/dev-python/iniparse/files/iniparse-0.4-tests.patch b/dev-python/iniparse/files/iniparse-0.4-tests.patch
557 deleted file mode 100644
558 index ca6900ad2ea..00000000000
559 --- a/dev-python/iniparse/files/iniparse-0.4-tests.patch
560 +++ /dev/null
561 @@ -1,27 +0,0 @@
562 -From b3d6ea5ed88b0e6cf9fdb411a14e725665ded92e Mon Sep 17 00:00:00 2001
563 -From: Tim Lauridsen <timlau@×××××××××××××.org>
564 -Date: Fri, 7 Mar 2014 19:06:40 +0100
565 -Subject: [PATCH] Fix handling of REM xxxxxxxx as a comment, but REMXXXX is not
566 - (upstream issue #28)
567 -
568 ----
569 - tests/test_ini.py | 3 +--
570 - 1 file changed, 1 insertion(+), 2 deletions(-)
571 -
572 -diff --git a/tests/test_ini.py b/tests/test_ini.py
573 -index 07d4f4e..6d974f0 100644
574 ---- a/tests/test_ini.py
575 -+++ b/tests/test_ini.py
576 -@@ -144,8 +144,7 @@ class test_comment_line(unittest.TestCase):
577 - '#this is a comment',
578 - ';; this is also a comment',
579 - '; so is this ',
580 -- 'Rem and this',
581 -- 'remthis too!'
582 -+ 'Rem and this'
583 - ]
584 - def test_parsing(self):
585 - for l in self.lines:
586 ---
587 -1.8.5.3
588 -
589
590 diff --git a/dev-python/iniparse/iniparse-0.4-r2.ebuild b/dev-python/iniparse/iniparse-0.4-r2.ebuild
591 deleted file mode 100644
592 index 3a7544b389e..00000000000
593 --- a/dev-python/iniparse/iniparse-0.4-r2.ebuild
594 +++ /dev/null
595 @@ -1,29 +0,0 @@
596 -# Copyright 1999-2020 Gentoo Authors
597 -# Distributed under the terms of the GNU General Public License v2
598 -
599 -EAPI=7
600 -
601 -PYTHON_COMPAT=( python3_{7,8} )
602 -inherit distutils-r1
603 -
604 -DESCRIPTION="Better INI parser for Python"
605 -HOMEPAGE="https://pypi.org/project/iniparse/"
606 -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
607 -
608 -LICENSE="MIT PSF-2"
609 -SLOT="0"
610 -KEYWORDS="amd64 arm64 x86"
611 -IUSE=""
612 -
613 -BDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
614 -DEPEND=">=dev-python/six-1.10.0[${PYTHON_USEDEP}]"
615 -RDEPEND="${DEPEND}"
616 -
617 -PATCHES=(
618 - "${FILESDIR}/${P}-python3.patch"
619 - "${FILESDIR}/${P}-tests.patch"
620 -)
621 -
622 -python_test() {
623 - "${EPYTHON}" runtests.py || die
624 -}