pyvider 2025-05-12
Major rework of the conversion pipeline and protocol handlers, migrating DynamicValue conversion...
26 files · 30,277+ · 2,947-

Conversion Pipeline Refactor

2 files changed
  • __init__.py Updated `pyvider/conversion/__init__.py` to import from the new local module instead of the proto...
  • adapters.py Fixed `_function_meta` attribute reference to `_function_metadata` in `functions/adapters.py`
  • Moved DynamicValue conversion functions out of pyvider.protocols.tfprotov6.conversion.dynamic_value into a new local pyvider.conversion.dynamic_value module, making the conversion layer more accessible decouple internal
    2 files
    • pyvider.protocols.tfprotov6.conversion.dynamic_value
    • pyvider.conversion.dynamic_value
  • Added context-specific helper functions: config_to_dynamic_value, state_to_dynamic_value, plan_to_dynamic_value, apply_to_dynamic_value, function_result_to_dynamic_value instantiate internal
    4 files
    • __init__.py
    • dynamic_value.py
    • __init__.py
    • dynamic_value.py
  • Updated pyvider/conversion/__init__.py to import from the new local module instead of the protocol-specific path, adding all DynamicValue converters to the public API interface behavioral
    1 file
    • __init__.py
  • Changed import paths throughout to use pyvider.core.conversion.api, pyvider.core.conversion.wire_format, and pyvider.core.conversion.context directly instead of through the umbrella pyvider.core.conversion module interface behavioral
    4 files
    • pyvider.core.conversion.api
    • pyvider.core.conversion.wire_format
    • pyvider.core.conversion.context
    • pyvider.core.conversion
  • Modernized type annotations: Optional[X] replaced with X | None, List[X] with list[X] specify internal
    15 files
    • env_variables.py
    • file_info.py
    • http_api.py
    • file_content.py
    • __init__.py
    • dynamic_value.py
    • discovery.py
    • __init__.py
    • dynamic_value.py
    • apply_resource_change.py
    • call_function.py
    • plan_resource_change.py
    • read_data_source.py
    • read_resource.py
    • stop_provider.py
  • Fixed _function_meta attribute reference to _function_metadata in functions/adapters.py remediate internal
    1 file
    • adapters.py

Protocol Handler Simplification

8 files changed
  • __init__.py Changes to __init__.py
  • dynamic_value.py Changes to dynamic_value.py
  • apply_resource_change.py Changes to apply_resource_change.py
  • call_function.py Changes to call_function.py
  • plan_resource_change.py Changes to plan_resource_change.py
  • read_data_source.py Changes to read_data_source.py
  • read_resource.py Changes to read_resource.py
  • stop_provider.py Changes to stop_provider.py
  • Dramatically simplified all Terraform protocol v6 handlers, reducing each by 50-70%: interface internal
    8 files
    • __init__.py
    • dynamic_value.py
    • apply_resource_change.py
    • call_function.py
    • plan_resource_change.py
    • read_data_source.py
    • read_resource.py
    • stop_provider.py
  • All handlers now use explicit OperationContext parameters instead of the context manager pattern, and check for empty DynamicValue fields before attempting unmarshal decouple internal
    8 files
    • __init__.py
    • dynamic_value.py
    • apply_resource_change.py
    • call_function.py
    • plan_resource_change.py
    • read_data_source.py
    • read_resource.py
    • stop_provider.py

Component Discovery Improvements

1 file changed
  • discovery.py Rewrote `hub/discovery.py` with type hints (`ComponentRegistry`, `dict[str, Any]`, `set[str]`)
  • Rewrote hub/discovery.py with type hints (ComponentRegistry, dict[str, Any], set[str]) specify internal
    1 file
    • discovery.py
  • Made pyvider.components package discovery conditional with proper error handling for when the package doesn’t exist remediate internal
    1 file
    • pyvider.components
  • Consolidated component sub-package scanning into a loop over ["components.data_sources", "components.resources", "components.functions"] baseline internal
    1 file
    • discovery.py
  • Simplified component registration with elif chain checking _is_registered_resource, _is_registered_data_source, _is_registered_function, _is_registered_capability decouple internal
    1 file
    • discovery.py
  • Added __path__ check for single-module packages instantiate internal
    10 files
    • env_variables.py
    • file_info.py
    • http_api.py
    • file_content.py
    • apply_resource_change.py
    • call_function.py
    • plan_resource_change.py
    • read_data_source.py
    • read_resource.py
    • stop_provider.py

Protocol Conversion Module Init

1 file changed
  • __init__.py Added `pyvider/protocols/tfprotov6/conversion/__init__.py` with proper exports for all DynamicVal...
  • Added pyvider/protocols/tfprotov6/conversion/__init__.py with proper exports for all DynamicValue conversion functions instantiate internal
    1 file
    • __init__.py

Wire Format Changes

2 files changed
  • wire.py Significant changes to `pyvider-core/src/pyvider/core/conversion/wire.py` (495 lines changed) ind...
  • service.py Changes to `pyvider-rpcplugin/src/pyvider/rpcplugin/protocol/service.py` (96 lines changed) for p...
  • Significant changes to pyvider-core/src/pyvider/core/conversion/wire.py (495 lines changed) indicating core wire format converter updates decouple errata
    1 file
    • wire.py
  • Changes to pyvider-rpcplugin/src/pyvider/rpcplugin/protocol/service.py (96 lines changed) for protocol service adjustments interface internal
    1 file
    • service.py

Telemetry Adjustments

2 files changed
  • base.py Updated `pyvider-telemetry/src/pyvider/telemetry/logger/base.py` (401 lines changed) with logging...
  • decorators.py Minor fix in `telemetry/tracer/decorators.py`
  • Updated pyvider-telemetry/src/pyvider/telemetry/logger/base.py (401 lines changed) with logging system refinements decouple behavioral
    1 file
    • base.py
  • Minor fix in telemetry/tracer/decorators.py remediate behavioral
    1 file
    • decorators.py

Debug Logs Added

1 file changed
  • 2025-05-12 Added test execution logs under `logs/2025-05-12/` for file_content, file_info, integrated, and n...
  • Added test execution logs under logs/2025-05-12/ for file_content, file_info, integrated, and numeric_functions test runs, plus an OTEL logs screenshot, indicating active debugging of the provider against real Terraform operations qualify internal
    1 file
    • 2025-05-12