pyvider-hcl 2025-10-25
Codebase restructured into sub-packages with mutation testing, docs, and examples
135 files · 68,500+ · 852-

Source modules decomposed into sub-packages

18 files changed
  • __init__.py New package init re-exporting factory functions
  • resources.py Resource factory logic extracted from monolithic factories.py
  • types.py Type parsing logic extracted from monolithic factories.py
  • variables.py Variable factory logic extracted from monolithic factories.py
  • __init__.py New output package init
  • formatting.py Printer logic moved and renamed from printer.py
  • __init__.py New parser package init re-exporting parse functions
  • base.py Base parsing logic extracted from monolithic parser.py
  • context.py Context handling extracted from monolithic parser.py
  • inference.py Type inference extracted from monolithic parser.py
  • __init__.py New terraform package init
  • config.py Terraform config parsing extracted from monolithic terraform.py
  • __init__.py Expanded exports to include HclFactoryError, HclTypeParsingError, and auto_infer_cty_type
  • exceptions.py Minor additions for expanded error types
  • factories.py Removed monolithic factory module (223 lines)
  • parser.py Removed monolithic parser module (97 lines)
  • printer.py Removed monolithic printer module (84 lines)
  • terraform.py Removed monolithic terraform module (40 lines)
  • Split factories.py (223 lines) into factories/ package with init.py, resources.py, types.py, and variables.py decouple architectural
    5 files
    • __init__.py
    • resources.py
    • types.py
    • variables.py
    • factories.py
  • Split parser.py (97 lines) into parser/ package with init.py, base.py, context.py, and inference.py decouple architectural
    5 files
    • __init__.py
    • base.py
    • context.py
    • inference.py
    • parser.py
  • Split printer.py (84 lines) into output/ package with init.py and formatting.py decouple internal
    3 files
    • __init__.py
    • formatting.py
    • printer.py
  • Split terraform.py (40 lines) into terraform/ package with init.py and config.py decouple internal
    3 files
    • __init__.py
    • config.py
    • terraform.py
  • Expanded init.py exports to include HclFactoryError, HclTypeParsingError, and auto_infer_cty_type decouple internal
    1 file
    • __init__.py
  • Changed from relative imports to absolute imports throughout decouple internal
    2 files
    • __init__.py
    • __init__.py

Tests reorganized into sub-directories matching source layout

12 files changed
  • __init__.py New test sub-package init
  • test_factories.py Factory tests moved to sub-directory
  • __init__.py New test sub-package init
  • test_printer.py Printer tests moved to sub-directory
  • __init__.py New test sub-package init
  • test_parser.py Parser tests moved to sub-directory
  • simple_valid.hcl HCL test fixture moved to parser sub-directory
  • __init__.py New test sub-package init
  • test_terraform.py Terraform tests moved to sub-directory
  • conftest.py Updated fixtures for new directory structure
  • test_integration.py Updated imports for new module paths
  • test_property_based.py Updated imports for new module paths
  • Moved test_factories.py to tests/factories/test_factories.py qualify internal
    1 file
    • test_factories.py
  • Moved test_printer.py to tests/output/test_printer.py qualify internal
    1 file
    • test_printer.py
  • Moved test_parser.py and HCL fixtures to tests/parser/ qualify internal
    1 file
    • test_parser.py
  • Moved test_terraform.py to tests/terraform/ qualify internal
    1 file
    • test_terraform.py
  • Updated conftest.py fixtures and integration/property-based tests for the new structure qualify internal
    3 files
    • conftest.py
    • test_integration.py
    • test_property_based.py

Mutation testing infrastructure added with mutmut

5 files changed
  • mutmut-stats.json 271-entry mutation kill rate tracking
  • pyproject.toml Mutant project configuration
  • conftest.py Test copies for mutation testing
  • .mutmut.db Mutmut database file
  • mutmut-results.txt Mutation testing results summary
  • Added mutants/ directory with mutmut-generated source variants for all modules qualify internal
    1 file
    • pyproject.toml
  • Added mutants/mutmut-stats.json (271 entries) tracking mutation kill rates qualify internal
    1 file
    • mutmut-stats.json
  • Added mutants/tests/ with test copies for isolated mutation testing runs qualify internal
    1 file
    • conftest.py

Comprehensive documentation suite added

14 files changed
  • architecture.md Architecture documentation (387 lines)
  • getting-started.md Getting started guide (277 lines)
  • error-handling.md Error handling guide (184 lines)
  • parsing.md Parsing guide (84 lines)
  • schema-validation.md Schema validation guide (77 lines)
  • terraform-integration.md Terraform integration guide (188 lines)
  • testing.md Testing guide (64 lines)
  • type-inference.md Type inference guide (142 lines)
  • index.md Expanded documentation index
  • index.md API reference landing page
  • CONTRIBUTING.md Development workflow guide (254 lines)
  • MUTATION_TESTING_HANDOFF.md Mutation testing strategy documentation (313 lines)
  • CHANGELOG.md Rewritten changelog
  • README.md Updated readme
  • Added docs/architecture.md and docs/getting-started.md with comprehensive guides specify behavioral
    2 files
    • architecture.md
    • getting-started.md
  • Added guide pages for error handling, parsing, schema validation, terraform integration, testing, type inference specify internal
    6 files
    • error-handling.md
    • parsing.md
    • schema-validation.md
    • terraform-integration.md
    • testing.md
    • type-inference.md
  • Expanded docs/index.md and docs/api/index.md specify internal
    2 files
    • index.md
    • index.md
  • Added CONTRIBUTING.md (254 lines) with development workflow guide specify internal
    1 file
    • CONTRIBUTING.md
  • Added MUTATION_TESTING_HANDOFF.md documenting mutation testing strategy specify internal
    1 file
    • MUTATION_TESTING_HANDOFF.md
  • Rewrote CHANGELOG.md and updated README.md specify errata
    2 files
    • CHANGELOG.md
    • README.md

Complete example suite demonstrating library usage

10 files changed
  • 01_basic_parsing.py Basic HCL parsing example
  • 02_schema_validation.py Schema validation example
  • 03_type_inference.py Type inference example
  • 04_terraform_variables.py Terraform variables example
  • 05_terraform_resources.py Terraform resources example
  • 06_complex_structures.py Complex structures example
  • 07_error_handling.py Error handling example
  • 08_multi_file_project.py Multi-file project example
  • README.md Examples guide
  • ridiculous_example.py Removed old example
  • Added 8 numbered example scripts demonstrating basic parsing, schema validation, type inference, terraform variables/resources, complex structures, error handling, and multi-file projects specify internal
    8 files
    • 01_basic_parsing.py
    • 02_schema_validation.py
    • 03_type_inference.py
    • 04_terraform_variables.py
    • 05_terraform_resources.py
    • 06_complex_structures.py
    • 07_error_handling.py
    • 08_multi_file_project.py
  • Added examples/README.md guide specify errata
    1 file
    • README.md
  • Removed old examples/ridiculous_example.py decouple internal
    1 file
    • ridiculous_example.py

Makefile and build scripts added

6 files changed
  • Makefile Added Makefile (151 lines) with targets for common development tasks
  • docs-serve.sh Documentation serve script
  • quality.sh Code quality check script
  • setup.sh Project setup script
  • test.sh Test runner script
  • mkdocs.yml Updated MkDocs configuration
  • Added Makefile (151 lines) with targets for common development tasks baseline internal
    1 file
    • Makefile
  • Added shell scripts for docs serving, quality checks, setup, and testing baseline internal
    4 files
    • docs-serve.sh
    • quality.sh
    • setup.sh
    • test.sh