Motivation
It’s frustrating dealing with the zip files full of assignment submissions that you get from D2L.
Merging all of a student’s submissions into a single folder is tedious.
Navigating submissions on the command line sucks, because each directory name starts with a long number.
Extracting all the zip files, tar archives, and 7z archives that students submit adds a needless extra step to marking.
I’ve found this tool useful for eliminating those annoyances, and I hope you will too.
How to Use
This is the most common command I use:
d2lmf extract -R "Assignment 1 Download Oct 11, 2015 803 PM.zip" A1/T01
It extracts the submissions from the zip folder into the directory A1/T01. The -R option makes it run all the recommended cleanup actions on the submissions, and is equivalent to using -x, -j, -c and -m.
The -x specifies that we want to extract any zip, rar, tar, or 7z archives that students submitted. The -j deletes ‘junk’ like .DS_Store. The -c collapses needlessly nested directories. Finally, the -m merges all submitted files into a single directory for each student.
On Windows, you may need to invoke d2lmf as a Python module, like so:
python -m d2lmf extract -R "Assignment 1 Download Oct 11, 2015 803 PM.zip" A1/T01
How to Install
Ubuntu
sudo apt-get install python-pip
sudo pip install d2lmf
OSX
curl https://bootstrap.pypa.io/get-pip.py > get-pip.py
sudo python get-pip.py
sudo pip install d2lmf
Windows
First, download and install Python from https://www.python.org/downloads/
Then, install d2lmf with the command below:
python -m pip install d2lmf
Dependencies
The extraction of rar and 7z archives depends on external tools. If you do not have a rar or 7z utility installed, those archives will be skipped.
On Windows, I suggest installing 7-Zip. On Ubuntu, p7zip is the equivalent, and it can be installed with sudo apt-get install p7zip-full. p7zip is also available for OSX, and can be installed from homebrew with brew install p7zip.
Metadata
Release files for d2lmf 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| d2lmf-1.0.0.tar.gz | 19.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| d2lmf-1.0.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 28.2 kB
Release files / d2lmf-1.0.0.tar.gz
| Download URL | d2lmf-1.0.0.tar.gz |
|---|---|
| Size | 19.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
532d8bab219bbfc2f435e5734e40c03765494e95a687458d577d6c4a42830c6b
|
|
BLAKE2b-256 checksum How to use checksums |
816903a4a71c89da89b7e9a1edbeb9533e56367e17f73b01ab15e8ca591959b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / d2lmf-1.0.0-py2.py3-none-any.whl
| Download URL | d2lmf-1.0.0-py2.py3-none-any.whl |
|---|---|
| Size | 9.1 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
5e4ccf5274776f1dd916b4f31e2c1e2a7103d53bfb758d05c98c268436ca3a43
|
|
BLAKE2b-256 checksum How to use checksums |
820a1b674c054186060071e67b3344d204111c160965bdceae81a68e91ec4f21
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |