util.py


Overview

The util.py file provides a collection of utility functions primarily focused on configuration parsing and validation related to environment settings, memory limits, and time durations. These utilities help standardize and simplify common operations such as interpreting boolean flags from strings, validating memory limit formats (especially Docker-style memory specifications), and parsing or formatting timeout durations expressed as strings.

This file is typically used in broader system components that require interpreting user or environment input for configuration purposes, ensuring that inputs conform to expected formats before use.


Functions

1. is_enabled(value: str) -> bool

Purpose:
Determines whether a given string value represents an enabled (or "true") flag.

Parameters:

Returns:

Usage Example:

is_enabled("Yes")    # Returns: True
is_enabled("no")     # Returns: False
is_enabled("1")      # Returns: True

Details:
Trims whitespace and converts the input to lowercase before checking membership in a set of accepted "enabled" values.


2. env_setting_enabled(env_key: str, default: str = "false") -> bool

Purpose:
Checks if a given environment variable key corresponds to an enabled flag, using the is_enabled interpretation.

Parameters:

Returns:

Usage Example:

# Assuming environment variable DEBUG="true"
env_setting_enabled("DEBUG")  # Returns: True

# If environment variable not set
env_setting_enabled("FEATURE_X", default="yes")  # Returns: True

Details:
Fetches the environment variable value using os.getenv(), then delegates evaluation to is_enabled().


3. is_valid_memory_limit(mem: str | None) -> bool

Purpose:
Validates whether a given string is a valid Docker-style memory limit specification.

Parameters:

Returns:

Usage Example:

is_valid_memory_limit("512m")  # Returns: True
is_valid_memory_limit("0g")    # Returns: False (zero disallowed)
is_valid_memory_limit("10x")   # Returns: False (invalid unit)

Details:


4. parse_timeout_duration(timeout: str | None, default_seconds: int = 10) -> int

Purpose:
Parses a timeout duration string into an integer number of seconds.

Parameters:

Returns:

Usage Example:

parse_timeout_duration("1m30s")  # Returns: 90
parse_timeout_duration("45s")    # Returns: 45
parse_timeout_duration(None)     # Returns: 10 (default)
parse_timeout_duration("abc")    # Returns: 10 (default)

Details:


5. format_timeout_duration(seconds: int) -> str

Purpose:
Formats an integer number of seconds into a string representation with minutes and seconds.

Parameters:

Returns:

Usage Example:

format_timeout_duration(90)  # Returns: "1m30s"
format_timeout_duration(45)  # Returns: "45s"
format_timeout_duration(120) # Returns: "2m"

Details:


Implementation Details


Interactions with Other System Parts


Visual Diagram

flowchart TD
    A[is_enabled(value: str) -> bool]
    B[env_setting_enabled(env_key: str, default: str) -> bool]
    C[is_valid_memory_limit(mem: str | None) -> bool]
    D[parse_timeout_duration(timeout: str | None, default_seconds: int) -> int]
    E[format_timeout_duration(seconds: int) -> str]

    B --> A

Diagram Explanation:


Summary

The util.py file is a straightforward utility module providing helper functions for:

Its simplicity and independence make it a reusable component for configuration and environment parsing throughout the InfiniFlow project or similar applications.