Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1#!/usr/bin/env python 

2from functools import reduce 

3import sys 

4from os.path import dirname 

5 

6 

7def safe_version(module, attr='__version__', *others): 

8 if not isinstance(attr, list): 

9 attr = [attr] 

10 try: 

11 return reduce(getattr, [module] + attr) 

12 except AttributeError: 

13 if others: 

14 return safe_version(module, others[0], *others[1:]) 

15 return "Cannot detect version" 

16 

17 

18def _show_versions_only(): 

19 print("\nINSTALLED VERSIONS") 

20 print("------------------") 

21 print("Python: %d.%d.%d.%s.%s" % sys.version_info[:]) 

22 try: 

23 import os 

24 (sysname, nodename, release, version, machine) = os.uname() 

25 print("OS: %s %s %s %s" % (sysname, release, version, machine)) 

26 print("byteorder: %s" % sys.byteorder) 

27 print("LC_ALL: %s" % os.environ.get('LC_ALL', "None")) 

28 print("LANG: %s" % os.environ.get('LANG', "None")) 

29 except: 

30 pass 

31 try: 

32 import statsmodels 

33 has_sm = True 

34 except ImportError: 

35 has_sm = False 

36 

37 print('\nstatsmodels\n===========\n') 

38 if has_sm: 

39 print('Installed: %s' % safe_version(statsmodels)) 

40 else: 

41 print('Not installed') 

42 

43 print("\nRequired Dependencies\n=====================\n") 

44 try: 

45 import Cython 

46 print("cython: %s" % safe_version(Cython)) 

47 except ImportError: 

48 print("cython: Not installed") 

49 

50 try: 

51 import numpy 

52 print("numpy: %s" % safe_version(numpy, ['version', 'version'])) 

53 except ImportError: 

54 print("numpy: Not installed") 

55 

56 try: 

57 import scipy 

58 print("scipy: %s" % safe_version(scipy, ['version', 'version'])) 

59 except ImportError: 

60 print("scipy: Not installed") 

61 

62 try: 

63 import pandas 

64 print("pandas: %s" % safe_version(pandas)) 

65 except ImportError: 

66 print("pandas: Not installed") 

67 

68 try: 

69 import dateutil 

70 print(" dateutil: %s" % safe_version(dateutil)) 

71 except ImportError: 

72 print(" dateutil: not installed") 

73 

74 try: 

75 import patsy 

76 print("patsy: %s" % safe_version(patsy)) 

77 except ImportError: 

78 print("patsy: Not installed") 

79 

80 print("\nOptional Dependencies\n=====================\n") 

81 

82 try: 

83 import matplotlib as mpl 

84 print("matplotlib: %s" % safe_version(mpl)) 

85 except ImportError: 

86 print("matplotlib: Not installed") 

87 

88 try: 

89 from cvxopt import info 

90 print("cvxopt: %s" % safe_version(info, 'version')) 

91 except ImportError: 

92 print("cvxopt: Not installed") 

93 

94 try: 

95 import joblib 

96 print("joblib: %s " % (safe_version(joblib))) 

97 except ImportError: 

98 print("joblib: Not installed") 

99 

100 print("\nDeveloper Tools\n================\n") 

101 

102 try: 

103 import IPython 

104 print("IPython: %s" % safe_version(IPython)) 

105 except ImportError: 

106 print("IPython: Not installed") 

107 try: 

108 import jinja2 

109 print(" jinja2: %s" % safe_version(jinja2)) 

110 except ImportError: 

111 print(" jinja2: Not installed") 

112 

113 try: 

114 import sphinx 

115 print("sphinx: %s" % safe_version(sphinx)) 

116 except ImportError: 

117 print("sphinx: Not installed") 

118 

119 try: 

120 import pygments 

121 print(" pygments: %s" % safe_version(pygments)) 

122 except ImportError: 

123 print(" pygments: Not installed") 

124 

125 try: 

126 import pytest 

127 print("pytest: %s (%s)" % (safe_version(pytest), dirname(pytest.__file__))) 

128 except ImportError: 

129 print("pytest: Not installed") 

130 

131 try: 

132 import virtualenv 

133 print("virtualenv: %s" % safe_version(virtualenv)) 

134 except ImportError: 

135 print("virtualenv: Not installed") 

136 

137 print("\n") 

138 

139 

140def show_versions(show_dirs=True): 

141 """ 

142 List the versions of statsmodels and any installed dependencies 

143 

144 Parameters 

145 ---------- 

146 show_dirs : bool 

147 Flag indicating to show module locations 

148 """ 

149 if not show_dirs: 

150 _show_versions_only() 

151 print("\nINSTALLED VERSIONS") 

152 print("------------------") 

