1#!/usr/bin/python 2""" 3To have a single pip command that uses the specific requirements file use this 4in a shell script for posix OS:: 5 6 pip install -r $(select_requirements.py) 7 8On windows, create a bat of cmd file that loads the windows-specific 9requirements directly:: 10 11 for /f %%i in ('python select_requirements.py') do (set req_file="%%i") 12 pip install -r %req_file% 13""" 14 15from __future__ import print_function 16 17import os 18import platform 19import struct 20import sys 21 22# major python major_python_versions as python2 and python3 23major_python_versions = tuple(map(str, platform.python_version_tuple())) 24python2 = major_python_versions[0] == '2' 25python3 = major_python_versions[0] == '3' 26 27 28# operating system 29sys_platform = str(sys.platform).lower() 30linux = 'linux' in sys_platform 31windows = 'win32' in sys_platform 32cygwin = 'cygwin' in sys_platform 33solaris = 'sunos' in sys_platform 34macosx = 'darwin' in sys_platform 35posix = 'posix' in os.name.lower() 36 37def select_requirements_file(): 38 """ 39 Print the path to a requirements file based on some os/arch condition. 40 """ 41 if windows: 42 print('requirements/win.txt') 43 elif macosx: 44 print('requirements/mac.txt') 45 elif linux: 46 if python2: 47 print('requirements/linux-py2.txt') 48 elif python3: 49 print('requirements/linux-py3.txt') 50 elif cygwin: 51 print('requirements/cygwin.txt') 52 else: 53 raise Exception('Unsupported OS/platform') 54 55if __name__ == '__main__': 56 select_requirements_file()