33This repository contains the source for code the Internet Quality Barometer (IQB)
44library, and related applications and notebooks.
55
6- IQB is an open-source project initiated by [ Measurement Lab (M-Lab)] ( https://www.measurementlab.net/ ) .
6+ ## About IQB
7+
8+ IQB is an open-source project initiated by
9+ [ Measurement Lab (M-Lab)] ( https://www.measurementlab.net/ ) .
710
811IQB is motivated by the need to redefine how we measure and understand Internet
912performance to keep pace with evolving technological demands and user
@@ -44,10 +47,14 @@ See [prototype/README.md](prototype/README.md) for how to run it locally.
4447
4548Jupyter notebooks for exploratory data analysis, experimentation, and research.
4649
50+ See [ analysis/README.md] ( analysis/README.md ) for more information.
51+
4752### ** ` data/ ` **
4853
4954Sample datasets used in the IQB app prototype and notebooks.
5055
56+ See [ data/README.md] ( data/README.md ) for details.
57+
5158## Development Environment
5259
5360We use [ uv] ( https://astral.sh/uv ) as a replacement for several Python repository
@@ -77,9 +84,6 @@ git clone git@github.com:m-lab/iqb.git
7784cd iqb
7885
7986# Sync all dependencies (creates .venv automatically)
80- uv sync
81-
82- # For development (includes test dependencies)
8387uv sync --dev
8488
8589# Run the Streamlit prototype
@@ -89,38 +93,66 @@ uv run streamlit run Home.py
8993
9094### Using VSCode
9195
92- This repository is configured for VSCode with Python development tools (Ruff, Pyright, pytest).
96+ This repository is configured for VSCode with selected Python
97+ development tools (Ruff, Pyright, pytest).
98+
99+ When you first open this repository with VSCode, it will prompt you
100+ to install the required extensions for Python development.
101+
102+ Make sure you also read the following section to avoid ` uv `
103+ issues: there is no official ` uv ` extension for VSCode yet and
104+ it seems more prudent to avoid using unofficial ones.
105+
106+ #### First-time uv setup
107+
108+ Running ` uv sync --dev ` creates the required ` .venv ` directory
109+ that VSCode needs to find the proper python version and the proper
110+ development tools.
111+
112+ If you open the repository using VSCode * before* running
113+ ` uv sync --dev ` , you see the following error:
114+
115+ ```
116+ Unexpected error while trying to find the Ruff binary
117+ ```
118+
119+ To fix this, either run ` uv sync --dev ` from the command line or
120+ use VSCode directly to run ` uv ` and reload:
121+
122+ 1 . Run the setup task:
123+
124+ - Press ` Ctrl+Shift+P ` (or ` Cmd+Shift+P ` on macOS)
125+
126+ - Type "Tasks: Run Task"
127+
128+ - Select ** "IQB: Setup Development Environment"**
93129
94- ** First-time setup: **
130+ - This runs ` uv sync --dev ` to install all development dependencies
95131
96- 1 . Open this repository in VSCode
97- 2 . You may see an error: ** "Unexpected error while trying to find the Ruff binary"** - this is expected on first open
98- 3 . Run the setup task:
99- - Press ` Ctrl+Shift+P ` (or ` Cmd+Shift+P ` on macOS)
100- - Type "Tasks: Run Task"
101- - Select ** "IQB: Setup Development Environment"**
102- - This runs ` uv sync --dev ` to install all development dependencies
132+ 2 . After setup completes, reload VSCode:
103133
104- 4 . After setup completes, reload VSCode:
105- - Press ` Ctrl+Shift+P ` → "Developer: Reload Window"
106- - The Ruff error should disappear
134+ - Press ` Ctrl+Shift+P ` → "Developer: Reload Window"
107135
108- ** Available tasks** (access via ` Ctrl+Shift+P ` → "Tasks: Run Task"):
136+ - The Ruff error should disappear
137+
138+ #### Available Tasks
139+
140+ Access them via ` Ctrl+Shift+P ` → "Tasks: Run Task":
109141
110142- ** IQB: Setup Development Environment** - Run ` uv sync --dev ` to install/update dependencies
143+
111144- ** IQB: Run Tests** - Run the pytest test suite
145+
112146- ** IQB: Run Ruff Check** - Check code style and quality
147+
113148- ** IQB: Run Pyright** - Run type checking
114149
115- ** Recommended extensions** (VSCode will prompt to install these):
116- - Python (ms-python.python)
117- - Pylance (ms-python.vscode-pylance)
118- - Ruff (charliermarsh.ruff)
150+ #### Extensions
119151
120- See component-specific READMEs for more details :
152+ VSCode will prompt to install these extensions :
121153
122- - [ analysis/README.md ] ( analysis/README.md ) - Working with Jupyter notebooks
154+ - Python ( ` ms-python.python ` )
123155
124- - [ library/README.md ] ( library/README.md ) - Working with the IQB library
156+ - Pylance ( ` ms-python.vscode-pylance ` )
125157
126- - [ prototype/README.md ] ( prototype/README.md ) - Running the Streamlit app
158+ - Ruff ( ` charliermarsh.ruff ` )
0 commit comments