Skip to main content

Configuration Reference

DVC configuration is split across four preference groups, two git host preference groups, and two environment variables. All preferences are stored in Enthought's apptools.preferences system and can be set via the Pychron Preferences UI or by editing ~/.pychron.<app>/preferences.ini directly. Fields marked Required will cause DVC to fail silently or with a dialog if missing.

DVC Connection (pychron.dvc.connection)

Set in Preferences → DVC → Connection. Multiple connection profiles ("favorites") can be defined; only the one with default=true and enabled=true is used at startup.

FieldTypeRequiredDefaultDescription
namestringDisplay name for this connection profile
kindstringYesmysql"mysql" or "sqlite"
hoststringYes (MySQL)localhostDatabase host
usernamestringYes (MySQL)rootDatabase username
passwordstringYes (MySQL)ArgonDatabase password
dbnamestringYespychronmetaDatabase name
pathstringYes (SQLite)Absolute path to SQLite file
enabledbooltrueWhether this profile is active
defaultboolfalseWhether this is the startup profile
timeoutintDatabase connection timeout in seconds
organizationstringYesGitHub/GitLab organization or group name (e.g. NMGRL)
meta_repo_namestringRequiredName of the MetaRepo repository (e.g. NMGRLMetaData). If empty, DVC will show a warning and abort initialization.
meta_repo_dirpathOverride local MetaRepo path. Accepts absolute path, ~-relative path, or bare name (joined to <dvc_dir>/). Takes precedence over meta_repo_name for the local path.
repository_rootpathOverride data repository root. Same resolution rules as meta_repo_dir. Defaults to <dvc_dir>/repositories/.

DVC General (pychron.dvc)

Set in Preferences → DVC.

FieldDefaultDescription
use_auto_pulltrueAutomatically git pull the MetaRepo and data repos on startup without prompting. Set to false to be prompted before each pull.
use_auto_pushfalseAutomatically push data repos when a PushNode runs, without a confirmation dialog.
use_default_commit_authorfalseUse a fixed commit author for all git commits instead of the currently logged-in Pychron user.
update_currents_enabledfalseEnable updating "current values" in the pipeline. Rarely needed.
use_cocktail_irradiationfalseUse cocktail.json in the MetaRepo for flux and chronology instead of per-irradiation files.
use_cachefalseCache loaded analyses in memory to speed up repeated pipeline runs.
max_cache_size0Maximum analyses to keep in the memory cache. 0 disables caching even when use_cache=true.

DVC Experiment (pychron.dvc.experiment)

Set in Preferences → Experiment → DVC.

use_dvc_persistence must be true

If use_dvc_persistence is false (the default), Pychron uses legacy persistence and no DVC JSON files are written during acquisition. Data will not be committed to git and cannot be reduced through the DVC pipeline. Set this to true on every acquisition computer before running experiments.

FieldDefaultDescription
use_dvc_persistencefalseMust be true for acquisition data to be written to git.
use_dvc_overlap_savefalseAllow the persister to save one analysis while the next is already running (overlap save).
dvc_save_timeout_minutes0How long to wait for an overlap save before aborting. Only active when use_dvc_overlap_save=true.
use_data_collection_branchfalseWrite acquisition commits to a dedicated data_collection branch instead of the default branch. When enabled, sync_repo_from_data_collection() merges this branch back into the current branch when a data repo is loaded for reduction.

DVC Repository (pychron.dvc.repository)

Set in Preferences → Repositories.

FieldDefaultDescription
check_for_changesfalseCheck each data repository for uncommitted local changes when opened.
auto_fetchfalseAutomatically git fetch from the remote when a local data repository is selected. Disable if network latency is causing UI slowdowns.

GitHub (pychron.github)

Set in Preferences → GitHub.

FieldRequiredDescription
organizationYesGitHub organization name. Must match organization in the DVC connection profile.
oauth_tokenRequiredPersonal Access Token (PAT) with repo scope. GitHub password authentication was removed in 2021 and is no longer supported.
default_remote_nameGit remote name. Default: origin.
disable_authentication_messageSuppress the Windows-specific authentication reminder dialog on startup.

The token can also be stored in ~/.pychron.<app>/appdata/oauth.json as:

{"access_token": "<token>"}

The file is checked before the preference value. If both exist, the file takes precedence.

GitLab (pychron.gitlab)

Set in Preferences → GitLab.

FieldRequiredDescription
hostYesFull URL to the GitLab instance, e.g. http://gitlab.lab.edu.
organizationYesGitLab group name.
oauth_tokenYesGitLab personal access token (sent as Bearer <token> in API requests).
default_remote_nameGit remote name. Default: origin.

Environment Variables

VariableRequiredDescription
PYCHRON_ALEMBIC_URLRequiredSQLAlchemy URL for database schema migrations. MySQL: mysql+pymysql://root:Argon@localhost/pychronmeta. SQLite: sqlite:////absolute/path/to/file.sqlite3. Set in your shell profile before launching Pychron.
PYCHRON_USE_LOGINSet to 0 to skip the user-login dialog at startup. Useful for single-user labs.
GIT_ASKPASSSet automatically at runtime by GitHostService to inject credentials into git operations. Do not set this manually — Pychron manages it.

Key File Paths

PathWhat it is
~/.pychron.<app>/data/.dvc/Root DVC directory (paths.dvc_dir)
~/.pychron.<app>/data/.dvc/<MetaRepoName>/MetaRepo local clone
~/.pychron.<app>/data/.dvc/repositories/Data repositories root
~/.pychron.<app>/data/offline_db/index.sqlite3Offline SQLite database
~/.pychron.<app>/preferences.iniAll Pychron preferences (human-editable)
~/.pychron.<app>/appdata/oauth.jsonGitHub OAuth token file cache
~/.pychron.<app>/logs/pychron.logRuntime log — first place to check on DVC failures