bpo-35346, platform: import subprocess in _syscmd_file() (GH-10892)

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.
This commit is contained in:
Victor Stinner 2018-12-04 17:18:12 +01:00 committed by GitHub
parent 4752e65250
commit b8e689a6e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 5 deletions

View File

@ -113,9 +113,9 @@ __copyright__ = """
__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')