Hello community,

here is the log from the commit of package python-PyICU for openSUSE:Factory 
checked in at 2020-03-29 14:25:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-PyICU (Old)
 and      /work/SRC/openSUSE:Factory/.python-PyICU.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-PyICU"

Sun Mar 29 14:25:06 2020 rev:7 rq:788930 version:2.4.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-PyICU/python-PyICU.changes        
2020-01-16 18:16:19.404807917 +0100
+++ /work/SRC/openSUSE:Factory/.python-PyICU.new.3160/python-PyICU.changes      
2020-03-29 14:25:07.494084628 +0200
@@ -1,0 +2,7 @@
+Fri Mar 27 09:06:35 UTC 2020 - Marketa Calabkova <mcalabk...@suse.com>
+
+- update to 2.4.3
+  * added Char.getPropertyValueName() and Char.getPropertyValueEnum()
+  * fixed build errors with PythonReplaceable for ICU < 55
+
+-------------------------------------------------------------------

Old:
----
  PyICU-2.4.2.tar.gz

New:
----
  PyICU-2.4.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-PyICU.spec ++++++
--- /var/tmp/diff_new_pack.3Vejhi/_old  2020-03-29 14:25:10.766085338 +0200
+++ /var/tmp/diff_new_pack.3Vejhi/_new  2020-03-29 14:25:10.790085343 +0200
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %global modname PyICU
 Name:           python-%{modname}
-Version:        2.4.2
+Version:        2.4.3
 Release:        0
 Summary:        Python Extension Wrapping the ICU C++ API
 License:        MIT

++++++ PyICU-2.4.2.tar.gz -> PyICU-2.4.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/CHANGES new/PyICU-2.4.3/CHANGES
--- old/PyICU-2.4.2/CHANGES     2019-11-13 01:32:57.000000000 +0100
+++ new/PyICU-2.4.3/CHANGES     2020-03-19 21:58:25.000000000 +0100
@@ -1,3 +1,8 @@
+Version 2.4.2 -> 2.4.3
+----------------------
+  - added Char.getPropertyValueName() and Char.getPropertyValueEnum()
+  - fixed build errors with PythonReplaceable for ICU < 55
+
 Version 2.4.1 -> 2.4.2
 ----------------------
   - fixed build issues with ICU < 59
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/PKG-INFO new/PyICU-2.4.3/PKG-INFO
--- old/PyICU-2.4.2/PKG-INFO    2019-11-13 01:34:01.845530500 +0100
+++ new/PyICU-2.4.3/PKG-INFO    2020-03-19 22:11:39.820458400 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: PyICU
-Version: 2.4.2
+Version: 2.4.3
 Summary: Python extension wrapping the ICU C++ API
 Home-page: https://github.com/ovalhub/pyicu
 Author: Andi Vajda
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/PyICU.egg-info/PKG-INFO 
new/PyICU-2.4.3/PyICU.egg-info/PKG-INFO
--- old/PyICU-2.4.2/PyICU.egg-info/PKG-INFO     2019-11-13 01:34:01.000000000 
+0100
+++ new/PyICU-2.4.3/PyICU.egg-info/PKG-INFO     2020-03-19 22:11:39.000000000 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: PyICU
-Version: 2.4.2
+Version: 2.4.3
 Summary: Python extension wrapping the ICU C++ API
 Home-page: https://github.com/ovalhub/pyicu
 Author: Andi Vajda
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/bases.cpp new/PyICU-2.4.3/bases.cpp
--- old/PyICU-2.4.2/bases.cpp   2019-11-12 00:24:16.000000000 +0100
+++ new/PyICU-2.4.3/bases.cpp   2020-03-19 21:30:55.000000000 +0100
@@ -134,6 +134,8 @@
              abstract_init, NULL);
 
 
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
+
 /* PythonReplaceable */
 
 class t_python_replaceable : public _wrapper {
@@ -352,6 +354,8 @@
     return b;
 }
 
+#endif
+
 /* UnicodeString */
 
 class t_unicodestring : public _wrapper {
@@ -704,6 +708,9 @@
     Py_RETURN_BOOL(b);
 }
 
