Documentation: https://equinor.github.io/fmu-settings/
Source code: https://github.com/equinor/fmu-settings/
fmu-settings is the Python core library for reading, writing, and managing resources in .fmu/ directories for FMU projects and user environments.
It owns the filesystem behavior around those resources: initialization, discovery, configuration models, resource managers, locking, cache handling, changelogs, restore behavior, and synchronization helpers.
FMU Settings is split across a few repositories:
flowchart LR
CLI["fmu-settings-cli"]
API["fmu-settings-api\nAPI and static-file host"]
GUI["fmu-settings-gui\nReact source and packaged assets"]
LIB["fmu-settings"]
MODELS["fmu-datamodels"]
CLI -->|starts one application process| API
CLI -->|gets packaged assets| GUI
CLI --> LIB
GUI -->|browser API calls| API
API --> LIB
LIB --> MODELS
API --> MODELS
fmu-settingsis the core library for reading, writing, and managing.fmu/resources.fmu-datamodelsprovides shared Pydantic domain models.fmu-settings-apiexposesfmu-settingsthrough a FastAPI application layer and serves the packaged GUI assets.fmu-settings-guiprovides the browser-based user interface and packages its static assets.fmu-settings-cliprovides the user-facing command line interface, including commands that bootstrap local user state and launch the combined application.
See ARCHITECTURE.md for the library architecture and a high-level ecosystem overview.
The published documentation is the best starting point for users:
Documentation sources live under docs/src/.
Clone and install into a virtual environment.
git clone git@github.com:equinor/fmu-settings.git
cd fmu-settings
# Create or source virtual/Komodo env
pip install -U pip
pip install -e ".[dev]"
# Make a feature branch for your changes
git checkout -b some-feature-branchRun the tests with:
pytest -n auto testsEnsure your changes will pass the various linters before making a pull request. It is expected that all code will be typed and validated with mypy.
ruff check
ruff format --check
mypy src testsIf you need to change the schema of ProjectConfig, UserConfig, or
InternalMappings, see the
schema migration guide for implementation
and testing details.
See CONTRIBUTING.md for more.
Note
Aspen RMS™ is a registered trademark of Aspen Technology, Inc. (AspenTech). Use of RMS™ is governed by AspenTech's licensing terms and conditions. It is proprietary software and is neither open-source nor free. A valid license agreement with AspenTech is required for its use.
fmu-settings is an independent project developed by Equinor and is neither produced by nor affiliated with AspenTech.