Skip to content

Configuration & Logging

Giacomo Saccaggi edited this page Jun 19, 2026 · 1 revision

Configuration & Logging

Verbosity Control

All library output goes through Python's logging module. Control it globally:

import scomp_link

scomp_link.set_verbosity("silent")   # suppress everything
scomp_link.set_verbosity("warning")  # only warnings and errors
scomp_link.set_verbosity("info")     # default — progress messages
scomp_link.set_verbosity("debug")    # verbose — internal details

From External Code

import logging
logging.getLogger("scomp_link").setLevel(logging.WARNING)

In CLI

Every command supports --silent to suppress output:

scomp-link run --data train.csv --target y --task regression --silent

Decorators

scomp-link provides utility decorators you can use in your own code:

from scomp_link.utils.decorators import timer, retry, cache, deprecated, validate_args

@timer
def train_model(X, y):
    ...  # prints "⏱️ train_model completed in 3.42s"

@retry(max_attempts=3, delay=1.0)
def fetch_data(url):
    ...  # retries on failure

@cache
def expensive(n):
    ...  # memoized after first call

@deprecated("Use new_function() instead")
def old_function():
    ...  # emits DeprecationWarning

@validate_args(threshold=lambda x: 0 <= x <= 1)
def process(data, threshold=0.5):
    ...  # raises ValueError if threshold out of range

Project Config (from scomp-link init)

# config.yaml
project_name: "my_project"
task_type: regression
target_column: target
test_size: 0.2

engineer:
  interactions: false
  log_transform: true
  date_features: false
  target_encode: false

model_hint: numerical_prediction
ensemble: null
advanced_cv: false

Clone this wiki locally