+
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
+
 /* PythonReplaceable */
 
 static int t_python_replaceable_init(
@@ -796,6 +803,8 @@
     Py_RETURN_BOOL(b);
 }
 
+#endif
+
 /* UnicodeString */
 
 static int t_unicodestring_init(t_unicodestring *self,
@@ -2641,7 +2650,9 @@
     INSTALL_STRUCT(UMemory, m);  // no typeid()
     INSTALL_TYPE(UObject, m);
     INSTALL_TYPE(Replaceable, m);
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
     INSTALL_TYPE(PythonReplaceable, m);
+#endif
     REGISTER_TYPE(UnicodeString, m);
     REGISTER_TYPE(Formattable, m);
     INSTALL_TYPE(StringEnumeration, m);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/bases.h new/PyICU-2.4.3/bases.h
--- old/PyICU-2.4.2/bases.h     2019-11-12 00:21:15.000000000 +0100
+++ new/PyICU-2.4.3/bases.h     2019-11-16 03:47:15.000000000 +0100
@@ -42,6 +42,9 @@
     UObject *object;
 };
 
+
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
+
 class PythonReplaceable : public Replaceable {
  public:
   explicit PythonReplaceable(PyObject *self);
@@ -66,6 +69,8 @@
   PyObject *self_;
 };
 
+#endif
+
 struct UNone;
 typedef struct UNone UNone;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/casemap.cpp new/PyICU-2.4.3/casemap.cpp
--- old/PyICU-2.4.2/casemap.cpp 2018-10-19 03:52:33.000000000 +0200
+++ new/PyICU-2.4.3/casemap.cpp 2019-11-16 03:34:35.000000000 +0100
@@ -71,13 +71,13 @@
 static PyObject *t_edits_addReplace(t_edits *self, PyObject *args);
 static PyObject *t_edits_lengthDelta(t_edits *self);
 static PyObject *t_edits_hasChanges(t_edits *self);
-static PyObject *t_edits_numberOfChanges(t_edits *self);
 static PyObject *t_edits_getCoarseChangesIterator(t_edits *self);
 static PyObject *t_edits_getCoarseIterator(t_edits *self);
 static PyObject *t_edits_getFineChangesIterator(t_edits *self);
 static PyObject *t_edits_getFineIterator(t_edits *self);
 #if U_ICU_VERSION_HEX >= VERSION_HEX(60, 0, 0)
 static PyObject *t_edits_mergeAndAppend(t_edits *self, PyObject *args);
+static PyObject *t_edits_numberOfChanges(t_edits *self);
 #endif
 
 static PyMethodDef t_edits_methods[] = {
@@ -86,13 +86,13 @@
     DECLARE_METHOD(t_edits, addReplace, METH_VARARGS),
     DECLARE_METHOD(t_edits, lengthDelta, METH_NOARGS),
     DECLARE_METHOD(t_edits, hasChanges, METH_NOARGS),
-    DECLARE_METHOD(t_edits, numberOfChanges, METH_NOARGS),
     DECLARE_METHOD(t_edits, getCoarseChangesIterator, METH_NOARGS),
     DECLARE_METHOD(t_edits, getCoarseIterator, METH_NOARGS),
     DECLARE_METHOD(t_edits, getFineChangesIterator, METH_NOARGS),
     DECLARE_METHOD(t_edits, getFineIterator, METH_NOARGS),
 #if U_ICU_VERSION_HEX >= VERSION_HEX(60, 0, 0)
     DECLARE_METHOD(t_edits, mergeAndAppend, METH_VARARGS),
+    DECLARE_METHOD(t_edits, numberOfChanges, METH_NOARGS),
 #endif
     { NULL, NULL, 0, NULL }
 };
@@ -106,16 +106,22 @@
     EditsIterator *object;
 };
 
