Skip to main content

A Python package in support of the Modelling, Uncertainty, and Data Analysis for Engineers course given at TU Delft, Civil Engineering

Project description

Python Tools for Modelling, Uncertainty, and Data Analysis for Engineers

This package contains a set of tools that are used to support the MUDE course given at Civil Engineering, TU Delft, for first-year MSc students. It contains a set of tools and dependencies that are used in the course contents themselves. In addition, this package has several debugging tools that can be used by students and staff to check that their installation is compatible with the requirements for the course.

Common functionality

The top-level mude module, obtained by import mude contains common functionality you can use across assignments. An example of this is environment checking.

Environment checking

The mude package allows you to check its execution environment to determine that students have the appropriate dependencies and software installed. The desired environment can be configured through a requirements.toml file (example found under the week1 submodule). Example TOML file:

[environment]
min_python="3.11"
min_conda="23.5.0"

[requirement.numpy]
min_version="1.24.3"

[requirement.matplotlib]
min_version="3.7.1"

[requirement.mude]
min_version="0.1.0"

The environment heading contains info about the minimum required python version (min_python) and minimum required conda version (min_conda). The checker will also warn students if the code is not executed inside a conda environment, even if conda is installed. Finally, all [requirement.package] headings correspond to the packages you want students to have installed, as well as a minimum version for them (min_version). If any requirement is failed, the student will receive a warning and help message.

To check the environment, invoke the check_environment function, with the name of the submodule which contains your desired requirements.toml. For example, to check the requirements for week1, the function is called with the string "mude.week1", since the TOML is stored in the folder for the week1 submodule.

Example feedback from environment checker:

Your Python version (3.11.4) is up-to-date

Your Conda version (23.5.2) is up-to-date
You're executing this in the base environment, all is good!

Checking package versions...
numpy: ✓ (up-to-date, found: 1.25.2)
matplotlib: ✓ (up-to-date, found: 3.7.2)
mude: ✓ (up-to-date, found: 0.1.0)
Well done, your packages meet the default MUDE requirements.

Weekly assignments

Functions related to weekly assignments are stored in their own submodules. For example, week1 contains the fit_a_line_to_data and help_task_2 functions which are called in the notebook. After updating the submodule for a week, bump the patch version number (the third one), after adding a new submodule bump the the minor version (the second number). If at any point you change a module in a way that will break existing notebooks, change the major version (the first number).

Authors

This package was developed by the MUDE teaching team at the TU Delft Faculty of Civil Engineering and Geosciences.

License

Per the default suggested in the roadmap “Copyright and open licenses in online education” of the TU Delft Open Education Consortium, this work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.

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

MUDE-0.1.1.tar.gz (6.1 kB view hashes)

Uploaded Source

Built Distribution

MUDE-0.1.1-py3-none-any.whl (6.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page