pyvider
2025-10-10
Enhanced the Terraform provider wrapper script generation with intelligent venv detection, and...
36 files · 2,993+ · 253-
Improved Provider Script Generation
29 files changed
utils.pyUpdated utils.py (+102/-31 lines)settings.local.jsonUpdated settings.local.json (+16/-2 lines)FOUNDATION_INTEGRATION_PLAN.mdAdded FOUNDATION_INTEGRATION_PLAN.md (+890 lines)coverage.jsonAdded coverage.json (+1 lines)__main__.pyUpdated __main__.py (+6/-1 lines)encryption.pyUpdated encryption.py (+356/-65 lines)__init__.pyAdded __init__.py (+69 lines)metrics.pyAdded metrics.py (+147 lines)apply_resource_change.pyAdded apply_resource_change.py (+23 lines)call_function.pyAdded call_function.py (+23 lines)close_ephemeral_resource.pyAdded close_ephemeral_resource.py (+25 lines)configure_provider.pyAdded configure_provider.py (+23 lines)get_functions.pyAdded get_functions.py (+23 lines)get_metadata.pyAdded get_metadata.py (+23 lines)get_provider_schema.pyAdded get_provider_schema.py (+23 lines)import_resource_state.pyAdded import_resource_state.py (+26 lines)move_resource_state.pyAdded move_resource_state.py (+26 lines)open_ephemeral_resource.pyAdded open_ephemeral_resource.py (+25 lines)plan_resource_change.pyAdded plan_resource_change.py (+24 lines)read_data_source.pyAdded read_data_source.py (+27 lines)read_resource.pyAdded read_resource.py (+22 lines)renew_ephemeral_resource.pyAdded renew_ephemeral_resource.py (+25 lines)stop_provider.pyUpdated stop_provider.py (+23/-1 lines)upgrade_resource_state.pyAdded upgrade_resource_state.py (+25 lines)validate_data_resource_config.pyAdded validate_data_resource_config.py (+26 lines)validate_ephemeral_resource_config.pyAdded validate_ephemeral_resource_config.py (+25 lines)validate_provider_config.pyAdded validate_provider_config.py (+24 lines)validate_resource_config.pyAdded validate_resource_config.py (+27 lines)uv.lockUpdated uv.lock (+41/-40 lines)
- Added
_find_actual_venv()function tocli/utils.pythat searches for virtual environments in order of preference:.venv,venv,.venv_*(platform-specific), andworkenv/*/(wrkenv style) instantiate errata1 file
utils.py
- Rewrote
_place_terraform_provider_script()to use detected venv paths instead of runtime OS/arch detection in the generated script decouple internal1 file
utils.py
- Generated scripts now use hardcoded accurate paths rather than dynamic platform detection
decouple
internal
1 file
utils.py
- Added Python executable validation and descriptive error messages when venv is missing or corrupted
instantiate
internal
1 file
utils.py
- Auto-detects execution method:
pyvider provide(installed) vspython -m pyvider.cli provide(editable install) baseline behavioral1 file
utils.py
- Added user-facing output showing detected venv, execution method, and script location
instantiate
behavioral
1 file
utils.py
Install Utilities Coverage
7 files changed
.venv_darwin_arm64Added .venv_darwin_arm64 (+1 lines)test_install_utils.pyAdded test_install_utils.py (+187 lines)test_encryption_unit.pyUpdated test_encryption_unit.py (+131/-109 lines)test_private_state_encryption.pyUpdated test_private_state_encryption.py (+5/-4 lines)__init__.pyAdded __init__.py (+1 lines)test_handler_metrics.pyAdded test_handler_metrics.py (+194 lines)test_metrics.pyAdded test_metrics.py (+358 lines)
- Added
tests/cli/test_install_utils.py(187 lines) with comprehensive tests for venv detection logic qualify behavioral1 file
test_install_utils.py
- Tests cover standard
.venv, alternativevenv, platform-specific.venv_darwin_arm64, workenv-style venvs, preference ordering, and not-found scenarios qualify errata1 file
.venv_darwin_arm64