pyicu 2.15.3__tar.gz → 2.16__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. {pyicu-2.15.3 → pyicu-2.16}/CHANGES +8 -0
  2. {pyicu-2.15.3 → pyicu-2.16}/CREDITS +2 -1
  3. {pyicu-2.15.3/py/PyICU.egg-info → pyicu-2.16}/PKG-INFO +1 -1
  4. {pyicu-2.15.3 → pyicu-2.16}/arg.h +1 -0
  5. {pyicu-2.15.3 → pyicu-2.16}/char.cpp +33 -0
  6. {pyicu-2.15.3 → pyicu-2.16}/collator.cpp +14 -0
  7. {pyicu-2.15.3 → pyicu-2.16}/measureunit.cpp +26 -4
  8. {pyicu-2.15.3 → pyicu-2.16/py/PyICU.egg-info}/PKG-INFO +1 -1
  9. {pyicu-2.15.3 → pyicu-2.16}/script.cpp +7 -0
  10. {pyicu-2.15.3 → pyicu-2.16}/setup.py +2 -2
  11. {pyicu-2.15.3 → pyicu-2.16}/LICENSE +0 -0
  12. {pyicu-2.15.3 → pyicu-2.16}/MANIFEST.in +0 -0
  13. {pyicu-2.15.3 → pyicu-2.16}/README.md +0 -0
  14. {pyicu-2.15.3 → pyicu-2.16}/_icu_.cpp +0 -0
  15. {pyicu-2.15.3 → pyicu-2.16}/bases.cpp +0 -0
  16. {pyicu-2.15.3 → pyicu-2.16}/bases.h +0 -0
  17. {pyicu-2.15.3 → pyicu-2.16}/bidi.cpp +0 -0
  18. {pyicu-2.15.3 → pyicu-2.16}/bidi.h +0 -0
  19. {pyicu-2.15.3 → pyicu-2.16}/calendar.cpp +0 -0
  20. {pyicu-2.15.3 → pyicu-2.16}/calendar.h +0 -0
  21. {pyicu-2.15.3 → pyicu-2.16}/casemap.cpp +0 -0
  22. {pyicu-2.15.3 → pyicu-2.16}/casemap.h +0 -0
  23. {pyicu-2.15.3 → pyicu-2.16}/char.h +0 -0
  24. {pyicu-2.15.3 → pyicu-2.16}/charset.cpp +0 -0
  25. {pyicu-2.15.3 → pyicu-2.16}/charset.h +0 -0
  26. {pyicu-2.15.3 → pyicu-2.16}/collator.h +0 -0
  27. {pyicu-2.15.3 → pyicu-2.16}/common.cpp +0 -0
  28. {pyicu-2.15.3 → pyicu-2.16}/common.h +0 -0
  29. {pyicu-2.15.3 → pyicu-2.16}/dateformat.cpp +0 -0
  30. {pyicu-2.15.3 → pyicu-2.16}/dateformat.h +0 -0
  31. {pyicu-2.15.3 → pyicu-2.16}/displayoptions.cpp +0 -0
  32. {pyicu-2.15.3 → pyicu-2.16}/displayoptions.h +0 -0
  33. {pyicu-2.15.3 → pyicu-2.16}/errors.cpp +0 -0
  34. {pyicu-2.15.3 → pyicu-2.16}/errors.h +0 -0
  35. {pyicu-2.15.3 → pyicu-2.16}/format.cpp +0 -0
  36. {pyicu-2.15.3 → pyicu-2.16}/format.h +0 -0
  37. {pyicu-2.15.3 → pyicu-2.16}/gender.cpp +0 -0
  38. {pyicu-2.15.3 → pyicu-2.16}/gender.h +0 -0
  39. {pyicu-2.15.3 → pyicu-2.16}/idna.cpp +0 -0
  40. {pyicu-2.15.3 → pyicu-2.16}/idna.h +0 -0
  41. {pyicu-2.15.3 → pyicu-2.16}/iterators.cpp +0 -0
  42. {pyicu-2.15.3 → pyicu-2.16}/iterators.h +0 -0
  43. {pyicu-2.15.3 → pyicu-2.16}/layoutengine.cpp +0 -0
  44. {pyicu-2.15.3 → pyicu-2.16}/layoutengine.h +0 -0
  45. {pyicu-2.15.3 → pyicu-2.16}/locale.cpp +0 -0
  46. {pyicu-2.15.3 → pyicu-2.16}/locale.h +0 -0
  47. {pyicu-2.15.3 → pyicu-2.16}/macros.h +0 -0
  48. {pyicu-2.15.3 → pyicu-2.16}/measureunit.h +0 -0
  49. {pyicu-2.15.3 → pyicu-2.16}/messagepattern.cpp +0 -0
  50. {pyicu-2.15.3 → pyicu-2.16}/messagepattern.h +0 -0
  51. {pyicu-2.15.3 → pyicu-2.16}/normalizer.cpp +0 -0
  52. {pyicu-2.15.3 → pyicu-2.16}/normalizer.h +0 -0
  53. {pyicu-2.15.3 → pyicu-2.16}/numberformat.cpp +0 -0
  54. {pyicu-2.15.3 → pyicu-2.16}/numberformat.h +0 -0
  55. {pyicu-2.15.3 → pyicu-2.16}/py/PyICU.egg-info/SOURCES.txt +0 -0
  56. {pyicu-2.15.3 → pyicu-2.16}/py/PyICU.egg-info/dependency_links.txt +0 -0
  57. {pyicu-2.15.3 → pyicu-2.16}/py/PyICU.egg-info/top_level.txt +0 -0
  58. {pyicu-2.15.3 → pyicu-2.16}/py/icu/__init__.py +0 -0
  59. {pyicu-2.15.3 → pyicu-2.16}/pyproject.toml +0 -0
  60. {pyicu-2.15.3 → pyicu-2.16}/regex.cpp +0 -0
  61. {pyicu-2.15.3 → pyicu-2.16}/regex.h +0 -0
  62. {pyicu-2.15.3 → pyicu-2.16}/samples/break.py +0 -0
  63. {pyicu-2.15.3 → pyicu-2.16}/samples/strsrch.py +0 -0
  64. {pyicu-2.15.3 → pyicu-2.16}/script.h +0 -0
  65. {pyicu-2.15.3 → pyicu-2.16}/search.cpp +0 -0
  66. {pyicu-2.15.3 → pyicu-2.16}/search.h +0 -0
  67. {pyicu-2.15.3 → pyicu-2.16}/setup.cfg +0 -0
  68. {pyicu-2.15.3 → pyicu-2.16}/shape.cpp +0 -0
  69. {pyicu-2.15.3 → pyicu-2.16}/shape.h +0 -0
  70. {pyicu-2.15.3 → pyicu-2.16}/spoof.cpp +0 -0
  71. {pyicu-2.15.3 → pyicu-2.16}/spoof.h +0 -0
  72. {pyicu-2.15.3 → pyicu-2.16}/test/__init__.py +0 -0
  73. {pyicu-2.15.3 → pyicu-2.16}/test/lohit_hi.ttf +0 -0
  74. {pyicu-2.15.3 → pyicu-2.16}/test/noms.txt +0 -0
  75. {pyicu-2.15.3 → pyicu-2.16}/test/test_Bidi.py +0 -0
  76. {pyicu-2.15.3 → pyicu-2.16}/test/test_BreakIterator.py +0 -0
  77. {pyicu-2.15.3 → pyicu-2.16}/test/test_BytesTrie.py +0 -0
  78. {pyicu-2.15.3 → pyicu-2.16}/test/test_Charset.py +0 -0
  79. {pyicu-2.15.3 → pyicu-2.16}/test/test_Collator.py +0 -0
  80. {pyicu-2.15.3 → pyicu-2.16}/test/test_DateTimePatternGenerator.py +0 -0
  81. {pyicu-2.15.3 → pyicu-2.16}/test/test_LayoutEngine.py +0 -0
  82. {pyicu-2.15.3 → pyicu-2.16}/test/test_ListFormatter.py +0 -0
  83. {pyicu-2.15.3 → pyicu-2.16}/test/test_Locale.py +0 -0
  84. {pyicu-2.15.3 → pyicu-2.16}/test/test_LocaleData.py +0 -0
  85. {pyicu-2.15.3 → pyicu-2.16}/test/test_LocaleMatcher.py +0 -0
  86. {pyicu-2.15.3 → pyicu-2.16}/test/test_MessageFormat.py +0 -0
  87. {pyicu-2.15.3 → pyicu-2.16}/test/test_MessagePattern.py +0 -0
  88. {pyicu-2.15.3 → pyicu-2.16}/test/test_Normalizer.py +0 -0
  89. {pyicu-2.15.3 → pyicu-2.16}/test/test_NumberFormat.py +0 -0
  90. {pyicu-2.15.3 → pyicu-2.16}/test/test_NumberFormatter.py +0 -0
  91. {pyicu-2.15.3 → pyicu-2.16}/test/test_Property.py +0 -0
  92. {pyicu-2.15.3 → pyicu-2.16}/test/test_PythonReplaceable.py +0 -0
  93. {pyicu-2.15.3 → pyicu-2.16}/test/test_Regex.py +0 -0
  94. {pyicu-2.15.3 → pyicu-2.16}/test/test_Script.py +0 -0
  95. {pyicu-2.15.3 → pyicu-2.16}/test/test_SimpleFormatter.py +0 -0
  96. {pyicu-2.15.3 → pyicu-2.16}/test/test_Spoof.py +0 -0
  97. {pyicu-2.15.3 → pyicu-2.16}/test/test_TimeZone.py +0 -0
  98. {pyicu-2.15.3 → pyicu-2.16}/test/test_Transliterator.py +0 -0
  99. {pyicu-2.15.3 → pyicu-2.16}/test/test_UCS4.py +0 -0
  100. {pyicu-2.15.3 → pyicu-2.16}/test/test_UCharsTrie.py +0 -0
  101. {pyicu-2.15.3 → pyicu-2.16}/test/test_UDate.py +0 -0
  102. {pyicu-2.15.3 → pyicu-2.16}/test/test_UnicodeSet.py +0 -0
  103. {pyicu-2.15.3 → pyicu-2.16}/timezone.cpp +0 -0
  104. {pyicu-2.15.3 → pyicu-2.16}/timezone.h +0 -0
  105. {pyicu-2.15.3 → pyicu-2.16}/transliterator.cpp +0 -0
  106. {pyicu-2.15.3 → pyicu-2.16}/transliterator.h +0 -0
  107. {pyicu-2.15.3 → pyicu-2.16}/tries.cpp +0 -0
  108. {pyicu-2.15.3 → pyicu-2.16}/tries.h +0 -0
  109. {pyicu-2.15.3 → pyicu-2.16}/tzinfo.cpp +0 -0
  110. {pyicu-2.15.3 → pyicu-2.16}/tzinfo.h +0 -0
  111. {pyicu-2.15.3 → pyicu-2.16}/unicodeset.cpp +0 -0
  112. {pyicu-2.15.3 → pyicu-2.16}/unicodeset.h +0 -0
@@ -1,5 +1,13 @@
1
1
  Issues can be seen at https://gitlab.pyicu.org/main/pyicu/-/issues/<num>
2
2
 
3
+ Version 2.15.3 -> 2.16
4
+ ----------------------
5
+ - fixed issue #178
6
+ - added new enums from new unicode release in UBlockCode, UScriptCode
7
+ - added missing wrappers for ECollationStrength and EComparisonResult
8
+ - added wrapper for UIndicConjunctBreak
9
+ - added support for ICU 78.1
10
+
3
11
  Version 2.15.2 -> 2.15.3
4
12
  ------------------------
5
13
  - replaced all malloc/calloc/free with std::unique_ptr<T[]>
@@ -3,7 +3,7 @@ PyICU is a Python extension wrapping Unicode Consortium's ICU library and
3
3
  wouldn't be possible without the tireless efforts of the people and open source
4
4
  projects below.
5
5
 
6
- - the ICU developers: http://icu-project.org
6
+ - the ICU developers: http://icu.unicode.org
7
7
 
8
8
  - the Open Source Applications Foundation, for hosting the project at its
9
9
  inception, in 2004: http://www.osafoundation.org
@@ -19,6 +19,7 @@ projects below.
19
19
  - Markus Scherer for various bug fixes (see CHANGES)
