pyvider-hcl 2025-07-23
Initial project commit with full package structure
175 files · 73,918+ · 1,208-

Project initialization and package structure

7 files changed
  • pyproject.toml Project metadata, dependencies (attrs, python-hcl2, pyvider-cty, pyvider-telemetry, regex), build config
  • __init__.py Namespace package init with public API exports
  • py.typed PEP 561 typed package marker
  • .python-version Python version pin
  • LICENSE Apache-2.0 license
  • .gitignore Git ignore rules
  • .pre-commit-config.yaml Pre-commit hook configuration
  • Established pyvider-hcl as a namespace package under src/pyvider/hcl/ with typed marker instantiate architectural
    3 files
    • pyproject.toml
    • __init__.py
    • py.typed
  • Dependencies on attrs, python-hcl2, pyvider-cty, pyvider-telemetry, and regex baseline behavioral
    1 file
    • pyproject.toml
  • Python 3.12/3.13 target with Apache-2.0 license baseline internal
    3 files
    • pyproject.toml
    • LICENSE
    • .python-version

Parser module

5 files changed
  • __init__.py Parser subpackage init
  • base.py Core HCL-to-Cty parsing via parse_hcl_to_cty function
  • context.py Context-aware parsing with parse_with_context
  • inference.py Type inference engine for HCL values
  • parser.py Top-level parser convenience module

Factory module

5 files changed
  • __init__.py Factory subpackage init
  • resources.py create_resource_cty for converting Terraform resource blocks to Cty objects
  • variables.py create_variable_cty for converting Terraform variable blocks to Cty objects
  • types.py Type mapping and creation utilities bridging HCL types to Cty types
  • factories.py Top-level factory convenience module
  • create_resource_cty for converting Terraform resource blocks to Cty objects instantiate behavioral
    1 file
    • resources.py
  • create_variable_cty for converting Terraform variable blocks to Cty objects instantiate behavioral
    1 file
    • variables.py
  • Type mapping and creation utilities bridging HCL types to Cty types instantiate internal
    1 file
    • types.py

Output, terraform, and exception modules

5 files changed
  • formatting.py Pretty-printing of Cty values with pretty_print_cty
  • printer.py Top-level printer convenience module
  • config.py parse_terraform_config for full Terraform configuration file parsing
  • terraform.py Top-level terraform convenience module
  • exceptions.py HclError and HclParsingError custom exception classes
  • Pretty-printing of Cty values with pretty_print_cty instantiate internal
    2 files
    • formatting.py
    • printer.py
  • parse_terraform_config for full Terraform configuration file parsing instantiate behavioral
    2 files
    • config.py
    • terraform.py
  • HclError and HclParsingError custom exception classes instantiate internal
    1 file
    • exceptions.py

Test suite

8 files changed
  • conftest.py Test configuration and fixtures
  • test_parser.py Parser tests
  • test_factories.py Factory tests
  • test_printer.py Output formatting tests
  • test_terraform.py Terraform integration tests
  • test_integration.py Cross-module integration tests
  • test_property_based.py Property-based testing with Hypothesis
  • test_unknown_type_isolation.py Unknown type isolation tests
  • Comprehensive tests covering parser, factories, output formatting, terraform config parsing qualify internal
    4 files
    • test_parser.py
    • test_factories.py
    • test_printer.py
    • test_terraform.py
  • HCL fixture files for valid/invalid syntax, nested objects, tuples, lists qualify internal
    3 files
    • simple_valid.hcl
    • invalid_syntax.hcl
    • nested_object_valid.hcl
  • Integration tests and property-based testing with Hypothesis qualify internal
    2 files
    • test_integration.py
    • test_property_based.py

Mutation testing infrastructure

2 files changed
  • mutmut-stats.json 271-entry mutation test results tracking
  • pyproject.toml Mutant project configuration
  • Full mutants directory with mutmut-generated mutant source files and metadata qualify internal
    2 files
    • mutmut-stats.json
    • pyproject.toml

Documentation site

7 files changed
  • mkdocs.yml MkDocs configuration
  • architecture.md Architecture documentation
  • getting-started.md Getting started guide
  • README.md Project README
  • CLAUDE.md Claude Code project instructions
  • CONTRIBUTING.md Contribution guidelines
  • CHANGELOG.md Changelog
  • MkDocs configuration with architecture docs, getting-started guides, API reference stubs specify behavioral
    3 files
    • mkdocs.yml
    • architecture.md
    • getting-started.md
  • Guides for error handling, parsing, schema validation, Terraform integration, type inference, and testing specify internal
    3 files
    • error-handling.md
    • parsing.md
    • schema-validation.md

CI/CD and tooling

5 files changed
  • ci.yml GitHub Actions CI workflow
  • release.yml Release publishing workflow
  • env.sh Environment setup script
  • wrknv.toml Task runner configuration
  • settings.local.json Claude Code local settings
  • GitHub Actions workflows for main branch CI and release publishing baseline internal
    2 files
    • ci.yml
    • release.yml
  • Environment scripts and wrknv.toml task runner configuration baseline internal
    2 files
    • env.sh
    • wrknv.toml
  • Ruff, mypy, bandit, and coverage tool configurations in pyproject.toml qualify internal
    1 file
    • pyproject.toml

Example scripts

8 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
  • Eight example scripts demonstrating basic parsing, schema validation, type inference, Terraform variables/resources, complex structures, error handling, and multi-file projects specify internal
    4 files
    • 01_basic_parsing.py
    • 02_schema_validation.py
    • 03_type_inference.py
    • 04_terraform_variables.py