Bamboost

Configuration

bamboost reads configuration from two sources that are merged together:

  1. A global config file at ~/.config/bamboost/config.toml
  2. A project config file — either bamboost.toml or the [tool.bamboost] table in pyproject.toml, located at the project root (the nearest parent directory that contains .git or pyproject.toml)

Project settings take precedence over global ones.

Config file format

Both files use TOML with two top-level tables: [options] and [index].

~/.config/bamboost/config.toml
[options]
logLevel = "WARNING"
sortTableKey = "created_at"

[index]
searchPaths = ["~/simulations", "/data/scratch/myuser"]
excludeDirs = [".git", ".venv", "__pycache__"]
pyproject.toml (project-specific)
[tool.bamboost.options]
logLevel = "DEBUG"

[tool.bamboost.index]
isolated = true
bamboost.toml (project-specific)
[options]
logLevel = "DEBUG"

[index]
isolated = true

[options] — Core options

KeyTypeDefaultDescription
mpiboolautoEnable MPI support. Defaults to True if mpi4py is installed.
sortTableKeystr"created_at"Default column used to sort the collection DataFrame.
sortTableOrderstr"desc"Sort order: "asc" or "desc".
logLevelstr"WARNING"Log verbosity: DEBUG, INFO, WARNING, ERROR, or CRITICAL.
log_root_onlyboolfalseIf true, suppress log messages from non-root MPI ranks.
log_file_lock_severitystr"WARNING"Log level for HDF5 file-lock retry messages.
clipboardCommandstr|nullnullShell command used to copy text to the clipboard (e.g. "wl-copy", "xclip -sel clip", "pbcopy"). Required for bamboost yank.

[index] — Index options

KeyTypeDefaultDescription
searchPaths (alias: paths)list[str]["~"]Directories to scan when looking for bamboost collections.
excludeDirslist[str]manyDirectory names to skip during scanning (.git, venv, node_modules, …).
extendDefaultExcludeDirslist[str]|nullnullExtra directory names to add to the default exclude list.
syncTablesbooltrueKeep the SQLite cache up to date after reads and writes.
convertArraysbooltrueDeserialise SQLite lists as numpy arrays.
databaseFileNamestr"bamboost.0.11.sqlite"Basename of the index database file.
isolatedboolfalseRestrict the index to the current project directory and store the database under .bamboost/.
strictLinksbooltrueRaise an error when assigning a link whose target simulation is not found in the index.
strictLinksWhenSyncingboolfalseApply strictLinks validation also during collection syncing.

Reading config at runtime

The config object is a global singleton accessible from Python:

from bamboost import config

print(config.options.logLevel)
print(config.index.searchPaths)
print(config.index.databaseFile)   # resolved path to the active database

You can override individual options at runtime before creating any Collection or Index objects:

from bamboost import config

config.options.logLevel = "DEBUG"
config.index.syncTables = False

Isolated mode

Setting isolated = true in your project config makes bamboost manage a project-local index database. The database is stored at .bamboost/bamboost.0.11.sqlite inside the project root, and the search paths are automatically narrowed to the project root only.

This is useful when you want to keep project data completely self-contained, for example when using bamboost as part of a reproducible research repository.

bamboost.toml
[index]
isolated = true

On this page