20
20
  - Martin Hosken for bug fixes (see CHANGES)
21
21
  - Roman Kalukiewicz for MessagePattern
22
+ - Martin Jansche for argument parsing and validation with modern C++
22
23
  -
23
24
 
24
25
  Thank you all !
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyicu
3
- Version: 2.15.3
3
+ Version: 2.16
4
4
  Summary: Python extension wrapping the ICU C++ API
5
5
  Home-page: https://gitlab.pyicu.org/main/pyicu
6
6
  Author: Andi Vajda
@@ -24,6 +24,7 @@
24
24
  #ifndef _arg_h
25
25
  #define _arg_h
26
26
 
27
+ #include <memory>
27
28
  #include <type_traits>
28
29
 
29
30
  #include "common.h"
@@ -58,6 +58,9 @@ DECLARE_CONSTANTS_TYPE(UCPMapRangeOption)
58
58
  DECLARE_CONSTANTS_TYPE(UIdentifierType)
59
59
  DECLARE_CONSTANTS_TYPE(UIdentifierStatus)
60
60
  #endif
61
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(76, 0, 0)
62
+ DECLARE_CONSTANTS_TYPE(UIndicConjunctBreak)
63
+ #endif
61
64
 
62
65
  /* Char */
63
66
 
@@ -1151,6 +1154,9 @@ void _init_char(PyObject *m)
1151
1154
  INSTALL_CONSTANTS_TYPE(UIdentifierType, m);
