Skip to content

v0.9.0 - Configuration Module Expansion

Choose a tag to compare

@jwesleye jwesleye released this 08 Nov 22:42
· 19 commits to main since this release

v0.9.0 - Configuration Module Expansion

🔧 Comprehensive Config File Tooling

Added 19 new functions to the config module (28 total), providing complete coverage of configuration file operations.

New Features

.env File Support (5 functions)

  • parse_env_file() - Parse .env content with comment/quote handling
  • validate_env_file() - Validate syntax with errors/warnings
  • extract_env_variable() - Extract specific variable values
  • merge_env_files() - Merge multiple .env files with precedence
  • substitute_env_variables() - Expand ${VAR} and $VAR references

Config Extraction (6 functions)

  • extract_yaml_value() - Extract values using dot notation (e.g., "database.host")
  • extract_toml_value() - Extract from TOML configurations
  • extract_json_value() - Extract from JSON configurations
  • merge_yaml_files() - Deep merge YAML files
  • merge_toml_files() - Deep merge TOML files
  • interpolate_config_variables() - Variable expansion in configs

Common Formats (5 functions)

  • parse_ini_file() - Parse INI/CFG files
  • validate_ini_syntax() - Validate INI syntax
  • parse_properties_file() - Parse Java .properties files
  • validate_xml_syntax() - Validate XML configs
  • parse_xml_value() - Extract XML values via XPath

Security & Best Practices (3 functions)

  • check_gitignore_security() - Comprehensive gitignore pattern scanning
  • detect_exposed_config_files() - Find configs in web-accessible directories
  • validate_config_permissions() - Validate file permissions for sensitive configs

Stats

  • Total tools: 267 → 286 (+19 functions)
  • Config module: 9 → 28 functions
  • Tests: 1,096 → 1,244 (+148 tests)
  • Test coverage: 65% overall, 80%+ for config module

Quality

  • ✅ 100% ruff compliance
  • ✅ 100% mypy --strict compliance
  • ✅ All 1,244 tests passing

Installation

pip install --upgrade coding-open-agent-tools
# or
uv add coding-open-agent-tools@latest

Quick Example

from coding_open_agent_tools import config

# Parse .env files
env = config.parse_env_file(env_content)

# Extract YAML values with dot notation
host = config.extract_yaml_value(yaml_content, "database.host")

# Security: Check gitignore patterns
security = config.check_gitignore_security(gitignore_content)

Full Changelog: https://github.com/Open-Agent-Tools/coding-open-agent-tools/blob/main/CHANGELOG.md#090---2025-11-08