Tool to scan Open edX courses for various errors
Project description
OLX Cleaner
This library aims to perform two functions:
- Parse the XML code for an edX course, loading it into python objects
- Validate the objects for errors
Based on this, two scripts are provided that leverage the library:
edx-cleaner
constructs an error report, course tree and course statisticsedx-reporter
constructs a LaTeX file representation of the course structure
Copyright (C) 2018-2019 Jolyon Bloomfield
Copyright (C) 2020-2023 The Center for Reimagining Learning, Inc. and Contributors
Links
Installation
This package may be installed from PYPI using pip install olxcleaner
. It requires python 3.6 or later.
Repository Installation (advanced)
Clone this repository, and set up a virtual environment for python 3.6 or later. Run pip install -r requirements.txt
to install the libraries, followed by pytest
to ensure that all tests are passing as expected.
edx-cleaner Usage
Used to validate OLX (edX XML) code. This is a very light wrapper around the olxcleaner library, but exposes all of the functionality thereof.
Basic usage: run edx-cleaner
in the directory of the course you want to validate.
Command-line options:
edx-cleaner [-h]
[-c COURSE]
[-p {1,2,3,4,5,6,7,8}]
[-t TREE] [-l {0,1,2,3,4}]
[-q] [-e] [-s] [-S]
[-f {0,1,2,3,4}]
[-i IGNORE [IGNORE ...]]
-h
: Display help.-c
: Specify the course file to analyze. If not specified, looks forcourse.xml
in the current directory. If given a directory, looks forcourse.xml
in that directory.-p
: Specify the validation level you wish analyze the course at:- 1: Load the course
- 2: Load the policy and grading policy
- 3: Validate url_names
- 4: Merge policy data with course, ensuring that all references are valid
- 5: Validate the grading policy
- 6: Have every object validate itself
- 7: Parse the course for global errors
- 8: Parse the course for detailed global errors (default)
-t TREE
: Specify a file to output the tree structure to.-l
: Specify the depth level to output the tree structure to. Only used if the-t
option is set. 0 = Course, 1 = Chapter, 2 = Sequential, 3 = Vertical, 4 = Content.-q
: Quiet mode. Does not output anything to the screen.-e
: Suppress error listing. Implied by-q
.-s
: Suppress summary of errors. Implied by-q
.-S
: Display course statistics (off by default). Overridden by-q
.-f
: Select the error level at which to exit with an error code. 0 = DEBUG, 1 = INFO, 2 = WARNING, 3 = ERROR (default), 4 = NEVER. Exit code is set to1
if an error at the specified level or higher is present.-i
: Specify a space-separated list of error names to ignore. See Error Listing.
edx-reporter Usage
The olxcleaner library includes modules that parse a course into python objects. This can be useful if you want to scan a course to generate a report. We exploit this in edx-reporter
to generate a LaTeX report of course structure.
Basic usage: run edx-reporter
in the directory of the course you want to generate a report about.
Command-line options:
edx-reporter.py [-h]
[-c COURSE]
[-u]
[> latexfile.tex]
-h
: Display help.-c
: Specify the course file to analyze. If not specified, looks forcourse.xml
in the current directory. If given a directory, looks forcourse.xml
in that directory.-u
: Include url_names for verticals.> latexfile.tex
: Output the report to a file.
If you get an error like Character cannot be encoded into LaTeX: U+FEFF - `'
, then you have some bad unicode in your display_name
entries. Look through the LaTeX output for {\bfseries ?}
, which is what that character is converted into.
Once you have generated a latex file, you can compile it into a PDF file by running pdflatex latexfile.tex
. Note that the latex file can be modified with any text editor; its format should be self-explanatory.
Library usage
The workhorse of the library is olxcleaner.validate
, which validates a course in a number of steps.
olxcleaner.validate(filename, steps=8, ignore=None, allowed_xblocks=None)
filename
: Pass in either the course directory or the path ofcourse.xml
for the course you wish to validate.steps
: Choose how many validation steps you wish to perform:- 1: Load the course
- 2: Load the policy and grading policy
- 3: Validate
url_name
s - 4: Merge policy data with course, ensuring that all references are valid
- 5: Validate the grading policy
- 6: Have every object validate itself
- 7: Parse the course for global errors
- 8: Parse the course for global errors that may be time-consuming to detect
ignore
: A list of error names to ignoreallowed_xblocks
: A list of all allowed xblocks that course olx may contain.
Returns EdxCourse
, ErrorStore
, url_names
(dictionary {'url_name': EdxObject}
, or None
if steps < 3
)
See examples of how to use olxcleaner.validate
and the objects it returns in olxcleaner.entries
.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file olxcleaner-0.3.0.tar.gz
.
File metadata
- Download URL: olxcleaner-0.3.0.tar.gz
- Upload date:
- Size: 53.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0248a830992c49b571012e1015395a7f5a63d0667da4d80c22e7fc3683d8c69 |
|
MD5 | 294a3f570edf2c8d47d8936ffb58b662 |
|
BLAKE2b-256 | 4a4ce579fac3de1f78e7965246a51d34af99f27ee54dc240219df0ed721cedf0 |
File details
Details for the file olxcleaner-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: olxcleaner-0.3.0-py3-none-any.whl
- Upload date:
- Size: 57.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbd2cb79b649c03aa4d23bf01dd0e7ad18ac0be276382ce71566870c6aecbe86 |
|
MD5 | 9053f8ee1b504b5fe5417830449b22f6 |
|
BLAKE2b-256 | 8955c71b08145893a7cdf378ce3d4bb183cd5c54de85e50ff8859ce51512a5d9 |