# require.txt :: mock requirements.txt for fecon236 Date : 2018-06-13 # # "$ pip install -r requirements.txt" is the orthodox way, BUT # "$ pip install -r require.txt" ONLY after reading below. # # When we do continuous integration testing, we prefer the environment # created by conda, rather than by pip. Travis CI automatically installs # from requirements.txt when the language is Python -- which is something # we want to intentionally avoid for that reason. This is the developers' # preference, but the user may have different practices. So... # # => require.txt can be COPIED as requirements.txt, # or be used directly, upon understanding this advisory, # # for the bare essentials, which EXCLUDES software optimizations # such as MLK (Math Kernel Library) and LLVM, as well as # Jupyter notebook and IPython console. # # Please DISREGARD this file, if you already using the Anaconda distribution # for the full stack -- those optimizations are included effortlessly. # # => TIP: get the conda-aware version of pip to INSTALL fecon236: # # conda install pip virtualenv $ # pip install --pre fecon236 # pip install --upgrade fecon236 # pip uninstall fecon236 # # # _______________ Virtual conda environment / Installing dependencies # # The --file flag trick can be used to create a specific environment: # # conda create --name feenv --file PATHTO/require.txt # # That trick will also work to build on an existing environment fooenv: # # conda install --name fooenv --file PATHTO/require.txt # # Note that this trick ONLY works because each package in this require.txt # is installable via conda. # # Then after activating your virtual environment, install fecon236 # per above by pip. For more details, see # https://conda.io/docs/user-guide/tasks/manage-environments.html # # # =================================== At the bare MINIMUM, require... ========= pandas==0.22.0 numpy==1.14.3 scipy==1.1.0 statsmodels==0.8.0 matplotlib==2.2.2 sympy==1.1.1 pandas-datareader==0.6.0 # pandas is the CORNERSTONE which should dictate the best numpy version. # All else should be compatible with those two package. # # Above tested as of fecon236: 10.6.3a35.post180530 # - Python 2.7 environment # - Python 3.4 environment # Versions are inter-compatible (dependency resolution) tested per # conda (Boolean Satisfiability SAT solver) and Travis integration. # # Written in LOCKFILE format, i.e. using "==" instead of ">=" # since the resulting build will be DETERMINISTIC. # _______________ RECOMMENDED GOODNESS to supplement fecon236: # IPython console (far better than regular >>> Python IDE) # Jupyter notebook (for research and development) # ----- but also... # lxml # html5lib # bs4 # ----- pandas needs the previous three to best parse, see sec module. # =========================================================== ENDNOTES ======== # # _______________ Tedious setup.py considerations # # Whereas "install_requires" requirements in setup.py are Abstract, # i.e. not associated with any particular index, # requirements files often contain pip options like --index-url # or --find-links to make requirements Concrete, i.e. # associated with a particular index or directory of packages. # Whereas "install_requires" metadata in setup.py is automatically # analyzed by pip during an install, requirements files are NOT, # and only are used when a user specifically installs them # using "pip install -r requirements.txt". # # RTFM https://pip.readthedocs.io/en/1.1/requirements.html # Donald Stufft, 2013, "setup.py vs requirements.txt" # https://caremad.io/posts/2013/07/setup-vs-requirement