From 14b221bf98757ba61977c1021722eb2faec1d7cc Mon Sep 17 00:00:00 2001 From: cclauss Date: Mon, 21 Jan 2019 12:13:56 +0100 Subject: Update cmd.py, fix PermissionError issue using best practices This closes #830 --- git/cmd.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) (limited to 'git/cmd.py') diff --git a/git/cmd.py b/git/cmd.py index 1b24a626..e442095e 100644 --- a/git/cmd.py +++ b/git/cmd.py @@ -43,6 +43,10 @@ from .util import ( stream_copy, ) +try: + PermissionError +except NameError: # Python < 3.3 + PermissionError = OSError execute_kwargs = {'istream', 'with_extended_output', 'with_exceptions', 'as_process', 'stdout_as_string', @@ -211,23 +215,15 @@ class Git(LazyMixin): # test if the new git executable path is valid - if sys.version_info < (3,): - # - a GitCommandNotFound error is spawned by ourselves - # - a OSError is spawned if the git executable provided - # cannot be executed for whatever reason - exceptions = (GitCommandNotFound, OSError) - else: - # - a GitCommandNotFound error is spawned by ourselves - # - a PermissionError is spawned if the git executable provided - # cannot be executed for whatever reason - exceptions = (GitCommandNotFound, PermissionError) # noqa - # (silence erroneous flake8 F821) - + # - a GitCommandNotFound error is spawned by ourselves + # - a PermissionError is spawned if the git executable provided + # cannot be executed for whatever reason + has_git = False try: cls().version() has_git = True - except exceptions: + except (GitCommandNotFound, PermissionError): pass # warn or raise exception if test failed -- cgit v1.2.1