diff options
author | Michał Górny <mgorny@gentoo.org> | 2021-02-26 15:02:08 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2021-02-26 15:26:56 +0100 |
commit | 38de7b4564f19a1a466c23ed06b962d6e3bd8d69 (patch) | |
tree | 9fc42605ec746d8fb4b49b1d969c08794a48ef8c /dev-python/ujson | |
parent | dev-python/reportlab: Remove old (diff) | |
download | gentoo-38de7b4564f19a1a466c23ed06b962d6e3bd8d69.tar.gz gentoo-38de7b4564f19a1a466c23ed06b962d6e3bd8d69.tar.bz2 gentoo-38de7b4564f19a1a466c23ed06b962d6e3bd8d69.zip |
dev-python/ujson: Remove old
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/ujson')
9 files changed, 0 insertions, 1021 deletions
diff --git a/dev-python/ujson/Manifest b/dev-python/ujson/Manifest index 2c3d579d337f..90f2344aa4a5 100644 --- a/dev-python/ujson/Manifest +++ b/dev-python/ujson/Manifest @@ -1,3 +1 @@ -DIST ujson-1.35.tar.gz 192027 BLAKE2B 320058e7142f2264bee8b02a411bedb3b32d1c2fc86157eb47272f75cb401e6c75ce7d9e3dba5092cd1db99dbded8804347d4c7be11eaedb47bc8b4b8125fbd3 SHA512 931d8f574fc4920c9ded48369774666060e951f40982606ce9f1d9de3420004042af7d797075a54d92a2b25c4f313572a5e1a30f3bc8ce387ef8f3881193eee7 -DIST ujson-4.0.1.tar.gz 7128868 BLAKE2B 159496bfa2b7efff744c1f725c5a8c362c6baac20518d440e5827ec8af1a9a77b4e060126d9b35b39baae079f7092e64d49d0cd23a637174a4bca261203939d6 SHA512 11fb28166afab30e29d71070c91cfb78245eed704a769bf6fb0871c267135fac3fa1042c4ac875dcb870f8a00615e6bcc8fdcd0168edd5ccbae6437605b4df0d DIST ujson-4.0.2.tar.gz 7129106 BLAKE2B 8ebf68c6bac65100baeee4f95f175ada09ba48b9efe1876b7b1ff2c3cf87d1a50d8300a981fd97eac73e4c5a70af1b7fddcd468aa6067aac8a2e44133f397057 SHA512 ece12d4407cb7cdb647597ff7fc32e4390fc4c790c59e764da5c5644e5dec470c48cb6a6aaa18429cb713643e5205c5d26b2d2d2195bc90f3a171615d3dbd80d diff --git a/dev-python/ujson/files/ujson-1.35-fix-for-overflowing-long.patch b/dev-python/ujson/files/ujson-1.35-fix-for-overflowing-long.patch deleted file mode 100644 index 98659ce1722b..000000000000 --- a/dev-python/ujson/files/ujson-1.35-fix-for-overflowing-long.patch +++ /dev/null @@ -1,84 +0,0 @@ -commit 409c6d4006fdea27e746ea397124f98c92a41a92 -Author: Joakim Hamren <joakim.hamren@gmail.com> -Date: Sat Feb 4 04:21:05 2017 +0100 - - Fix for overflowing long causing invalid json - - This was caused by checking for "__json__" using PyObject_HasAttrString - which clears the error set by a previous long overflow. Thus this was dependent - on the order of processing of dict items, which explains why it was - seemingly random as the dict items are likely ordered by a hash of - the key. - - This fixes GH224 and GH240. - -diff --git a/python/objToJSON.c b/python/objToJSON.c -index 8133fb5..adea2f6 100644 ---- a/python/objToJSON.c -+++ b/python/objToJSON.c -@@ -226,6 +226,21 @@ static void *PyDateToINT64(JSOBJ _obj, JSONTypeContext *tc, void *outValue, size - return NULL; - } - -+static int PyHasAttrStringPreserveErr(PyObject *obj, const char *attr) -+{ -+ int res; -+ PyObject *excType = NULL, *excValue, *excTraceback; -+ -+ if (!PyErr_Occurred()) -+ return PyObject_HasAttrString(obj, "__json__"); -+ -+ PyErr_Fetch(&excType, &excValue, &excTraceback); -+ res = PyObject_HasAttrString(obj, "__json__"); -+ PyErr_Restore(excType, excValue, excTraceback); -+ -+ return res; -+} -+ - static int Tuple_iterNext(JSOBJ obj, JSONTypeContext *tc) - { - PyObject *item; -@@ -471,21 +486,21 @@ static int Dict_iterNext(JSOBJ obj, JSONTypeContext *tc) - GET_TC(tc)->itemName = PyUnicode_AsUTF8String (GET_TC(tc)->itemName); - } - else -- if (!PyString_Check(GET_TC(tc)->itemName)) -- { -- GET_TC(tc)->itemName = PyObject_Str(GET_TC(tc)->itemName); -+ if (!PyString_Check(GET_TC(tc)->itemName)) -+ { -+ GET_TC(tc)->itemName = PyObject_Str(GET_TC(tc)->itemName); - #if PY_MAJOR_VERSION >= 3 -- itemNameTmp = GET_TC(tc)->itemName; -- GET_TC(tc)->itemName = PyUnicode_AsUTF8String (GET_TC(tc)->itemName); -- Py_DECREF(itemNameTmp); -+ itemNameTmp = GET_TC(tc)->itemName; -+ GET_TC(tc)->itemName = PyUnicode_AsUTF8String (GET_TC(tc)->itemName); -+ Py_DECREF(itemNameTmp); - #endif -- } -- else -- { -- Py_INCREF(GET_TC(tc)->itemName); -- } -- PRINTMARK(); -- return 1; -+ } -+ else -+ { -+ Py_INCREF(GET_TC(tc)->itemName); -+ } -+ PRINTMARK(); -+ return 1; - } - - static void Dict_iterEnd(JSOBJ obj, JSONTypeContext *tc) -@@ -728,7 +743,7 @@ static void Object_beginTypeContext (JSOBJ _obj, JSONTypeContext *tc, JSONObject - return; - } - else -- if (PyString_Check(obj) && !PyObject_HasAttrString(obj, "__json__")) -+ if (PyString_Check(obj) && !PyHasAttrStringPreserveErr(obj, "__json__")) - { - PRINTMARK(); - pc->PyTypeToJSON = PyStringToUTF8; tc->type = JT_UTF8; diff --git a/dev-python/ujson/files/ujson-1.35-fix-ordering-of-orderdict.patch b/dev-python/ujson/files/ujson-1.35-fix-ordering-of-orderdict.patch deleted file mode 100644 index 37270d41e3b1..000000000000 --- a/dev-python/ujson/files/ujson-1.35-fix-ordering-of-orderdict.patch +++ /dev/null @@ -1,122 +0,0 @@ -commit c9f8318bd823ae9d44797b6b881a2b3e22cdbade -Author: Joakim Hamren <joakim.hamren@gmail.com> -Date: Tue Feb 7 02:02:38 2017 +0100 - - Fix for incorrect order when using OrderedDict - -diff --git a/python/objToJSON.c b/python/objToJSON.c -index abe6588..9e6a390 100644 ---- a/python/objToJSON.c -+++ b/python/objToJSON.c -@@ -253,8 +253,13 @@ static int Dict_iterNext(JSOBJ obj, JSONTypeContext *tc) - GET_TC(tc)->itemName = NULL; - } - -+ if (!(GET_TC(tc)->itemName = PyIter_Next(GET_TC(tc)->iterator))) -+ { -+ PRINTMARK(); -+ return 0; -+ } - -- if (!PyDict_Next ( (PyObject *)GET_TC(tc)->dictObj, &GET_TC(tc)->index, &GET_TC(tc)->itemName, &GET_TC(tc)->itemValue)) -+ if (!(GET_TC(tc)->itemValue = PyObject_GetItem(GET_TC(tc)->dictObj, GET_TC(tc)->itemName))) - { - PRINTMARK(); - return 0; -@@ -295,6 +300,7 @@ static void Dict_iterEnd(JSOBJ obj, JSONTypeContext *tc) - Py_DECREF(GET_TC(tc)->itemName); - GET_TC(tc)->itemName = NULL; - } -+ Py_CLEAR(GET_TC(tc)->iterator); - Py_DECREF(GET_TC(tc)->dictObj); - PRINTMARK(); - } -@@ -425,20 +431,23 @@ static char *SortedDict_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outL - - static void SetupDictIter(PyObject *dictObj, TypeContext *pc, JSONObjectEncoder *enc) - { -- if (enc->sortKeys) { -+ pc->dictObj = dictObj; -+ if (enc->sortKeys) -+ { - pc->iterEnd = SortedDict_iterEnd; - pc->iterNext = SortedDict_iterNext; - pc->iterGetValue = SortedDict_iterGetValue; - pc->iterGetName = SortedDict_iterGetName; -+ pc->index = 0; - } -- else { -+ else -+ { - pc->iterEnd = Dict_iterEnd; - pc->iterNext = Dict_iterNext; - pc->iterGetValue = Dict_iterGetValue; - pc->iterGetName = Dict_iterGetName; -+ pc->iterator = PyObject_GetIter(dictObj); - } -- pc->dictObj = dictObj; -- pc->index = 0; - } - - static void Object_beginTypeContext (JSOBJ _obj, JSONTypeContext *tc, JSONObjectEncoder *enc) -@@ -446,7 +455,8 @@ static void Object_beginTypeContext (JSOBJ _obj, JSONTypeContext *tc, JSONObject - PyObject *obj, *objRepr, *exc; - TypeContext *pc; - PRINTMARK(); -- if (!_obj) { -+ if (!_obj) -+ { - tc->type = JT_INVALID; - return; - } -diff --git a/tests/tests.py b/tests/tests.py -index cd928e6..b7e46af 100644 ---- a/tests/tests.py -+++ b/tests/tests.py -@@ -10,6 +10,8 @@ import json - import math - import time - import pytz -+from collections import OrderedDict -+ - if six.PY2: - import unittest2 as unittest - else: -@@ -383,6 +385,10 @@ class UltraJSONTests(unittest.TestCase): - input = -float('inf') - self.assertRaises(OverflowError, ujson.encode, input) - -+ def test_encodeOrderedDict(self): -+ input = OrderedDict([(1, 1), (0, 0), (8, 8), (2, 2)]) -+ self.assertEqual('{"1":1,"0":0,"8":8,"2":2}', ujson.encode(input)) -+ - def test_decodeJibberish(self): - input = "fdsa sda v9sa fdsa" - self.assertRaises(ValueError, ujson.decode, input) -@@ -668,7 +674,7 @@ class UltraJSONTests(unittest.TestCase): - d = {u'key': JSONTest()} - output = ujson.encode(d) - dec = ujson.decode(output) -- self.assertEquals(dec, {u'key': output_text}) -+ self.assertEqual(dec, {u'key': output_text}) - - def test_object_with_json_unicode(self): - # If __json__ returns a string, then that string -@@ -681,7 +687,7 @@ class UltraJSONTests(unittest.TestCase): - d = {u'key': JSONTest()} - output = ujson.encode(d) - dec = ujson.decode(output) -- self.assertEquals(dec, {u'key': output_text}) -+ self.assertEqual(dec, {u'key': output_text}) - - def test_object_with_complex_json(self): - # If __json__ returns a string, then that string -@@ -694,7 +700,7 @@ class UltraJSONTests(unittest.TestCase): - d = {u'key': JSONTest()} - output = ujson.encode(d) - dec = ujson.decode(output) -- self.assertEquals(dec, {u'key': obj}) -+ self.assertEqual(dec, {u'key': obj}) - - def test_object_with_json_type_error(self): - # __json__ must return a string, otherwise it should raise an error. diff --git a/dev-python/ujson/files/ujson-1.35-sort_keys-segfault.patch b/dev-python/ujson/files/ujson-1.35-sort_keys-segfault.patch deleted file mode 100644 index 7239bca3e238..000000000000 --- a/dev-python/ujson/files/ujson-1.35-sort_keys-segfault.patch +++ /dev/null @@ -1,73 +0,0 @@ -commit 870ee48fe109c289033cd0b7543b6f5ea4e6f128 -Author: Joakim Hamren <joakim.hamren@gmail.com> -Date: Sat Feb 4 01:07:52 2017 +0100 - - Fixes for sort_keys bug and a typo. - - - Fixed segfault when using sort_keys=True on dict with unorderable keys (GH247) - - - Fixed refcount becoming negative when using sort_keys=True (GH243) - - - Fixed compile error when defining JSON_NO_EXTRA_WHITESPACE - caused by a wrongly named variable. (GH245) - -diff --git a/lib/ultrajsonenc.c b/lib/ultrajsonenc.c -index cb10024..1bfa8f4 100644 ---- a/lib/ultrajsonenc.c -+++ b/lib/ultrajsonenc.c -@@ -717,7 +717,7 @@ static void encode(JSOBJ obj, JSONObjectEncoder *enc, const char *name, size_t c - { - const char *value; - char *objName; -- int count; -+ int count, res; - JSOBJ iterObj; - size_t szlen; - JSONTypeContext tc; -@@ -796,7 +796,7 @@ static void encode(JSOBJ obj, JSONObjectEncoder *enc, const char *name, size_t c - { - Buffer_AppendCharUnchecked (enc, ','); - #ifndef JSON_NO_EXTRA_WHITESPACE -- Buffer_AppendCharUnchecked (buffer, ' '); -+ Buffer_AppendCharUnchecked (enc, ' '); - #endif - Buffer_AppendIndentNewlineUnchecked (enc); - } -@@ -823,8 +823,16 @@ static void encode(JSOBJ obj, JSONObjectEncoder *enc, const char *name, size_t c - Buffer_AppendCharUnchecked (enc, '{'); - Buffer_AppendIndentNewlineUnchecked (enc); - -- while (enc->iterNext(obj, &tc)) -+ while ((res = enc->iterNext(obj, &tc))) - { -+ if(res < 0) -+ { -+ enc->iterEnd(obj, &tc); -+ enc->endTypeContext(obj, &tc); -+ enc->level--; -+ return; -+ } -+ - if (count > 0) - { - Buffer_AppendCharUnchecked (enc, ','); -diff --git a/python/objToJSON.c b/python/objToJSON.c -index 1960d40..8133fb5 100644 ---- a/python/objToJSON.c -+++ b/python/objToJSON.c -@@ -537,6 +537,7 @@ static int SortedDict_iterNext(JSOBJ obj, JSONTypeContext *tc) - // Sort the list. - if (PyList_Sort(items) < 0) - { -+ PyErr_SetString(PyExc_ValueError, "unorderable keys"); - goto error; - } - -@@ -607,7 +608,6 @@ static void SortedDict_iterEnd(JSOBJ obj, JSONTypeContext *tc) - { - GET_TC(tc)->itemName = NULL; - GET_TC(tc)->itemValue = NULL; -- Py_DECREF(GET_TC(tc)->newObj); - Py_DECREF(GET_TC(tc)->dictObj); - PRINTMARK(); - } diff --git a/dev-python/ujson/files/ujson-1.35-standard-handling-of-none.patch b/dev-python/ujson/files/ujson-1.35-standard-handling-of-none.patch deleted file mode 100644 index e2b7b9103f48..000000000000 --- a/dev-python/ujson/files/ujson-1.35-standard-handling-of-none.patch +++ /dev/null @@ -1,77 +0,0 @@ -commit ac4637fbc4e72bd59f221d9bba19127820d21023 -Author: Joakim Hamren <joakim.hamren@gmail.com> -Date: Sat Feb 4 16:36:14 2017 +0100 - - Following std json handling of None dict key - - Previously a None dict item key would be outputted in JSON as "None". - To better align with the standard json module this was changed to output - "null". There's no proper representation of null object keys in JSON so - this is implementation specific but it seems more natural to follow - suit when it can be done without a significant performance hit. - - Added and used branch prediction macros (LIKELY/UNLIKELY) as well. - -diff --git a/lib/ultrajson.h b/lib/ultrajson.h -index 6c1dbc1..ca82a29 100644 ---- a/lib/ultrajson.h -+++ b/lib/ultrajson.h -@@ -117,6 +117,14 @@ typedef uint32_t JSUINT32; - - #define INLINE_PREFIX inline - -+#ifdef __GNUC__ -+#define LIKELY(x) __builtin_expect(!!(x), 1) -+#define UNLIKELY(x) __builtin_expect(!!(x), 0) -+#else -+#define LIKELY(x) (x) -+#define UNLIKELY(x) (x) -+#endif -+ - typedef uint8_t JSUINT8; - typedef uint16_t JSUTF16; - typedef uint32_t JSUTF32; -diff --git a/python/objToJSON.c b/python/objToJSON.c -index adea2f6..41d4289 100644 ---- a/python/objToJSON.c -+++ b/python/objToJSON.c -@@ -488,6 +488,12 @@ static int Dict_iterNext(JSOBJ obj, JSONTypeContext *tc) - else - if (!PyString_Check(GET_TC(tc)->itemName)) - { -+ if (UNLIKELY(GET_TC(tc)->itemName == Py_None)) -+ { -+ GET_TC(tc)->itemName = PyString_FromString("null"); -+ return 1; -+ } -+ - GET_TC(tc)->itemName = PyObject_Str(GET_TC(tc)->itemName); - #if PY_MAJOR_VERSION >= 3 - itemNameTmp = GET_TC(tc)->itemName; -@@ -743,7 +749,7 @@ static void Object_beginTypeContext (JSOBJ _obj, JSONTypeContext *tc, JSONObject - return; - } - else -- if (PyString_Check(obj) && !PyHasAttrStringPreserveErr(obj, "__json__")) -+ if (PyString_Check(obj) && LIKELY(!PyHasAttrStringPreserveErr(obj, "__json__"))) - { - PRINTMARK(); - pc->PyTypeToJSON = PyStringToUTF8; tc->type = JT_UTF8; -@@ -837,7 +843,7 @@ ISITERABLE: - } - */ - -- if (PyObject_HasAttrString(obj, "toDict")) -+ if (UNLIKELY(PyObject_HasAttrString(obj, "toDict"))) - { - PyObject* toDictFunc = PyObject_GetAttrString(obj, "toDict"); - PyObject* tuple = PyTuple_New(0); -@@ -863,7 +869,7 @@ ISITERABLE: - return; - } - else -- if (PyObject_HasAttrString(obj, "__json__")) -+ if (UNLIKELY(PyObject_HasAttrString(obj, "__json__"))) - { - PyObject* toJSONFunc = PyObject_GetAttrString(obj, "__json__"); - PyObject* tuple = PyTuple_New(0); diff --git a/dev-python/ujson/files/ujson-1.35-test-depricationwarning.patch b/dev-python/ujson/files/ujson-1.35-test-depricationwarning.patch deleted file mode 100644 index 6ce987581c4f..000000000000 --- a/dev-python/ujson/files/ujson-1.35-test-depricationwarning.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ujson-1.35.orig/tests/tests.py 2017-04-14 18:14:36.298345782 -0700 -+++ ujson-1.35/tests/tests.py 2017-04-14 18:14:47.899947795 -0700 -@@ -702,7 +702,7 @@ - - output = ujson.encode(ObjectTest()) - dec = ujson.decode(output) -- self.assertEquals(dec, {}) -+ self.assertEqual(dec, {}) - - def test_toDict(self): - d = {"key": 31337} diff --git a/dev-python/ujson/files/ujson-1.35-use-static-where-possible.patch b/dev-python/ujson/files/ujson-1.35-use-static-where-possible.patch deleted file mode 100644 index 7ce5d44e0e7a..000000000000 --- a/dev-python/ujson/files/ujson-1.35-use-static-where-possible.patch +++ /dev/null @@ -1,591 +0,0 @@ -commit 6cf6c7ff25c883349e8e9e5468e61498358e2e91 -Author: WGH <wgh@torlan.ru> -Date: Sat Aug 27 17:34:22 2016 +0300 - - added "static" to C functions, where possible - - 1. It reduces clutter in symbol table. - 2. It fixes issues with C99 inline semantics for functions - marked as inline (#237, #180, #222), which manifests - when compiled with GCC>=5. - -diff --git a/lib/ultrajsondec.c b/lib/ultrajsondec.c -index 21a732e..19efc60 100644 ---- a/lib/ultrajsondec.c -+++ b/lib/ultrajsondec.c -@@ -66,7 +66,7 @@ struct DecoderState - JSONObjectDecoder *dec; - }; - --JSOBJ FASTCALL_MSVC decode_any( struct DecoderState *ds) FASTCALL_ATTR; -+static JSOBJ FASTCALL_MSVC decode_any( struct DecoderState *ds) FASTCALL_ATTR; - typedef JSOBJ (*PFN_DECODER)( struct DecoderState *ds); - - static JSOBJ SetError( struct DecoderState *ds, int offset, const char *message) -@@ -76,13 +76,13 @@ static JSOBJ SetError( struct DecoderState *ds, int offset, const char *message) - return NULL; - } - --double createDouble(double intNeg, double intValue, double frcValue, int frcDecimalCount) -+static double createDouble(double intNeg, double intValue, double frcValue, int frcDecimalCount) - { - static const double g_pow10[] = {1.0, 0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001,0.0000001, 0.00000001, 0.000000001, 0.0000000001, 0.00000000001, 0.000000000001, 0.0000000000001, 0.00000000000001, 0.000000000000001}; - return (intValue + (frcValue * g_pow10[frcDecimalCount])) * intNeg; - } - --FASTCALL_ATTR JSOBJ FASTCALL_MSVC decodePreciseFloat(struct DecoderState *ds) -+static FASTCALL_ATTR JSOBJ FASTCALL_MSVC decodePreciseFloat(struct DecoderState *ds) - { - char *end; - double value; -@@ -99,7 +99,7 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decodePreciseFloat(struct DecoderState *ds) - return ds->dec->newDouble(ds->prv, value); - } - --FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_numeric (struct DecoderState *ds) -+static FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_numeric (struct DecoderState *ds) - { - int intNeg = 1; - int mantSize = 0; -@@ -309,7 +309,7 @@ BREAK_EXP_LOOP: - return ds->dec->newDouble (ds->prv, createDouble( (double) intNeg, (double) intValue , frcValue, decimalCount) * pow(10.0, expValue * expNeg)); - } - --FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_true ( struct DecoderState *ds) -+static FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_true ( struct DecoderState *ds) - { - char *offset = ds->start; - offset ++; -@@ -329,7 +329,7 @@ SETERROR: - return SetError(ds, -1, "Unexpected character found when decoding 'true'"); - } - --FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_false ( struct DecoderState *ds) -+static FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_false ( struct DecoderState *ds) - { - char *offset = ds->start; - offset ++; -@@ -351,7 +351,7 @@ SETERROR: - return SetError(ds, -1, "Unexpected character found when decoding 'false'"); - } - --FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_null ( struct DecoderState *ds) -+static FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_null ( struct DecoderState *ds) - { - char *offset = ds->start; - offset ++; -@@ -371,7 +371,7 @@ SETERROR: - return SetError(ds, -1, "Unexpected character found when decoding 'null'"); - } - --FASTCALL_ATTR void FASTCALL_MSVC SkipWhitespace(struct DecoderState *ds) -+static FASTCALL_ATTR void FASTCALL_MSVC SkipWhitespace(struct DecoderState *ds) - { - char *offset = ds->start; - -@@ -422,7 +422,7 @@ static const JSUINT8 g_decoderLookup[256] = - /* 0xf0 */ 4, 4, 4, 4, 4, 4, 4, 4, DS_UTFLENERROR, DS_UTFLENERROR, DS_UTFLENERROR, DS_UTFLENERROR, DS_UTFLENERROR, DS_UTFLENERROR, DS_UTFLENERROR, DS_UTFLENERROR, - }; - --FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_string ( struct DecoderState *ds) -+static FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_string ( struct DecoderState *ds) - { - JSUTF16 sur[2] = { 0 }; - int iSur = 0; -@@ -672,7 +672,7 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_string ( struct DecoderState *ds) - } - } - --FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_array(struct DecoderState *ds) -+static FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_array(struct DecoderState *ds) - { - JSOBJ itemValue; - JSOBJ newObj; -@@ -736,7 +736,7 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_array(struct DecoderState *ds) - } - } - --FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_object( struct DecoderState *ds) -+static FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_object( struct DecoderState *ds) - { - JSOBJ itemName; - JSOBJ itemValue; -@@ -819,7 +819,7 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_object( struct DecoderState *ds) - } - } - --FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_any(struct DecoderState *ds) -+static FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_any(struct DecoderState *ds) - { - for (;;) - { -diff --git a/lib/ultrajsonenc.c b/lib/ultrajsonenc.c -index 6c1b120..f330171 100644 ---- a/lib/ultrajsonenc.c -+++ b/lib/ultrajsonenc.c -@@ -112,7 +112,7 @@ static void SetError (JSOBJ obj, JSONObjectEncoder *enc, const char *message) - /* - FIXME: Keep track of how big these get across several encoder calls and try to make an estimate - That way we won't run our head into the wall each call */ --void Buffer_Realloc (JSONObjectEncoder *enc, size_t cbNeeded) -+static void Buffer_Realloc (JSONObjectEncoder *enc, size_t cbNeeded) - { - size_t curSize = enc->end - enc->start; - size_t newSize = curSize * 2; -@@ -148,7 +148,7 @@ void Buffer_Realloc (JSONObjectEncoder *enc, size_t cbNeeded) - enc->end = enc->start + newSize; - } - --FASTCALL_ATTR INLINE_PREFIX void FASTCALL_MSVC Buffer_AppendShortHexUnchecked (char *outputOffset, unsigned short value) -+static FASTCALL_ATTR INLINE_PREFIX void FASTCALL_MSVC Buffer_AppendShortHexUnchecked (char *outputOffset, unsigned short value) - { - *(outputOffset++) = g_hexChars[(value & 0xf000) >> 12]; - *(outputOffset++) = g_hexChars[(value & 0x0f00) >> 8]; -@@ -156,7 +156,7 @@ FASTCALL_ATTR INLINE_PREFIX void FASTCALL_MSVC Buffer_AppendShortHexUnchecked (c - *(outputOffset++) = g_hexChars[(value & 0x000f) >> 0]; - } - --int Buffer_EscapeStringUnvalidated (JSONObjectEncoder *enc, const char *io, const char *end) -+static int Buffer_EscapeStringUnvalidated (JSONObjectEncoder *enc, const char *io, const char *end) - { - char *of = (char *) enc->offset; - -@@ -260,7 +260,7 @@ int Buffer_EscapeStringUnvalidated (JSONObjectEncoder *enc, const char *io, cons - } - } - --int Buffer_EscapeStringValidated (JSOBJ obj, JSONObjectEncoder *enc, const char *io, const char *end) -+static int Buffer_EscapeStringValidated (JSOBJ obj, JSONObjectEncoder *enc, const char *io, const char *end) - { - JSUTF32 ucs; - char *of = (char *) enc->offset; -@@ -498,19 +498,19 @@ int Buffer_EscapeStringValidated (JSOBJ obj, JSONObjectEncoder *enc, const char - #define Buffer_AppendCharUnchecked(__enc, __chr) \ - *((__enc)->offset++) = __chr; \ - --FASTCALL_ATTR INLINE_PREFIX void FASTCALL_MSVC strreverse(char* begin, char* end) -+static FASTCALL_ATTR INLINE_PREFIX void FASTCALL_MSVC strreverse(char* begin, char* end) - { - char aux; - while (end > begin) - aux = *end, *end-- = *begin, *begin++ = aux; - } - --void Buffer_AppendIndentNewlineUnchecked(JSONObjectEncoder *enc) -+static void Buffer_AppendIndentNewlineUnchecked(JSONObjectEncoder *enc) - { - if (enc->indent > 0) Buffer_AppendCharUnchecked(enc, '\n'); - } - --void Buffer_AppendIndentUnchecked(JSONObjectEncoder *enc, JSINT32 value) -+static void Buffer_AppendIndentUnchecked(JSONObjectEncoder *enc, JSINT32 value) - { - int i; - if (enc->indent > 0) -@@ -519,7 +519,7 @@ void Buffer_AppendIndentUnchecked(JSONObjectEncoder *enc, JSINT32 value) - Buffer_AppendCharUnchecked(enc, ' '); - } - --void Buffer_AppendIntUnchecked(JSONObjectEncoder *enc, JSINT32 value) -+static void Buffer_AppendIntUnchecked(JSONObjectEncoder *enc, JSINT32 value) - { - char* wstr; - JSUINT32 uvalue = (value < 0) ? -value : value; -@@ -535,7 +535,7 @@ void Buffer_AppendIntUnchecked(JSONObjectEncoder *enc, JSINT32 value) - enc->offset += (wstr - (enc->offset)); - } - --void Buffer_AppendLongUnchecked(JSONObjectEncoder *enc, JSINT64 value) -+static void Buffer_AppendLongUnchecked(JSONObjectEncoder *enc, JSINT64 value) - { - char* wstr; - JSUINT64 uvalue = (value < 0) ? -value : value; -@@ -551,7 +551,7 @@ void Buffer_AppendLongUnchecked(JSONObjectEncoder *enc, JSINT64 value) - enc->offset += (wstr - (enc->offset)); - } - --void Buffer_AppendUnsignedLongUnchecked(JSONObjectEncoder *enc, JSUINT64 value) -+static void Buffer_AppendUnsignedLongUnchecked(JSONObjectEncoder *enc, JSUINT64 value) - { - char* wstr; - JSUINT64 uvalue = value; -@@ -566,7 +566,7 @@ void Buffer_AppendUnsignedLongUnchecked(JSONObjectEncoder *enc, JSUINT64 value) - enc->offset += (wstr - (enc->offset)); - } - --int Buffer_AppendDoubleUnchecked(JSOBJ obj, JSONObjectEncoder *enc, double value) -+static int Buffer_AppendDoubleUnchecked(JSOBJ obj, JSONObjectEncoder *enc, double value) - { - /* if input is larger than thres_max, revert to exponential */ - const double thres_max = (double) 1e16 - 1; -@@ -714,7 +714,7 @@ Handle integration functions returning NULL here */ - FIXME: - Perhaps implement recursion detection */ - --void encode(JSOBJ obj, JSONObjectEncoder *enc, const char *name, size_t cbName) -+static void encode(JSOBJ obj, JSONObjectEncoder *enc, const char *name, size_t cbName) - { - const char *value; - char *objName; -diff --git a/python/JSONtoObj.c b/python/JSONtoObj.c -index 79d9f1a..6cef088 100644 ---- a/python/JSONtoObj.c -+++ b/python/JSONtoObj.c -@@ -43,7 +43,7 @@ http://www.opensource.apple.com/source/tcl/tcl-14/tcl/license.terms - //#define PRINTMARK() fprintf(stderr, "%s: MARK(%d)\n", __FILE__, __LINE__) - #define PRINTMARK() - --void Object_objectAddKey(void *prv, JSOBJ obj, JSOBJ name, JSOBJ value) -+static void Object_objectAddKey(void *prv, JSOBJ obj, JSOBJ name, JSOBJ value) - { - PyDict_SetItem (obj, name, value); - Py_DECREF( (PyObject *) name); -@@ -51,59 +51,59 @@ void Object_objectAddKey(void *prv, JSOBJ obj, JSOBJ name, JSOBJ value) - return; - } - --void Object_arrayAddItem(void *prv, JSOBJ obj, JSOBJ value) -+static void Object_arrayAddItem(void *prv, JSOBJ obj, JSOBJ value) - { - PyList_Append(obj, value); - Py_DECREF( (PyObject *) value); - return; - } - --JSOBJ Object_newString(void *prv, wchar_t *start, wchar_t *end) -+static JSOBJ Object_newString(void *prv, wchar_t *start, wchar_t *end) - { - return PyUnicode_FromWideChar (start, (end - start)); - } - --JSOBJ Object_newTrue(void *prv) -+static JSOBJ Object_newTrue(void *prv) - { - Py_RETURN_TRUE; - } - --JSOBJ Object_newFalse(void *prv) -+static JSOBJ Object_newFalse(void *prv) - { - Py_RETURN_FALSE; - } - --JSOBJ Object_newNull(void *prv) -+static JSOBJ Object_newNull(void *prv) - { - Py_RETURN_NONE; - } - --JSOBJ Object_newObject(void *prv) -+static JSOBJ Object_newObject(void *prv) - { - return PyDict_New(); - } - --JSOBJ Object_newArray(void *prv) -+static JSOBJ Object_newArray(void *prv) - { - return PyList_New(0); - } - --JSOBJ Object_newInteger(void *prv, JSINT32 value) -+static JSOBJ Object_newInteger(void *prv, JSINT32 value) - { - return PyInt_FromLong( (long) value); - } - --JSOBJ Object_newLong(void *prv, JSINT64 value) -+static JSOBJ Object_newLong(void *prv, JSINT64 value) - { - return PyLong_FromLongLong (value); - } - --JSOBJ Object_newUnsignedLong(void *prv, JSUINT64 value) -+static JSOBJ Object_newUnsignedLong(void *prv, JSUINT64 value) - { - return PyLong_FromUnsignedLongLong (value); - } - --JSOBJ Object_newDouble(void *prv, double value) -+static JSOBJ Object_newDouble(void *prv, double value) - { - return PyFloat_FromDouble(value); - } -diff --git a/python/objToJSON.c b/python/objToJSON.c -index 04a4575..1960d40 100644 ---- a/python/objToJSON.c -+++ b/python/objToJSON.c -@@ -226,7 +226,7 @@ static void *PyDateToINT64(JSOBJ _obj, JSONTypeContext *tc, void *outValue, size - return NULL; - } - --int Tuple_iterNext(JSOBJ obj, JSONTypeContext *tc) -+static int Tuple_iterNext(JSOBJ obj, JSONTypeContext *tc) - { - PyObject *item; - -@@ -242,21 +242,21 @@ int Tuple_iterNext(JSOBJ obj, JSONTypeContext *tc) - return 1; - } - --void Tuple_iterEnd(JSOBJ obj, JSONTypeContext *tc) -+static void Tuple_iterEnd(JSOBJ obj, JSONTypeContext *tc) - { - } - --JSOBJ Tuple_iterGetValue(JSOBJ obj, JSONTypeContext *tc) -+static JSOBJ Tuple_iterGetValue(JSOBJ obj, JSONTypeContext *tc) - { - return GET_TC(tc)->itemValue; - } - --char *Tuple_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) -+static char *Tuple_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) - { - return NULL; - } - --int Iter_iterNext(JSOBJ obj, JSONTypeContext *tc) -+static int Iter_iterNext(JSOBJ obj, JSONTypeContext *tc) - { - PyObject *item; - -@@ -282,7 +282,7 @@ int Iter_iterNext(JSOBJ obj, JSONTypeContext *tc) - return 1; - } - --void Iter_iterEnd(JSOBJ obj, JSONTypeContext *tc) -+static void Iter_iterEnd(JSOBJ obj, JSONTypeContext *tc) - { - if (GET_TC(tc)->itemValue) - { -@@ -297,17 +297,17 @@ void Iter_iterEnd(JSOBJ obj, JSONTypeContext *tc) - } - } - --JSOBJ Iter_iterGetValue(JSOBJ obj, JSONTypeContext *tc) -+static JSOBJ Iter_iterGetValue(JSOBJ obj, JSONTypeContext *tc) - { - return GET_TC(tc)->itemValue; - } - --char *Iter_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) -+static char *Iter_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) - { - return NULL; - } - --void Dir_iterEnd(JSOBJ obj, JSONTypeContext *tc) -+static void Dir_iterEnd(JSOBJ obj, JSONTypeContext *tc) - { - if (GET_TC(tc)->itemValue) - { -@@ -325,7 +325,7 @@ void Dir_iterEnd(JSOBJ obj, JSONTypeContext *tc) - PRINTMARK(); - } - --int Dir_iterNext(JSOBJ _obj, JSONTypeContext *tc) -+static int Dir_iterNext(JSOBJ _obj, JSONTypeContext *tc) - { - PyObject *obj = (PyObject *) _obj; - PyObject *itemValue = GET_TC(tc)->itemValue; -@@ -401,20 +401,20 @@ int Dir_iterNext(JSOBJ _obj, JSONTypeContext *tc) - return 1; - } - --JSOBJ Dir_iterGetValue(JSOBJ obj, JSONTypeContext *tc) -+static JSOBJ Dir_iterGetValue(JSOBJ obj, JSONTypeContext *tc) - { - PRINTMARK(); - return GET_TC(tc)->itemValue; - } - --char *Dir_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) -+static char *Dir_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) - { - PRINTMARK(); - *outLen = PyString_GET_SIZE(GET_TC(tc)->itemName); - return PyString_AS_STRING(GET_TC(tc)->itemName); - } - --int List_iterNext(JSOBJ obj, JSONTypeContext *tc) -+static int List_iterNext(JSOBJ obj, JSONTypeContext *tc) - { - if (GET_TC(tc)->index >= GET_TC(tc)->size) - { -@@ -427,16 +427,16 @@ int List_iterNext(JSOBJ obj, JSONTypeContext *tc) - return 1; - } - --void List_iterEnd(JSOBJ obj, JSONTypeContext *tc) -+static void List_iterEnd(JSOBJ obj, JSONTypeContext *tc) - { - } - --JSOBJ List_iterGetValue(JSOBJ obj, JSONTypeContext *tc) -+static JSOBJ List_iterGetValue(JSOBJ obj, JSONTypeContext *tc) - { - return GET_TC(tc)->itemValue; - } - --char *List_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) -+static char *List_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) - { - return NULL; - } -@@ -447,7 +447,7 @@ char *List_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) - // itemValue is borrowed from object (which is dict). No refCounting - //============================================================================= - --int Dict_iterNext(JSOBJ obj, JSONTypeContext *tc) -+static int Dict_iterNext(JSOBJ obj, JSONTypeContext *tc) - { - #if PY_MAJOR_VERSION >= 3 - PyObject* itemNameTmp; -@@ -488,7 +488,7 @@ int Dict_iterNext(JSOBJ obj, JSONTypeContext *tc) - return 1; - } - --void Dict_iterEnd(JSOBJ obj, JSONTypeContext *tc) -+static void Dict_iterEnd(JSOBJ obj, JSONTypeContext *tc) - { - if (GET_TC(tc)->itemName) - { -@@ -499,18 +499,18 @@ void Dict_iterEnd(JSOBJ obj, JSONTypeContext *tc) - PRINTMARK(); - } - --JSOBJ Dict_iterGetValue(JSOBJ obj, JSONTypeContext *tc) -+static JSOBJ Dict_iterGetValue(JSOBJ obj, JSONTypeContext *tc) - { - return GET_TC(tc)->itemValue; - } - --char *Dict_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) -+static char *Dict_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) - { - *outLen = PyString_GET_SIZE(GET_TC(tc)->itemName); - return PyString_AS_STRING(GET_TC(tc)->itemName); - } - --int SortedDict_iterNext(JSOBJ obj, JSONTypeContext *tc) -+static int SortedDict_iterNext(JSOBJ obj, JSONTypeContext *tc) - { - PyObject *items = NULL, *item = NULL, *key = NULL, *value = NULL; - Py_ssize_t i, nitems; -@@ -603,7 +603,7 @@ error: - return -1; - } - --void SortedDict_iterEnd(JSOBJ obj, JSONTypeContext *tc) -+static void SortedDict_iterEnd(JSOBJ obj, JSONTypeContext *tc) - { - GET_TC(tc)->itemName = NULL; - GET_TC(tc)->itemValue = NULL; -@@ -612,19 +612,19 @@ void SortedDict_iterEnd(JSOBJ obj, JSONTypeContext *tc) - PRINTMARK(); - } - --JSOBJ SortedDict_iterGetValue(JSOBJ obj, JSONTypeContext *tc) -+static JSOBJ SortedDict_iterGetValue(JSOBJ obj, JSONTypeContext *tc) - { - return GET_TC(tc)->itemValue; - } - --char *SortedDict_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) -+static char *SortedDict_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) - { - *outLen = PyString_GET_SIZE(GET_TC(tc)->itemName); - return PyString_AS_STRING(GET_TC(tc)->itemName); - } - - --void SetupDictIter(PyObject *dictObj, TypeContext *pc, JSONObjectEncoder *enc) -+static void SetupDictIter(PyObject *dictObj, TypeContext *pc, JSONObjectEncoder *enc) - { - if (enc->sortKeys) { - pc->iterEnd = SortedDict_iterEnd; -@@ -642,7 +642,7 @@ void SetupDictIter(PyObject *dictObj, TypeContext *pc, JSONObjectEncoder *enc) - pc->index = 0; - } - --void Object_beginTypeContext (JSOBJ _obj, JSONTypeContext *tc, JSONObjectEncoder *enc) -+static void Object_beginTypeContext (JSOBJ _obj, JSONTypeContext *tc, JSONObjectEncoder *enc) - { - PyObject *obj, *exc, *iter; - TypeContext *pc; -@@ -929,7 +929,7 @@ INVALID: - return; - } - --void Object_endTypeContext(JSOBJ obj, JSONTypeContext *tc) -+static void Object_endTypeContext(JSOBJ obj, JSONTypeContext *tc) - { - Py_XDECREF(GET_TC(tc)->newObj); - -@@ -937,33 +937,33 @@ void Object_endTypeContext(JSOBJ obj, JSONTypeContext *tc) - tc->prv = NULL; - } - --const char *Object_getStringValue(JSOBJ obj, JSONTypeContext *tc, size_t *_outLen) -+static const char *Object_getStringValue(JSOBJ obj, JSONTypeContext *tc, size_t *_outLen) - { - return GET_TC(tc)->PyTypeToJSON (obj, tc, NULL, _outLen); - } - --JSINT64 Object_getLongValue(JSOBJ obj, JSONTypeContext *tc) -+static JSINT64 Object_getLongValue(JSOBJ obj, JSONTypeContext *tc) - { - JSINT64 ret; - GET_TC(tc)->PyTypeToJSON (obj, tc, &ret, NULL); - return ret; - } - --JSUINT64 Object_getUnsignedLongValue(JSOBJ obj, JSONTypeContext *tc) -+static JSUINT64 Object_getUnsignedLongValue(JSOBJ obj, JSONTypeContext *tc) - { - JSUINT64 ret; - GET_TC(tc)->PyTypeToJSON (obj, tc, &ret, NULL); - return ret; - } - --JSINT32 Object_getIntValue(JSOBJ obj, JSONTypeContext *tc) -+static JSINT32 Object_getIntValue(JSOBJ obj, JSONTypeContext *tc) - { - JSINT32 ret; - GET_TC(tc)->PyTypeToJSON (obj, tc, &ret, NULL); - return ret; - } - --double Object_getDoubleValue(JSOBJ obj, JSONTypeContext *tc) -+static double Object_getDoubleValue(JSOBJ obj, JSONTypeContext *tc) - { - double ret; - GET_TC(tc)->PyTypeToJSON (obj, tc, &ret, NULL); -@@ -975,22 +975,22 @@ static void Object_releaseObject(JSOBJ _obj) - Py_DECREF( (PyObject *) _obj); - } - --int Object_iterNext(JSOBJ obj, JSONTypeContext *tc) -+static int Object_iterNext(JSOBJ obj, JSONTypeContext *tc) - { - return GET_TC(tc)->iterNext(obj, tc); - } - --void Object_iterEnd(JSOBJ obj, JSONTypeContext *tc) -+static void Object_iterEnd(JSOBJ obj, JSONTypeContext *tc) - { - GET_TC(tc)->iterEnd(obj, tc); - } - --JSOBJ Object_iterGetValue(JSOBJ obj, JSONTypeContext *tc) -+static JSOBJ Object_iterGetValue(JSOBJ obj, JSONTypeContext *tc) - { - return GET_TC(tc)->iterGetValue(obj, tc); - } - --char *Object_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) -+static char *Object_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen) - { - return GET_TC(tc)->iterGetName(obj, tc, outLen); - } diff --git a/dev-python/ujson/ujson-1.35-r1.ebuild b/dev-python/ujson/ujson-1.35-r1.ebuild deleted file mode 100644 index 389113fbc471..000000000000 --- a/dev-python/ujson/ujson-1.35-r1.ebuild +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -PYTHON_COMPAT=( python3_{7,8,9} pypy3 ) - -inherit distutils-r1 - -DESCRIPTION="Ultra fast JSON encoder and decoder for Python" -HOMEPAGE="https://pypi.org/project/ujson/" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="amd64 ~arm ~arm64 x86 ~amd64-linux ~x86-linux" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND=" - dev-python/setuptools[${PYTHON_USEDEP}] - test? ( - dev-python/pytz[${PYTHON_USEDEP}] - ) -" - -PATCHES=( - "${FILESDIR}/${P}-sort_keys-segfault.patch" - "${FILESDIR}/${P}-use-static-where-possible.patch" - "${FILESDIR}/${P}-fix-for-overflowing-long.patch" - "${FILESDIR}/${P}-standard-handling-of-none.patch" - "${FILESDIR}/${P}-fix-ordering-of-orderdict.patch" - "${FILESDIR}/${P}-test-depricationwarning.patch" -) - -python_test() { - "${PYTHON}" tests/tests.py || die -} diff --git a/dev-python/ujson/ujson-4.0.1.ebuild b/dev-python/ujson/ujson-4.0.1.ebuild deleted file mode 100644 index b6555cc8fa73..000000000000 --- a/dev-python/ujson/ujson-4.0.1.ebuild +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -PYTHON_COMPAT=( python3_{7..9} pypy3 ) - -inherit distutils-r1 - -DESCRIPTION="Ultra fast JSON encoder and decoder for Python" -HOMEPAGE="https://pypi.org/project/ujson/" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="amd64 arm arm64 x86 ~amd64-linux ~x86-linux" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND=" - dev-python/setuptools_scm[${PYTHON_USEDEP}] - test? ( dev-python/pytz[${PYTHON_USEDEP}] ) -" - -distutils_enable_tests pytest |