-static int t_editsiterator_init(t_editsiterator *self, PyObject *args, 
PyObject *kwds);
+#if U_ICU_VERSION_HEX >= VERSION_HEX(60, 0, 0)
+static int t_editsiterator_init(t_editsiterator *self, PyObject *args,
+                                PyObject *kwds);
+#endif
 
 static PyObject *t_editsiterator_findSourceIndex(
     t_editsiterator *self, PyObject *arg);
+
+#if U_ICU_VERSION_HEX >= VERSION_HEX(60, 0, 0)
 static PyObject *t_editsiterator_findDestinationIndex(
     t_editsiterator *self, PyObject *arg);
 static PyObject *t_editsiterator_destinationIndexFromSourceIndex(
     t_editsiterator *self, PyObject *arg);
 static PyObject *t_editsiterator_sourceIndexFromdestinationIndex(
     t_editsiterator *self, PyObject *arg);
+#endif
 
 static PyObject *t_editsiterator__hasChange(
     t_editsiterator *self, void *closure);
@@ -160,14 +166,21 @@
 
 static PyMethodDef t_editsiterator_methods[] = {
     DECLARE_METHOD(t_editsiterator, findSourceIndex, METH_O),
+#if U_ICU_VERSION_HEX >= VERSION_HEX(60, 0, 0)
     DECLARE_METHOD(t_editsiterator, findDestinationIndex, METH_O),
     DECLARE_METHOD(t_editsiterator, destinationIndexFromSourceIndex, METH_O),
     DECLARE_METHOD(t_editsiterator, sourceIndexFromdestinationIndex, METH_O),
+#endif
     { NULL, NULL, 0, NULL }
 };
 
+#if U_ICU_VERSION_HEX >= VERSION_HEX(60, 0, 0)
 DECLARE_STRUCT(EditsIterator, t_editsiterator, EditsIterator,
                t_editsiterator_init, NULL);
+#else
+DECLARE_STRUCT(EditsIterator, t_editsiterator, EditsIterator,
+               abstract_init, NULL);
+#endif
 
 PyObject *wrap_EditsIterator(const EditsIterator &iterator)
 {
@@ -1202,11 +1215,6 @@
     Py_RETURN_BOOL(self->object->hasChanges());
 }
 
-static PyObject *t_edits_numberOfChanges(t_edits *self)
-{
-    return PyInt_FromLong(self->object->numberOfChanges());
-}
-
 static PyObject *t_edits_getCoarseChangesIterator(t_edits *self)
 {
     return wrap_EditsIterator(self->object->getCoarseChangesIterator());
@@ -1228,6 +1236,7 @@
 }
 
 #if U_ICU_VERSION_HEX >= VERSION_HEX(60, 0, 0)
+
 static PyObject *t_edits_mergeAndAppend(t_edits *self, PyObject *args)
 {
     PyObject *ab, *bc;
@@ -1244,11 +1253,19 @@
 
     return PyErr_SetArgsError((PyObject *) self, "mergeAndAppend", args);
 }
+
+static PyObject *t_edits_numberOfChanges(t_edits *self)
+{
+    return PyInt_FromLong(self->object->numberOfChanges());
+}
+
 #endif
 
 
 /* EditsIterator */
 
+#if U_ICU_VERSION_HEX >= VERSION_HEX(60, 0, 0)
+
 static int t_editsiterator_init(t_editsiterator *self,
                                 PyObject *args, PyObject *kwds)
 {
@@ -1268,6 +1285,8 @@
     return -1;
 }
 
+#endif
+
 static PyObject *t_editsiterator_findSourceIndex(
     t_editsiterator *self, PyObject *arg)
 {
@@ -1284,6 +1303,8 @@
     return PyErr_SetArgsError((PyObject *) self, "findSourceIndex", arg);
 }
 
+#if U_ICU_VERSION_HEX >= VERSION_HEX(60, 0, 0)
+
 static PyObject *t_editsiterator_findDestinationIndex(
     t_editsiterator *self, PyObject *arg)
 {
@@ -1334,6 +1355,8 @@
         (PyObject *) self, "sourceIndexFromDestinationIndex", arg);
 }
 
+#endif
+
 static PyObject *t_editsiterator__hasChange(
     t_editsiterator *self, void *closure)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/char.cpp new/PyICU-2.4.3/char.cpp
