diff --git a/.devcontainer/README.md b/.devcontainer/README.md new file mode 100644 index 000000000..825539227 --- /dev/null +++ b/.devcontainer/README.md @@ -0,0 +1,30 @@ +# Dev Container Configuration + +This directory contains the development container configuration for the Hands-on LLMs workshop. + +## What gets installed + +When a user opens this repository in GitHub Codespaces, the following will be automatically set up: + +### Base Environment +- Python 3.11 (Debian Bullseye) +- Git and GitHub CLI + +### VS Code Extensions +- Python development: Python, Pylance, Black formatter, Ruff linter +- Jupyter notebooks: Full Jupyter support with renderers and keybindings +- General development: JSON, YAML, and Markdown support + +### Port Forwarding +- **Port 8501**: Streamlit applications +- **Port 8888**: Jupyter notebook server + +## Usage + +Users simply need to: +1. Fork this repository +2. Open in GitHub Codespaces +3. Wait for the automatic setup to complete +4. Start working with the workshop materials + +The environment will be ready to use with all dependencies installed and VS Code properly configured for Python and Jupyter development. \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..8171c2374 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,53 @@ +{ + "name": "Packaging and Publishing Workshop", + "image": "mcr.microsoft.com/devcontainers/python:1-3.11-bullseye", + + "features": { + "ghcr.io/devcontainers/features/git:1": {}, + "ghcr.io/devcontainers/features/github-cli:1": {} + }, + + "customizations": { + "vscode": { + "extensions": [ + "ms-python.python", + "ms-python.vscode-pylance", + "ms-toolsai.jupyter", + "ms-toolsai.jupyter-keymap", + "ms-toolsai.jupyter-renderers", + "ms-python.black-formatter", + "charliermarsh.ruff", + "ms-vscode.vscode-json", + "redhat.vscode-yaml", + "ms-vscode.vscode-markdown" + ], + "settings": { + "python.defaultInterpreterPath": "/usr/local/bin/python", + "python.linting.enabled": true, + "python.linting.pylintEnabled": false, + "python.linting.flake8Enabled": false, + "python.formatting.provider": "black", + "jupyter.askForKernelRestart": false, + "files.associations": { + "*.ipynb": "jupyter-notebook" + } + } + } + }, + + "remoteUser": "vscode", + + "forwardPorts": [8501, 8888], + + "portsAttributes": { + "8501": { + "label": "Streamlit", + "onAutoForward": "notify" + + }, + "8888": { + "label": "Jupyter", + "onAutoForward": "notify" + } + } +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index b73d60a1e..097a5a3bd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ pandas scikit-learn matplotlib numpy +ipykernel