1152
1155
  INSTALL_CONSTANTS_TYPE(UIdentifierStatus, m);
1153
1156
  #endif
1157
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(76, 0, 0)
1158
+ INSTALL_CONSTANTS_TYPE(UIndicConjunctBreak, m);
1159
+ #endif
1154
1160
 
1155
1161
  INSTALL_STRUCT(Char, m);
1156
1162
  #if U_ICU_VERSION_HEX >= VERSION_HEX(63, 0, 0)
@@ -1305,6 +1311,10 @@ void _init_char(PyObject *m)
1305
1311
  #if U_ICU_VERSION_HEX >= VERSION_HEX(75, 0, 0)
1306
1312
  INSTALL_ENUM(UProperty, "IDENTIFIER_STATUS", UCHAR_IDENTIFIER_STATUS);
1307
1313
  INSTALL_ENUM(UProperty, "IDENTIFIER_TYPE", UCHAR_IDENTIFIER_TYPE);
1314
+ #endif
1315
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(76, 0, 0)
1316
+ INSTALL_ENUM(UProperty, "INDIC_CONJUNCT_BREAK", UCHAR_INDIC_CONJUNCT_BREAK);
1317
+ INSTALL_ENUM(UProperty, "MODIFIER_COMBINING_MARK", UCHAR_MODIFIER_COMBINING_MARK);
1308
1318
  #endif
1309
1319
  INSTALL_ENUM(UProperty, "INVALID_CODE", UCHAR_INVALID_CODE);
1310
1320
 
@@ -1735,6 +1745,16 @@ void _init_char(PyObject *m)
1735
1745
  INSTALL_ENUM(UBlockCode, "SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT", UBLOCK_SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT);
1736
1746
  INSTALL_ENUM(UBlockCode, "TODHRI", UBLOCK_TODHRI);
1737
1747
  INSTALL_ENUM(UBlockCode, "TULU_TIGALARI", UBLOCK_TULU_TIGALARI);
