Welcome to lmodule documentation!¶
lmodule is a Python API for Lmod module system. lmodule was originally part of buildtest and we decided that it could benefit the entire community for folks interested in using the API but not relying on buildtest. The documentation is built for version on Mar 27, 2023
What is lmodule?¶
Lmodule is a Python 3 API that allows you to interact with the module command provided by Lmod in a programmatic way. The API comes with three classes:
- Module: This class emulates the
module
command - Spider: This class runs the Lmod
spider
command to retrieve all module records in json - ModuleLoadTest: This class automates
module load
of one or more module trees
Why use lmodule?¶
Here are few reasons why you would want to use lmodule
- Currently, there is no Python API for Lmod, however there is a python interface
LMOD_CMD python
by Lmod that requires parsing and output is cryptic. - Automates
module load
test for each module in one or more module trees (Software Stack). This can be used to spot faulty modules in a large software stack. This type of test is meant to run using CI tool for continuous testing of module stack.
- Installation
- Module Class
- Testing Modules
- Enabling Debug
- Testing Modules in Login Shell
- Saving Modules to User Collection
- Show Modules associated to a User Collection
- Get collection command
- Testing a User Collection
- Tweaking Module Purge Behavior
- Enable Force Purge
- Is Module Available?
- Module Spider
- Module Overview
- Get Lmod Version
- Retrieve User Collections
- Check Syntax Error in modulefile
- Working with Lmod Spider
- Automating Module Load Test
- Lmodule Examples
- API
Presentations¶
Conference | Talk | Date | Link |
---|---|---|---|
Improving Scientific Software Conference 2023 | Lmodule - Python API for testing modules | Feb 17th 2023 | PPTX, PDF |
EasyBuild User Meeting | Automate Module Testing with Lmodule | Jan 29th 2021 | PDF, Video |