# ISLP_labs [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/intro-stat-learning/ISLP_Labs) [![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors-) ## Authors - Trevor Hastie - Gareth James - Jonathan Taylor - Robert Tibshirani - Daniela Witten ### ISLP Please ensure you have followed the installation instructions for [ISLP](https://github.com/intro-stat-learning/ISLP). This will address installation of [jupyterlab](https://github.com/jupyterlab/jupyterlab) if necessary, which is not included as a requirement of the labs. ### Up-to-date version of labs for ISLP. This repo will track labs for ISLP as their source code changes. The intent is that building a virtual environment with `requirements.txt` will reproduce the results in this repo. To install the current version of the requirements run ``` uv pip install -r https://raw.githubusercontent.com/intro-stat-learning/ISLP_labs/v2.2.2/requirements.txt; ``` The labs can now be run via: ``` uv run jupyter lab Ch02-statlearn-lab.ipynb ``` # Zip / tarball You can download all the labs as a `.zip` or `.tar.gz` [here](https://github.com/intro-stat-learning/ISLP_labs/releases/tag/v2.2.2) # Setup script We've added a setup script that ensures precisely the desired labs are checked out along with a `uv` virtual environment being created. Follow these instructions: To set up a local environment to run the notebooks for a specific version of the labs, you can use the `setup_notebook_env.py` script. This script will create a directory, download the labs, and set up a Python virtual environment with all the necessary packages. ## Prerequisites This script relies on `uv` for managing Python environments. If you don't have `uv` installed, you can install it using `pipx` or `cargo`: * **Using `pipx` (recommended):** ```bash pip install pipx pipx ensurepath pipx install uv ``` * **Using `cargo` (if you have Rust installed):** ```bash cargo install uv ``` For more detailed installation instructions, please refer to the [uv documentation](https://github.com/astral-sh/uv#installation). ## Instructions ### 1. Download the setup script You can find the raw Python script here: [`setup_notebook_env.py`](https://raw.githubusercontent.com/intro-stat-learning/ISLP_labs/main/setup_notebook_env.py) To download and run it, first ensure `uv` is installed (see Prerequisites above), then execute the following commands in your terminal: ```bash curl -LO https://raw.githubusercontent.com/intro-stat-learning/ISLP_labs/main/setup_notebook_env.py uv run python setup_notebook_env.py --outdir ISLP_v2.2.2 --commit v2.2.2 --python-version 3.12 ``` ### 2. Run the setup script Open your terminal and run the following command to set up the environment for version `v2.2.2` of the labs with Python `3.12`. You can also specify one or more notebooks to run automatically after setup. * `--outdir ISLP_v2.2.2`: This will create a directory named `ISLP_v2.2.2` for your labs. * `--commit v2.2.2`: This specifies that you want to use version `v2.2.2` of the labs. * `--python-version 3.12`: This will use Python 3.12 for the environment. * `Ch02-statlearn-lab.ipynb`: This is an optional argument to run a specific notebook after the setup is complete. It is meant for testing to be sure given notebooks run but is not required. You can list more than one notebook. ### 3. Activate the environment Once the script is finished, you can activate the virtual environment to run other notebooks or work with the lab materials. * **On macOS and Linux:** ```bash source ISLP_v2.2.2/.venv/bin/activate ``` * **On Windows:** ```bash ISLP_v2.2.2\.venv\Scripts\activate ``` ### 4. Run other notebooks After activating the environment, you can start Jupyter Lab to run other notebooks. ```bash jupyter lab ``` # R Markdown files Earlier versions of this repo maintained R Markdown versions of the lab next to the Jupyter notebooks. These have been removed from the repo but can be built from the notebooks at any time by ```bash make Rmd ``` ## Contributors ✨ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
tibshirani
tibshirani

💻 🖋
trevorhastie
trevorhastie

💻 🖋
danielawitten
danielawitten

💻 🖋
Thomas Schmelzer
Thomas Schmelzer

💻
Jonathan Taylor
Jonathan Taylor

💻 🖋
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!