1748
+ #endif
1749
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(78, 0, 0)
1750
+ INSTALL_ENUM(UBlockCode, "BERIA_ERFE", UBLOCK_BERIA_ERFE);
1751
+ INSTALL_ENUM(UBlockCode, "CJK_UNIFIED_IDEOGRAPHS_EXTENSION_J", UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_J);
1752
+ INSTALL_ENUM(UBlockCode, "MISCELLANEOUS_SYMBOLS_SUPPLEMENT", UBLOCK_MISCELLANEOUS_SYMBOLS_SUPPLEMENT);
1753
+ INSTALL_ENUM(UBlockCode, "SHARADA_SUPPLEMENT", UBLOCK_SHARADA_SUPPLEMENT);
1754
+ INSTALL_ENUM(UBlockCode, "SIDETIC", UBLOCK_SIDETIC);
1755
+ INSTALL_ENUM(UBlockCode, "TAI_YO", UBLOCK_TAI_YO);
1756
+ INSTALL_ENUM(UBlockCode, "TANGUT_COMPONENTS_SUPPLEMENT", UBLOCK_TANGUT_COMPONENTS_SUPPLEMENT);
1757
+ INSTALL_ENUM(UBlockCode, "TOLONG_SIKI", UBLOCK_TOLONG_SIKI);
1738
1758
  #endif
1739
1759
  INSTALL_ENUM(UBlockCode, "INVALID_CODE", UBLOCK_INVALID_CODE);
1740
1760
 
@@ -1812,6 +1832,13 @@ void _init_char(PyObject *m)
1812
1832
  #if U_ICU_VERSION_HEX >= VERSION_HEX(76, 0, 0)
1813
1833
  INSTALL_ENUM(UIndicSyllabicCategory, "REORDERING_KILLER", U_INSC_REORDERING_KILLER);
1814
1834
  #endif
1835
+
1836
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(76, 0, 0)
1837
+ INSTALL_ENUM(UIndicConjunctBreak, "CONSONANT", U_INCB_CONSONANT);
1838
+ INSTALL_ENUM(UIndicConjunctBreak, "EXTEND", U_INCB_EXTEND);
1839
+ INSTALL_ENUM(UIndicConjunctBreak, "LINKER", U_INCB_LINKER);
1840
+ INSTALL_ENUM(UIndicConjunctBreak, "NONE", U_INCB_NONE);
1841
+ #endif
1815
1842
 
1816
1843
  INSTALL_ENUM(UVerticalOrientation, "ROTATED", U_VO_ROTATED);
1817
1844
  INSTALL_ENUM(UVerticalOrientation, "TRANSFORMED_ROTATED", U_VO_TRANSFORMED_ROTATED);
@@ -1923,6 +1950,9 @@ void _init_char(PyObject *m)
1923
1950
  #if U_ICU_VERSION_HEX >= VERSION_HEX(76, 0, 0)
1924
1951
  INSTALL_ENUM(UJoiningGroup, "KASHMIRI_YEH", U_JG_KASHMIRI_YEH);
1925
1952
  #endif
1953
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(78, 0, 0)
1954
+ INSTALL_ENUM(UJoiningGroup, "THIN_NOON", U_JG_THIN_NOON);
1955
+ #endif
1926
1956
 
1927
1957
  INSTALL_ENUM(ULineBreak, "INSEPARABLE", U_LB_INSEPARABLE);
1928
1958
  INSTALL_ENUM(ULineBreak, "NEXT_LINE", U_LB_NEXT_LINE);
@@ -1953,6 +1983,9 @@ void _init_char(PyObject *m)
1953
1983
  INSTALL_ENUM(ULineBreak, "VIRAMA_FINAL", U_LB_VIRAMA_FINAL);
1954
1984
  INSTALL_ENUM(ULineBreak, "VIRAMA", U_LB_VIRAMA);
1955
1985
  #endif
1986
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(78, 0, 0)
1987
+ INSTALL_ENUM(ULineBreak, "UNAMBIGUOUS_HYPHEN", U_LB_UNAMBIGUOUS_HYPHEN);
1988
+ #endif
1956
1989
 
1957
1990
  INSTALL_ENUM(UGraphemeClusterBreak, "OTHER", U_GCB_OTHER);
1958
1991
  INSTALL_ENUM(UGraphemeClusterBreak, "CONTROL", U_GCB_CONTROL);
@@ -34,6 +34,8 @@
34
34
  #include "arg.h"
35
35
 
36
36
  DECLARE_CONSTANTS_TYPE(UCollationResult)
37
+ DECLARE_CONSTANTS_TYPE(ECollationStrength)
38
+ DECLARE_CONSTANTS_TYPE(EComparisonResult)
37
39
  DECLARE_CONSTANTS_TYPE(UCollAttribute)