153 print("Python: %d.%d.%d.%s.%s" % sys.version_info[:]) 

154 try: 

155 import os 

156 (sysname, nodename, release, version, machine) = os.uname() 

157 print("OS: %s %s %s %s" % (sysname, release, version, machine)) 

158 print("byteorder: %s" % sys.byteorder) 

159 print("LC_ALL: %s" % os.environ.get('LC_ALL', "None")) 

160 print("LANG: %s" % os.environ.get('LANG', "None")) 

161 except: 

162 pass 

163 

164 try: 

165 import statsmodels 

166 has_sm = True 

167 except ImportError: 

168 has_sm = False 

169 

170 print('\nstatsmodels\n===========\n') 

171 if has_sm: 

172 print('Installed: %s (%s)' % (safe_version(statsmodels), 

173 dirname(statsmodels.__file__))) 

174 else: 

175 print('Not installed') 

176 

177 print("\nRequired Dependencies\n=====================\n") 

178 try: 

179 import Cython 

180 print("cython: %s (%s)" % (safe_version(Cython), 

181 dirname(Cython.__file__))) 

182 except ImportError: 

183 print("cython: Not installed") 

184 

185 try: 

186 import numpy 

187 print("numpy: %s (%s)" % (safe_version(numpy, ['version', 'version']), 

188 dirname(numpy.__file__))) 

189 except ImportError: 

190 print("numpy: Not installed") 

191 

192 try: 

193 import scipy 

194 print("scipy: %s (%s)" % (safe_version(scipy, ['version', 'version']), 

195 dirname(scipy.__file__))) 

196 except ImportError: 

197 print("scipy: Not installed") 

198 

199 try: 

200 import pandas 

201 print("pandas: %s (%s)" % (safe_version(pandas, ['version', 'version'], 

202 '__version__'), 

203 dirname(pandas.__file__))) 

204 except ImportError: 

205 print("pandas: Not installed") 

206 

207 try: 

208 import dateutil 

209 print(" dateutil: %s (%s)" % (safe_version(dateutil), 

210 dirname(dateutil.__file__))) 

211 except ImportError: 

212 print(" dateutil: not installed") 

213 

214 try: 

215 import patsy 

216 print("patsy: %s (%s)" % (safe_version(patsy), 

217 dirname(patsy.__file__))) 

218 except ImportError: 

219 print("patsy: Not installed") 

220 

221 print("\nOptional Dependencies\n=====================\n") 

222 

223 try: 

224 import matplotlib as mpl 

225 print("matplotlib: %s (%s)" % (safe_version(mpl), 

226 dirname(mpl.__file__))) 

227 print(" backend: %s " % mpl.rcParams['backend']) 

228 except ImportError: 

229 print("matplotlib: Not installed") 

230 

231 try: 

232 from cvxopt import info 

233 print("cvxopt: %s (%s)" % (safe_version(info, 'version'), 

234 dirname(info.__file__))) 

235 except ImportError: 

236 print("cvxopt: Not installed") 

237 

238 try: 

239 import joblib 

240 print("joblib: %s (%s)" % (safe_version(joblib), 

241 dirname(joblib.__file__))) 

242 except ImportError: 

243 print("joblib: Not installed") 

244 

245 print("\nDeveloper Tools\n================\n") 

246 

247 try: 

248 import IPython 

249 print("IPython: %s (%s)" % (safe_version(IPython), 

250 dirname(IPython.__file__))) 

251 except ImportError: 

252 print("IPython: Not installed") 

253 try: 

254 import jinja2 

255 print(" jinja2: %s (%s)" % (safe_version(jinja2), 

256 dirname(jinja2.__file__))) 

257 except ImportError: 

258 print(" jinja2: Not installed") 

259 

260 try: 

261 import sphinx 

262 print("sphinx: %s (%s)" % (safe_version(sphinx), 

263 dirname(sphinx.__file__))) 

264 except ImportError: 

265 print("sphinx: Not installed") 

266 

267 try: 

268 import pygments 

269 print(" pygments: %s (%s)" % (safe_version(pygments), 

270 dirname(pygments.__file__))) 

271 except ImportError: 

272 print(" pygments: Not installed") 

273 

274 try: 

275 import pytest 

276 print("pytest: %s (%s)" % (safe_version(pytest), dirname(pytest.__file__))) 

277 except ImportError: 

278 print("pytest: Not installed") 

279 

280 try: 

281 import virtualenv 

282 print("virtualenv: %s (%s)" % (safe_version(virtualenv), 

283 dirname(virtualenv.__file__))) 

284 except ImportError: 

285 print("virtualenv: Not installed") 

286 

287 print("\n") 

288 

289if __name__ == "__main__": 

290 show_versions()