--- old/PyICU-2.4.2/char.cpp    2019-03-28 09:53:16.000000000 +0100
+++ new/PyICU-2.4.3/char.cpp    2019-12-23 19:13:28.000000000 +0100
@@ -112,6 +112,10 @@
 static PyObject *t_char_enumCharNames(PyTypeObject *type, PyObject *args);
 static PyObject *t_char_getPropertyName(PyTypeObject *type, PyObject *args);
 static PyObject *t_char_getPropertyEnum(PyTypeObject *type, PyObject *arg);
+static PyObject *t_char_getPropertyValueName(PyTypeObject *type,
+                                             PyObject *args);
+static PyObject *t_char_getPropertyValueEnum(PyTypeObject *type,
+                                             PyObject *args);
 static PyObject *t_char_isIDStart(PyTypeObject *type, PyObject *arg);
 static PyObject *t_char_isIDPart(PyTypeObject *type, PyObject *arg);
 static PyObject *t_char_isIDIgnorable(PyTypeObject *type, PyObject *arg);
@@ -174,6 +178,8 @@
     DECLARE_METHOD(t_char, enumCharNames, METH_VARARGS | METH_CLASS),
     DECLARE_METHOD(t_char, getPropertyName, METH_VARARGS | METH_CLASS),
     DECLARE_METHOD(t_char, getPropertyEnum, METH_O | METH_CLASS),
+    DECLARE_METHOD(t_char, getPropertyValueName, METH_VARARGS | METH_CLASS),
+    DECLARE_METHOD(t_char, getPropertyValueEnum, METH_VARARGS | METH_CLASS),
     DECLARE_METHOD(t_char, isIDStart, METH_O | METH_CLASS),
     DECLARE_METHOD(t_char, isIDPart, METH_O | METH_CLASS),
     DECLARE_METHOD(t_char, isIDIgnorable, METH_O | METH_CLASS),
@@ -702,14 +708,60 @@
 
 static PyObject *t_char_getPropertyEnum(PyTypeObject *type, PyObject *arg)
 {
-    char *alias;
+    charsArg alias;
 
-    if (!parseArg(arg, "c", &alias))
+    if (!parseArg(arg, "n", &alias))
         return PyInt_FromLong(u_getPropertyEnum(alias));
 
     return PyErr_SetArgsError((PyObject *) type, "getPropertyEnum", arg);
 }
 
+static PyObject *t_char_getPropertyValueName(PyTypeObject *type, PyObject 
*args)
+{
+    UPropertyNameChoice choice = U_SHORT_PROPERTY_NAME;
+    int32_t value;
+    UProperty prop;
+    const char *result;
+
+    switch (PyTuple_Size(args)) {
+      case 2:
+        if (!parseArgs(args, "ii", &prop, &value))
+        {
+            result = u_getPropertyValueName(prop, value, choice);
+            if (result != NULL)
+                return PyString_FromString(result);
+            Py_RETURN_NONE;
+        }
+        break;
+      case 3:
+        if (!parseArgs(args, "iii", &prop, &value, &choice))
+        {
+            result = u_getPropertyValueName(prop, value, choice);
+            if (result != NULL)
+                return PyString_FromString(result);
+            Py_RETURN_NONE;
+        }
+        break;
+    }
+
+    return PyErr_SetArgsError((PyObject *) type, "getPropertyValueName", args);
+}
+
+static PyObject *t_char_getPropertyValueEnum(PyTypeObject *type, PyObject 
*args)
+{
+    UProperty prop;
+    charsArg alias;
+
+    switch (PyTuple_Size(args)) {
+      case 2:
+        if (!parseArgs(args, "in", &prop, &alias))
+            return PyInt_FromLong(u_getPropertyValueEnum(prop, alias));
+        break;
+    }
+
+    return PyErr_SetArgsError((PyObject *) type, "getPropertyValueEnum", args);
+}
+
 static PyObject *t_char_fn(uchar32_char_fn fn, const char *name,
                            PyTypeObject *type, PyObject *arg)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/dateformat.cpp 