38
40
  DECLARE_CONSTANTS_TYPE(UCollAttributeValue)
39
41
  #if U_ICU_VERSION_HEX >= 0x04080000
@@ -1409,6 +1411,8 @@ void _init_collator(PyObject *m)
1409
1411
  ImmutableIndexType_.tp_as_sequence = &t_immutableindex_as_sequence;
1410
1412
  #endif
1411
1413
  INSTALL_CONSTANTS_TYPE(UCollationResult, m);
1414
+ INSTALL_CONSTANTS_TYPE(ECollationStrength, m);
1415
+ INSTALL_CONSTANTS_TYPE(EComparisonResult, m);
1412
1416
  INSTALL_CONSTANTS_TYPE(UCollAttribute, m);
1413
1417
  INSTALL_CONSTANTS_TYPE(UCollAttributeValue, m);
1414
1418
  REGISTER_TYPE(CollationKey, m);
@@ -1426,6 +1430,16 @@ void _init_collator(PyObject *m)
1426
1430
  INSTALL_ENUM(UCollationResult, "EQUAL", UCOL_EQUAL);
1427
1431
  INSTALL_ENUM(UCollationResult, "GREATER", UCOL_GREATER);
1428
1432
 
1433
+ INSTALL_ENUM(ECollationStrength, "PRIMARY", UCOL_PRIMARY);
1434
+ INSTALL_ENUM(ECollationStrength, "SECONDARY", UCOL_SECONDARY);
1435
+ INSTALL_ENUM(ECollationStrength, "TERTIARY", UCOL_TERTIARY);
1436
+ INSTALL_ENUM(ECollationStrength, "QUATERNARY", UCOL_QUATERNARY);
1437
+ INSTALL_ENUM(ECollationStrength, "IDENTICAL", UCOL_IDENTICAL);
1438
+
1439
+ INSTALL_ENUM(EComparisonResult, "LESS", UCOL_LESS);
1440
+ INSTALL_ENUM(EComparisonResult, "EQUAL", UCOL_EQUAL);
1441
+ INSTALL_ENUM(EComparisonResult, "GREATER", UCOL_GREATER);
1442
+
1429
1443
  INSTALL_ENUM(UCollAttribute, "FRENCH_COLLATION", UCOL_FRENCH_COLLATION);
1430
1444
  INSTALL_ENUM(UCollAttribute, "ALTERNATE_HANDLING", UCOL_ALTERNATE_HANDLING);
1431
1445
  INSTALL_ENUM(UCollAttribute, "CASE_FIRST", UCOL_CASE_FIRST);
@@ -297,12 +297,21 @@ static PyObject *t_measureunit_createBeaufort(PyTypeObject *type);
297
297
  static PyObject *t_measureunit_createGasolineEnergyDensity(PyTypeObject *type);
298
298
  #endif
299
299
 
300
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(76, 0, 0)
301
+ static PyObject *t_measureunit_createLightSpeed(PyTypeObject *type);
302
+ static PyObject *t_measureunit_createNight(PyTypeObject *type);
303
+ #endif
304
+
300
305
  #if U_ICU_VERSION_HEX >= VERSION_HEX(77, 0, 0)
301
- static PyObject *t_measureunit_createPortionPer1E9(PyTypeObject *type);
302
306
  static PyObject *t_measureunit_withConstantDenominator(t_measureunit *self, PyObject *arg);
303
307
  static PyObject *t_measureunit_getConstantDenominator(t_measureunit *self);
304
308
  #endif
305
309
 
