python_lib.zip

FAQ

What is this file?

A special file that's used by course teams to provide randomized questions/answers in a course. The ZIP contains several different randomization algorithms, along with actual problem data - numbers used to plug-in to a question/answer. This specially-named ZIP file is different per-course!

When are the contents of the file used?

Its contents are Python source code and are installed in a code-jail environment. The Python code is run upon problem viewing and generates a problem with randomized numbers, in order to guard against cheating.

How does the LMS and Studio know about this special file?

Via hard-coding here:
https://github.com/edx/edx-platform/blob/master/common/lib/xmodule/xmodule/util/sandboxing.py#L5
For all accesses of the file, search for "get_python_lib_zip" in the edx-platform codebase.

Why is the file stored as a course asset?

The Python code in the file needed to be uploaded by the course team and needed to be different per-course. A course asset fulfilled both of these requirements.