pyicu issueshttps://gitlab.pyicu.org/main/pyicu/-/issues2024-03-02T19:10:16-08:00https://gitlab.pyicu.org/main/pyicu/-/issues/168Support for icu4c version 74+ (Mac OS X)2024-03-02T19:10:16-08:00Pablo Alexis Dominguez GrauSupport for icu4c version 74+ (Mac OS X)Greetings,
I'm using a Mac (OS X), and I've a current project that makes use of `pyicu`.
Running unit tests for my project revealed an error in which importing the `pyicu` module (i.e., `import pyicu`) failed.
I tried erasing and re-in...Greetings,
I'm using a Mac (OS X), and I've a current project that makes use of `pyicu`.
Running unit tests for my project revealed an error in which importing the `pyicu` module (i.e., `import pyicu`) failed.
I tried erasing and re-installing `pyicu` to see if it the error would go away, but it didn't
After reading the logs, I noticed that `pyicu` was trying to use icu4c version 73, but mentioned version 74 in a full path message. I then realized, this was probably happening because recently, I ran a `brew update` command, which I then noticed that it updated my `icu4c` version from 73.2 to 74.2.
I had to manually revert to an older version of the `icu4c` homebrew package (which unfortunately was unnecessarily more difficult than I expected). I currently have my unit tests passing after reverting to `icu4c` version 73.
This probably means someone following the [docs for OS X installation](https://gitlab.pyicu.org/main/pyicu#installing-pyicu) will not be able to get `pyicu` to work. I'm writing this issue to request support for the new `icu4c` version 74 which is what `brew install icu4c` provides now.
Maybe it would be nice to also display which versions of `icu4c` the `pyicu` package works with (maybe this exists and I just haven't seen it yet).
Thanks for the great work you all do!https://gitlab.pyicu.org/main/pyicu/-/issues/167Require wrapper for the icu::LocaleDisplayNames class in PyICU2023-12-20T21:37:15-08:00Ujjawal BarasiaRequire wrapper for the icu::LocaleDisplayNames class in PyICUDear PyICU Developers/Maintainers,
I am writing to request a wrapper for the `icu::LocaleDisplayNames` class in PyICU. This class provides methods for getting display name of the provided value (used with the provided key) using method ...Dear PyICU Developers/Maintainers,
I am writing to request a wrapper for the `icu::LocaleDisplayNames` class in PyICU. This class provides methods for getting display name of the provided value (used with the provided key) using method keyValueDisplayName() Currently, PyICU does not provide any wrapper for this class, so we are unable to use it in our Python code.
We need to extract the calendar types using this method.
We would be grateful if you could add a wrapper for the `icu::LocaleDisplayNames` class in PyICU. This would be a great help to us and to other Python developers who need to use this class.
Thank you for your time and consideration.
@vajda Please take a look at this request.https://gitlab.pyicu.org/main/pyicu/-/issues/166Require wrapper for the icu::DateFormatSymbols::getZodiacNames(), getEraNames...2023-12-12T12:39:10-08:00Ujjawal BarasiaRequire wrapper for the icu::DateFormatSymbols::getZodiacNames(), getEraNames() method in PyICUDear PyICU Developers/Maintainers,
I am writing to request a wrapper for the ` icu::DateFormatSymbols::getZodiacNames(), getEraNames()` methods in PyICU. These methods provides functionality for getting the display name for a zodiacs an...Dear PyICU Developers/Maintainers,
I am writing to request a wrapper for the ` icu::DateFormatSymbols::getZodiacNames(), getEraNames()` methods in PyICU. These methods provides functionality for getting the display name for a zodiacs and eras of calendars. Currently, PyICU does not provide any wrapper for this method, so we are unable to use it in our Python code.
We need to extract the displaynames for the zodiacs and eras.
We would be grateful if you could add a wrapper for these methods in PyICU. This would be a great help to us and to other Python developers who need to use this class.
Thank you for your time and consideration.
@vajda Please take a look at this request.https://gitlab.pyicu.org/main/pyicu/-/issues/165Require wrapper for the icu::MeasureFormat::getUnitDisplayName() method in PyICU2023-12-12T05:29:05-08:00Ujjawal BarasiaRequire wrapper for the icu::MeasureFormat::getUnitDisplayName() method in PyICUDear PyICU Developers/Maintainers,
I am writing to request a wrapper for the `icu::MeasureFormat::getUnitDisplayName()` method in PyICU. This method provides functionality for getting the display name for a given unit. Currently, PyICU ...Dear PyICU Developers/Maintainers,
I am writing to request a wrapper for the `icu::MeasureFormat::getUnitDisplayName()` method in PyICU. This method provides functionality for getting the display name for a given unit. Currently, PyICU does not provide any wrapper for this method, so we are unable to use it in our Python code.
We have a number of units id like acre,gallon,etc for which we need to extract the displaynames. For example, we need to extract the displayname for the ids "g-force, meter-per-square-second, etc"
We would be grateful if you could add a wrapper for the `icu::MeasureFormat::getUnitDisplayName()` method in PyICU. This would be a great help to us and to other Python developers who need to use this class.
Thank you for your time and consideration.
@vajda Please take a look at this request.https://gitlab.pyicu.org/main/pyicu/-/issues/164ListFormatter configuration bindings2023-10-18T10:32:45-07:00Michal MillerListFormatter configuration bindingsLooking to control conjunction/disjunction options when using the list formatter. Would it be possible to add bindings for the `ListFormatter.createInstance(locale, type, width)` create instance variant along with the enums for the type ...Looking to control conjunction/disjunction options when using the list formatter. Would it be possible to add bindings for the `ListFormatter.createInstance(locale, type, width)` create instance variant along with the enums for the type and width options?https://gitlab.pyicu.org/main/pyicu/-/issues/163Require wrapper for the icu::TimeZoneNames class in PyICU2023-09-14T14:47:49-07:00Abin LakhanpalRequire wrapper for the icu::TimeZoneNames class in PyICUDear PyICU Developers/Maintainers,
I am writing to request a wrapper for the `icu::TimeZoneNames` class in PyICU. This class provides methods for getting the metazone ID and display name for a given time zone. Currently, PyICU does not ...Dear PyICU Developers/Maintainers,
I am writing to request a wrapper for the `icu::TimeZoneNames` class in PyICU. This class provides methods for getting the metazone ID and display name for a given time zone. Currently, PyICU does not provide any wrapper for this class, so we are unable to use it in our Python code.
We have a number of IANA time zone IDs that we need to extract the metazones for. For example, we need to extract the metazone "America_Central" for the time zone ID "America/Chicago" and the metazone "India" for the time zone ID "Asia/Calcutta".
We would be grateful if you could add a wrapper for the `icu::TimeZoneNames` class in PyICU. This would be a great help to us and to other Python developers who need to use this class.
Thank you for your time and consideration.
@vajda Please take a look at this request.https://gitlab.pyicu.org/main/pyicu/-/issues/162How to use RegexMatcher.split()2023-08-25T11:38:21-07:00Andrew CunninghamHow to use RegexMatcher.split()With `icu::RegexMatcher::split` you'd first create a matcher instance with the regex pattern for the split. Then you'd perform the split using that matcher.
`icu::RegexMatcher::split(input, dest[], destCapacity, status)`, where `input` ...With `icu::RegexMatcher::split` you'd first create a matcher instance with the regex pattern for the split. Then you'd perform the split using that matcher.
`icu::RegexMatcher::split(input, dest[], destCapacity, status)`, where `input` is a UnicodeString object to be split, `dest[]` is an array of size `destCapacity`, and `status` is for error processing. I have tried various permutations and keep getting an `icu.InvalidArgsError`.
I assume that `input` would be a `icu.UnicodeString()` object. But which other parameters are required for `icu.REgexMatcher.split()`, and what object types are they?https://gitlab.pyicu.org/main/pyicu/-/issues/161Python 3.12 build failure2023-03-09T13:12:12-08:00Gwyn CieslaPython 3.12 build failureBuild with Python 3.12 fails due to API deprecation. Attached patch corrects the issue.[py312.patch](/uploads/b6a60a40308604b2090a20754d86b0eb/py312.patch)Build with Python 3.12 fails due to API deprecation. Attached patch corrects the issue.[py312.patch](/uploads/b6a60a40308604b2090a20754d86b0eb/py312.patch)https://gitlab.pyicu.org/main/pyicu/-/issues/160Could not build PyICU on Windows 10 - MSBuild linker issue2023-08-25T11:24:38-07:00Stojan JovićCould not build PyICU on Windows 10 - MSBuild linker issueFirst of all, I want to thank you for supporting this project and bringing ICU for Python auditorium.
I'm not convinced that this is an issue in PyICU build setup itself (I have no anything else to choose for the type), but I would real...First of all, I want to thank you for supporting this project and bringing ICU for Python auditorium.
I'm not convinced that this is an issue in PyICU build setup itself (I have no anything else to choose for the type), but I would really appreciate help from somebody who already tried this - some instructions on how to build/install PyICU on Windows using MSBuild and setuptools!?
I know that I have pre-built binaries at [lfd.uci.edu](https://www.lfd.uci.edu/~gohlke/pythonlibs/), but I really need to be able to build it myself in order to automate installation of this package on Windows 10 machines.
I already read all previous topics on building PyICU on Windows, I learned how to build ICU, install it properly, setup necessary environment variables for building PyICU (`PYICU_INCLUDES` and `PYICU_LFLAGS`), but still no luck, I'm getting bunch of (for me) unclear **linker errors** that I could not understood as I'm not really familiar with C/C++ compiling/linking process.
I suspect that I missing something in prerequisite steps (MSBuild and/or environment setup, configuring PyICU setup.py etc.) or something like that, so maybe somebody can drive me through the additional steps that could help me to fix this.
To avoid bothering you with more unnecessary details, here there is log (I trimmed some parts to make it more readable, but basically I have bunch of similar LNK2001 linker errors for all cpp files that are included in build):
```
D:\PyICU-2.9>python setup.py build --plat-name=win-amd64
Building PyICU 2.9 for ICU 71 (max ICU major version supported: 71)
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-39
creating build\lib.win-amd64-cpython-39\icu
copying py\icu\__init__.py -> build\lib.win-amd64-cpython-39\icu
running build_ext
building 'icu._icu_' extension
creating build\temp.win-amd64-cpython-39
creating build\temp.win-amd64-cpython-39\Release
"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD "-IC:\Program Files\icu\include" "-IC:\Program Files\Python39\include" "-IC:\Program Files\Python39\Include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /EHsc /Tp_icu_.cpp /Fobuild\temp.win-amd64-cpython-39\Release\_icu_.obj /Zc:wchar_t /EHsc -DPYICU_VER=\"2.9\" -DPYICU_ICU_MAX_VER=\"71\"
_icu_.cpp
"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD "-IC:\Program Files\icu\include" "-IC:\Program Files\Python39\include" "-IC:\Program Files\Python39\Include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /EHsc /Tpbases.cpp /Fobuild\temp.win-amd64-cpython-39\Release\bases.obj /Zc:wchar_t /EHsc -DPYICU_VER=\"2.9\" -DPYICU_ICU_MAX_VER=\"71\"
bases.cpp
< trimmed >
"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD "-IC:\Program Files\icu\include" "-IC:\Program Files\Python39\include" "-IC:\Program Files\Python39\Include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /EHsc /Tpunicodeset.cpp /Fobuild\temp.win-amd64-cpython-39\Release\unicodeset.obj /Zc:wchar_t /EHsc -DPYICU_VER=\"2.9\" -DPYICU_ICU_MAX_VER=\"71\"
unicodeset.cpp
"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\link.exe" /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO "/LIBPATH:C:\Program Files\Python39\libs" "/LIBPATH:C:\Program Files\Python39" "/LIBPATH:C:\Program Files\Python39\PCbuild\amd64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\lib\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x86" "/LIBPATH:C:\Program Files\HDF_Group\HDF5\1.12.1\lib" icuin.lib icuuc.lib icudt.lib /EXPORT:PyInit__icu_ build\temp.win-amd64-cpython-39\Release\_icu_.obj build\temp.win-amd64-cpython-39\Release\bases.obj build\temp.win-amd64-cpython-39\Release\bidi.obj build\temp.win-amd64-cpython-39\Release\calendar.obj build\temp.win-amd64-cpython-39\Release\casemap.obj build\temp.win-amd64-cpython-39\Release\char.obj build\temp.win-amd64-cpython-39\Release\charset.obj build\temp.win-amd64-cpython-39\Release\collator.obj build\temp.win-amd64-cpython-39\Release\common.obj build\temp.win-amd64-cpython-39\Release\dateformat.obj build\temp.win-amd64-cpython-39\Release\errors.obj build\temp.win-amd64-cpython-39\Release\format.obj build\temp.win-amd64-cpython-39\Release\gender.obj build\temp.win-amd64-cpython-39\Release\idna.obj build\temp.win-amd64-cpython-39\Release\iterators.obj build\temp.win-amd64-cpython-39\Release\layoutengine.obj build\temp.win-amd64-cpython-39\Release\locale.obj build\temp.win-amd64-cpython-39\Release\measureunit.obj build\temp.win-amd64-cpython-39\Release\messagepattern.obj build\temp.win-amd64-cpython-39\Release\normalizer.obj build\temp.win-amd64-cpython-39\Release\numberformat.obj build\temp.win-amd64-cpython-39\Release\regex.obj build\temp.win-amd64-cpython-39\Release\script.obj build\temp.win-amd64-cpython-39\Release\search.obj build\temp.win-amd64-cpython-39\Release\shape.obj build\temp.win-amd64-cpython-39\Release\spoof.obj build\temp.win-amd64-cpython-39\Release\timezone.obj build\temp.win-amd64-cpython-39\Release\transliterator.obj build\temp.win-amd64-cpython-39\Release\tries.obj build\temp.win-amd64-cpython-39\Release\tzinfo.obj build\temp.win-amd64-cpython-39\Release\unicodeset.obj /OUT:build\lib.win-amd64-cpython-39\icu\_icu_.cp39-win_amd64.pyd /IMPLIB:build\temp.win-amd64-cpython-39\Release\_icu_.cp39-win_amd64.lib "/LIBPATH:C:\Program Files\icu\lib64"
Creating library build\temp.win-amd64-cpython-39\Release\_icu_.cp39-win_amd64.lib and object build\temp.win-amd64-cpython-39\Release\_icu_.cp39-win_amd64.exp
_icu_.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) protected: class icu_71::Transliterator & __cdecl icu_71::Transliterator::operator=(class icu_71::Transliterator const &)" (__imp_??4Transliterator@icu_71@@IEAAAEAV01@AEBV01@@Z)
bases.obj : error LNK2001: unresolved external symbol ucnv_countStandards_71
bases.obj : error LNK2001: unresolved external symbol ucnv_open_71
bases.obj : error LNK2001: unresolved external symbol ucnv_getStandard_71
bases.obj : error LNK2001: unresolved external symbol ucnv_close_71
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual void * __cdecl icu_71::UObject::getDynamicClassID(void)const " (__imp_?getDynamicClassID@UObject@icu_71@@UEBAPEAXXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static void __cdecl icu_71::UMemory::operator delete(void *)" (__imp_??3UMemory@icu_71@@SAXPEAX@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static void * __cdecl icu_71::UMemory::operator new(unsigned __int64)" (__imp_??2UMemory@icu_71@@SAPEAX_K@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) protected: virtual int __cdecl icu_71::UnicodeString::getChar32At(int)const " (__imp_?getChar32At@UnicodeString@icu_71@@MEBAHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) protected: virtual char16_t __cdecl icu_71::UnicodeString::getCharAt(int)const " (__imp_?getCharAt@UnicodeString@icu_71@@MEBA_SH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) protected: virtual int __cdecl icu_71::UnicodeString::getLength(void)const " (__imp_?getLength@UnicodeString@icu_71@@MEBAHXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual void * __cdecl icu_71::UnicodeString::getDynamicClassID(void)const " (__imp_?getDynamicClassID@UnicodeString@icu_71@@UEBAPEAXXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl icu_71::UnicodeString::~UnicodeString(void)" (__imp_??1UnicodeString@icu_71@@UEAA@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual class icu_71::UnicodeString * __cdecl icu_71::UnicodeString::clone(void)const " (__imp_?clone@UnicodeString@icu_71@@UEBAPEAV12@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::UnicodeString::UnicodeString(int,int,int)" (__imp_??0UnicodeString@icu_71@@QEAA@HHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::UnicodeString::UnicodeString(int)" (__imp_??0UnicodeString@icu_71@@QEAA@H@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::UnicodeString::UnicodeString(char16_t const *)" (__imp_??0UnicodeString@icu_71@@QEAA@PEB_S@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::UnicodeString::UnicodeString(class icu_71::UnicodeString const &)" (__imp_??0UnicodeString@icu_71@@QEAA@AEBV01@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::UnicodeString::UnicodeString(class icu_71::UnicodeString const &,int)" (__imp_??0UnicodeString@icu_71@@QEAA@AEBV01@H@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::UnicodeString::UnicodeString(class icu_71::UnicodeString const &,int,int)" (__imp_??0UnicodeString@icu_71@@QEAA@AEBV01@HH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::foldCase(unsigned int)" (__imp_?foldCase@UnicodeString@icu_71@@QEAAAEAV12@I@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::toTitle(class icu_71::BreakIterator *)" (__imp_?toTitle@UnicodeString@icu_71@@QEAAAEAV12@PEAVBreakIterator@2@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::toTitle(class icu_71::BreakIterator *,class icu_71::Locale const &)" (__imp_?toTitle@UnicodeString@icu_71@@QEAAAEAV12@PEAVBreakIterator@2@AEBVLocale@2@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::toLower(void)" (__imp_?toLower@UnicodeString@icu_71@@QEAAAEAV12@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::toLower(class icu_71::Locale const &)" (__imp_?toLower@UnicodeString@icu_71@@QEAAAEAV12@AEBVLocale@2@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::toUpper(void)" (__imp_?toUpper@UnicodeString@icu_71@@QEAAAEAV12@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::toUpper(class icu_71::Locale const &)" (__imp_?toUpper@UnicodeString@icu_71@@QEAAAEAV12@AEBVLocale@2@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::trim(void)" (__imp_?trim@UnicodeString@icu_71@@QEAAAEAV12@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual void __cdecl icu_71::UnicodeString::copy(int,int,int)" (__imp_?copy@UnicodeString@icu_71@@UEAAXHHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual signed char __cdecl icu_71::UnicodeString::hasMetaData(void)const " (__imp_?hasMetaData@UnicodeString@icu_71@@UEBACXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual void __cdecl icu_71::UnicodeString::handleReplaceBetween(int,int,class icu_71::UnicodeString const &)" (__imp_?handleReplaceBetween@UnicodeString@icu_71@@UEAAXHHAEBV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::append(int)" (__imp_?append@UnicodeString@icu_71@@QEAAAEAV12@H@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::setCharAt(int,char16_t)" (__imp_?setCharAt@UnicodeString@icu_71@@QEAAAEAV12@H_S@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::countChar32(int,int)const " (__imp_?countChar32@UnicodeString@icu_71@@QEBAHHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual void __cdecl icu_71::UnicodeString::extractBetween(int,int,class icu_71::UnicodeString &)const " (__imp_?extractBetween@UnicodeString@icu_71@@UEBAXHHAEAV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::char32At(int)const " (__imp_?char32At@UnicodeString@icu_71@@QEBAHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl icu_71::DecimalFormat::~DecimalFormat(void)" (__imp_??1DecimalFormat@icu_71@@UEAA@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::DecimalFormat::DecimalFormat(enum UErrorCode &)" (__imp_??0DecimalFormat@icu_71@@QEAA@AEAW4UErrorCode@@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::Format::format(class icu_71::Formattable const &,class icu_71::UnicodeString &,enum UErrorCode &)const " (__imp_?format@Format@icu_71@@QEBAAEAVUnicodeString@2@AEBVFormattable@2@AEAV32@AEAW4UErrorCode@@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual void * __cdecl icu_71::Formattable::getDynamicClassID(void)const " (__imp_?getDynamicClassID@Formattable@icu_71@@UEBAPEAXXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __cdecl icu_71::Formattable::setString(class icu_71::UnicodeString const &)" (__imp_?setString@Formattable@icu_71@@QEAAXAEBVUnicodeString@2@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __cdecl icu_71::Formattable::setDate(double)" (__imp_?setDate@Formattable@icu_71@@QEAAXN@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __cdecl icu_71::Formattable::setInt64(__int64)" (__imp_?setInt64@Formattable@icu_71@@QEAAX_J@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __cdecl icu_71::Formattable::setLong(int)" (__imp_?setLong@Formattable@icu_71@@QEAAXH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __cdecl icu_71::Formattable::setDouble(double)" (__imp_?setDouble@Formattable@icu_71@@QEAAXN@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::Formattable::getString(class icu_71::UnicodeString &,enum UErrorCode &)const " (__imp_?getString@Formattable@icu_71@@QEBAAEAVUnicodeString@2@AEAV32@AEAW4UErrorCode@@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __int64 __cdecl icu_71::Formattable::getInt64(enum UErrorCode &)const " (__imp_?getInt64@Formattable@icu_71@@QEBA_JAEAW4UErrorCode@@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::Formattable::getLong(enum UErrorCode &)const " (__imp_?getLong@Formattable@icu_71@@QEBAHAEAW4UErrorCode@@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: double __cdecl icu_71::Formattable::getDouble(enum UErrorCode &)const " (__imp_?getDouble@Formattable@icu_71@@QEBANAEAW4UErrorCode@@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::Formattable::isNumeric(void)const " (__imp_?isNumeric@Formattable@icu_71@@QEBACXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: enum icu_71::Formattable::Type __cdecl icu_71::Formattable::getType(void)const " (__imp_?getType@Formattable@icu_71@@QEBA?AW4Type@12@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl icu_71::Formattable::~Formattable(void)" (__imp_??1Formattable@icu_71@@UEAA@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl icu_71::Formattable::operator==(class icu_71::Formattable const &)const " (__imp_??8Formattable@icu_71@@QEBA_NAEBV01@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::Formattable::Formattable(void)" (__imp_??0Formattable@icu_71@@QEAA@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::Formattable::Formattable(double,enum icu_71::Formattable::ISDATE)" (__imp_??0Formattable@icu_71@@QEAA@NW4ISDATE@01@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::Formattable::Formattable(class icu_71::Formattable const &)" (__imp_??0Formattable@icu_71@@QEAA@AEBV01@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual class icu_71::Replaceable * __cdecl icu_71::Replaceable::clone(void)const " (__imp_?clone@Replaceable@icu_71@@UEBAPEAV12@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl icu_71::Replaceable::~Replaceable(void)" (__imp_??1Replaceable@icu_71@@UEAA@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl icu_71::SimpleDateFormat::~SimpleDateFormat(void)" (__imp_??1SimpleDateFormat@icu_71@@UEAA@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::SimpleDateFormat::SimpleDateFormat(enum UErrorCode &)" (__imp_??0SimpleDateFormat@icu_71@@QEAA@AEAW4UErrorCode@@@Z)
bases.obj : error LNK2001: unresolved external symbol ucnv_getStandardName_71
bases.obj : error LNK2001: unresolved external symbol ucnv_getAvailableName_71
bases.obj : error LNK2001: unresolved external symbol ucnv_countAvailable_71
bases.obj : error LNK2001: unresolved external symbol ucnv_fromUChars_71
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: double __cdecl icu_71::Formattable::getDate(enum UErrorCode &)const " (__imp_?getDate@Formattable@icu_71@@QEBANAEAW4UErrorCode@@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::reverse(void)" (__imp_?reverse@UnicodeString@icu_71@@QEAAAEAV12@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::remove(void)" (__imp_?remove@UnicodeString@icu_71@@QEAAAEAV12@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::operator+=(class icu_71::UnicodeString const &)" (__imp_??YUnicodeString@icu_71@@QEAAAEAV01@AEBV01@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::append(char16_t)" (__imp_?append@UnicodeString@icu_71@@QEAAAEAV12@_S@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::append(class icu_71::UnicodeString const &)" (__imp_?append@UnicodeString@icu_71@@QEAAAEAV12@AEBV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::append(class icu_71::UnicodeString const &,int,int)" (__imp_?append@UnicodeString@icu_71@@QEAAAEAV12@AEBV12@HH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::setTo(class icu_71::UnicodeString const &)" (__imp_?setTo@UnicodeString@icu_71@@QEAAAEAV12@AEBV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: void __cdecl icu_71::UnicodeString::setToEmpty(void)" (__imp_?setToEmpty@UnicodeString@icu_71@@AEAAXXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: void __cdecl icu_71::UnicodeString::setZeroLength(void)" (__imp_?setZeroLength@UnicodeString@icu_71@@AEAAXXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: char16_t __cdecl icu_71::UnicodeString::charAt(int)const " (__imp_?charAt@UnicodeString@icu_71@@QEBA_SH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: char16_t __cdecl icu_71::UnicodeString::doCharAt(int)const " (__imp_?doCharAt@UnicodeString@icu_71@@AEBA_SH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __cdecl icu_71::UnicodeString::extract(int,int,class icu_71::UnicodeString &)const " (__imp_?extract@UnicodeString@icu_71@@QEBAXHHAEAV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::replaceBetween(int,int,class icu_71::UnicodeString const &)" (__imp_?replaceBetween@UnicodeString@icu_71@@QEAAAEAV12@HHAEBV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString & __cdecl icu_71::UnicodeString::replace(int,int,char16_t)" (__imp_?replace@UnicodeString@icu_71@@QEAAAEAV12@HH_S@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::endsWith(class icu_71::UnicodeString const &,int,int)const " (__imp_?endsWith@UnicodeString@icu_71@@QEBACAEBV12@HH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::endsWith(class icu_71::UnicodeString const &)const " (__imp_?endsWith@UnicodeString@icu_71@@QEBACAEBV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::startsWith(class icu_71::UnicodeString const &,int,int)const " (__imp_?startsWith@UnicodeString@icu_71@@QEBACAEBV12@HH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::startsWith(class icu_71::UnicodeString const &)const " (__imp_?startsWith@UnicodeString@icu_71@@QEBACAEBV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::lastIndexOf(int,int)const " (__imp_?lastIndexOf@UnicodeString@icu_71@@QEBAHHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::lastIndexOf(char16_t,int)const " (__imp_?lastIndexOf@UnicodeString@icu_71@@QEBAH_SH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::lastIndexOf(int)const " (__imp_?lastIndexOf@UnicodeString@icu_71@@QEBAHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::lastIndexOf(char16_t)const " (__imp_?lastIndexOf@UnicodeString@icu_71@@QEBAH_S@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::lastIndexOf(int,int,int)const " (__imp_?lastIndexOf@UnicodeString@icu_71@@QEBAHHHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::lastIndexOf(char16_t,int,int)const " (__imp_?lastIndexOf@UnicodeString@icu_71@@QEBAH_SHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::lastIndexOf(class icu_71::UnicodeString const &)const " (__imp_?lastIndexOf@UnicodeString@icu_71@@QEBAHAEBV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::lastIndexOf(class icu_71::UnicodeString const &,int)const " (__imp_?lastIndexOf@UnicodeString@icu_71@@QEBAHAEBV12@H@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::lastIndexOf(class icu_71::UnicodeString const &,int,int)const " (__imp_?lastIndexOf@UnicodeString@icu_71@@QEBAHAEBV12@HH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::lastIndexOf(class icu_71::UnicodeString const &,int,int,int,int)const " (__imp_?lastIndexOf@UnicodeString@icu_71@@QEBAHAEBV12@HHHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::indexOf(int,int)const " (__imp_?indexOf@UnicodeString@icu_71@@QEBAHHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::indexOf(char16_t,int)const " (__imp_?indexOf@UnicodeString@icu_71@@QEBAH_SH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::indexOf(int)const " (__imp_?indexOf@UnicodeString@icu_71@@QEBAHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::indexOf(char16_t)const " (__imp_?indexOf@UnicodeString@icu_71@@QEBAH_S@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::indexOf(int,int,int)const " (__imp_?indexOf@UnicodeString@icu_71@@QEBAHHHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::indexOf(char16_t,int,int)const " (__imp_?indexOf@UnicodeString@icu_71@@QEBAH_SHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::indexOf(class icu_71::UnicodeString const &,int,int)const " (__imp_?indexOf@UnicodeString@icu_71@@QEBAHAEBV12@HH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::indexOf(class icu_71::UnicodeString const &,int)const " (__imp_?indexOf@UnicodeString@icu_71@@QEBAHAEBV12@H@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::indexOf(class icu_71::UnicodeString const &)const " (__imp_?indexOf@UnicodeString@icu_71@@QEBAHAEBV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::indexOf(class icu_71::UnicodeString const &,int,int,int,int)const " (__imp_?indexOf@UnicodeString@icu_71@@QEBAHAEBV12@HHHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::caseCompareBetween(int,int,class icu_71::UnicodeString const &,int,int,unsigned int)const " (__imp_?caseCompareBetween@UnicodeString@icu_71@@QEBACHHAEBV12@HHI@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::caseCompare(int,int,class icu_71::UnicodeString const &,unsigned int)const " (__imp_?caseCompare@UnicodeString@icu_71@@QEBACHHAEBV12@I@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::caseCompare(class icu_71::UnicodeString const &,unsigned int)const " (__imp_?caseCompare@UnicodeString@icu_71@@QEBACAEBV12@I@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::compareCodePointOrderBetween(int,int,class icu_71::UnicodeString const &,int,int)const " (__imp_?compareCodePointOrderBetween@UnicodeString@icu_71@@QEBACHHAEBV12@HH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::compareCodePointOrder(int,int,class icu_71::UnicodeString const &)const " (__imp_?compareCodePointOrder@UnicodeString@icu_71@@QEBACHHAEBV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::compareCodePointOrder(class icu_71::UnicodeString const &)const " (__imp_?compareCodePointOrder@UnicodeString@icu_71@@QEBACAEBV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::compareBetween(int,int,class icu_71::UnicodeString const &,int,int)const " (__imp_?compareBetween@UnicodeString@icu_71@@QEBACHHAEBV12@HH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::compare(int,int,class icu_71::UnicodeString const &)const " (__imp_?compare@UnicodeString@icu_71@@QEBACHHAEBV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::compare(class icu_71::UnicodeString const &)const " (__imp_?compare@UnicodeString@icu_71@@QEBACAEBV12@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::operator<=(class icu_71::UnicodeString const &)const " (__imp_??NUnicodeString@icu_71@@QEBACAEBV01@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::operator>=(class icu_71::UnicodeString const &)const " (__imp_??PUnicodeString@icu_71@@QEBACAEBV01@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::operator<(class icu_71::UnicodeString const &)const " (__imp_??MUnicodeString@icu_71@@QEBACAEBV01@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::operator>(class icu_71::UnicodeString const &)const " (__imp_??OUnicodeString@icu_71@@QEBACAEBV01@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl icu_71::UnicodeString::operator!=(class icu_71::UnicodeString const &)const " (__imp_??9UnicodeString@icu_71@@QEBA_NAEBV01@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl icu_71::UnicodeString::operator==(class icu_71::UnicodeString const &)const " (__imp_??8UnicodeString@icu_71@@QEBA_NAEBV01@@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: char16_t const * __cdecl icu_71::UnicodeString::getBuffer(void)const " (__imp_?getBuffer@UnicodeString@icu_71@@QEBAPEB_SXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeString::isBogus(void)const " (__imp_?isBogus@UnicodeString@icu_71@@QEBACXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::hashCode(void)const " (__imp_?hashCode@UnicodeString@icu_71@@QEBAHXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeString::length(void)const " (__imp_?length@UnicodeString@icu_71@@QEBAHXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: int __cdecl icu_71::UnicodeString::getShortLength(void)const " (__imp_?getShortLength@UnicodeString@icu_71@@AEBAHXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: signed char __cdecl icu_71::UnicodeString::hasShortLength(void)const " (__imp_?hasShortLength@UnicodeString@icu_71@@AEBACXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::UnicodeString::UnicodeString(void)" (__imp_??0UnicodeString@icu_71@@QEAA@XZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: char16_t const * __cdecl icu_71::UnicodeString::getArrayStart(void)const " (__imp_?getArrayStart@UnicodeString@icu_71@@AEBAPEB_SXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::Replaceable::char32At(int)const " (__imp_?char32At@Replaceable@icu_71@@QEBAHH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: char16_t __cdecl icu_71::Replaceable::charAt(int)const " (__imp_?charAt@Replaceable@icu_71@@QEBA_SH@Z)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::Replaceable::length(void)const " (__imp_?length@Replaceable@icu_71@@QEBAHXZ)
bases.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) protected: __cdecl icu_71::Replaceable::Replaceable(void)" (__imp_??0Replaceable@icu_71@@IEAA@XZ)
< trimmed >
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::closeOver(int)" (__imp_?closeOver@UnicodeSet@icu_71@@QEAAAEAV12@H@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::complement(int)" (__imp_?complement@UnicodeSet@icu_71@@QEAAAEAV12@H@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::complement(class icu_71::UnicodeString const &)" (__imp_?complement@UnicodeSet@icu_71@@QEAAAEAV12@AEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::remove(int)" (__imp_?remove@UnicodeSet@icu_71@@QEAAAEAV12@H@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::remove(class icu_71::UnicodeString const &)" (__imp_?remove@UnicodeSet@icu_71@@QEAAAEAV12@AEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::retain(int)" (__imp_?retain@UnicodeSet@icu_71@@QEAAAEAV12@H@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class icu_71::UnicodeSet * __cdecl icu_71::UnicodeSet::createFromAll(class icu_71::UnicodeString const &)" (__imp_?createFromAll@UnicodeSet@icu_71@@SAPEAV12@AEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class icu_71::UnicodeSet * __cdecl icu_71::UnicodeSet::createFrom(class icu_71::UnicodeString const &)" (__imp_?createFrom@UnicodeSet@icu_71@@SAPEAV12@AEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::removeAll(class icu_71::UnicodeString const &)" (__imp_?removeAll@UnicodeSet@icu_71@@QEAAAEAV12@AEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::complementAll(class icu_71::UnicodeString const &)" (__imp_?complementAll@UnicodeSet@icu_71@@QEAAAEAV12@AEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::retainAll(class icu_71::UnicodeString const &)" (__imp_?retainAll@UnicodeSet@icu_71@@QEAAAEAV12@AEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::addAll(class icu_71::UnicodeString const &)" (__imp_?addAll@UnicodeSet@icu_71@@QEAAAEAV12@AEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::add(int)" (__imp_?add@UnicodeSet@icu_71@@QEAAAEAV12@H@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::add(class icu_71::UnicodeString const &)" (__imp_?add@UnicodeSet@icu_71@@QEAAAEAV12@AEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeSet::charAt(int)const " (__imp_?charAt@UnicodeSet@icu_71@@QEBAHH@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeSet::spanBack(char16_t const *,int,enum USetSpanCondition)const " (__imp_?spanBack@UnicodeSet@icu_71@@QEBAHPEB_SHW4USetSpanCondition@@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeSet::span(char16_t const *,int,enum USetSpanCondition)const " (__imp_?span@UnicodeSet@icu_71@@QEBAHPEB_SHW4USetSpanCondition@@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeSet::containsNone(int,int)const " (__imp_?containsNone@UnicodeSet@icu_71@@QEBACHH@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeSet::containsNone(class icu_71::UnicodeString const &)const " (__imp_?containsNone@UnicodeSet@icu_71@@QEBACAEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeSet::containsAll(class icu_71::UnicodeString const &)const " (__imp_?containsAll@UnicodeSet@icu_71@@QEBACAEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeSet::contains(class icu_71::UnicodeString const &)const " (__imp_?contains@UnicodeSet@icu_71@@QEBACAEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::applyPropertyAlias(class icu_71::UnicodeString const &,class icu_71::UnicodeString const &,enum UErrorCode &)" (__imp_?applyPropertyAlias@UnicodeSet@icu_71@@QEAAAEAV12@AEBVUnicodeString@2@0AEAW4UErrorCode@@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::applyIntPropertyValue(enum UProperty,int,enum UErrorCode &)" (__imp_?applyIntPropertyValue@UnicodeSet@icu_71@@QEAAAEAV12@W4UProperty@@HAEAW4UErrorCode@@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::applyPattern(class icu_71::UnicodeString const &,enum UErrorCode &)" (__imp_?applyPattern@UnicodeSet@icu_71@@QEAAAEAV12@AEBVUnicodeString@2@AEAW4UErrorCode@@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static signed char __cdecl icu_71::UnicodeSet::resemblesPattern(class icu_71::UnicodeString const &,int)" (__imp_?resemblesPattern@UnicodeSet@icu_71@@SACAEBVUnicodeString@2@H@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeSet & __cdecl icu_71::UnicodeSet::set(int,int)" (__imp_?set@UnicodeSet@icu_71@@QEAAAEAV12@HH@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::UnicodeSet::UnicodeSet(int,int)" (__imp_??0UnicodeSet@icu_71@@QEAA@HH@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::UnicodeSet::UnicodeSet(class icu_71::UnicodeString const &,enum UErrorCode &)" (__imp_??0UnicodeSet@icu_71@@QEAA@AEBVUnicodeString@1@AEAW4UErrorCode@@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __cdecl icu_71::UnicodeSet::setToBogus(void)" (__imp_?setToBogus@UnicodeSet@icu_71@@QEAAXXZ)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual void * __cdecl icu_71::UnicodeSetIterator::getDynamicClassID(void)const " (__imp_?getDynamicClassID@UnicodeSetIterator@icu_71@@UEBAPEAXXZ)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __cdecl icu_71::UnicodeSetIterator::reset(class icu_71::UnicodeSet const &)" (__imp_?reset@UnicodeSetIterator@icu_71@@QEAAXAEBVUnicodeSet@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __cdecl icu_71::UnicodeSetIterator::reset(void)" (__imp_?reset@UnicodeSetIterator@icu_71@@QEAAXXZ)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeSetIterator::nextRange(void)" (__imp_?nextRange@UnicodeSetIterator@icu_71@@QEAACXZ)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeSetIterator::next(void)" (__imp_?next@UnicodeSetIterator@icu_71@@QEAACXZ)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class icu_71::UnicodeString const & __cdecl icu_71::UnicodeSetIterator::getString(void)" (__imp_?getString@UnicodeSetIterator@icu_71@@QEAAAEBVUnicodeString@2@XZ)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl icu_71::UnicodeSetIterator::~UnicodeSetIterator(void)" (__imp_??1UnicodeSetIterator@icu_71@@UEAA@XZ)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::UnicodeSetIterator::UnicodeSetIterator(class icu_71::UnicodeSet const &)" (__imp_??0UnicodeSetIterator@icu_71@@QEAA@AEBVUnicodeSet@1@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl icu_71::UnicodeSetIterator::UnicodeSetIterator(void)" (__imp_??0UnicodeSetIterator@icu_71@@QEAA@XZ)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeSetIterator::getCodepointEnd(void)const " (__imp_?getCodepointEnd@UnicodeSetIterator@icu_71@@QEBAHXZ)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_71::UnicodeSetIterator::getCodepoint(void)const " (__imp_?getCodepoint@UnicodeSetIterator@icu_71@@QEBAHXZ)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeSetIterator::isString(void)const " (__imp_?isString@UnicodeSetIterator@icu_71@@QEBACXZ)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeSet::isBogus(void)const " (__imp_?isBogus@UnicodeSet@icu_71@@QEBACXZ)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeSet::containsSome(class icu_71::UnicodeString const &)const " (__imp_?containsSome@UnicodeSet@icu_71@@QEBACAEBVUnicodeString@2@@Z)
unicodeset.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: signed char __cdecl icu_71::UnicodeSet::containsSome(int,int)const " (__imp_?containsSome@UnicodeSet@icu_71@@QEBACHH@Z)
build\lib.win-amd64-cpython-39\icu\_icu_.cp39-win_amd64.pyd : fatal error LNK1120: 2178 unresolved externals
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30133\\bin\\HostX86\\x64\\link.exe' failed with exit code 1120
```
This looks to me like I completely misconfigured something, but not sure what (forgive me on my ignorance if it's something too obvious)?https://gitlab.pyicu.org/main/pyicu/-/issues/159Strange behaviour observed2023-01-20T22:22:29-08:00Nemphra IficianaStrange behaviour observedI noticed a strange behaviour when sorting lists with text from two different scripts. This post on SO piqued my interest: https://stackoverflow.com/questions/74058262/icu-sort-strings-based-on-2-different-locales.
When using the PyChar...I noticed a strange behaviour when sorting lists with text from two different scripts. This post on SO piqued my interest: https://stackoverflow.com/questions/74058262/icu-sort-strings-based-on-2-different-locales.
When using the PyCharm run window, the ASCII characters are sorted first, but when using the terminal the non-ASCII words are sorted first. I couldn't find an explanation myself so asking here.
![image](/uploads/80d23ad1961ed9884e6d69d95f4b9f58/image.png)
Here is the code I ran:
```py
from icu import Collator, Locale
mylist = ["abc", "xyz", "pqr", "الفبای", "فارس"]
collator = Collator.createInstance(Locale("fa_IR.UTF-8"))
mylist.sort(key=collator.getSortKey)
print(mylist)
```
System details: PyICU 2.9, Python 3.11 on Windows 11 (using unofficial builds from https://www.lfd.uci.edu/~gohlke/pythonlibs/)
Thanks in advance!https://gitlab.pyicu.org/main/pyicu/-/issues/158Possible to remove tkinter from dependencies?2023-01-20T22:22:07-08:00Michael LiPossible to remove tkinter from dependencies?Hi PyICU team! I am wondering if it is possible to remove the tkinter dependency -- the subset of Python that I am using does not include tkinter as it is quite difficult to build. I would also generally be curious to learn more about th...Hi PyICU team! I am wondering if it is possible to remove the tkinter dependency -- the subset of Python that I am using does not include tkinter as it is quite difficult to build. I would also generally be curious to learn more about the ways that tkinter is specifically used within PyICU. Thank you for your time and consideration and I hope to hear from you soon!https://gitlab.pyicu.org/main/pyicu/-/issues/157Provide wheels2022-11-17T10:14:03-08:00Brendan AbolivierProvide wheelsIt would be helpful if the PyICU project provided wheels that include built versions of ICU to avoid forcing a dependency on `pkg-config` and `libicu-dev`. https://pypi.org/project/PyICU-binary looks like it does just that, but does not ...It would be helpful if the PyICU project provided wheels that include built versions of ICU to avoid forcing a dependency on `pkg-config` and `libicu-dev`. https://pypi.org/project/PyICU-binary looks like it does just that, but does not look like it's maintained by the PyICU maintainers and looks a bit out of date.https://gitlab.pyicu.org/main/pyicu/-/issues/156No stubs provided for typing2022-11-21T04:51:47-08:00Gellért KovácsNo stubs provided for typingStatic analysis tools can't scrape compiled code to check type correctness, they rely on type stubs files (.pyi) to get the information.
Currently, pylance reports "... is not a known member of module" for every exported object besides ...Static analysis tools can't scrape compiled code to check type correctness, they rely on type stubs files (.pyi) to get the information.
Currently, pylance reports "... is not a known member of module" for every exported object besides the two error classes defined in python.
Is there interest in adding typing support? Is help needed?https://gitlab.pyicu.org/main/pyicu/-/issues/155SystemError: invalid maximum character passed to PyUnicode_New2022-10-25T11:06:23-07:00Behnam EsfahbodSystemError: invalid maximum character passed to PyUnicode_NewLooks like conversion from `icu.UnicodeString` (UTF-16) to `PyUnicode_New` is breaking when a PUA-B (16) character is used along with a character from any other planes besides BMP (0) and PUA-B (16).
## How to repro:
```python
In [120]...Looks like conversion from `icu.UnicodeString` (UTF-16) to `PyUnicode_New` is breaking when a PUA-B (16) character is used along with a character from any other planes besides BMP (0) and PUA-B (16).
## How to repro:
```python
In [120]: icu.Transliterator.createInstance("NFC").transliterate("Hello \U00010001")
Out[120]: 'Hello 𐀁'
In [121]: icu.Transliterator.createInstance("NFC").transliterate("Hello \U00100010")
Out[121]: 'Hello \U00100010'
In [122]: icu.Transliterator.createInstance("NFC").transliterate("Hello \U00010001\U00100010")
Traceback (most recent call last):
File "/main_instance_shell/besfahbod/venv3.9/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 3397, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-122-f76c5ffe0345>", line 1, in <cell line: 1>
icu.Transliterator.createInstance("NFC").transliterate("Hello \U00010001\U00100010")
SystemError: invalid maximum character passed to PyUnicode_New
---------------------------------------------------------------------------
SystemError Traceback (most recent call last)
Input In [122], in <cell line: 1>()
----> 1 icu.Transliterator.createInstance("NFC").transliterate("Hello \U00010001\U00100010")
SystemError: invalid maximum character passed to PyUnicode_New
```
or:
```python
In [127]: icu.RegexPattern.compile("\p{N}").matcher("Hello \U00010001").replaceAll("")
Out[127]: 'Hello 𐀁'
In [128]: icu.RegexPattern.compile("\p{N}").matcher("Hello \U00100010").replaceAll("")
Out[128]: 'Hello \U00100010'
In [129]: icu.RegexPattern.compile("\p{N}").matcher("Hello \U00010001\U00100010").replaceAll("")
Traceback (most recent call last):
File "/main_instance_shell/besfahbod/venv3.9/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 3397, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-129-4515d7975282>", line 1, in <cell line: 1>
icu.RegexPattern.compile("\p{N}").matcher("Hello \U00010001\U00100010").replaceAll("")
SystemError: invalid maximum character passed to PyUnicode_New
---------------------------------------------------------------------------
SystemError Traceback (most recent call last)
Input In [129], in <cell line: 1>()
----> 1 icu.RegexPattern.compile("\p{N}").matcher("Hello \U00010001\U00100010").replaceAll("")
SystemError: invalid maximum character passed to PyUnicode_New
```
## Versions
```
In [130]: icu.VERSION
Out[130]: '2.9'
In [131]: icu.ICU_VERSION
Out[131]: '71.1'
```https://gitlab.pyicu.org/main/pyicu/-/issues/154Opening ResourceBundles that failed to open the first time2022-08-12T00:58:57-07:00Nick SpacekOpening ResourceBundles that failed to open the first timeLet me know if there's a more appropriate forum to discuss. I'm running into an issue loading ResourceBundles. I have an implementation that fetches ResourceBundles from a remote location and places them into the local fs. If they are pr...Let me know if there's a more appropriate forum to discuss. I'm running into an issue loading ResourceBundles. I have an implementation that fetches ResourceBundles from a remote location and places them into the local fs. If they are present the first time, they open without issue. However, if I attempt to open that location before the files are present, it fails (expected). What I did not expect was that after the files are placed in the location, opening the ResourceBundle still fails.
I'm not sure how the interplay between the two languages works, and from digging through the ICU4C library a bit there seems to be a lot going on to memory-map Resource Bundle files. Is it possible that the failure is being cached and preventing use of the path later? If so, is it possible to flush or evict these entries?https://gitlab.pyicu.org/main/pyicu/-/issues/153PyICU build failing on Mac OS Monterey2024-03-02T17:43:03-08:00Abbas AmirPyICU build failing on Mac OS Monterey**Issue Description**
We are trying to build pyicu on a new macbook with Apple silicon that apparently comes with the latest MacOS Monterey. The build is failing with below error and we believe (based on [this](https://www.mobileread.co...**Issue Description**
We are trying to build pyicu on a new macbook with Apple silicon that apparently comes with the latest MacOS Monterey. The build is failing with below error and we believe (based on [this](https://www.mobileread.com/forums/showthread.php?t=335116&page=3)) it is due to the fact that stat64 isn't supported by the latest mac os anymore. It has been deprecated for quite some time now but now eventually it is completely incompatible with Monterey.
The steps we tried are from this link - https://programmerah.com/solved-pip-install-icu-failed-command-python-setup-py-egg_info-failed-with-error-code-1-in-28259/ These worked just fine on non-M1 machines but throwing below errors when running the build command on an M1 machine with Monterey installed.
Note: ICU 70.1 was used and it was installed using brew
**We would like to know**
1. if our findings are correct
2. if there are any plans to fix this in the near future
3. if anybody has any workarounds until a permanent fix is found
**Context**
We had to fall back to building and installing pyicu from source after failing to do so via pip install and many of our mac (non-M1) machines. The issue we faced there is for another day.
**Error Trace**
```
./common.h:459:19: error: use of undeclared identifier 'UnicodeString'; did you mean 'isUnicodeString'?
int32_t toUChar32(UnicodeString& u, UChar32 *c, UErrorCode& status);
^~~~~~~~~~~~~
isUnicodeString
./common.h:458:5: note: 'isUnicodeString' declared here
int isUnicodeString(PyObject *arg);
^
./common.h:459:37: error: unexpected type name 'UChar32': expected expression
int32_t toUChar32(UnicodeString& u, UChar32 *c, UErrorCode& status);
^
./common.h:459:46: error: use of undeclared identifier 'c'
int32_t toUChar32(UnicodeString& u, UChar32 *c, UErrorCode& status);
^
./common.h:459:49: error: unexpected type name 'UErrorCode': expected expression
int32_t toUChar32(UnicodeString& u, UChar32 *c, UErrorCode& status);
^
./common.h:459:61: error: use of undeclared identifier 'status'
int32_t toUChar32(UnicodeString& u, UChar32 *c, UErrorCode& status);
^
./common.h:459:34: error: use of undeclared identifier 'u'
int32_t toUChar32(UnicodeString& u, UChar32 *c, UErrorCode& status);
^
./common.h:459:61: warning: 'stat64' is deprecated: first deprecated in macOS 10.6 [-Wdeprecated-declarations]
int32_t toUChar32(UnicodeString& u, UChar32 *c, UErrorCode& status);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:427:9: note: 'stat64' has been explicitly marked deprecated here
int stat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
202 warnings and 20 errors generated.
error: command '/usr/bin/gcc' failed with exit status 1
```https://gitlab.pyicu.org/main/pyicu/-/issues/152Tests fail for testAcceptLanguage2021-09-11T08:52:33-07:00Axel BraunTests fail for testAcceptLanguageHi,
I noticed that with the new version tests fail on openSUSE Leap 15.x, see
https://build.opensuse.org/package/live_build_log/devel:languages:python/python-PyICU/openSUSE_Leap_15.3/x86_64 :
`
[ 199s] ===============================...Hi,
I noticed that with the new version tests fail on openSUSE Leap 15.x, see
https://build.opensuse.org/package/live_build_log/devel:languages:python/python-PyICU/openSUSE_Leap_15.3/x86_64 :
`
[ 199s] ======================================================================
[ 199s] ERROR: testAcceptLanguage (test.test_LocaleMatcher.TestLocaleMatcher)
[ 199s] ----------------------------------------------------------------------
[ 199s] Traceback (most recent call last):
[ 199s] File "/home/abuild/rpmbuild/BUILD/PyICU-2.7.4/test/test_LocaleMatcher.py", line 65, in testAcceptLanguage
[ 199s] ('fr-CH', 'fr', 'en', 'de', '*'), ('de-AT', 'fr-CA'))
[ 199s] ValueError: resulting locale id length > 128
[ 199s]
[ 199s] ======================================================================
[ 199s] ERROR: testAcceptLanguageFromHTTP (test.test_LocaleMatcher.TestLocaleMatcher)
[ 199s] ----------------------------------------------------------------------
[ 199s] Traceback (most recent call last):
[ 199s] File "/home/abuild/rpmbuild/BUILD/PyICU-2.7.4/test/test_LocaleMatcher.py", line 85, in testAcceptLanguageFromHTTP
[ 199s] 'fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5', ('de-AT', 'fr-CA'))
[ 199s] ValueError: resulting locale id length > 128
[ 199s]
[ 199s] ----------------------------------------------------------------------
`
Anything I could do from the build side?https://gitlab.pyicu.org/main/pyicu/-/issues/151Reference unittests in the readme as examples2021-06-16T14:06:38-07:00Nils KReference unittests in the readme as examplesCurrently this package has no documentation besides what can be seen in the readme.
While much information can be obtained from the official ICU4C documentation this is not very accessible to starters
and the mapping to python is not alw...Currently this package has no documentation besides what can be seen in the readme.
While much information can be obtained from the official ICU4C documentation this is not very accessible to starters
and the mapping to python is not always self-evident.
It would therefore be great if this package had some examples etc.
I already took a look into the unittest.
My feeling is that some of the tests already contain 90% of what most people use this package for.
Therefore it would be a good idea to link to the tests directory in the readme and tell people to look there for some intermediate examples.
Additionally one could add docstrings to the unittests and extend the current set of tests - which would help both the maintainers and users.https://gitlab.pyicu.org/main/pyicu/-/issues/150Error when installing PyICU on Heroku2022-11-17T09:47:24-08:00Melissa van RensburgError when installing PyICU on HerokuI am trying to deploy my Python app on Heroku, but have been unsuccessful owing to PyICU not installing correctly. I've confirmed that this is the only issue with my deployment; when I remove PyICU from my requirements file, everything w...I am trying to deploy my Python app on Heroku, but have been unsuccessful owing to PyICU not installing correctly. I've confirmed that this is the only issue with my deployment; when I remove PyICU from my requirements file, everything works. But my site can't work without it. I've also tried downloading the .whl file and then adding that to my requirements file, but then I get another error:
`ERROR: PyICU-2.7.3-cp38-cp38m-win_amd64.whl is not a supported wheel on this platform.` I don't understand why - it's the correct Python and os version.
Here are the relevant excerpts from the build log:
```
-----> Building on the Heroku-20 stack
-----> Using buildpack: heroku/python
-----> Python app detected
-----> Using Python version specified in runtime.txt
-----> Installing python-3.8.10
-----> Installing pip 20.2.4, setuptools 47.1.1 and wheel 0.36.2
-----> Installing SQLite3
-----> Installing requirements with pip
...
Building wheel for PyICU (setup.py): started
Building wheel for PyICU (setup.py): finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /app/.heroku/python/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-e4xp9bv_/pyicu/setup.py'"'"'; __file__='"'"'/tmp/pip-install-e4xp9bv_/pyicu/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-zeqs7m46
cwd: /tmp/pip-install-e4xp9bv_/pyicu/
Complete output (90 lines):
(running 'icu-config --version')
(running 'pkg-config --modversion icu-i18n')
Building PyICU 2.4.3 for ICU 66.1
(running 'icu-config --cxxflags --cppflags')
Could not configure CFLAGS with icu-config
(running 'pkg-config --cflags icu-i18n')
(running 'icu-config --ldflags')
Could not configure LFLAGS with icu-config
(running 'pkg-config --libs icu-i18n')
Adding LFLAGS="-licui18n -licuuc -licudata" from /usr/bin/pkg-config
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.7
copying PyICU.py -> build/lib.linux-x86_64-3.7
creating build/lib.linux-x86_64-3.7/icu
copying icu/__init__.py -> build/lib.linux-x86_64-3.7/icu
running build_ext
building '_icu' extension
creating build/temp.linux-x86_64-3.7
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/app/.heroku/python/include/python3.7m -c _icu.cpp -o build/temp.linux-x86_64-3.7/_icu.o -DPYICU_VER="2.4.3"
In file included from /usr/include/c++/9/clocale:42,
from /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h:41,
from /usr/include/c++/9/bits/localefwd.h:40,
from /usr/include/c++/9/string:43,
from /usr/include/unicode/std_string.h:37,
from /usr/include/unicode/unistr.h:38,
from common.h:106,
from _icu.cpp:27:
./locale.h:29:23: error: ‘Locale’ was not declared in this scope; did you mean ‘locale_t’?
29 | PyObject *wrap_Locale(Locale *locale, int flags);
| ^~~~~~
| locale_t
./locale.h:29:31: error: ‘locale’ was not declared in this scope; did you mean ‘locale_t’?
29 | PyObject *wrap_Locale(Locale *locale, int flags);
| ^~~~~~
| locale_t
./locale.h:29:39: error: expected primary-expression before ‘int’
29 | PyObject *wrap_Locale(Locale *locale, int flags);
| ^~~
./locale.h:29:48: error: expression list treated as compound expression in initializer [-fpermissive]
29 | PyObject *wrap_Locale(Locale *locale, int flags);
| ^
./locale.h:30:29: error: ‘Locale’ does not name a type; did you mean ‘locale_t’?
30 | PyObject *wrap_Locale(const Locale &locale);
| ^~~~~~
| locale_t
./locale.h:30:43: error: ‘PyObject* wrap_Locale(const int&)’ redeclared as different kind of entity
30 | PyObject *wrap_Locale(const Locale &locale);
| ^
./locale.h:29:11: note: previous declaration ‘PyObject* wrap_Locale’
29 | PyObject *wrap_Locale(Locale *locale, int flags);
| ^~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h:41,
from /usr/include/c++/9/bits/localefwd.h:40,
from /usr/include/c++/9/string:43,
from /usr/include/unicode/std_string.h:37,
from /usr/include/unicode/unistr.h:38,
from common.h:106,
from _icu.cpp:27:
/usr/include/c++/9/clocale:53:11: error: ‘::lconv’ has not been declared
53 | using ::lconv;
| ^~~~~
/usr/include/c++/9/clocale:54:11: error: ‘::setlocale’ has not been declared
54 | using ::setlocale;
| ^~~~~~~~~
/usr/include/c++/9/clocale:55:11: error: ‘::localeconv’ has not been declared
55 | using ::localeconv;
| ^~~~~~~~~~
In file included from /usr/include/c++/9/bits/localefwd.h:40,
from /usr/include/c++/9/string:43,
from /usr/include/unicode/std_string.h:37,
from /usr/include/unicode/unistr.h:38,
from common.h:106,
from _icu.cpp:27:
/usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h:52:23: error: ‘uselocale’ was not declared in this scope; did you mean ‘u_fsetlocale’?
52 | extern "C" __typeof(uselocale) __uselocale;
| ^~~~~~~~~
| u_fsetlocale
/usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h: In function ‘int std::__convert_from_v(__locale_struct* const&, char*, int, const char*, ...)’:
/usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h:75:53: error: ‘__gnu_cxx::__uselocale’ cannot be used as a function
75 | __c_locale __old = __gnu_cxx::__uselocale(__cloc);
| ^
/usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h:100:33: error: ‘__gnu_cxx::__uselocale’ cannot be used as a function
100 | __gnu_cxx::__uselocale(__old);
| ^
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for PyICU
Running setup.py clean for PyICU
Running setup.py install for PyICU: started
Running setup.py install for PyICU: finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /app/.heroku/python/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-e4xp9bv_/pyicu/setup.py'"'"'; __file__='"'"'/tmp/pip-install-e4xp9bv_/pyicu/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-bdqgdfr6/install-record.txt --single-version-externally-managed --compile --install-headers /app/.heroku/python/include/python3.7m/PyICU
cwd: /tmp/pip-install-e4xp9bv_/pyicu/
Complete output (90 lines):
(running 'icu-config --version')
(running 'pkg-config --modversion icu-i18n')
Building PyICU 2.4.3 for ICU 66.1
(running 'icu-config --cxxflags --cppflags')
Could not configure CFLAGS with icu-config
(running 'pkg-config --cflags icu-i18n')
(running 'icu-config --ldflags')
Could not configure LFLAGS with icu-config
(running 'pkg-config --libs icu-i18n')
Adding LFLAGS="-licui18n -licuuc -licudata" from /usr/bin/pkg-config
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.7
copying PyICU.py -> build/lib.linux-x86_64-3.7
creating build/lib.linux-x86_64-3.7/icu
copying icu/__init__.py -> build/lib.linux-x86_64-3.7/icu
running build_ext
building '_icu' extension
creating build/temp.linux-x86_64-3.7
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/app/.heroku/python/include/python3.7m -c _icu.cpp -o build/temp.linux-x86_64-3.7/_icu.o -DPYICU_VER="2.4.3"
In file included from /usr/include/c++/9/clocale:42,
from /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h:41,
from /usr/include/c++/9/bits/localefwd.h:40,
from /usr/include/c++/9/string:43,
from /usr/include/unicode/std_string.h:37,
from /usr/include/unicode/unistr.h:38,
from common.h:106,
from _icu.cpp:27:
./locale.h:29:23: error: ‘Locale’ was not declared in this scope; did you mean ‘locale_t’?
29 | PyObject *wrap_Locale(Locale *locale, int flags);
| ^~~~~~
| locale_t
./locale.h:29:31: error: ‘locale’ was not declared in this scope; did you mean ‘locale_t’?
29 | PyObject *wrap_Locale(Locale *locale, int flags);
| ^~~~~~
| locale_t
./locale.h:29:39: error: expected primary-expression before ‘int’
29 | PyObject *wrap_Locale(Locale *locale, int flags);
| ^~~
./locale.h:29:48: error: expression list treated as compound expression in initializer [-fpermissive]
29 | PyObject *wrap_Locale(Locale *locale, int flags);
| ^
./locale.h:30:29: error: ‘Locale’ does not name a type; did you mean ‘locale_t’?
30 | PyObject *wrap_Locale(const Locale &locale);
| ^~~~~~
| locale_t
./locale.h:30:43: error: ‘PyObject* wrap_Locale(const int&)’ redeclared as different kind of entity
30 | PyObject *wrap_Locale(const Locale &locale);
| ^
./locale.h:29:11: note: previous declaration ‘PyObject* wrap_Locale’
29 | PyObject *wrap_Locale(Locale *locale, int flags);
| ^~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h:41,
from /usr/include/c++/9/bits/localefwd.h:40,
from /usr/include/c++/9/string:43,
from /usr/include/unicode/std_string.h:37,
from /usr/include/unicode/unistr.h:38,
from common.h:106,
from _icu.cpp:27:
/usr/include/c++/9/clocale:53:11: error: ‘::lconv’ has not been declared
53 | using ::lconv;
| ^~~~~
/usr/include/c++/9/clocale:54:11: error: ‘::setlocale’ has not been declared
54 | using ::setlocale;
| ^~~~~~~~~
/usr/include/c++/9/clocale:55:11: error: ‘::localeconv’ has not been declared
55 | using ::localeconv;
| ^~~~~~~~~~
In file included from /usr/include/c++/9/bits/localefwd.h:40,
from /usr/include/c++/9/string:43,
from /usr/include/unicode/std_string.h:37,
from /usr/include/unicode/unistr.h:38,
from common.h:106,
from _icu.cpp:27:
/usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h:52:23: error: ‘uselocale’ was not declared in this scope; did you mean ‘u_fsetlocale’?
52 | extern "C" __typeof(uselocale) __uselocale;
| ^~~~~~~~~
| u_fsetlocale
/usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h: In function ‘int std::__convert_from_v(__locale_struct* const&, char*, int, const char*, ...)’:
/usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h:75:53: error: ‘__gnu_cxx::__uselocale’ cannot be used as a function
75 | __c_locale __old = __gnu_cxx::__uselocale(__cloc);
| ^
/usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h:100:33: error: ‘__gnu_cxx::__uselocale’ cannot be used as a function
100 | __gnu_cxx::__uselocale(__old);
| ^
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /app/.heroku/python/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-e4xp9bv_/pyicu/setup.py'"'"'; __file__='"'"'/tmp/pip-install-e4xp9bv_/pyicu/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-bdqgdfr6/install-record.txt --single-version-externally-managed --compile --install-headers /app/.heroku/python/include/python3.7m/PyICU Check the logs for full command output.
! Push rejected, failed to compile Python app.
! Push failed
```
How should I go about correctly installing PyICU on Heroku so my app can work correctly?https://gitlab.pyicu.org/main/pyicu/-/issues/149RFE: add `uloc_acceptLanguageFromHTTP` wrapper2021-05-04T08:48:59-07:00samuel bovéeRFE: add `uloc_acceptLanguageFromHTTP` wrapperHi,
while I search a Python function equivalent to [Locale::acceptFromHttp](https://www.php.net/manual/fr/locale.acceptfromhttp.php), I have understood that their implementation is just a wrapper around
[uloc_acceptLanguageFromHTTP](htt...Hi,
while I search a Python function equivalent to [Locale::acceptFromHttp](https://www.php.net/manual/fr/locale.acceptfromhttp.php), I have understood that their implementation is just a wrapper around
[uloc_acceptLanguageFromHTTP](https://unicode-org.github.io/icu-docs/apidoc/dev/icu4c/uloc_8h.html#a8cda9bdf74213c5af1f79c339351aa70).
I think it will be a good idea to implement a wrapper for this function in PyICU too, any HTTP server with Python backend may be interested to use it. It is at least my case.
Please consider this request, and have a good day.