Skip to main content

ed-api-client

A Python client for the Ed LMS API, with utilities for analysing student workspace activity.

Installation

pip install ed-api-client

Quick start

from ed_api_client import EdClient

client = EdClient(token="your-api-token")

# Retrieve all students in a course
users = client.get_users(course_id=12345, role="student")

# Retrieve the module/lesson structure
modules = client.get_module_structure(course_id=12345)
for module in modules:
    for lesson in module.lessons:
        print(lesson.title)

# Fetch and analyse a student's workspace activity
log = client.get_workspace_log(workspace_id="abc123")
files = client.get_scaffold_files(challenge_id=99)
summary = WorkspaceSummary.from_log(files, log)

print(summary.total_active_time)
for file_id, file in summary.file_summaries.items():
    print(file.path, file.pasted_proportion, file.cursor_entropy)

Full API reference: https://dmilne.gitlab.io/ed-api-client

Development

Prerequisites

Install Poetry via Homebrew:

brew install poetry

Setup

Clone the repository and install all dependencies (including dev dependencies):

git clone https://gitlab.com/dmilne/ed-api-client.git
cd ed-api-client
poetry install --with dev

Running tests

poetry run pytest tests/ -v

Tests use the responses library to mock HTTP calls — no real Ed credentials are needed.

Viewing the docs locally

poetry run mkdocs serve

Then open http://localhost:8000.

Publishing a new version

  1. Bump the version:

    poetry version patch   # or: minor, major
    
  2. Configure your PyPI token (first time only):

    poetry config pypi-token.pypi your-token-here
    

    Get a token at https://pypi.org/manage/account/token/.

  3. Build and publish:

    poetry publish --build
    

CI/CD

The GitLab pipeline (.gitlab-ci.yml) runs on every push:

License

MIT

Metadata

Release files for ed-api-client 0.1.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ed-api-client 0.1.9
File Size Uploaded
ed_api_client-0.1.9.tar.gz 24.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ed-api-client 0.1.9
File Interpreter ABI Platform
ed_api_client-0.1.9-py3-none-any.whl Python 3 none any Details

Total release size: 54.3 kB

Release files / ed_api_client-0.1.9.tar.gz

Download URL ed_api_client-0.1.9.tar.gz
Size 24.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4b7f6df5b5f4d485c3104be03df9c20aa33e4ad402405a61d16ec766b454e03b
BLAKE2b-256 checksum
How to use checksums
55ed9056c72228192ae444c38375d2c52931f2db84d0833a4b6c0943702dc0e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.14.4 Darwin/24.6.0

Release files / ed_api_client-0.1.9-py3-none-any.whl

Download URL ed_api_client-0.1.9-py3-none-any.whl
Size 29.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd9d35088a31c846c7ce27027b83f35ee212be6c214fb117d9fda0d00266ed83
BLAKE2b-256 checksum
How to use checksums
3caf228c936917f5ede1cd54324c9fa29055f5368ce6225abfc0618b4c69eac2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.14.4 Darwin/24.6.0

Release history Release notifications | RSS feed

This release

0.1.9 This release

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page