new/PyICU-2.4.3/dateformat.cpp
--- old/PyICU-2.4.2/dateformat.cpp      2017-04-10 20:56:54.000000000 +0200
+++ new/PyICU-2.4.3/dateformat.cpp      2019-11-16 20:12:16.000000000 +0100
@@ -398,17 +398,21 @@
     t_relativedatetimeformatter *self, PyObject *args);
 static PyObject *t_relativedatetimeformatter_getNumberFormat(
     t_relativedatetimeformatter *self);
+#if U_ICU_VERSION_HEX >= VERSION_HEX(54, 0, 0)
 static PyObject *t_relativedatetimeformatter_getCapitalizationContext(
     t_relativedatetimeformatter *self);
 static PyObject *t_relativedatetimeformatter_getFormatStyle(
     t_relativedatetimeformatter *self);
+#endif
 
 static PyMethodDef t_relativedatetimeformatter_methods[] = {
     DECLARE_METHOD(t_relativedatetimeformatter, format, METH_VARARGS),
     DECLARE_METHOD(t_relativedatetimeformatter, combineDateAndTime, 
METH_VARARGS),
     DECLARE_METHOD(t_relativedatetimeformatter, getNumberFormat, METH_NOARGS),
+#if U_ICU_VERSION_HEX >= VERSION_HEX(54, 0, 0)
     DECLARE_METHOD(t_relativedatetimeformatter, getCapitalizationContext, 
METH_NOARGS),
     DECLARE_METHOD(t_relativedatetimeformatter, getFormatStyle, METH_NOARGS),
+#endif
     { NULL, NULL, 0, NULL }
 };
 
@@ -1885,8 +1889,8 @@
     NumberFormat *number_format;
 #if U_ICU_VERSION_HEX >= VERSION_HEX(54, 0, 0)
     UDateRelativeDateTimeFormatterStyle style;
-#endif
     UDisplayContext context;
+#endif
 
     switch (PyTuple_Size(args)) {
       case 0:
@@ -2045,6 +2049,8 @@
     return wrap_NumberFormat(const_cast<NumberFormat *>(&format), 0);
 }
 
