Configuring LineaPy
We can configure LineaPy in several different ways:
- Use CLI options when starting LineaPy from the command line
- Set environmental variables
- Create/update configuration file
For instance, the following all achieves the same effect of changing the LineaPy base folder to /lineapy
and starting ipython
.
lineapy --home-dir="/lineapy" ipython
export LINEAPY_HOME_DIR=/lineapy
lineapy ipython
Add {"home_dir": "/lineapy"}
to the configuration file:
{
"home_dir": "/lineapy",
...
}
and run:
lineapy ipython
The value of a configuration item is determined by the following "order of precedence":
- CLI option
- Environment variable
- Configuration file
- Default value
Core Configuration Items
Item | Description | Type | Default Value | Environment Variable |
---|---|---|---|---|
home_dir | LineaPy base folder | Path | $HOME/.lineapy |
LINEAPY_HOME_DIR |
artifact_storage_dir | artifact saving folder | Path | $LINEAPY_HOME_DIR/linea_pickles |
LINEAPY_ARTIFACT_STORAGE_DIR |
database_url | LineaPy db connection string | string | sqlite:///$LINEAPY_HOME_DIR/db.sqlite |
LINEAPY_DATABASE_URL |
customized_annotation_folder | user annotations folder | Path | $LINEAPY_HOME_DIR/customized_annotations |
LINEAPY_CUSTOMIZED_ANNOTATION_FOLDER |
do_not_track | disable user analytics | boolean | false | LINEAPY_DO_NOT_TRACK |
logging_level | logging level | string | INFO | LINEAPY_LOGGING_LEVEL |
logging_file | logging file path | Path | $LINEAPY_HOME_DIR/lineapy.log |
LINEAPY_LOGGING_FILE |
Configuration Items for Integration with Other Tools
Item | Description | Type | Default Value | Environment Variable |
---|---|---|---|---|
mlflow_tracking_uri | MLflow tracking | string | None | LINEAPY_MLFLOW_TRACKING_URI |
mlflow_registry_uri | MLflow registry | string | None | LINEAPY_MLFLOW_REGISTRY_URI |
default_ml_models_storage_backend | Default storage backend for ML models | string | mlflow | LINEAPY_DEFAULT_ML_MODELS_STORAGE_BACKEND |
Tip
LineaPy provides a CLI command to generate the configuration file (as a json file) based on existing environmental variables, CLI options, and default values. For example, running:
$ lineapy --home-dir='/lineapy' init
will generate a configuration file looking as follows:
{
"home_dir": "/lineapy",
"artifact_storage_dir": "/lineapy/linea_pickles",
"database_url": "sqlite:///lineapy/db.sqlite",
"customized_annotation_folder": "/lineapy/customized_annotations",
"do_not_track": false,
"logging_level": "INFO",
"logging_file": "/lineapy/lineapy.log"
}
Info
In an interactive session, we can type lineapy.options
to check current configuration item values.
We can also update configuration items on the fly with lineapy.options.set(key, value)
,
but this should be done at the beginning of the session to avoid potential conflicts with prior
operations in the session.