33"""
44
55from sys import version_info
6+ from types import SimpleNamespace as Namespace
67
7- try :
8- from types import SimpleNamespace as Namespace
9- except ImportError : # Python < 3.3
10- from argparse import Namespace
11-
12- if version_info < (3 , 5 ): # Python 2.7
13- from subprocess import PIPE , CalledProcessError , check_output
14- elif version_info < (3 , 7 ):
8+ if version_info < (3 , 7 ):
159 from subprocess import PIPE , run
1610else :
1711 from subprocess import run
@@ -26,15 +20,7 @@ def shell(command, **kwargs):
2620 This is a better version of ``os.system()`` that captures output and
2721 returns a convenient namespace object.
2822 """
29- if version_info < (3 , 5 ): # Python 2.7
30- completed = Namespace (returncode = None , stdout = b"" , stderr = b"" )
31- try :
32- completed .stdout = check_output (command , shell = True , stderr = PIPE , ** kwargs )
33- completed .returncode = 0
34- except CalledProcessError as ex :
35- completed .stdout = ex .output
36- completed .returncode = ex .returncode
37- elif version_info < (3 , 7 ):
23+ if version_info < (3 , 7 ):
3824 completed = run (
3925 command , shell = True , stdout = PIPE , stderr = PIPE , check = False , ** kwargs
4026 )
0 commit comments