Skip to content

Utilities API

The utilities module provides helper functions for file operations, logging, and other common tasks.

Overview

The utilities module includes the following key functionalities:

  • list_files: List files in a directory with optional filtering
  • create_directory: Create a directory if it doesn't exist
  • get_file_info: Get information about a file
  • setup_logger: Set up a logger for consistent logging
  • log_parameters: Log parameters for reproducibility
  • load_config: Load configuration from a file
  • save_config: Save configuration to a file

Function Reference

def list_files(directory, pattern=None, recursive=False):
    """
    List files in a directory with optional filtering.

    Parameters
    ----------
    directory : str
        Directory to list files from
    pattern : str, optional
        Glob pattern to filter files
    recursive : bool, optional
        Whether to search recursively

    Returns
    -------
    list
        List of file paths
    """
    pass

def create_directory(directory, parents=True, exist_ok=True):
    """
    Create a directory if it doesn't exist.

    Parameters
    ----------
    directory : str
        Directory to create
    parents : bool, optional
        Whether to create parent directories
    exist_ok : bool, optional
        Whether to ignore if directory exists

    Returns
    -------
    str
        Path to created directory
    """
    pass

def get_file_info(file_path):
    """
    Get information about a file.

    Parameters
    ----------
    file_path : str
        Path to the file

    Returns
    -------
    dict
        Dictionary with file information
    """
    pass

def setup_logger(name, log_file=None, level=logging.INFO, format=None):
    """
    Set up a logger for consistent logging.

    Parameters
    ----------
    name : str
        Name of the logger
    log_file : str, optional
        Path to log file
    level : int, optional
        Logging level
    format : str, optional
        Log message format

    Returns
    -------
    logging.Logger
        Configured logger
    """
    pass

def log_parameters(logger, parameters, prefix=''):
    """
    Log parameters for reproducibility.

    Parameters
    ----------
    logger : logging.Logger
        Logger to use
    parameters : dict
        Parameters to log
    prefix : str, optional
        Prefix for parameter names

    Returns
    -------
    None
    """
    pass

def load_config(config_path, format=None):
    """
    Load configuration from a file.

    Parameters
    ----------
    config_path : str
        Path to configuration file
    format : str, optional
        Format of the file (yaml, json, etc.)

    Returns
    -------
    dict
        Configuration dictionary
    """
    pass

def save_config(config, config_path, format=None):
    """
    Save configuration to a file.

    Parameters
    ----------
    config : dict
        Configuration dictionary
    config_path : str
        Path to save configuration to
    format : str, optional
        Format to save in (yaml, json, etc.)

    Returns
    -------
    str
        Path to saved configuration
    """
    pass

Dependency Handling

The utilities module is designed to have minimal external dependencies, making it more robust across different environments. The core functionality requires only standard Python libraries, with some enhanced features available when optional dependencies are present.

Dependency Required For Fallback Behavior
PyYAML Advanced config loading/saving Fallback to JSON for configuration
tqdm Progress tracking Simple text-based progress updates
pandas Data manipulation Limited data handling capabilities

The utilities module is designed to be a reliable foundation for the rest of the SMINT package, with minimal external dependencies to ensure robustness.