-def _GetTargetPythonVersion(module):
- """Heuristically determines the target module's Python version."""
- with open(module) as f:
- shebang = f.readline().strip()
- default_version = 2
- if shebang.startswith('#!'):
- # Examples:
- # '#!/usr/bin/python'
- # '#!/usr/bin/python2.7'
- # '#!/usr/bin/python3'
- # '#!/usr/bin/env python3'
- # '#!/usr/bin/env vpython'
- # '#!/usr/bin/env vpython3'
- exec_name = os.path.basename(shebang[2:].split(' ')[-1])
- for python_prefix in ['python', 'vpython']:
- if exec_name.startswith(python_prefix):
- version_string = exec_name[len(python_prefix):]
- break
- else:
- raise ValueError('Invalid shebang: ' + shebang)
- if version_string:
- return int(float(version_string))
- return default_version
-
-