Skip to content

Repository files navigation

fmu-settings

ci docs

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 Architecture

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
Loading
  • fmu-settings is the core library for reading, writing, and managing .fmu/ resources.
  • fmu-datamodels provides shared Pydantic domain models.
  • fmu-settings-api exposes fmu-settings through a FastAPI application layer and serves the packaged GUI assets.
  • fmu-settings-gui provides the browser-based user interface and packages its static assets.
  • fmu-settings-cli provides 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.

Documentation

The published documentation is the best starting point for users:

Documentation sources live under docs/src/.

Developing

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-branch

Run the tests with:

pytest -n auto tests

Ensure 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 tests

If 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

Trademark Notice and Disclaimer

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.

About

A library to manage and interface with .fmu/ directories, where the FMU settings are contained.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages