import codecs import locale import re BOMS = [ (codecs.BOM_UTF8, 'utf8'), (codecs.BOM_UTF16, 'utf16'), (codecs.BOM_UTF16_BE, 'utf16-be'), (codecs.BOM_UTF16_LE, 'utf16-le'), (codecs.BOM_UTF32, 'utf32'), (codecs.BOM_UTF32_BE, 'utf32-be'), (codecs.BOM_UTF32_LE, 'utf32-le'), ] ENCODING_RE = re.compile(b'coding[:=]\s*([-\w.]+)') def auto_decode(data): """Check a bytes string for a BOM to correctly detect the encoding Fallback to locale.getpreferredencoding(False) like open() on Python3""" for bom, encoding in BOMS: if data.startswith(bom): return data[len(bom):].decode(encoding) # Lets check the first two lines as in PEP263 for line in data.split(b'\n')[:2]: if line[0:1] == b'#' and ENCODING_RE.search(line): encoding = ENCODING_RE.search(line).groups()[0].decode('ascii') return data.decode(encoding) return data.decode(locale.getpreferredencoding(False))
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__init__.py | File | 26.55 KB | 0644 |
|
__init__.pyc | File | 27.08 KB | 0644 |
|
__init__.pyo | File | 27.02 KB | 0644 |
|
appdirs.py | File | 8.6 KB | 0644 |
|
appdirs.pyc | File | 8.41 KB | 0644 |
|
appdirs.pyo | File | 8.41 KB | 0644 |
|
build.py | File | 1.28 KB | 0644 |
|
build.pyc | File | 1.68 KB | 0644 |
|
build.pyo | File | 1.68 KB | 0644 |
|
deprecation.py | File | 2.18 KB | 0644 |
|
deprecation.pyc | File | 2.26 KB | 0644 |
|
deprecation.pyo | File | 2.26 KB | 0644 |
|
encoding.py | File | 971 B | 0644 |
|
encoding.pyc | File | 1.25 KB | 0644 |
|
encoding.pyo | File | 1.25 KB | 0644 |
|
filesystem.py | File | 899 B | 0644 |
|
filesystem.pyc | File | 780 B | 0644 |
|
filesystem.pyo | File | 780 B | 0644 |
|
glibc.py | File | 2.87 KB | 0644 |
|
glibc.pyc | File | 1.78 KB | 0644 |
|
glibc.pyo | File | 1.78 KB | 0644 |
|
hashes.py | File | 2.8 KB | 0644 |
|
hashes.pyc | File | 3.87 KB | 0644 |
|
hashes.pyo | File | 3.87 KB | 0644 |
|
logging.py | File | 3.25 KB | 0644 |
|
logging.pyc | File | 4.73 KB | 0644 |
|
logging.pyo | File | 4.73 KB | 0644 |
|
outdated.py | File | 5.85 KB | 0644 |
|
outdated.pyc | File | 5.55 KB | 0644 |
|
outdated.pyo | File | 5.55 KB | 0644 |
|
packaging.py | File | 2.03 KB | 0644 |
|
packaging.pyc | File | 2.4 KB | 0644 |
|
packaging.pyo | File | 2.4 KB | 0644 |
|
setuptools_build.py | File | 278 B | 0644 |
|
setuptools_build.pyc | File | 347 B | 0644 |
|
setuptools_build.pyo | File | 347 B | 0644 |
|
ui.py | File | 11.33 KB | 0644 |
|
ui.pyc | File | 11.41 KB | 0644 |
|
ui.pyo | File | 11.34 KB | 0644 |
|