From 895c4049b9453134219ff4385829eabd32858beb Mon Sep 17 00:00:00 2001 From: Dan Ryan Date: Thu, 15 Nov 2018 00:47:51 -0500 Subject: [PATCH] Fix encoding issues and python discovery - Add spiner symbols to unicode translation map - Update pythonfinder to master (ignore vendor update for now) - Fixes #3223 - Fixes #3224 Signed-off-by: Dan Ryan --- news/3223.bugfix.rst | 1 + news/3224.bugfix.rst | 1 + pipenv/_compat.py | 4 +++- pipenv/environments.py | 7 ++++--- pipenv/vendor/pythonfinder/models/python.py | 4 ++-- 5 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 news/3223.bugfix.rst create mode 100644 news/3224.bugfix.rst diff --git a/news/3223.bugfix.rst b/news/3223.bugfix.rst new file mode 100644 index 0000000000..44f4a83ed4 --- /dev/null +++ b/news/3223.bugfix.rst @@ -0,0 +1 @@ +Fixed an issue with attempting to render unicode output in non-unicode locales. diff --git a/news/3224.bugfix.rst b/news/3224.bugfix.rst new file mode 100644 index 0000000000..e6eed91279 --- /dev/null +++ b/news/3224.bugfix.rst @@ -0,0 +1 @@ +Fixed a bug which could cause failures to occur when parsing python entries from global pyenv version files. diff --git a/pipenv/_compat.py b/pipenv/_compat.py index 1dc52d5f05..35ff218809 100644 --- a/pipenv/_compat.py +++ b/pipenv/_compat.py @@ -365,7 +365,9 @@ def force_encoding(): UNICODE_TO_ASCII_TRANSLATION_MAP = { 8230: u"...", - 8211: u"-" + 8211: u"-", + 10004: u"x", + 10008: u"Ok" } diff --git a/pipenv/environments.py b/pipenv/environments.py index c7d948df34..066c296d58 100644 --- a/pipenv/environments.py +++ b/pipenv/environments.py @@ -3,7 +3,8 @@ import os import sys from appdirs import user_cache_dir -from .vendor.vistir.misc import fs_str, to_text +from .vendor.vistir.misc import fs_str +from ._compat import fix_utf8 # HACK: avoid resolver.py uses the wrong byte code files. @@ -275,6 +276,6 @@ def is_quiet(threshold=-1): return PIPENV_VERBOSITY <= threshold -PIPENV_SPINNER_FAIL_TEXT = fs_str(to_text(u"✘ {0}")) if not PIPENV_HIDE_EMOJIS else ("{0}") +PIPENV_SPINNER_FAIL_TEXT = fix_utf8(u"✘ {0}") if not PIPENV_HIDE_EMOJIS else ("{0}") -PIPENV_SPINNER_OK_TEXT = fs_str(to_text(u"✔ {0}")) if not PIPENV_HIDE_EMOJIS else ("{0}") +PIPENV_SPINNER_OK_TEXT = fix_utf8(u"✔ {0}") if not PIPENV_HIDE_EMOJIS else ("{0}") diff --git a/pipenv/vendor/pythonfinder/models/python.py b/pipenv/vendor/pythonfinder/models/python.py index db7d011ec0..eac856c51b 100644 --- a/pipenv/vendor/pythonfinder/models/python.py +++ b/pipenv/vendor/pythonfinder/models/python.py @@ -67,9 +67,9 @@ def get_version_order(self): ] versions = {v.name: v for v in version_paths} if self.is_pyenv: - version_order = [versions[v] for v in parse_pyenv_version_order()] + version_order = [versions[v] for v in parse_pyenv_version_order() if v in versions] elif self.is_asdf: - version_order = [versions[v] for v in parse_asdf_version_order()] + version_order = [versions[v] for v in parse_asdf_version_order() if v in versions] for version in version_order: version_paths.remove(version) if version_order: