comparison env/lib/python3.9/site-packages/setuptools/unicode_utils.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4f3585e2f14b
1 import unicodedata
2 import sys
3
4
5 # HFS Plus uses decomposed UTF-8
6 def decompose(path):
7 if isinstance(path, str):
8 return unicodedata.normalize('NFD', path)
9 try:
10 path = path.decode('utf-8')
11 path = unicodedata.normalize('NFD', path)
12 path = path.encode('utf-8')
13 except UnicodeError:
14 pass # Not UTF-8
15 return path
16
17
18 def filesys_decode(path):
19 """
20 Ensure that the given path is decoded,
21 NONE when no expected encoding works
22 """
23
24 if isinstance(path, str):
25 return path
26
27 fs_enc = sys.getfilesystemencoding() or 'utf-8'
28 candidates = fs_enc, 'utf-8'
29
30 for enc in candidates:
31 try:
32 return path.decode(enc)
33 except UnicodeDecodeError:
34 continue
35
36
37 def try_encode(string, enc):
38 "turn unicode encoding into a functional routine"
39 try:
40 return string.encode(enc)
41 except UnicodeEncodeError:
42 return None