+#if U_ICU_VERSION_HEX >= VERSION_HEX(54, 0, 0)
+
 static PyObject *t_relativedatetimeformatter_getCapitalizationContext(
     t_relativedatetimeformatter *self)
 {
@@ -2056,6 +2062,7 @@
 {
     return PyInt_FromLong(self->object->getFormatStyle());
 }
+#endif
 
 #endif
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/setup.py new/PyICU-2.4.3/setup.py
--- old/PyICU-2.4.2/setup.py    2019-11-12 00:43:40.000000000 +0100
+++ new/PyICU-2.4.3/setup.py    2020-03-19 21:58:31.000000000 +0100
@@ -8,7 +8,7 @@
 
 from distutils.spawn import find_executable
 
-VERSION = '2.4.2'
+VERSION = '2.4.3'
 
 try:
     from subprocess import check_output as subprocess_check_output
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/test/test_BytesTrie.py 
new/PyICU-2.4.3/test/test_BytesTrie.py
--- old/PyICU-2.4.2/test/test_BytesTrie.py      2019-09-30 19:28:40.000000000 
+0200
+++ new/PyICU-2.4.3/test/test_BytesTrie.py      2019-11-16 20:20:59.000000000 
+0100
@@ -28,6 +28,10 @@
 
 class TestBytesTrie(TestCase):
 
+    def setUp(self):
+        if ICU_VERSION < '4.8':
+            self.skipTest(ICU_VERSION)
+
     def testBuildAndIterate(self):
 
         mappings = { 'ab': 3, 'abc': 6, 'abcd': 2, 'abcef': 11,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/test/test_Collator.py 
new/PyICU-2.4.3/test/test_Collator.py
--- old/PyICU-2.4.2/test/test_Collator.py       2018-09-13 23:32:07.000000000 
+0200
+++ new/PyICU-2.4.3/test/test_Collator.py       2019-11-16 03:54:24.000000000 
+0100
@@ -153,7 +153,7 @@
             self.assertTrue(list(allData(index)) == [
                 ('F', 0, 'bar'), ('T', 0, 'lino')])
 
-            if ICU_VERSION >= '5.1':
+            if ICU_VERSION >= '51.0':
                 self.assertTrue(len(index.buildImmutableIndex()) == 28)
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/test/test_DateTimeParserGenerator.py 
new/PyICU-2.4.3/test/test_DateTimeParserGenerator.py
--- old/PyICU-2.4.2/test/test_DateTimeParserGenerator.py        2017-04-07 
17:59:39.000000000 +0200
+++ new/PyICU-2.4.3/test/test_DateTimeParserGenerator.py        2019-11-16 
03:56:26.000000000 +0100
@@ -31,6 +31,9 @@
 class TestDateTimePatternGenerator(TestCase):
 
     def setUp(self):
+        if ICU_VERSION < '56.0':
+            self.skipTest(ICU_VERSION)
+
         cal = Calendar.createInstance()
         cal.setTimeZone(TimeZone.getGMT())
         cal.set(2016, 4, 10, 0, 30, 0)  # month value is 0-based
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/test/test_LocaleMatcher.py 
new/PyICU-2.4.3/test/test_LocaleMatcher.py
--- old/PyICU-2.4.2/test/test_LocaleMatcher.py  2019-09-27 00:52:15.000000000 
+0200
+++ new/PyICU-2.4.3/test/test_LocaleMatcher.py  2019-11-16 03:05:17.000000000 
+0100
@@ -23,11 +23,15 @@
 
 import sys, os, six
 
-from unittest import TestCase, main
+from unittest import TestCase, main, SkipTest
 from icu import *
 
 class TestLocaleMatcher(TestCase):
 
+    def setUp(self):
+        if ICU_VERSION < '65.0':
+            self.skipTest(ICU_VERSION)
+
     def testSetSupportedLocales(self):
 
         locales = (Locale.getFrance(), Locale.getGermany())
@@ -56,7 +60,6 @@
         self.assertEqual(Locale.getGermany(), result.getSupportedLocale())
 
 
-
 if __name__ == "__main__":
     if ICU_VERSION >= '65.0':
         main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/test/test_NumberFormatter.py 
new/PyICU-2.4.3/test/test_NumberFormatter.py
--- old/PyICU-2.4.2/test/test_NumberFormatter.py        2019-03-16 
11:03:05.000000000 +0100
+++ new/PyICU-2.4.3/test/test_NumberFormatter.py        2019-11-16 
20:23:54.000000000 +0100
@@ -29,18 +29,21 @@
 
 class TestNumberFormatter(TestCase):
 
+    def setUp(self):
+        if ICU_VERSION < '60.0':
+            self.skipTest(ICU_VERSION)
+
     def testBasic(self):
 
-        if ICU_VERSION >= '60.0':
-            text = NumberFormatter.withLocale(Locale.getUS()).formatInt(1234)
-            self.assertEqual(text, u'1,234')
+        text = NumberFormatter.withLocale(Locale.getUS()).formatInt(1234)
+        self.assertEqual(text, u'1,234')
 
-            text = LocalizedNumberFormatter(Locale.getUS()).formatInt(1234)
-            self.assertEqual(text, u'1,234')
+        text = LocalizedNumberFormatter(Locale.getUS()).formatInt(1234)
+        self.assertEqual(text, u'1,234')
 
     def testFancy(self):
 
-        if ICU_VERSION >= '60.0' and ICU_VERSION < '64.0':
+        if ICU_VERSION < '64.0':
             text = NumberFormatter.with_() \
                 .notation(Notation.compactShort()) \
                 .unit(CurrencyUnit('EUR')) \
@@ -60,20 +63,19 @@
 
     def testUnit(self):
 
-        if ICU_VERSION >= '60.0':
-            formatter = UnlocalizedNumberFormatter() \
-                .sign(UNumberSignDisplay.ALWAYS) \
-                .unit(MeasureUnit.createMeter()) \
-                .unitWidth(UNumberUnitWidth.FULL_NAME)
-
-            text = formatter.locale(Locale.getUS()).formatInt(1234)
-            self.assertEqual(text, u'+1,234 meters')
-
-            text = formatter.locale(Locale.getFrance()).formatInt(1234)
-            if ICU_VERSION >= '63.0':
-                self.assertEqual(text, u'+1\u202f234\xa0mètres')
-            else:
-                self.assertEqual(text, u'+1\xa0234 mètres')
+        formatter = UnlocalizedNumberFormatter() \
+            .sign(UNumberSignDisplay.ALWAYS) \
+            .unit(MeasureUnit.createMeter()) \
+            .unitWidth(UNumberUnitWidth.FULL_NAME)
+
+        text = formatter.locale(Locale.getUS()).formatInt(1234)
+        self.assertEqual(text, u'+1,234 meters')
+
+        text = formatter.locale(Locale.getFrance()).formatInt(1234)
+        if ICU_VERSION >= '63.0':
+            self.assertEqual(text, u'+1\u202f234\xa0mètres')
+        else:
+            self.assertEqual(text, u'+1\xa0234 mètres')
 
         if ICU_VERSION >= '61.0':
             formatter = UnlocalizedNumberFormatter() \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/test/test_PythonReplaceable.py 
new/PyICU-2.4.3/test/test_PythonReplaceable.py
--- old/PyICU-2.4.2/test/test_PythonReplaceable.py      2019-10-01 
23:31:17.000000000 +0200
+++ new/PyICU-2.4.3/test/test_PythonReplaceable.py      2019-11-16 
03:53:24.000000000 +0100
@@ -57,6 +57,10 @@
 
 class TestPythonReplaceable(TestCase):
 
+    def setUp(self):
+        if ICU_VERSION < '55.0':
+            self.skipTest(ICU_VERSION)
+
     def testAccess(self):
 
         _rep = _Replaceable('abcd')    # the python implementation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/test/test_SimpleFormatter.py 
new/PyICU-2.4.3/test/test_SimpleFormatter.py
--- old/PyICU-2.4.2/test/test_SimpleFormatter.py        2018-01-04 
17:13:15.000000000 +0100
+++ new/PyICU-2.4.3/test/test_SimpleFormatter.py        2019-11-16 
03:08:41.000000000 +0100
@@ -28,6 +28,10 @@
 
 class TestSimpleFormatter(TestCase):
 
+    def setUp(self):
+        if ICU_VERSION < '57.0':
+            self.skipTest(ICU_VERSION)
+
     def testDefault(self):
 
         formatter = SimpleFormatter("{1} '{born}' in {0}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/test/test_UCharsTrie.py 
new/PyICU-2.4.3/test/test_UCharsTrie.py
--- old/PyICU-2.4.2/test/test_UCharsTrie.py     2019-09-30 19:28:26.000000000 
+0200
+++ new/PyICU-2.4.3/test/test_UCharsTrie.py     2019-11-16 20:21:23.000000000 
+0100
@@ -28,6 +28,10 @@
 
 class TestUCharsTrie(TestCase):
 
+    def setUp(self):
+        if ICU_VERSION < '4.8':
+            self.skipTest(ICU_VERSION)
+
     def testBuildAndIterate(self):
 
         mappings = { 'ab': 3, 'abc': 6, 'abcd': 2, 'abcef': 11,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyICU-2.4.2/transliterator.cpp 
new/PyICU-2.4.3/transliterator.cpp
--- old/PyICU-2.4.2/transliterator.cpp  2019-10-01 22:27:26.000000000 +0200
+++ new/PyICU-2.4.3/transliterator.cpp  2019-11-16 03:52:11.000000000 +0100
@@ -375,7 +375,9 @@
     UnicodeString *u1, _u1;
     t_utransposition *utransposition;
     int32_t start, limit, len;
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
     PythonReplaceable *rep;
+#endif
     UChar32 c;
 
     switch (PyTuple_Size(args)) {
@@ -390,11 +392,13 @@
             PYTHON_CALL(self->object->transliterate(_u0));
             return PyUnicode_FromUnicodeString(&_u0);
         }
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
         if (!parseArgs(args, "P", TYPE_CLASSID(PythonReplaceable), &rep))
         {
             PYTHON_CALL(self->object->transliterate(*rep));
             Py_RETURN_ARG(args, 0);
         }
+#endif
         break;
       case 2:
         if (!parseArgs(args, "UO", &UTransPositionType_, &u0, &utransposition))
@@ -407,11 +411,13 @@
             STATUS_PYTHON_CALL(self->object->transliterate(_u0, 
*utransposition->object, status));
             return PyUnicode_FromUnicodeString(&_u0);
         }
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
         if (!parseArgs(args, "PO", TYPE_CLASSID(PythonReplaceable), 
&UTransPositionType_, &rep, &utransposition))
         {
             STATUS_PYTHON_CALL(self->object->transliterate(*rep, 
*utransposition->object, status));
             Py_RETURN_ARG(args, 0);
         }
+#endif
         break;
       case 3:
         if (!parseArgs(args, "Uii", &u0, &start, &limit))
@@ -424,11 +430,13 @@
             PYTHON_CALL(self->object->transliterate(_u0, start, limit));
             return PyUnicode_FromUnicodeString(&_u0);
         }
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
         if (!parseArgs(args, "Pii", TYPE_CLASSID(PythonReplaceable), &rep, 
&start, &limit))
         {
             PYTHON_CALL(limit = self->object->transliterate(*rep, start, 
limit));
             return PyInt_FromLong(limit);
         }
+#endif
         if (!parseArgs(args, "UOS", &UTransPositionType_,
                        &u0, &utransposition, &u1, &_u1))
         {
@@ -457,6 +465,7 @@
             }
             return PyUnicode_FromUnicodeString(&_u0);
         }
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
         if (!parseArgs(args, "POS", TYPE_CLASSID(PythonReplaceable), 
&UTransPositionType_, &rep, &utransposition, &u1, &_u1))
         {
             STATUS_CALL(len = toUChar32(*u1, &c, status));
@@ -470,6 +479,7 @@
             }
             Py_RETURN_ARG(args, 0);
         }
