Python os.fsdecode() Examples
The following are 30
code examples of os.fsdecode().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
os
, or try the search function
.
Example #1
Source File: test_cmd_line_script.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_non_ascii(self): # Mac OS X denies the creation of a file with an invalid UTF-8 name. # Windows allows to create a name with an arbitrary bytes name, but # Python cannot a undecodable bytes argument to a subprocess. if (support.TESTFN_UNDECODABLE and sys.platform not in ('win32', 'darwin')): name = os.fsdecode(support.TESTFN_UNDECODABLE) elif support.TESTFN_NONASCII: name = support.TESTFN_NONASCII else: self.skipTest("need support.TESTFN_NONASCII") # Issue #16218 source = 'print(ascii(__file__))\n' script_name = _make_test_script(os.curdir, name, source) self.addCleanup(support.unlink, script_name) rc, stdout, stderr = assert_python_ok(script_name) self.assertEqual( ascii(script_name), stdout.rstrip().decode('ascii'), 'stdout=%r stderr=%r' % (stdout, stderr)) self.assertEqual(0, rc)
Example #2
Source File: test_httpservers.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_undecodable_filename(self): enc = sys.getfilesystemencoding() filename = os.fsdecode(support.TESTFN_UNDECODABLE) + '.txt' with open(os.path.join(self.tempdir, filename), 'wb') as f: f.write(support.TESTFN_UNDECODABLE) response = self.request(self.tempdir_name + '/') if sys.platform == 'darwin': # On Mac OS the HFS+ filesystem replaces bytes that aren't valid # UTF-8 into a percent-encoded value. for name in os.listdir(self.tempdir): if name != 'test': # Ignore a filename created in setUp(). filename = name break body = self.check_status_and_reason(response, HTTPStatus.OK) quotedname = urllib.parse.quote(filename, errors='surrogatepass') self.assertIn(('href="%s"' % quotedname) .encode(enc, 'surrogateescape'), body) self.assertIn(('>%s<' % html.escape(filename)) .encode(enc, 'surrogateescape'), body) response = self.request(self.tempdir_name + '/' + quotedname) self.check_status_and_reason(response, HTTPStatus.OK, data=support.TESTFN_UNDECODABLE)
Example #3
Source File: compat.py From GraphicDesignPatternByPython with MIT License | 6 votes |
def filename_decode(filename): """ Decode filename used by HDF5 library. Due to how HDF5 handles filenames on different systems, this should be called on any filenames passed from the HDF5 library. See the documentation on filenames in h5py for more information. """ if sys.platform == "win32": if isinstance(filename, six.binary_type): return filename.decode(WINDOWS_ENCODING, "strict") elif isinstance(filename, six.text_type): return filename else: raise TypeError("expect bytes or str, not %s" % type(filename).__name__) return fsdecode(filename)
Example #4
Source File: util.py From Imogen with MIT License | 6 votes |
def _findLib_ld(name): # See issue #9998 for why this is needed expr = r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name) cmd = ['ld', '-t'] libpath = os.environ.get('LD_LIBRARY_PATH') if libpath: for d in libpath.split(':'): cmd.extend(['-L', d]) cmd.extend(['-o', os.devnull, '-l%s' % name]) result = None try: p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) out, _ = p.communicate() res = re.search(expr, os.fsdecode(out)) if res: result = res.group(0) except Exception as e: pass # result will be None return result
Example #5
Source File: font_manager.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 6 votes |
def fc_match(pattern, fontext): fontexts = get_fontext_synonyms(fontext) ext = "." + fontext try: pipe = subprocess.Popen( ['fc-match', '-s', '--format=%{file}\\n', pattern], stdout=subprocess.PIPE, stderr=subprocess.PIPE) output = pipe.communicate()[0] except OSError: return None # The bulk of the output from fc-list is ascii, so we keep the # result in bytes and parse it as bytes, until we extract the # filename, which is in sys.filesystemencoding(). if pipe.returncode == 0: for fname in map(os.fsdecode, output.split(b'\n')): if os.path.splitext(fname)[1][1:] in fontexts: return fname return None
Example #6
Source File: util.py From Imogen with MIT License | 6 votes |
def find_library(name): ename = re.escape(name) expr = r':-l%s\.\S+ => \S*/(lib%s\.\S+)' % (ename, ename) expr = os.fsencode(expr) try: proc = subprocess.Popen(('/sbin/ldconfig', '-r'), stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) except OSError: # E.g. command not found data = b'' else: with proc: data = proc.stdout.read() res = re.findall(expr, data) if not res: return _get_soname(_findLib_gcc(name)) res.sort(key=_num_version) return os.fsdecode(res[-1])
Example #7
Source File: util.py From renpy-shader with MIT License | 6 votes |
def _get_soname(f): if not f: return None try: proc = subprocess.Popen(("/usr/ccs/bin/dump", "-Lpv", f), stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) except OSError: # E.g. command not found return None with proc: data = proc.stdout.read() res = re.search(br'\[.*\]\sSONAME\s+([^\s]+)', data) if not res: return None return os.fsdecode(res.group(1))
Example #8
Source File: util.py From renpy-shader with MIT License | 6 votes |
def _get_soname(f): # assuming GNU binutils / ELF if not f: return None objdump = shutil.which('objdump') if not objdump: # objdump is not available, give up return None try: proc = subprocess.Popen((objdump, '-p', '-j', '.dynamic', f), stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) except OSError: # E.g. bad executable return None with proc: dump = proc.stdout.read() res = re.search(br'\sSONAME\s+([^\s]+)', dump) if not res: return None return os.fsdecode(res.group(1))
Example #9
Source File: util.py From renpy-shader with MIT License | 6 votes |
def find_library(name): ename = re.escape(name) expr = r':-l%s\.\S+ => \S*/(lib%s\.\S+)' % (ename, ename) expr = os.fsencode(expr) try: proc = subprocess.Popen(('/sbin/ldconfig', '-r'), stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) except OSError: # E.g. command not found data = b'' else: with proc: data = proc.stdout.read() res = re.findall(expr, data) if not res: return _get_soname(_findLib_gcc(name)) res.sort(key=_num_version) return os.fsdecode(res[-1])
Example #10
Source File: util.py From Imogen with MIT License | 6 votes |
def _get_soname(f): # assuming GNU binutils / ELF if not f: return None objdump = shutil.which('objdump') if not objdump: # objdump is not available, give up return None try: proc = subprocess.Popen((objdump, '-p', '-j', '.dynamic', f), stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) except OSError: # E.g. bad executable return None with proc: dump = proc.stdout.read() res = re.search(br'\sSONAME\s+([^\s]+)', dump) if not res: return None return os.fsdecode(res.group(1))
Example #11
Source File: util.py From renpy-shader with MIT License | 6 votes |
def _findLib_ld(name): # See issue #9998 for why this is needed expr = r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name) cmd = ['ld', '-t'] libpath = os.environ.get('LD_LIBRARY_PATH') if libpath: for d in libpath.split(':'): cmd.extend(['-L', d]) cmd.extend(['-o', os.devnull, '-l%s' % name]) result = None try: p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) out, _ = p.communicate() res = re.search(expr, os.fsdecode(out)) if res: result = res.group(0) except Exception as e: pass # result will be None return result
Example #12
Source File: util.py From Imogen with MIT License | 6 votes |
def _get_soname(f): if not f: return None try: proc = subprocess.Popen(("/usr/ccs/bin/dump", "-Lpv", f), stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) except OSError: # E.g. command not found return None with proc: data = proc.stdout.read() res = re.search(br'\[.*\]\sSONAME\s+([^\s]+)', data) if not res: return None return os.fsdecode(res.group(1))
Example #13
Source File: compat.py From hacktoberfest2018 with GNU General Public License v3.0 | 5 votes |
def fsdecode(filename): if isinstance(filename, text_type): return filename elif isinstance(filename, bytes): return filename.decode(_fsencoding, _fserrors) else: raise TypeError("expect bytes or str, not %s" % type(filename).__name__)
Example #14
Source File: dviread.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def __new__(cls, filename): self = object.__new__(cls) self._font = {} self._filename = os.fsdecode(filename) with open(filename, 'rb') as file: self._parse(file) return self
Example #15
Source File: base.py From python-gnocchiclient with Apache License 2.0 | 5 votes |
def _run(self, binary, action, flags='', params='', fail_ok=False, merge_stderr=False, input=None, has_output=True): fmt = '-f json' if has_output and action != 'help' else "" cmd = ' '.join([os.path.join(self.cli_dir, binary), flags, action, params, fmt]) if six.PY2: cmd = cmd.encode('utf-8') cmd = shlex.split(cmd) result = '' result_err = '' stdin = None if input is None else subprocess.PIPE stdout = subprocess.PIPE stderr = subprocess.STDOUT if merge_stderr else subprocess.PIPE proc = subprocess.Popen(cmd, stdin=stdin, stdout=stdout, stderr=stderr) result, result_err = proc.communicate(input=input) if not fail_ok and proc.returncode != 0: raise RuntimeError("Problem running command", proc.returncode, cmd, result, result_err) if not six.PY2: result = os.fsdecode(result) if not has_output and not fail_ok and action != 'help': self.assertEqual("", result) return result
Example #16
Source File: evaluate.py From GraphRNN with MIT License | 5 votes |
def process_kron(kron_dir): txt_files = [] for f in os.listdir(kron_dir): filename = os.fsdecode(f) if filename.endswith('.txt'): txt_files.append(filename) elif filename.endswith('.dat'): return utils.load_graph_list(os.path.join(kron_dir, filename)) G_list = [] for filename in txt_files: G_list.append(utils.snap_txt_output_to_nx(os.path.join(kron_dir, filename))) return G_list
Example #17
Source File: util.py From Imogen with MIT License | 5 votes |
def _findLib_gcc(name): # Run GCC's linker with the -t (aka --trace) option and examine the # library name it prints out. The GCC command will fail because we # haven't supplied a proper program with main(), but that does not # matter. expr = os.fsencode(r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name)) c_compiler = shutil.which('gcc') if not c_compiler: c_compiler = shutil.which('cc') if not c_compiler: # No C compiler available, give up return None temp = tempfile.NamedTemporaryFile() try: args = [c_compiler, '-Wl,-t', '-o', temp.name, '-l' + name] env = dict(os.environ) env['LC_ALL'] = 'C' env['LANG'] = 'C' try: proc = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=env) except OSError: # E.g. bad executable return None with proc: trace = proc.stdout.read() finally: try: temp.close() except FileNotFoundError: # Raised if the file was already removed, which is the normal # behaviour of GCC if linking fails pass res = re.search(expr, trace) if not res: return None return os.fsdecode(res.group(0))
Example #18
Source File: util.py From Imogen with MIT License | 5 votes |
def _findLib_crle(name, is64): if not os.path.exists('/usr/bin/crle'): return None env = dict(os.environ) env['LC_ALL'] = 'C' if is64: args = ('/usr/bin/crle', '-64') else: args = ('/usr/bin/crle',) paths = None try: proc = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, env=env) except OSError: # E.g. bad executable return None with proc: for line in proc.stdout: line = line.strip() if line.startswith(b'Default Library Path (ELF):'): paths = os.fsdecode(line).split()[4] if not paths: return None for dir in paths.split(":"): libfile = os.path.join(dir, "lib%s.so" % name) if os.path.exists(libfile): return libfile return None
Example #19
Source File: compat.py From scylla with Apache License 2.0 | 5 votes |
def fsdecode(filename): if isinstance(filename, text_type): return filename elif isinstance(filename, bytes): return filename.decode(_fsencoding, _fserrors) else: raise TypeError("expect bytes or str, not %s" % type(filename).__name__)
Example #20
Source File: compat.py From Building-Recommendation-Systems-with-Python with MIT License | 5 votes |
def fsdecode(filename): if isinstance(filename, text_type): return filename elif isinstance(filename, bytes): return filename.decode(_fsencoding, _fserrors) else: raise TypeError("expect bytes or str, not %s" % type(filename).__name__)
Example #21
Source File: __init__.py From pifpaf with Apache License 2.0 | 5 votes |
def fsdecode(s): if isinstance(s, unicode): # noqa return s return s.decode(sys.getfilesystemencoding())
Example #22
Source File: compat.py From hacktoberfest2018 with GNU General Public License v3.0 | 5 votes |
def fsdecode(filename): if isinstance(filename, text_type): return filename elif isinstance(filename, bytes): return filename.decode(_fsencoding, _fserrors) else: raise TypeError("expect bytes or str, not %s" % type(filename).__name__)
Example #23
Source File: dviread.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __new__(cls, filename): self = object.__new__(cls) self._font = {} self._filename = os.fsdecode(filename) with open(filename, 'rb') as file: self._parse(file) return self
Example #24
Source File: font_manager.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _call_fc_list(): """Cache and list the font filenames known to `fc-list`. """ # Delay the warning by 5s. timer = Timer(5, lambda: warnings.warn( 'Matplotlib is building the font cache using fc-list. ' 'This may take a moment.')) timer.start() try: out = subprocess.check_output(['fc-list', '--format=%{file}\\n']) except (OSError, subprocess.CalledProcessError): return [] finally: timer.cancel() return [os.fsdecode(fname) for fname in out.split(b'\n')]
Example #25
Source File: compat.py From pipenv with MIT License | 5 votes |
def fsdecode(filename): if isinstance(filename, text_type): return filename elif isinstance(filename, bytes): return filename.decode(_fsencoding, _fserrors) else: raise TypeError("expect bytes or str, not %s" % type(filename).__name__)
Example #26
Source File: font_manager.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _call_fc_list(): """Cache and list the font filenames known to `fc-list`. """ # Delay the warning by 5s. timer = Timer(5, lambda: warnings.warn( 'Matplotlib is building the font cache using fc-list. ' 'This may take a moment.')) timer.start() try: out = subprocess.check_output(['fc-list', '--format=%{file}\\n']) except (OSError, subprocess.CalledProcessError): return [] finally: timer.cancel() return [os.fsdecode(fname) for fname in out.split(b'\n')]
Example #27
Source File: compat.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def fsdecode(filename): if isinstance(filename, text_type): return filename elif isinstance(filename, bytes): return filename.decode(_fsencoding, _fserrors) else: raise TypeError("expect bytes or str, not %s" % type(filename).__name__)
Example #28
Source File: compat.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def _fscodec(): encoding = sys.getfilesystemencoding() if encoding == 'mbcs': errors = 'strict' else: try: from codecs import lookup_error lookup_error('surrogateescape') except LookupError: errors = 'strict' else: errors = 'surrogateescape' def fsencode(filename): """ Encode filename to the filesystem encoding with 'surrogateescape' error handler, return bytes unchanged. On Windows, use 'strict' error handler if the file system encoding is 'mbcs' (which is the default encoding). """ if isinstance(filename, six.binary_type): return filename elif isinstance(filename, six.text_type): return filename.encode(encoding, errors) else: raise TypeError("expect bytes or str, not %s" % type(filename).__name__) def fsdecode(filename): """ Decode filename from the filesystem encoding with 'surrogateescape' error handler, return str unchanged. On Windows, use 'strict' error handler if the file system encoding is 'mbcs' (which is the default encoding). """ if isinstance(filename, six.text_type): return filename elif isinstance(filename, six.binary_type): return filename.decode(encoding, errors) else: raise TypeError("expect bytes or str, not %s" % type(filename).__name__) return fsencode, fsdecode
Example #29
Source File: tempfile.py From pipenv with MIT License | 5 votes |
def fs_decode(path): try: return os.fsdecode(path) except AttributeError: from ..compat import fs_decode return fs_decode(path)
Example #30
Source File: zipimport.py From maubot with GNU Affero General Public License v3.0 | 5 votes |
def __init__(self, path): if not isinstance(path, str): import os path = os.fsdecode(path) if not path: raise ZipImportError('archive path is empty', path=path) if alt_path_sep: path = path.replace(alt_path_sep, path_sep) prefix = [] while True: try: st = _bootstrap_external._path_stat(path) except (OSError, ValueError): # On Windows a ValueError is raised for too long paths. # Back up one path element. dirname, basename = _bootstrap_external._path_split(path) if dirname == path: raise ZipImportError('not a Zip file', path=path) path = dirname prefix.append(basename) else: # it exists if (st.st_mode & 0o170000) != 0o100000: # stat.S_ISREG # it's a not file raise ZipImportError('not a Zip file', path=path) break try: files = _zip_directory_cache[path] except KeyError: files = _read_directory(path) _zip_directory_cache[path] = files self._files = files self.archive = path # a prefix directory following the ZIP file path. self.prefix = _bootstrap_external._path_join(*prefix[::-1]) if self.prefix: self.prefix += path_sep