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# -*- coding: utf-8 -*- 



4@brief Defines different a set of usual modules for Python. 


6import sys 

7from ..installhelper.module_install import ModuleInstall 

8from ..installhelper.install_cmd_helper import is_conda_distribution 



11def small_set(): 

12 """ 

13 list of modules to work with pandas, numpy, ipython, ... 

14 """ 

15 mod = [ 

16 # issues with this modules in a virtual environment raise a, b, c instead or raise (a, b, c) 

17 # ModuleInstall("futures", "pip", mname="concurrent.futures", 

18 # purpose="Backport of the concurrent.futures package from Python 

19 # 3.2"), 

20 ModuleInstall( 

21 "wincertstore", "pip", purpose="Python module to extract CA and CRL certs from Windows' cert store (ctypes based).") \ 

22 if sys.platform.startswith("win") else None, 

23 ModuleInstall( 

24 "virtualenv", "pip", purpose="creatre virtual environments") if not is_conda_distribution() else None, 

25 ModuleInstall( 

26 "six", "pip", purpose="helpers for python 2/3 conversion"), 

27 ModuleInstall("lxml", "wheel", purpose="xml parsers (C++)"), 

28 ModuleInstall('markupsafe', 'pip', purpose="parses mardown"), 

29 ModuleInstall("jinja2", "pip", purpose="templating"), 

30 ModuleInstall("Mako", "pip", mname="mako", purpose="templating"), 

31 ModuleInstall( 

32 "pygments", "pip", purpose="syntax highlighting package written in Python"), 

33 ModuleInstall( 

34 "pyparsing", "pip", purpose="alternative approach to creating and executing simple grammars"), 

35 ModuleInstall("idna", "pip", usage="WEB", 

36 purpose="Internationalized Domain Names in Applications (IDNA)"), 

37 ModuleInstall( 

38 "python-dateutil", "pip", "dateutil", purpose="helpers to manipulate dates"), 

39 ModuleInstall( 

40 "webencodings", "pip", purpose="Character encoding aliases for legacy web content"), 

41 ModuleInstall("soupsieve", "pip", 

42 purpose="Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4."), 

43 ModuleInstall("beautifulsoup4", "pip", mname="bs4", 

44 purpose="Beautiful Soup sits atop an HTML or XML parser, providing Pythonic idioms for " + 

45 "iterating, searching, and modifying the parse tree."), 

46 ModuleInstall( 

47 "certifi", "pip", purpose="Certifi is a carefully curated collection of Root Certificates for validating the trustworthiness " + 

48 "of SSL certificates while verifying the identity of TLS hosts."), 

49 ModuleInstall("requests", "pip", purpose="human interface for http"), 

50 ModuleInstall( 

51 "coverage", "pip", purpose="measure the coverage of unit tests"), 

52 ModuleInstall("urllib3", "pip", 

53 purpose="urllib2 extension"), 

54 ModuleInstall( 

55 "chardet", "pip", usage="WEB", 

56 purpose="Universal encoding detector."), 

57 ModuleInstall( 

58 "codecov", "pip", purpose="submit coverage report to codecov"), 

59 ModuleInstall("nose", "pip", purpose="run unit tests"), 

60 ModuleInstall( 

61 "pytz", "pip", purpose="World timezone definitions, modern and historical"), 

62 ModuleInstall("pyreadline", "pip", 

63 purpose="python implementation of GNU readline functionality"), 

64 ModuleInstall( 

65 "pipdeptree", "pip", purpose="displays module dependencies as a tree"), 

66 ModuleInstall("jdcal", "pip", 

67 purpose="Julian dates from proleptic Gregorian and Julian calendars."), 

68 ModuleInstall('et_xmlfile', "pip", 

69 purpose="et_xmlfile is a low memory library for creating large XML files (for openpyxl)."), 

70 ModuleInstall("openpyxl", "pip", 

71 purpose="reads/writes Excel files, version is 1.8.6 due to pandas which does not work with more recent verrsions yet"), 

72 ModuleInstall("xlrd", "pip", purpose="reads Excel files"), 

73 ModuleInstall("xlwt", "pip", purpose="writes Excel files"), 

74 ModuleInstall( 

75 'XlsxWriter', 'pip', mname='xlsxwriter', purpose="writes Excel files"), 

76 ModuleInstall( 

77 "tornado", "wheel", purpose="python server, IPython relies on it", usage="NETWORK"), 

78 ModuleInstall( 

79 "sockjs-tornado", "pip", mname="sockjs.tornado", usage="NETWORK", 

80 purpose="SockJS-tornado is a Python server side counterpart of SockJS-client browser library running " + 

81 "on top of Tornado framework."), 

82 ModuleInstall( 

83 "pyzmq", "wheel", mname="zmq", purpose="python librairies for Omz (pipy distributes the binaries)", usage="NETWORK"), 

84 ModuleInstall( 

85 "pycparser", "pip", purpose="pycparser is a complete parser of the C language, written in pure " + 

86 "Python using the PLY parsing library. It parses C code into " + 

87 "an AST and can serve as a front-end for C compilers or analysis tools."), 

88 ModuleInstall("numpy", "wheel", 

89 purpose="matrix computation", usage="DATA/ML"), 

90 ModuleInstall("mkl_service", "wheel", mname="mkl", 

91 purpose="This package exposes a few functions which are declared in mkl_service.h. The main purpose of the " + 

92 "package is to allow the user to change the number of CPU's MKL is using at runtime.", usage="DATA/ML"), 

93 ModuleInstall("Cython", "wheel", mname="cython", 

94 purpose="pseudo C++ in python"), 

95 ModuleInstall("cycler", "pip", 

96 purpose="dependency for matplotlib", usage="VIZ"), 

97 ModuleInstall("kiwisolver", "wheel", 

98 purpose="Kiwi is an efficient C++ implementation of the Cassowary constraint solving algorithm."), 

99 ModuleInstall("matplotlib", "wheel", 

100 purpose="most used plotting library", usage="VIZ"), 

101 ModuleInstall("mpl_finance", "github", "matplotlib", usage="VIZ", 

102 purpose="This module consists of code extracted from the deprecated matplotlib.finance " + 

103 "module along with a few examples of usage."), 

104 ModuleInstall("pywin32", "wheel2", 

105 mname="win32com", purpose="call Windows DLL", 

106 post=dict( 

107 pre_cmd="module_install_preprocess", 

108 cmd_python="{0}\\Scripts\\pywin32_postinstall.py -install"), 

109 usage="WINDOWS") if sys.platform.startswith("win") else None, 

110 ModuleInstall("pywin32-ctypes", "pip", mname="win32ctypes", 

111 purpose="call Windows DLL", usage="WINDOWS") if sys.platform.startswith("win") else None, 

112 ModuleInstall("winshell", "pip", purpose="Windows shell functions", 

113 usage="WINDOWS") if sys.platform.startswith("win") else None, 

114 ModuleInstall( 

115 "brewer2mpl", "pip", purpose="Connect colorbrewer2.org color maps to Python and matplotlib"), 

116 ModuleInstall( 

117 "scipy", "wheel", purpose="scientific computation, eigen values, linear algebra", usage="DATA/ML"), 

118 ModuleInstall( 

119 "patsy", "pip", purpose="A Python package for describing statistical models and for building design matrices.", usage="DATA/ML"), 

120 ModuleInstall( 

121 "decorator", "pip", purpose="Better living through Python with decorators"), 

122 ModuleInstall( 

123 "networkx", "pip", purpose="graph libraries, basic drawing", usage="VIZ"), 

124 ModuleInstall( 

125 "graphviz", "pip", purpose="wrapper for graphviz (most famous tool to draw graphs", usage="VIZ"), 

126 ModuleInstall("pyrsistent", "pip", purpose="Pyrsistent is a number of persistent collections (by some referred to as functional data " 

127 "structures). Persistent in the sense that they are immutable."), 

128 ModuleInstall('attrs', 'pip', 

129 purpose="Attributes without boilerplate."), 

130 ModuleInstall( 

131 "jsonschema", "pip", purpose="An implementation of JSON Schema validation for Python"), 

132 ModuleInstall( 

133 "mistune", "pip", purpose="The fastest markdown parser in pure Python with renderer features, inspired by marked."), 

134 ModuleInstall("wheel", "pip", purpose="handle wheels"), 

135 ModuleInstall( 

136 "alabaster", "pip", purpose="A configurable sidebar-enabled Sphinx theme", usage="SPHINX"), 

137 ModuleInstall("babel", "pip", # version="1.3", 

138 purpose="Internationalization utilities, version 2.0 has bugs", usage="SPHINX"), 

139 ModuleInstall( 

140 "colorama", "pip", purpose="Cross-platform colored terminal text.", usage="SPHINX"), 

141 ModuleInstall( 

142 "wcwidth", "pip", purpose="Measures number of Terminal column cells of wide-character codes", usage="JUPYTER"), 

143 ModuleInstall( 

144 "prompt_toolkit", "pip", purpose="Library for building powerful interactive command lines in Python", usage="JUPYTER"), 

145 ModuleInstall("docutils", "pip", 

146 purpose="interpret RST format", usage="SPHINX"), 

147 ModuleInstall("packaging", "pip", 

148 purpose="Core utilities for Python packages"), 

149 ModuleInstall("sphinxcontrib-applehelp", "pip", mname="sphinxcontrib.applehelp", 

150 purpose="extension for Sphinx", usage="SPHINX"), 

151 ModuleInstall("sphinxcontrib-devhelp", "pip", mname="sphinxcontrib.devhelp", 

152 purpose="extension for Sphinx", usage="SPHINX"), 

153 ModuleInstall("sphinxcontrib-htmlhelp", "pip", mname="sphinxcontrib.htmlhelp", 

154 purpose="extension for Sphinx", usage="SPHINX"), 

155 ModuleInstall("sphinxcontrib-jsmath", "pip", mname="sphinxcontrib.jsmath", 

156 purpose="extension for Sphinx", usage="SPHINX"), 

157 ModuleInstall("sphinxcontrib-qthelp", "pip", mname="sphinxcontrib.qthelp", 

158 purpose="extension for Sphinx", usage="SPHINX"), 

159 ModuleInstall("sphinxcontrib-serializinghtml", "pip", mname="sphinxcontrib.serializinghtml", 

160 purpose="extension for Sphinx", usage="SPHINX"), 

161 ModuleInstall("sphinxcontrib-websupport", "pip", mname="sphinxcontrib.websupport", 

162 purpose="extension for Sphinx", usage="SPHINX"), 

163 ModuleInstall( 

164 "sphinx", "pip", purpose="documentation generation based on RST", usage="SPHINX"), 

165 ModuleInstall( 

166 'imagesize', 'pip', usage="SPHINX", purpose="Getting image size from png/jpeg/jpeg2000/gif file"), 

167 # ModuleInstall( 

168 # 'sphinxcontrib-images', 'github', "sdpython", mname='sphinxcontrib.images', 

169 # usage="SPHINX", purpose="include images in Sphinx documentation"), 

170 ModuleInstall('pypiserver', 'pip', 

171 purpose="run a local pypi server"), 

172 ModuleInstall( 

173 "untokenize", "pip", purpose="Transforms tokens into original source code (while preserving whitespace).", usage="STYLE"), 

174 ModuleInstall( 

175 "pycodestyle", "pip", purpose="Python style guide checker", usage="STYLE"), 

176 ModuleInstall( 

177 "pep8", "pip", purpose="official guidelines on Python style"), 

178 ModuleInstall("autopep8", "pip", 

179 purpose="apply pep8 on a script", usage="STYLE"), 

180 ModuleInstall("docformatter", "pip", 

181 purpose="Formats docstrings to follow PEP 257.", usage="STYLE"), 

182 ModuleInstall("unify", "pip", 

183 purpose="Modifies strings to all use the same (single/double) quote where possible.", usage="STYLE"), 

184 ModuleInstall("mccabe", "pip", usage="STYLE", 

185 purpose="This module provides a plugin for flake8, the Python code checker."), 

186 ModuleInstall("pyflakes", "pip", 

187 purpose="verify pep8 on a script", usage="STYLE"), 

188 ModuleInstall("flake8", "pip", 

189 purpose="verify pep8 on a script", usage="STYLE"), 

190 ModuleInstall( 

191 "bottleneck", "wheel", purpose="pandas depenencies, faster arrays", usage="DATA/ML"), 

192 ModuleInstall( 

193 "pandas", "wheel", purpose="manipulate table as SQL in memory", usage="DATA/ML"), 

194 ModuleInstall( 

195 "statsmodels", "wheel", purpose="statistical modelling, depends on scipy", usage="DATA/ML"), 

196 ModuleInstall( 

197 "enum34", "pip", purpose="for ggplot, Object-oriented filesystem paths") if sys.version_info[:2] < (3, 4) else None, 

198 ModuleInstall("pathlib2", "pip", 

199 purpose="for ggplot, Object-oriented filesystem paths"), 

200 ModuleInstall("ggplot", "pip", purpose="ggplot graphics style"), 

201 ModuleInstall("plotnine", "pip", 

202 purpose="A grammar of graphics for Python"), 

203 ModuleInstall( 

204 "requests-file", "pip", mname="requests_file", purpose="File transport adapter for Requests"), 

205 ModuleInstall( 

206 "requests-ftp", "pip", mname="requests_ftp", purpose="FTP Transport Adapter for Requests"), 

207 ModuleInstall( 

208 "pandas-datareader", "pip", mname="pandas_datareader", 

209 purpose="Up to date remote data access for pandas, works for multiple versions of pandas.", usage="DATA/ML"), 

210 ModuleInstall("cftime", "wheel", 

211 purpose="Time-handling functionality from netcdf4-python."), 

212 ModuleInstall("netCDF4", "wheel", 

213 purpose="xarray uses this module to save and read data (netCDF=Unidata network Common Data Form)"), 

214 ModuleInstall( 

215 "xarray", "pip", purpose="pandas like library for cubes (N-dimensional data)", usage="DATA/ML"), 

216 ModuleInstall( 

217 "bcolz", "wheel", purpose="compressed dataframe, in memory or on disk", usage="DATA/ML"), 

218 ModuleInstall( 

219 "threadpoolctl", "pip", purpose="Python helpers to limit the number of threads used in the " 

220 "threadpool-backed of common native libraries used for scientific computing and data science " 

221 "(e.g. BLAS and OpenMP)."), 

222 ModuleInstall( 

223 "joblib", "pip", purpose="distribute jobs, parallelization"), 

224 ModuleInstall( 

225 "scikit-learn", "wheel", mname="sklearn", purpose="machine learning", usage="DATA/ML"), 

226 # ipython 

227 ModuleInstall("pandocfilters", "pip", 

228 purpose="Utilities for writing pandoc filters in python"), 

229 ModuleInstall("pandoc-attributes", "pip", mname="pandocattributes", 

230 purpose="An Attribute class to be used with pandocfilters"), 

231 ModuleInstall("win_unicode_console", "pip", 

232 "Enable Unicode input and display when running Python from Windows console."), 

233 ModuleInstall( 

234 "ipython_genutils", "pip", purpose="IPython utils (nbformat)", usage="JUPYTER"), 

235 ModuleInstall( 

236 "html5lib", "pip", purpose="pure-python library for parsing HTML"), 

237 ModuleInstall("bleach", "pip", usage="WEB", 

238 purpose="An easy whitelist-based HTML-sanitizing tool."), 

239 ModuleInstall( 

240 "testpath", "pip", purpose="Test utilities for code working with files and commands"), 

241 ModuleInstall( 

242 "traitlets", "pip", purpose="IPython, dependency", usage="JUPYTER"), 

243 ModuleInstall( 

244 "pickleshare", "pip", purpose="IPython, dependency", usage="JUPYTER"), 

245 ModuleInstall( 

246 "simplegeneric", "pip", purpose="IPython, dependency", usage="JUPYTER"), 

247 ModuleInstall( 

248 "parso", "pip", purpose="Parso is a Python parser that supports error recovery and " + 

249 "round-trip parsing for different Python versions (in multiple Python versions). Parso " + 

250 "is also able to list multiple syntax errors in your python file."), 

251 ModuleInstall( 

252 "jedi", "pip", purpose="An autocompletion tool for Python that can be used for text editors."), 

253 ModuleInstall("backcall", "pip", usage="JUPYTER", 

254 purpose="Specifications for callback functions passed in to an API (IPython, Jupyter)"), 

255 ModuleInstall( 

256 "ipython", "pip", mname="IPython", purpose="IPython, Jupyter", usage="JUPYTER"), 

257 ModuleInstall( 

258 "jupyter_core", "pip", purpose="Jupyter Core", usage="JUPYTER"), 

259 ModuleInstall( 

260 "jupyter", "pip", purpose="Jupyter", usage="JUPYTER"), 

261 ModuleInstall( 

262 "jupyter_client", "pip", purpose="Jupyter client", usage="JUPYTER"), 

263 ModuleInstall( 

264 "jupyterlab_pygments", "pip", purpose="Jupyterlab", usage="JUPYTER"), 

265 ModuleInstall( 

266 "nbformat", "pip", purpose="IPython, notebooks conversion, new in Jupyter 4.0", usage="JUPYTER"), 

267 ModuleInstall( 

268 "entrypoints", "pip", purpose="Discover and load entry points from installed packages.", usage="JUPYTER"), 

269 ModuleInstall( 

270 "nbconvert", "pip", purpose="IPython, notebooks conversion, new in Jupyter 4.0", usage="JUPYTER"), 

271 ModuleInstall( 

272 "jupyter_sphinx", "pip", purpose="Jupyter Sphinx Extensions", usage="JUPYTER"), 

273 ModuleInstall( 

274 "jupyterlab-launcher", "pip", mname="jupyterlab_launcher", 

275 purpose="Jupyter Lab Launcher", usage="JUPYTER"), 

276 ModuleInstall("jupyterlab-server", "pip", mname="jupyterlab_server", 

277 purpose="Jupyter Lab Server", usage="JUPYTER"), 

278 ModuleInstall( 

279 "jupyterlab", "pip", purpose="Jupyter Lab", usage="JUPYTER"), 

280 ModuleInstall( 

281 "ipympl", "pip", purpose="Matplotlib Jupyter Extension", usage="JUPYTER"), 

282 ModuleInstall( 

283 "nbsphinx", "pip", purpose="nbsphinx is a Sphinx extension that provides a source parser for *.ipynb files.", usage="JUPYTER"), 

284 ModuleInstall("PyPDF2", "pip", purpose="PDF toolkit", usage="PDF"), 

285 ModuleInstall( 

286 "ghost.py", "pip", mname="ghost", purpose="ghost.py is a webkit web client written in python", usage="JUPYTER"), 

287 ModuleInstall("nbbrowserpdf", "pip", 

288 purpose="LaTeX-free PDF generation from Jupyter Notebooks", usage="JUPYTER"), 

289 ModuleInstall("Send2Trash", "pip", mname="send2trash", 

290 purpose="Send file to trash natively under Mac OS X, Windows and Linux."), 

291 ModuleInstall( 

292 "notedown", "pip", purpose="Convert markdown to IPython notebook.", usage="JUPYTER"), 

293 ModuleInstall( 

294 "ipykernel", "pip", purpose="IPython, Jupyter, kernels", usage="JUPYTER"), 

295 ModuleInstall( 

296 "qtconsole", "pip", purpose="IPython, notebooks, qtconsole", usage="JUPYTER"), 

297 ModuleInstall("zipp", "pip", 

298 purpose="A pathlib-compatible Zipfile object wrapper."), 

299 ModuleInstall("importlib-metadata", "pip", mname="importlib_metadata", 

300 purpose="library to access the metadata for a Python package. It is intended to be ported to Python 3.8.", 

301 usage="JUPYTER"), 

302 ModuleInstall( 

303 "path.py", "pip", mname="path", purpose="IPython, dependency", usage="JUPYTER"), 

304 ModuleInstall( 

305 "micropython-libc", "pip", mname="libc", purpose="dependency for ptyprocess, MicroPython FFI helper module", 

306 usage="JUPYTER/LINUX") if not sys.platform.startswith("win") else None, 

307 ModuleInstall( 

308 "micropython-ffilib", "pip", mname="ffi", purpose="dependency for ptyprocess, MicroPython FFI helper module", 

309 usage="JUPYTER/LINUX") if not sys.platform.startswith("win") else None, 

310 ModuleInstall( 

311 "micropython-fcntl", "pip", mname="fcntl", purpose="dependency for ptyprocess, Functions to compute fnctl.ioctl's opt argument", 

312 usage="JUPYTER/LINUX") if not sys.platform.startswith("win") else None, 

313 ModuleInstall( 

314 "ptyprocess", "pip", purpose="dependency for the terminado, Run a subprocess in a pseudo terminal", 

315 usage="JUPYTER/LINUX"), 

316 ModuleInstall("pexpect", "pip", usage="JUPYTER", 

317 purpose="needed by ipykernel on Linux, Pexpect makes Python a better tool for controlling " + 

318 "other applications (needed by metakernel)."), 

319 ModuleInstall("pywinpty", "wheel", 

320 purpose="Python bindings for the winpty pseudo terminal library. It allows to create and " + 

321 "communicate with Windows processes that print outputs and recieve inputs via console input " + 

322 "and output pipes."), 

323 ModuleInstall( 

324 "terminado", "pip", purpose="dependency for the notebooks, Terminals served to term.js using Tornado websockets", 

325 usage="JUPYTER/LINUX"), 

326 ModuleInstall( 

327 "ipywidgets", "pip", purpose="IPython, Jupyter, widgets", usage="JUPYTER"), 

328 ModuleInstall("ipyscales", "pip", 

329 purpose="A widget library for scales", usage="JUPYTER"), 

330 ModuleInstall("ipydatawidgets", "pip", 

331 purpose="A set of widgets to help facilitate reuse of large datasets across widgets", usage="JUPYTER"), 

332 ModuleInstall( 

333 "backports_abc", "pip", purpose="A backport of recent additions to the 'collections.abc' module", 

334 usage="JUPYTER"), 

335 ModuleInstall("yapf", "pip", purpose="Code formatter"), 

336 ModuleInstall( 

337 "widgetsnbextension", "pip", 

338 purpose="Interactive HTML widgets for Jupyter notebooks.", usage="JUPYTER"), 

339 ModuleInstall( 

340 "jupyter_contrib_nbextensions", "github", "ipython-contrib", 

341 purpose="This repository contains a collection of extensions that add functionality to the Jupyter notebook.", usage="JUPYTER"), 

342 ModuleInstall( 

343 "backports.shutil-get-terminal-size", "pip", mname="backports", purpose="needed for Jupyter", 

344 usage="JUPYTER"), 

345 ModuleInstall( 

346 "prometheus_client", "pip", purpose="The official Python 2 and 3 client for Prometheus.", usage="JUPYTER"), 

347 ModuleInstall( 

348 "notebook", "pip", purpose="Jupyter notebooks, new in Jupyter 4.0", usage="JUPYTER"), 

349 ModuleInstall( 

350 "nbpresent", "pip", purpose="Next generation slides from Jupyter Notebooks", usage="JUPYTER"), 

351 ModuleInstall( 

352 "jupyter-console", "pip", mname="jupyter_console", purpose="Jupyter console, new in Jupyter 4.0", usage="JUPYTER"), 

353 ModuleInstall( 

354 "metakernel", "pip", purpose="more magic commands for Jupyter", usage="JUPYTER"), 

355 ModuleInstall('SQLAlchemy', 'wheel', mname='sqlalchemy', 

356 purpose="model SQL queries as objects", usage="SQL"), 

357 ModuleInstall('sqlparse', 'pip', usage="SQL", 

358 purpose="Non-validating SQL parser"), 

359 ModuleInstall( 

360 "ipystata", "pip", purpose="Jupyter kernel for Stata", 

361 usage="JUPYTER/PY2") if sys.version_info[0] == 2 else None, 

362 ModuleInstall("jupyter-pip", "pip", mname="jupyterpip", 

363 purpose="Allows Jupyter notebook extension writers to make their extension pip installable!", 

364 usage="JUPYTER"), 

365 ModuleInstall("portalocker", "pip", usage="JUPYTER", 

366 purpose="Portalocker is a library to provide an easy API to file locking."), 

367 ModuleInstall("ipyparallel", "pip", usage="JUPYTER", 

368 purpose="Interactive Parallel Computing with IPython"), 

369 # end of ipython 

370 # 

371 ModuleInstall("typing", "pip", purpose="Type Hints for Python") if sys.version_info[ 

372 :2] < (3, 5) else None, 

373 ModuleInstall("typecheck-decorator", "pip", mname="typecheck", 

374 purpose="verifies decorators at running time"), 

375 ModuleInstall("requests-cache", "pip", mname="requests_cache", 

376 purpose="Persistent cache for requests library"), 

377 ModuleInstall("SIP", "pip", mname="sip", 

378 usage="GUI", purpose="For PyQt5"), 

379 ModuleInstall("ete3", "pip", "http://etetoolkit.org/", usage="VIZ", 

380 purpose="tree visualisation, ete3 does not work with PyQt4 (2017-11)."), 

381 ModuleInstall("PyQt5-sip", "pip", mname="PyQt5_sip", usage="GUI"), 

382 ModuleInstall("PyQt5", "pip", usage="GUI"), 

383 ModuleInstall("shiboken2", "pip", purpose="for PySide"), 

384 ModuleInstall("qtpy", "pip", usage="GUI", 

385 purpose="single interface for QtPy4, 5, PySide"), 

386 ModuleInstall( 

387 "PySide2", "pip", 

388 purpose="The Qt for Python project aims to provide a complete port of the PySide module to Qt 5. ", 

389 usage="GUI"), 

390 ModuleInstall( 

391 "psutil", "wheel", purpose="cross-platform library for retrieving information " + 

392 "onrunning processes and system utilization (CPU, memory, disks, network)in Python."), # 

393 ModuleInstall( 

394 "rope_py3k", "pip", mname="rope", purpose="refactoring library") if sys.version_info[0] >= 3 else None, # 

395 ModuleInstall( 

396 "isort", "pip", purpose="A Python utility / library to sort Python imports."), 

397 ModuleInstall( 

398 "backports.functools_lru_cache", "pip", 

399 purpose="backports.functools_lru_cache"), 

400 ModuleInstall("lazy-object-proxy", "pip", mname="lazy_object_proxy", 

401 purpose="A fast and thorough lazy object proxy"), 

402 ModuleInstall("wrapt", "wheel", 

403 purpose="A Python module for decorators, wrappers and monkey patching."), 

404 ModuleInstall( 

405 "typed_ast", "pip", 

406 purpose="typed_ast is a Python 3 package that provides a Python 2.7 and Python 3 " 

407 "parser similar to the standard ast library."), 

408 ModuleInstall( 

409 "astroid", "pip", 

410 purpose="A abstract syntax tree for Python with inference support."), 

411 ModuleInstall( 

412 "pylint", "pip", purpose="statistics on Python script style"), # 

413 ModuleInstall( 

414 "pythonqwt", "pip", purpose="Qt plotting widgets (Spyder)"), 

415 ModuleInstall("wurlitzer", "pip", purpose="for spyder"), 

416 ModuleInstall("spyder-kernels", "pip", mname="spyder_kernels", 

417 purpose="Jupyter Kernels for the Spyder console"), 

418 ModuleInstall( 

419 "spyder", "pip", mname="spyderlib", purpose="scientific IDE"), 

420 ModuleInstall("dbfread", "pip", purpose="access DBase format"), 

421 ModuleInstall( 

422 "aenum", "pip", purpose="Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants"), 

423 ModuleInstall("dbf", "pip", purpose="access DBase format"), 

424 ModuleInstall( 

425 "xmltodict", "pip", purpose="Makes working with XML feel like you are working with JSON"), 

426 ModuleInstall( 

427 "ansiconv", "pip", purpose="A Python module for converting ANSI coded text and converts it to either plain text or HTML."), 

428 ModuleInstall( 

429 "ansi2html", "pip", purpose="Convert text with ANSI color codes to HTML"), 

430 ModuleInstall( 

431 "nodeenv", "pip", purpose="Node.js virtual environment builder"), 

432 ModuleInstall("greenlet", "wheel", 

433 purpose="Greenlet allows lightweight in-process concurrent programming."), 

434 ModuleInstall( 

435 'werkzeug', 'pip', purpose="The Swiss Army knife of Python web development"), 

436 ModuleInstall('itsdangerous', 'pip', 

437 purpose="Various helpers to pass trusted data to untrusted environments and back."), 

438 ModuleInstall('simplejson', 'wheel', 

439 purpose="Simple, fast, extensible JSON encoder/decoder for Python"), 

440 ModuleInstall( 

441 'ijson', 'pip', purpose="Iterative JSON parser with a standard Python iterator interface"), 

442 ModuleInstall("click", "pip", 

443 purpose="A simple wrapper around optparse for powerful command line utilities."), 

444 ModuleInstall('flask', 'pip', usage="NETWORK", 

445 purpose="Flask is a microframework for Python based on Werkzeug, " + 

446 "Jinja 2 and good intentions. And before you ask: It's BSD licensed!"), 

447 ModuleInstall('flask-sqlalchemy', 'pip', 

448 mname='flask.ext.sqlalchemy', usage="NETWORK"), 

449 ModuleInstall('Flask-Login', 'pip', mname="flask_login", 

450 usage="NETWORK"), 

451 ModuleInstall("Flask-Cors", "pip", mname="flask_cors", 

452 purpose="A Flask extension for handling Cross Origin Resource Sharing (CORS), " + 

453 "making cross-origin AJAX possible."), 

454 ModuleInstall('PyYAML', 'wheel', mname='yaml', 

455 purpose=" YAML parser and emitter for Python"), 

456 ModuleInstall('python-mimeparse', 'pip', 

457 purpose="A module provides basic functions for parsing mime-type names and matching " + 

458 "them against a list of media-ranges. (falcon)"), 

459 ModuleInstall('falcon', 'pip', usage="NETWORK", 

460 purpose="Falcon is a very fast, very minimal Python web framework for building microservices, " + 

461 "app backends, and higher-level frameworks."), 

462 ModuleInstall('falcon-auth', 'pip', mname='falcon_auth', usage="NETWORK", 

463 purpose="A falcon middleware + authentication backends that adds authentication layer to you app/api service."), 

464 ModuleInstall('waitress', 'pip', usage="NETWORK", 

465 purpose="Waitress WSGI server"), 

466 ModuleInstall( 

467 'markdown', 'pip', purpose="markdown parser (for bokeh)"), 

468 ModuleInstall( 

469 'pystache', 'pip', purpose="Mustache for Python (for bokeh)"), 

470 ModuleInstall( 

471 'bokeh', 'pip', purpose="interactive graphs, zoomable, javascript", usage="VIZ"), 

472 ModuleInstall( 

473 'bkcharts', 'pip', purpose="High level chart types built on top of Bokeh", usage="VIZ"), 

474 ModuleInstall( 

475 'traittypes', 'pip', purpose="Custom trait types for scientific computing."), 

476 ModuleInstall( 

477 'bqplot', 'pip', purpose="interactive graphs, zoomable, d3.js for notebooks", usage="VIZ"), 

478 ModuleInstall( 

479 'seaborn', 'pip', purpose="nicer graphs than matplotlib for statistical purposes", usage="VIZ"), 

480 ModuleInstall( 

481 'scikit-plot', 'pip', purpose="nicer graphs than matplotlib for datascientist", usage="VIZ"), 

482 ModuleInstall( 

483 'toolz', 'pip', purpose="Toolz provides a set of utility functions for iterators, functions, and dictionaries.", usage="DATA/ML"), 

484 ModuleInstall( 

485 'cytoolz', 'wheel', purpose="Cython implementation of Toolz: High performance functional utilities", usage="DATA/ML"), 

486 ModuleInstall('snowballstemmer', 'pip', 

487 purpose="This package provides 16 stemmer algorithms (15 + Porter English stemmer) generated from Snowball " + 

488 "algorithms, needed by sphinx-rtd-theme."), 

489 ModuleInstall('sphinx-rtd-theme', 'pip', mname='sphinx_rtd_theme', 

490 purpose="sphinx theme", usage="SPHINX"), 

491 ModuleInstall("feedparser", "pip", purpose="parse RSS streams"), 

492 ModuleInstall( 

493 "pbr", "pip", purpose="PBR is a library that injects some useful and sensible default behaviors into your setuptools run."), 

494 ModuleInstall( 

495 "multi-key-dict", "pip", mname="multi_key_dict", purpose="Multi key dictionary implementation"), 

496 ModuleInstall( 

497 "python-jenkins", "pip", mname="jenkins", purpose="interact with Jenkins"), 

498 ModuleInstall( 

499 'envoy', 'pip', purpose="Simple API for running external processes."), 

500 ModuleInstall('Logbook', 'wheel', mname='logbook', 

501 purpose="A logging replacement for Python"), 

502 ModuleInstall( 

503 'pkginfo', 'pip', purpose="Query metadatdata from sdists / bdists / installed packages."), 

504 ModuleInstall("multipledispatch", "pip", 

505 purpose="A relatively sane approach to multiple dispatch in Python."), 

506 ModuleInstall("future", "pip", 

507 purpose="Clean single-source support for Python 3 and 2"), 

508 ModuleInstall("mock", "pip", 

509 purpose="mock is a library for testing in Python. It allows you to replace parts of your system " + 

510 "under test with mock objects and make assertions about how they have been used."), 

511 ModuleInstall("multimethods", "pip", 

512 purpose="A multimethod implementation, loosely based on Guido’s initial ‘Five-minute Multimethods in Python."), 

513 ModuleInstall("appdirs", "pip", 

514 purpose="A small Python module for determining appropriate platform-specific dirs"), 

515 ModuleInstall("qgrid", "pip", usage="VIZ", 

516 purpose="A Pandas DataFrame viewer for IPython Notebook."), 

517 ModuleInstall("ujson", "wheel", 

518 purpose="Ultra fast JSON encoder and decoder for Python"), 

519 ModuleInstall("natsort", "pip", purpose="Sort lists naturally"), 

520 ModuleInstall("wget", "pip", purpose="pure python download utility"), 

521 ModuleInstall("queuelib", "pip", 

522 purpose="Collection of persistent (disk-based) queues"), 

523 ModuleInstall("semantic_version", "pip", 

524 purpose="A library implementing the 'SemVer' scheme."), 

525 ModuleInstall("unidecode", "pip", 

526 purpose="ASCII transliterations of Unicode text"), 

527 ModuleInstall("sqlite_bro", "pip", 

528 purpose="GUI for SQLite"), 

529 ModuleInstall("uvloop", "pip", purpose="Fast implementation of asyncio event loop on top of libuv") if sys.version_info[ 

530 :2] > (3, 5) and not sys.platform.startswith("win") else None, # requires VS 2015 ? 

531 ModuleInstall("tabulate", "pip", 

532 purpose="Pretty-print tabular data"), 

533 ModuleInstall("httpie", "pip", 

534 purpose="HTTPie - a CLI, cURL-like tool for humans"), 

535 ModuleInstall("version-information", "pip", mname="version_information", 

536 purpose="Version information"), 

537 ModuleInstall("isodate", "pip", 

538 purpose="An ISO 8601 date/time/duration parser and formatter"), 

539 ModuleInstall("dominate", "pip", 

540 purpose="Dominate is a Python library for creating and manipulating HTML documents using an elegant DOM API."), 

541 ModuleInstall("mbstrdecoder", "pip", 

542 purpose="multi-byte character string decoder"), 

543 ModuleInstall("ipaddress", "pip", 

544 purpose="IPv4/IPv6 manipulation library"), 

545 ModuleInstall("typepy", "pip", 

546 purpose="A python library for variable type checker/validator/converter at run time."), 

547 ModuleInstall("pathvalidate", "pip", 

548 purpose="A python library to validate/sanitize a string such as filenames/variable-names/excel-sheet-names."), 

549 ModuleInstall("toml", "pip", 

550 purpose="Python Library for Tom's Obvious, Minimal Language"), 

551 ModuleInstall("DataProperty", "pip", mname="dataproperty", 

552 purpose="Python library for extract property from data."), 

553 ModuleInstall("tabledata", "pip", 

554 purpose="A Python library to represent tabular data for pytablewriter/pytablereader/SimpleSQLite."), 

555 ModuleInstall("msgfy", "pip", 

556 purpose="msgfy is a Python library for convert Exception instance to a human-readable error message."), 

557 ModuleInstall("SimpleSQLite", "pip", mname="simplesqlite", 

558 purpose="SimpleSQLite is a Python library to simplify the table creation and data insertion into SQLite database."), 

559 ModuleInstall("sqliteschema", "pip", 

560 purpose="sqliteschema is a Python library to dump table schema of a SQLite database file."), 

561 ModuleInstall("pytablereader", "pip", 

562 purpose="A python library to load structured table data from files/URL with various data format: " + 

563 "CSV/Excel/HTML/JSON/LTSV/Markdown/TSV."), 

564 ModuleInstall("elasticsearch", "pip", 

565 purpose="Python client for Elasticsearch"), 

566 ModuleInstall("pytablewriter", "pip", 

567 purpose="convert a dataframe into many formats"), 

568 ModuleInstall("defusedxml", "pip", 

569 purpose="XML bomb protection for Python stdlib modules"), 

570 ModuleInstall( 

571 "tqdm", "pip", purpose="A Simple Python Progress Meter", usage="JUPYTER"), 


573 ModuleInstall( 

574 'olefile', 'pip', purpose="Python package to parse, read and write Microsoft OLE2 files " + 

575 "(Structured Storage or Compound Document, Microsoft Office) - Improved version of the " + 

576 "OleFileIO module from PIL, the Python Image Library."), 

577 ModuleInstall( 

578 'Pillow', 'wheel', mname='PIL', purpose="read/create images"), 

579 # Sphinx extension to draw graphs. 

580 ModuleInstall( 

581 "webcolors", "pip", purpose="A library for working with color names and color value formats defined " + 

582 "by the HTML and CSS specifications for use in documents on the Web."), 

583 ModuleInstall( 

584 "funcparserlib", "pip", purpose="Recursive descent parsing library based on functional combinators"), 

585 ModuleInstall( 

586 "blockdiag", "pip", purpose="blockdiag generates block-diagram image from text"), 

587 ModuleInstall( 

588 "sphinxcontrib-blockdiag", "pip", mname="sphinxcontrib.blockdiag", 

589 purpose="Sphinx 'blockdiag' extension"), 

590 ] 


592 return [_ for _ in mod if _ is not None]