From c3312c2ac2d0918e01bed4a03e21d9ad1194f81d Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 4 Dec 2018 14:49:57 +0100 Subject: [PATCH] bpo-35346, platform: import subprocess in _syscmd_file() Only platform._syscmd_file() uses subprocess. Move subprocess import inside this function to reduce the number of imports at Python startup. Remove also warnings import which is no longer needed. --- Lib/platform.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Lib/platform.py b/Lib/platform.py index 98ee06f85ef157..74346c4cab090c 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -113,9 +113,9 @@ __version__ = '1.0.8' import collections -import sys, os, re, subprocess - -import warnings +import os +import re +import sys ### Globals & Constants @@ -612,11 +612,13 @@ def _syscmd_file(target, default=''): if sys.platform in ('dos', 'win32', 'win16'): # XXX Others too ? return default + + import subprocess target = _follow_symlinks(target) try: proc = subprocess.Popen(['file', target], - stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) except (AttributeError, OSError): return default output = proc.communicate()[0].decode('latin-1')