Kaydet (Commit) 88bc0d26 authored tarafından Philip Jenvey's avatar Philip Jenvey

small refactor and PEP8 line width/docstring

üst 66a3a7ed
...@@ -1037,17 +1037,20 @@ def get_terminal_size(fallback=(80, 24)): ...@@ -1037,17 +1037,20 @@ def get_terminal_size(fallback=(80, 24)):
def which(cmd, mode=os.F_OK | os.X_OK, path=None): def which(cmd, mode=os.F_OK | os.X_OK, path=None):
"""Given a command, mode, and a PATH string, return the path which """Given a command, mode, and a PATH string, return the path which
conforms to the given mode on the PATH, or None if there is no such file. conforms to the given mode on the PATH, or None if there is no such
`mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result of file.
os.environ.get("PATH"), or can be overridden with a custom search path."""
`mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result
of os.environ.get("PATH"), or can be overridden with a custom search
path.
"""
# Check that a given file can be accessed with the correct mode. # Check that a given file can be accessed with the correct mode.
# Additionally check that `file` is not a directory, as on Windows # Additionally check that `file` is not a directory, as on Windows
# directories pass the os.access check. # directories pass the os.access check.
def _access_check(fn, mode): def _access_check(fn, mode):
if (os.path.exists(fn) and os.access(fn, mode) return (os.path.exists(fn) and os.access(fn, mode)
and not os.path.isdir(fn)): and not os.path.isdir(fn))
return True
return False
# Short circuit. If we're given a full path which matches the mode # Short circuit. If we're given a full path which matches the mode
# and it exists, we're done here. # and it exists, we're done here.
...@@ -1066,8 +1069,9 @@ def which(cmd, mode=os.F_OK | os.X_OK, path=None): ...@@ -1066,8 +1069,9 @@ def which(cmd, mode=os.F_OK | os.X_OK, path=None):
# See if the given file matches any of the expected path extensions. # See if the given file matches any of the expected path extensions.
# This will allow us to short circuit when given "python.exe". # This will allow us to short circuit when given "python.exe".
matches = [cmd for ext in pathext if cmd.lower().endswith(ext.lower())] matches = [cmd for ext in pathext if cmd.lower().endswith(ext.lower())]
# If it does match, only test that one, otherwise we have to try others. # If it does match, only test that one, otherwise we have to try
files = [cmd + ext.lower() for ext in pathext] if not matches else [cmd] # others.
files = [cmd] if matches else [cmd + ext.lower() for ext in pathext]
else: else:
# On other platforms you don't have things like PATHEXT to tell you # On other platforms you don't have things like PATHEXT to tell you
# what file suffixes are executable, so just pass on cmd as-is. # what file suffixes are executable, so just pass on cmd as-is.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment