// the find
dmitry-viskov/pylti1.3
LTI 1.3 Advantage Tool
A Python implementation of the LTI 1.3 Advantage spec, ported from the IMS PHP reference library, with Django and Flask adapters. It is for developers building a tool that an LMS such as Canvas launches into and who need deep linking, grades, or roster access.
It covers most of the LTI Advantage surface in one library: deep linking responses, Assignments and Grades, Names and Roles, Course Groups, submission review, and data privacy launches. The config layer is pluggable, with JSON, dict, and Django DB backends behind a ToolConfAbstract interface, and the one-issuer-many-client-ids model fits Canvas-style platforms that reuse one iss across customers. enable_check_cookies() handles the Chrome and Safari third-party cookie blocking that breaks iframe launches, so the adopter doesn't have to build that workaround.
The last push was 18 August 2024, over two years ago, and nothing in the repo shows whether it has kept up with spec changes since. The docs have visible errors: check_student_access() has a stray closing parenthesis, the submission review snippet is missing a colon, and the grade example uses the deprecated datetime.utcnow(). The Flask section is labelled a draft of an endpoint and is documented only by snippets, with the working example in a separate repo. The README says the framework session can break iframe launches and recommends switching to a memcache or Redis cache adapter, so a working launch may need extra infrastructure before the first test passes.