Don't test datetime in locales with no encoding
authorDebian Science Team <debian-science-maintainers@lists.alioth.debian.org>
Fri, 28 Jan 2022 19:22:53 +0000 (19:22 +0000)
committerRebecca N. Palmer <rebecca_palmer@zoho.com>
Fri, 28 Jan 2022 19:22:53 +0000 (19:22 +0000)
Some datetime tests run the test in every available locale.
If this set includes locales without an encoding (currently dsb_DE
and sah_RU), it fails due to Python bug
https://bugs.python.org/issue20088

Failure log
https://tests.reproducible-builds.org/debian/rbuild/buster/amd64/pandas_0.23.3+dfsg-3.rbuild.log.gz

Author: Rebecca N. Palmer <rebecca_palmer@zoho.com>
Bug: https://github.com/pandas-dev/pandas/issues/20957
Forwarded: no

Gbp-Pq: Name skip_noencoding_locales.patch

pandas/_config/localization.py

index bc76aca93da2ae19785ab91f3e1583b2afda1d7a..317f71970333981b5a04e6b30200d54919dcc6f8 100644 (file)
@@ -99,7 +99,10 @@ def _valid_locales(locales, normalize):
 
 
 def _default_locale_getter():
-    return subprocess.check_output(["locale -a"], shell=True)
+    raw_locales = subprocess.check_output(["locale -a"], shell=True)
+    # skip locales without encoding, to avoid Python bug https://bugs.python.org/issue20088
+    raw_locales = raw_locales.replace(b'\ndsb_DE\n',b'\n').replace(b'\nsah_RU\n',b'\n').replace(b'\ncrh_UA\n',b'\n')
+    return raw_locales
 
 
 def get_locales(prefix=None, normalize=True, locale_getter=_default_locale_getter):