Path: blob/main/test/lib/python3.9/site-packages/setuptools/unicode_utils.py
4798 views
import unicodedata1import sys234# HFS Plus uses decomposed UTF-85def decompose(path):6if isinstance(path, str):7return unicodedata.normalize('NFD', path)8try:9path = path.decode('utf-8')10path = unicodedata.normalize('NFD', path)11path = path.encode('utf-8')12except UnicodeError:13pass # Not UTF-814return path151617def filesys_decode(path):18"""19Ensure that the given path is decoded,20NONE when no expected encoding works21"""2223if isinstance(path, str):24return path2526fs_enc = sys.getfilesystemencoding() or 'utf-8'27candidates = fs_enc, 'utf-8'2829for enc in candidates:30try:31return path.decode(enc)32except UnicodeDecodeError:33continue343536def try_encode(string, enc):37"turn unicode encoding into a functional routine"38try:39return string.encode(enc)40except UnicodeEncodeError:41return None424344