Install & Compatibility
Where this runs
tested against v5.0.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 165.6MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 13.2s · import 0.000s · 172MB
174MB installed
● package 174MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
BlockCompletion
✓ from completion.models import BlockCompletion
✗ from completion.models import BlockCompletion
Submit a completion and query completions.
from completion.api import submit_completion
from completion.models import BlockCompletion
# Submit a completion for a block
block_key = 'block-v1:Org+Course+Run+type@problem+block@abc123'
user_id = 1
course_key = 'course-v1:Org+Course+Run'
submit_completion(
user_id=user_id,
course_key=course_key,
block_key=block_key,
completion=1.0
)
# Query existing completions
completions = BlockCompletion.objects.filter(user_id=user_id, course_key=course_key)
print(list(completions))
Upgrade
Version history
5.0.0latest on PyPI · released Apr 7, 2026
Audit
Dependencies
DjangorequiredRequired as a Django app.
edx-opaque-keysrequiredFor BlockUsageLocator and other key types.