ecpet.ecconfig module

EC-PeT Configuration Management Module

Comprehensive configuration system for eddy-covariance processing workflows. Provides hierarchical parameter management with validation, defaults handling, file I/O operations, and type-safe parameter access. Supports both full and reduced configuration formats for workflow flexibility.

Key Features:
  • Hierarchical parameter organization (group.parameter structure)

  • Type-safe parameter access with automatic conversion

  • Default configuration with user overrides

  • File pattern expansion for data discovery

  • Configuration validation and error correction

  • Minimized configuration export (non-default values only)

class ecpet.ecconfig.Config(values=None, reduced=False)

Bases: object

Configuration management class with hierarchical parameter organization.

Provides type-safe parameter access, validation, and comparison with default values. Supports both full and reduced configuration modes for different workflow requirements.

changed = False
__init__(values=None, reduced=False)

Initialize configuration object with optional parameter values.

Parameters:
  • values (dict, optional) – Initial parameter values, defaults to None

  • reduced (bool, optional) – Whether to use reduced mode (overrides only), defaults to False

tokens = []
push(name, value, group='')

Set parameter value with automatic formatting.

Parameters:
  • name (str) – Parameter key

  • value (any) – Parameter value

  • group (str) – Parameter group (optional)

Internal function for storing parameters with automatic quote handling for complex values and list serialization.

pull(name, na='', group='', kind=None, unlist=True)

Retrieve parameter value with type conversion and validation.

Parameters:
  • name (str) – Parameter name

  • group (str, optional) – Parameter group, defaults to ‘’

  • kind (str, optional) – Type conversion (‘str’, ‘int’, ‘float’, ‘bool’, ‘raw’, or’auto’), defaults to ‘str’

  • unlist (bool, optional) – Return scalar for single values, defaults to True

  • na (any, optional) – Value for missing parameters, defaults to ‘’

Returns:

Parameter value with requested type conversion

Return type:

any

This function is providing type-safe parameter access with automatic list handling and quote processing.

check()

Validate configuration parameters for completeness and consistency.

Returns:

True if configuration is valid

Return type:

bool

is_default(name, group='')

Check if parameter has default value.

Parameters:
  • name (str) – Parameter name

  • group (str, optional) – Parameter group, defaults to ‘’

Returns:

True if parameter has default value

Return type:

bool

items()

Return iterator over configuration items.

keys()

Return iterator over configuration keys.

to_dict(reduced=False)

Return configuration as dictionary.

exception ecpet.ecconfig.ConfigError

Bases: Exception

Exception raised for configuration validation errors.

ecpet.ecconfig.read_file(filename)

Read configuration file with group.key = value format.

Parameters:

filename (str) – Path to configuration file

Returns:

Dictionary with configuration parameters

Return type:

dict

Parses configuration files using simple key=value syntax with dot notation for parameter groups and automatic comment removal.

ecpet.ecconfig.write_file(filename, cd)

Write configuration parameters to file.

Parameters:
  • filename (str) – Output file path

  • cd (dict) – Configuration dictionary to write

Returns:

Success flag

Return type:

bool

Creates configuration files with key=value format suitable for reading by read_file function.

ecpet.ecconfig.find_imagepath()

Locate GUI image resources in installation.

Returns:

Path to image directory

Return type:

str

Raises:

EnvironmentError – If image directory not found

Searches standard installation paths for GUI image resources using both modern and legacy package management approaches.

ecpet.ecconfig.check_basic(conf: Config, correct=True)

Validate essential configuration parameters with optional correction.

Parameters:
  • conf (dict) – Configuration dictionary to validate

  • correct (bool, optional) – Whether to apply automatic corrections, defaults to True

Returns:

Validated and optionally corrected configuration

Return type:

dict

Raises:

ConfigError – For invalid required parameters

Validates required parameters for eddy-covariance processing including wind components, temperature sensors, and pressure measurements.

ecpet.ecconfig.complete(arglist)

Create complete configuration from user parameters and defaults.

Parameters:

arglist (dict or Config) – User-provided configuration parameters

Returns:

Complete configuration with defaults applied

Return type:

Config

Merges user parameters with default values, discarding parameters not present in default configuration.

ecpet.ecconfig.apply(old, arglist)

Apply parameter changes to existing configuration.

Parameters:
  • old (dict) – Original configuration dictionary

  • arglist (dict) – Parameter updates to apply

Returns:

Updated configuration

Return type:

dict

Updates existing configuration with new values, appending parameters not present in original configuration.

ecpet.ecconfig.unglob(conf)

Expand file patterns in configuration to actual file lists.

Parameters:

conf (Config) – Configuration with file patterns

Returns:

Configuration with expanded file lists

Return type:

Config

Resolves glob patterns in RawFastData and RawSlowData parameters to actual file lists, validating directory existence.

ecpet.ecconfig.write(conf, filename=None, full=False)

Write configuration to file with optional minimization.

Parameters:
  • conf (Config) – Configuration to write

  • filename (str, optional) – Output file path (auto-generated if None), defaults to None

  • full (bool, optional) – Write complete configuration vs. changes only, defaults to False

Returns:

Success flag

Return type:

bool

Creates configuration files with either complete parameters (full=True) or only non-default values (full=False) for workflow documentation.

ecpet.ecconfig.tokenize(name, group='')

Generate configuration token from parameter name and group.

Parameters:
  • name (str) – Parameter name

  • group (str, optional) – Parameter group (optional trailing dot allowed), defaults to ‘’

Returns:

Configuration token

Return type:

str

Raises:

KeyError – If token not found in default configuration

Creates dot-notation tokens (e.g., ‘Par.DoTilt’) with case-insensitive matching against default configuration parameters.