fm-weck: Run formal methods tools in containerized environments
fm-weck is a command line tool and library that makes the execution of formal methods tools easy. fm-weck downloads the tools and caches them for later use.
We provide a tutorial on how to use fm-weck here.
Install dependencies
fm-weck requires Python 3.10 or higher. fm-weck relies on an available Podman or Docker installation. To install Podman on Ubuntu, run the following command:
sudo apt install podman
Modes of Operation
There are three modes of operation: run, shell and expert.
run: (Recommended) enables plug-and-play execution of formal methods tools: it downloads and unpacks a tool from the fm-tools metadata file into a user-specified cache directory on the host system and then runs the tool in the containerized environmentexpert: executes a tool in it's containerized environment specified through the corresponding fm-tools YAML file: All arguments are passed verbatim to the tool.shell: enters an interactive shell inside of the container specified by the given tool
Development and Testing
When using any command with the fm-weck <cmd> toolname ... syntax, the tool name is searched in src/fm_weck/resources/fm_tools.
During the build process of the .whl file for fm-weck, the fm_tools/data directory is copied to that location.
When running or developing fm-weck from the git repository, the user must make sure that the contents of fm_tools/data directory are
available in the src/fm_weck/resources/fm_tools directory.
In Linux this can be done by running the following command in the root directory of the project:
ln -s $(pwd)/fm_tools/data $(pwd)/src/fm_weck/resources/fm_tools
Publications
A paper about fm-weck has been accepted at the FM '24 conference.
FM-Weck: Containerized Execution of Formal-Methods Tools, by Dirk Beyer and Henrik Wachowitz. Proc. FM. Springer (2024). doi:10.1007/978-3-031-71177-0_3
Metadata
Release files for fm-weck 1.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fm_weck-1.8.1-py3-none-any.whl | Python 3 | none | any | Details for fm_weck-1.8.1-py3-none-any.whl |
Release files / fm_weck-1.8.1-py3-none-any.whl
| Download URL | fm_weck-1.8.1-py3-none-any.whl |
|---|---|
| Size | 980.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
26943497fec8dd4cba32f90bbd83f2da59dea3f9de6d3703f153748ecf57bb5d
|
|
BLAKE2b-256 checksum How to use checksums |
e25421411bbb3a8bf7e86ada496ef8cf7c3d1b010a8b029bd1c3e1af344e4c3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Security for fm-weck 1.8.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.