Downgrade six to 1.0.0 (#4180)

This commit is contained in:
Yuhong Guo
2019-02-28 05:05:25 +08:00
committed by Philipp Moritz
parent 0a11b27971
commit 41b81af11b
3 changed files with 42 additions and 8 deletions
+32
View File
@@ -10,6 +10,7 @@ import inspect
import logging
import numpy as np
import os
import six
import subprocess
import sys
import threading
@@ -180,6 +181,37 @@ def decode(byte_str, allow_none=False):
return byte_str
def ensure_str(s, encoding="utf-8", errors="strict"):
"""Coerce *s* to `str`.
To keep six with lower version, see Issue 4169, we copy this function
from six == 1.12.0.
TODO(yuhguo): remove this function when six >= 1.12.0.
For Python 2:
- `unicode` -> encoded to `str`
- `str` -> `str`
For Python 3:
- `str` -> `str`
- `bytes` -> decoded to `str`
"""
if six.PY3:
text_type = str
binary_type = bytes
else:
text_type = unicode # noqa: F821
binary_type = str
if not isinstance(s, (text_type, binary_type)):
raise TypeError("not expecting type '%s'" % type(s))
if six.PY2 and isinstance(s, text_type):
s = s.encode(encoding, errors)
elif six.PY3 and isinstance(s, binary_type):
s = s.decode(encoding, errors)
return s
def binary_to_object_id(binary_object_id):
return ray.ObjectID(binary_object_id)