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__.pyNew package init re-exporting factory functionsresources.pyResource factory logic extracted from monolithic factories.pytypes.pyType parsing logic extracted from monolithic factories.pyvariables.pyVariable factory logic extracted from monolithic factories.py__init__.pyNew output package initformatting.pyPrinter logic moved and renamed from printer.py__init__.pyNew parser package init re-exporting parse functionsbase.pyBase parsing logic extracted from monolithic parser.pycontext.pyContext handling extracted from monolithic parser.pyinference.pyType inference extracted from monolithic parser.py__init__.pyNew terraform package initconfig.pyTerraform config parsing extracted from monolithic terraform.py__init__.pyExpanded exports to include HclFactoryError, HclTypeParsingError, and auto_infer_cty_typeexceptions.pyMinor additions for expanded error typesfactories.pyRemoved monolithic factory module (223 lines)parser.pyRemoved monolithic parser module (97 lines)printer.pyRemoved monolithic printer module (84 lines)terraform.pyRemoved 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__.pyresources.pytypes.pyvariables.pyfactories.py
- Split parser.py (97 lines) into parser/ package with init.py, base.py, context.py, and inference.py
decouple
architectural
5 files
__init__.pybase.pycontext.pyinference.pyparser.py
- Split printer.py (84 lines) into output/ package with init.py and formatting.py
decouple
internal
3 files
__init__.pyformatting.pyprinter.py
- Split terraform.py (40 lines) into terraform/ package with init.py and config.py
decouple
internal
3 files
__init__.pyconfig.pyterraform.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__.pyNew test sub-package inittest_factories.pyFactory tests moved to sub-directory__init__.pyNew test sub-package inittest_printer.pyPrinter tests moved to sub-directory__init__.pyNew test sub-package inittest_parser.pyParser tests moved to sub-directorysimple_valid.hclHCL test fixture moved to parser sub-directory__init__.pyNew test sub-package inittest_terraform.pyTerraform tests moved to sub-directoryconftest.pyUpdated fixtures for new directory structuretest_integration.pyUpdated imports for new module pathstest_property_based.pyUpdated 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.pytest_integration.pytest_property_based.py
Mutation testing infrastructure added with mutmut
5 files changed
mutmut-stats.json271-entry mutation kill rate trackingpyproject.tomlMutant project configurationconftest.pyTest copies for mutation testing.mutmut.dbMutmut database filemutmut-results.txtMutation 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.mdArchitecture documentation (387 lines)getting-started.mdGetting started guide (277 lines)error-handling.mdError handling guide (184 lines)parsing.mdParsing guide (84 lines)schema-validation.mdSchema validation guide (77 lines)terraform-integration.mdTerraform integration guide (188 lines)testing.mdTesting guide (64 lines)type-inference.mdType inference guide (142 lines)index.mdExpanded documentation indexindex.mdAPI reference landing pageCONTRIBUTING.mdDevelopment workflow guide (254 lines)MUTATION_TESTING_HANDOFF.mdMutation testing strategy documentation (313 lines)CHANGELOG.mdRewritten changelogREADME.mdUpdated readme
- Added docs/architecture.md and docs/getting-started.md with comprehensive guides
specify
behavioral
2 files
architecture.mdgetting-started.md
- Added guide pages for error handling, parsing, schema validation, terraform integration, testing, type inference
specify
internal
6 files
error-handling.mdparsing.mdschema-validation.mdterraform-integration.mdtesting.mdtype-inference.md
- Expanded docs/index.md and docs/api/index.md
specify
internal
2 files
index.mdindex.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.mdREADME.md
Complete example suite demonstrating library usage
10 files changed
01_basic_parsing.pyBasic HCL parsing example02_schema_validation.pySchema validation example03_type_inference.pyType inference example04_terraform_variables.pyTerraform variables example05_terraform_resources.pyTerraform resources example06_complex_structures.pyComplex structures example07_error_handling.pyError handling example08_multi_file_project.pyMulti-file project exampleREADME.mdExamples guideridiculous_example.pyRemoved 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.py02_schema_validation.py03_type_inference.py04_terraform_variables.py05_terraform_resources.py06_complex_structures.py07_error_handling.py08_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
MakefileAdded Makefile (151 lines) with targets for common development tasksdocs-serve.shDocumentation serve scriptquality.shCode quality check scriptsetup.shProject setup scripttest.shTest runner scriptmkdocs.ymlUpdated MkDocs configuration