Build status Build Status Windows https://circleci.com/gh/sdpython/ensae_teaching_cs/tree/master.svg?style=svg https://badge.fury.io/py/ensae_teaching_cs.svg MIT License https://codecov.io/github/sdpython/ensae_teaching_cs/coverage.svg?branch=master GitHub Issues Codacy Badge Notebook Coverage

ensae_teaching_cs

This page gives access to the content of practical sessions I give at the ENSAE. They are based on Python. The project is hosted on GitHub can be modified by sending me pull requests:

Contributions

Started in 2014/04. Contributors: Xavier Dupré, Anne Muller, Elodie Royant, Matthieu Bizien, Nicolas Rousset, Jérémie Jakubowicz, Gilles Drigout, Gaël Varoquaux, ENSAE’s students.

Setup

Continuous files travis.yml or appveyor.yml give indications on how to setup a machine to run most of the notebooks. All notebooks do not run on travis or appveyor due to the excessive amount of times it requires. They are being run a debian machine every week. A coverage page reports on which one runs and when was the last time it was run.

Module pymyinstall was implemented to simplify the installation by just typing pymy_install and then remove the modules being tested (such as this one). It was needed a couple of years ago but not really needed anymore now as most of the modules are now available on Windows and Linux on PyPi.

Local Continuous Integration

Some of the tools used to modify and run all the notebooks but they are not optional in most of the cases.

7zip, Chrome, CMake (to build XGBoost), Graphviz, Git, GitHub, Java 64 bit (for Spark), Jenkins (CI), Miktex Basic Installer 64 bit (formula in the documentation) (check the option to silently install new packages), Pandoc (documentation), Python 3.6, 64 bit (do not add the interpreter on the default PATH), Scite, Visual Studio 2017 Community Edition (check C++, C#, Python, CLang) (Cython).

A Jenkins server was installed on a debian machine to run all the notebooks every week. Jenkins requires a few extensions: Last Console Output, Next Executions, Text File. Extension for Jupyter notebooks can be installed with the following instructions but this is really optional.

pip install widgetsnbextension
jupyter nbextension enable --py --sys-prefix widgetsnbextension

A local PyPi server needs to be installed:

pypi-server.exe -u -p 8067 --disable-fallback ..\..\local_pypi\local_pypi_server

If some Python scripts use keyring to retrieve passwords, the Jenkins service needs to authentify. On Windows, it goes through services.msc.