310
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(78, 0, 0)
311
+ static PyObject *t_measureunit_createPartPer1E6(PyTypeObject *type);
312
+ static PyObject *t_measureunit_createPartPer1E9(PyTypeObject *type);
313
+ #endif
314
+
306
315
  static PyMethodDef t_measureunit_methods[] = {
307
316
  #if U_ICU_VERSION_HEX >= VERSION_HEX(53, 0, 0)
308
317
  DECLARE_METHOD(t_measureunit, getType, METH_NOARGS),
@@ -543,10 +552,17 @@ static PyMethodDef t_measureunit_methods[] = {
543
552
  #if U_ICU_VERSION_HEX >= VERSION_HEX(74, 0, 0)
544
553
  DECLARE_METHOD(t_measureunit, createGasolineEnergyDensity, METH_NOARGS | METH_CLASS),
545
554
  #endif
555
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(76, 0, 0)
556
+ DECLARE_METHOD(t_measureunit, createLightSpeed, METH_NOARGS | METH_CLASS),
557
+ DECLARE_METHOD(t_measureunit, createNight, METH_NOARGS | METH_CLASS),
558
+ #endif
546
559
  #if U_ICU_VERSION_HEX >= VERSION_HEX(77, 0, 0)
547
- DECLARE_METHOD(t_measureunit, createPortionPer1E9, METH_NOARGS | METH_CLASS),
548
560
  DECLARE_METHOD(t_measureunit, withConstantDenominator, METH_O),
549
561
  DECLARE_METHOD(t_measureunit, getConstantDenominator, METH_NOARGS),
562
+ #endif
563
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(78, 0, 0)
564
+ DECLARE_METHOD(t_measureunit, createPartPer1E6, METH_NOARGS | METH_CLASS),
565
+ DECLARE_METHOD(t_measureunit, createPartPer1E9, METH_NOARGS | METH_CLASS),
550
566
  #endif
551
567
  { NULL, NULL, 0, NULL }
552
568
  };
@@ -1174,8 +1190,14 @@ createMU(Beaufort)
1174
1190
  createMU(GasolineEnergyDensity)
1175
1191
  #endif
1176
1192
 
1177
- #if U_ICU_VERSION_HEX >= VERSION_HEX(77, 0, 0)
1178
- createMU(PortionPer1E9)
1193
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(76, 0, 0)
1194
+ createMU(LightSpeed)
1195
+ createMU(Night)
1196
+ #endif
1197
+
1198
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(78, 0, 0)
1199
+ createMU(PartPer1E6)
1200
+ createMU(PartPer1E9)
1179
1201
  #endif
1180
1202
 
1181
1203
  /* Measure */
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyicu
3
- Version: 2.15.3
3
+ Version: 2.16
4
4
  Summary: Python extension wrapping the ICU C++ API
5
5
  Home-page: https://gitlab.pyicu.org/main/pyicu
6
6
  Author: Andi Vajda
@@ -594,6 +594,13 @@ void _init_script(PyObject *m)
594
594
  #if U_ICU_VERSION_HEX >= VERSION_HEX(75, 0, 0)
595
595
  INSTALL_ENUM(UScriptCode, "ARABIC_NASTALIQ", USCRIPT_ARABIC_NASTALIQ);
596
596
  #endif
597
+ #if U_ICU_VERSION_HEX >= VERSION_HEX(78, 0, 0)
598
+ INSTALL_ENUM(UScriptCode, "BERIA_ERFE", USCRIPT_BERIA_ERFE);
599
+ INSTALL_ENUM(UScriptCode, "SIDETIC", USCRIPT_SIDETIC);
600
+ INSTALL_ENUM(UScriptCode, "TAI_YO", USCRIPT_TAI_YO);
601
+ INSTALL_ENUM(UScriptCode, "TOLONG_SIKI", USCRIPT_TOLONG_SIKI);
602
+ INSTALL_ENUM(UScriptCode, "TRADITIONAL_HAN_WITH_LATIN", USCRIPT_TRADITIONAL_HAN_WITH_LATIN);
603
+ #endif
597
604
 
598
605
  #if U_ICU_VERSION_HEX >= VERSION_HEX(51, 0, 0)
599
606
  INSTALL_ENUM(UScriptUsage, "NOT_ENCODED", USCRIPT_USAGE_NOT_ENCODED);
@@ -8,8 +8,8 @@ except ImportError:
8
8
 
9
9
  from distutils.spawn import find_executable
10
10
 
11
- VERSION = '2.15.3'
12
- ICU_MAX_MAJOR_VERSION = '77' # max supported major version of ICU
11
+ VERSION = '2.16'
12
+ ICU_MAX_MAJOR_VERSION = '78' # max supported major version of ICU
13
13
 
14
14
  try:
15
15
  from subprocess import check_output as subprocess_check_output
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes