diff --git a/setup.py b/setup.py index d8808e6b7ec456e143bfbe7f52f575780fb1409e..69f8e93d8112e11a7090ee6022769750c1997797 100644 --- a/setup.py +++ b/setup.py @@ -33,7 +33,7 @@ setup( "PyYAML", "jmespath", "toml", - "subprocess32>=3.5.0", + "subprocess32>=3.5.0;python_version<'3.5'", ], extras_require={"dev": ["pipenv"]}, entry_points={"console_scripts": ["template=template:main"]}, diff --git a/template/filters.py b/template/filters.py index 6d1a9f5220e6995fefdc82b22101376586b3bbc0..c5218852042a4be75bdc6e0cc4975097d195ee25 100644 --- a/template/filters.py +++ b/template/filters.py @@ -157,11 +157,16 @@ def run(*argv, **kwargs): >>> run(['ls', 'foo'])['returncode'] > 0 True """ - import subprocess32 # nosec + import sys - defaults = {"stdout": subprocess32.PIPE, "stderr": subprocess32.PIPE} + if sys.version_info[0] < 3: # nosec + import subprocess32 as subprocess + else: + import subprocess + + defaults = {"stdout": subprocess.PIPE, "stderr": subprocess.PIPE} defaults.update(kwargs) - proc = subprocess32.run(*argv, **defaults).__dict__ + proc = subprocess.run(*argv, **defaults).__dict__ # nosec if "text" not in kwargs or kwargs["text"]: proc["stdout"] = proc["stdout"].decode() proc["stderr"] = proc["stderr"].decode()