Profiles¶
Profiles are configuration layers for organizing settings by project. In the configuration hierarchy, profiles sit above environments, so profile values take precedence over the resolved base + environment config. They are commonly used to maintain separate configurations for different modeling projects (Flu, COVID, RSV), but they can represent any logical grouping of project-level overrides.
For example, each disease project might use a different experiment repository and storage prefix. Profiles let you switch between these with a single command.
Using profiles¶
You activate a profile once with epycloud profile use <name>, and it stays active across all subsequent commands until you switch to a different one.
$ epycloud profile use flu # Activate flu profile (persists)
$ epycloud profile current # Show active profile
$ epycloud profile list # List available profiles
$ epycloud profile create mpox # Create new profile
What belongs in a profile¶
Profile files only need to contain keys you want to override from the resolved environment and base config. Everything else is inherited. Typical settings include:
- Experiment repository (
github.forecast_repo) - Experiment repository branch (
github.forecast_repo_ref) - Storage prefix (
storage.dir_prefix) - Project-specific resource requirements
For infrastructure differences (image tags, modeling suite branches, resource scaling), consider using environments instead.
Examples¶
A flu profile pointing to the flu experiment repository:
github:
forecast_repo: "your-org/flu-forecast-experiments"
storage:
dir_prefix: "pipeline/flu/"
google_cloud:
batch:
stage_b:
cpu_milli: 2000
memory_mib: 8192
A covid profile with a different repository and higher resources:
github:
forecast_repo: "your-org/covid-forecast-experiments"
# Use different path in Google Cloud Storage
storage:
dir_prefix: "pipeline/covid/"
# For example if you are running heavier calibration, you can use more computing resource
google_cloud:
batch:
stage_b:
cpu_milli: 4000
memory_mib: 16384
Usage¶
# Activate flu profile
$ epycloud profile use flu
$ epycloud run workflow --exp-id weekly-forecast-1 # Uses flu settings
# Activate COVID profile
$ epycloud profile use covid
$ epycloud run workflow --exp-id covid-model-1 # Uses covid settings
Profiles and environments combine naturally:
$ epycloud profile use flu
$ epycloud --env dev run workflow --exp-id test # flu + dev
$ epycloud --env prod run workflow --exp-id prod # flu + prod
Managing profiles¶
$ epycloud profile list # List available profiles
$ epycloud profile create mpox # Create new profile from template
$ epycloud config edit --profile=mpox # Edit profile config
$ epycloud profile use mpox # Switch to new profile
For all available configuration keys, see the Configuration Variables Reference.