+#endif
         break;
     }
 
@@ -481,7 +491,9 @@
 {
     UnicodeString *u, _u;
     t_utransposition *utransposition;
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
     PythonReplaceable *rep;
+#endif
 
     if (!parseArgs(args, "UO", &UTransPositionType_, &u, &utransposition))
     {
@@ -493,11 +505,13 @@
         self->object->finishTransliteration(_u, *utransposition->object);
         return PyUnicode_FromUnicodeString(&_u);
     }
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
     if (!parseArgs(args, "PO", TYPE_CLASSID(PythonReplaceable), 
&UTransPositionType_, &rep, &utransposition))
     {
         self->object->finishTransliteration(*rep, *utransposition->object);
         Py_RETURN_ARG(args, 0);
     }
+#endif
 
     return PyErr_SetArgsError((PyObject *) self, "finishTransliteration", 
args);
 }
@@ -508,7 +522,9 @@
     UnicodeString *u, _u;
     t_utransposition *utransposition;
     int incremental;
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
     PythonReplaceable *rep;
+#endif
 
     if (!parseArgs(args, "UOB", &UTransPositionType_, &u, &utransposition,
                    &incremental))
@@ -524,12 +540,14 @@
                                             incremental);
         return PyUnicode_FromUnicodeString(&_u);
     }
+#if U_ICU_VERSION_HEX >= VERSION_HEX(55, 0, 0)
     if (!parseArgs(args, "POB", TYPE_CLASSID(PythonReplaceable), 
&UTransPositionType_, &rep, &utransposition, &incremental))
     {
         self->object->filteredTransliterate(*rep, *utransposition->object,
                                             incremental);
         Py_RETURN_ARG(args, 0);
     }
+#endif
 
     return PyErr_SetArgsError((PyObject *) self, "filteredTransliterate", 
args);
 }


Reply via email to