pyvider
2025-06-22
Massive merge of work from the mono repo, bringing in a modular CLI system, new wire codec...
85 files · 7,660+ · 4,809-
Modular CLI System
3 files changed
cliAdded `src/pyvider/cli/` package replacing the monolithic `cli.py`:cli.pyAdded `src/pyvider/cli/` package replacing the monolithic `cli.py`:__main__.pyReduced `__main__.py` to a thin launcher (~158 lines of changes)
- Added
src/pyvider/cli/package replacing the monolithiccli.py: baseline behavioral2 files
clicli.py
- Reduced
__main__.pyto a thin launcher (~158 lines of changes) decouple internal1 file
__main__.py
New Wire Codec Module
1 file changed
wireAdded `src/pyvider/wire/` package:
Conversion System Overhaul
9 files changed
__init__.pyRewrote `conversion/__init__.py` (65 lines of changes) with imports from pyvider-core, pyvider-ct...adapter.pyAdded `conversion/adapter.py` (82 lines), `raw_to_cty.py` (58 lines), `schema_adapter.py` (68 lin...raw_to_cty.pyAdded `conversion/adapter.py` (82 lines), `raw_to_cty.py` (58 lines), `schema_adapter.py` (68 lin...schema_adapter.pyAdded `conversion/adapter.py` (82 lines), `raw_to_cty.py` (58 lines), `schema_adapter.py` (68 lin...terraform.pyAdded `conversion/adapter.py` (82 lines), `raw_to_cty.py` (58 lines), `schema_adapter.py` (68 lin...type_encoder.pyAdded `conversion/adapter.py` (82 lines), `raw_to_cty.py` (58 lines), `schema_adapter.py` (68 lin...dynamic_value.pyRemoved `conversion/dynamic_value.py` (161 lines) and `conversion/context/` packagecontextRemoved `conversion/dynamic_value.py` (161 lines) and `conversion/context/` packagewire_format.pyRemoved `protocols/adapters/wire_format.py`
- Rewrote
conversion/__init__.py(65 lines of changes) with imports from pyvider-core, pyvider-cty, and pyvider-schema sub-packages interface internal1 file
__init__.py
- Added
conversion/adapter.py(82 lines),raw_to_cty.py(58 lines),schema_adapter.py(68 lines),terraform.py(60 lines),type_encoder.py(90 lines) interface internal5 files
adapter.pyraw_to_cty.pyschema_adapter.pyterraform.pytype_encoder.py
- Removed
conversion/dynamic_value.py(161 lines) andconversion/context/package baseline internal2 files
dynamic_value.pycontext
- Removed
protocols/adapters/wire_format.pydecouple internal1 file
wire_format.py
Updated Protobuf Definitions
4 files changed
tfplugin6.protoAdded `tfplugin6.proto` (794 lines) - the raw Terraform plugin protocol definitiontfplugin6_pb2.pyiAdded `tfplugin6_pb2.pyi` (829 lines) - type stubs for the generated protobuf codetfplugin6_pb2.pyUpdated `tfplugin6_pb2.py` (~354 lines of changes) and `tfplugin6_pb2_grpc.py` (~99 lines of chan...tfplugin6_pb2_grpc.pyUpdated `tfplugin6_pb2.py` (~354 lines of changes) and `tfplugin6_pb2_grpc.py` (~99 lines of chan...
- Added
tfplugin6.proto(794 lines) - the raw Terraform plugin protocol definition interface internal1 file
tfplugin6.proto
- Added
tfplugin6_pb2.pyi(829 lines) - type stubs for the generated protobuf code instantiate internal1 file
tfplugin6_pb2.pyi
- Updated
tfplugin6_pb2.py(~354 lines of changes) andtfplugin6_pb2_grpc.py(~99 lines of changes) decouple internal2 files
tfplugin6_pb2.pytfplugin6_pb2_grpc.py
Handler Simplification
1 file changed
utils.pySignificantly reduced all resource handlers using new shared `utils.py` (50 lines):
- Significantly reduced all resource handlers using new shared
utils.py(50 lines): instantiate internal1 file
utils.py
Provider Architecture
4 files changed
provider_core.pyAdded `src/pyvider/provider_core.py` (114 lines) with core provider logicdecorators.pyAdded `src/pyvider/providers/decorators.py` (21 lines) for provider registrationbase.pyReworked `providers/base.py` (~113 lines) and `providers/provider.py` (~79 lines)provider.pyReworked `providers/base.py` (~113 lines) and `providers/provider.py` (~79 lines)
- Added
src/pyvider/provider_core.py(114 lines) with core provider logic instantiate internal1 file
provider_core.py
- Added
src/pyvider/providers/decorators.py(21 lines) for provider registration instantiate internal1 file
decorators.py
- Reworked
providers/base.py(~113 lines) andproviders/provider.py(~79 lines) decouple internal2 files
base.pyprovider.py
Component Simplification
4 files changed
env_variables.pySimplified data sources: `env_variables.py` (~326 lines), `http_api.py` (~427 lines), `file_info....http_api.pySimplified data sources: `env_variables.py` (~326 lines), `http_api.py` (~427 lines), `file_info....file_info.pySimplified data sources: `env_variables.py` (~326 lines), `http_api.py` (~427 lines), `file_info....file_content.pySimplified `resources/file_content.py` (~252 lines)
- Simplified data sources:
env_variables.py(~326 lines),http_api.py(~427 lines),file_info.py(~174 lines) decouple internal3 files
env_variables.pyhttp_api.pyfile_info.py
- Simplified
resources/file_content.py(~252 lines) decouple internal1 file
file_content.py
- Added integrated test configs for numeric_functions and string_manipulation
qualify
internal
2 files
test_component_discovery.pytest_component_registry.py
Test Suite Updates
5 files changed
test_cli.pyAdded `tests/test_cli.py` (870 lines) with comprehensive CLI teststest_decorators.pyAdded `tests/capabilities/test_decorators.py` (136 lines)test_availability.pyAdded `tests/common/utils/test_availability.py` (78 lines)test_operation_context.pyAdded `tests/conversion/context/test_operation_context.py` (119 lines)test_foundation_exceptions.pyAdded `tests/exceptions/test_foundation_exceptions.py` (39 lines)
- Added
tests/test_cli.py(870 lines) with comprehensive CLI tests qualify behavioral1 file
test_cli.py
- Added
tests/capabilities/test_decorators.py(136 lines) qualify internal1 file
test_decorators.py
- Added
tests/common/utils/test_availability.py(78 lines) qualify internal1 file
test_availability.py
- Added
tests/conversion/context/test_operation_context.py(119 lines) qualify internal1 file
test_operation_context.py
- Added
tests/exceptions/test_foundation_exceptions.py(39 lines) qualify internal1 file
test_foundation_exceptions.py
- Updated existing tests across functions, handlers, hub, and schema modules
qualify
internal
78 files
env_variables.pyfile_info.pyhttp_api.pyfile_content.pynumeric_functions.tfstring_manipulation.tfenv.shpyproject.tomlterraform-provider-pyvider__init__.py__main__.py__init__.pycomponents_commands.pyconfig_commands.pymain.pyprep_commands.pyprovide_command.py__init__.py__init__.pyavailability.pycommon_types.py__init__.pyadapter.py__init__.pyoperation_context.pydynamic_value.pyraw_to_cty.pyschema_adapter.pyterraform.pytype_encoder.py__init__.pybase.pyfunction.pygrpc.pyprovider.pyregistry.pyresource.pyschema.pyserialization.pyvalidation.pyadapters.pybase.pyvalidators.pyfunction_adapter.pyapply_resource_change.pycall_function.pyget_provider_schema.pyplan_resource_change.pyread_data_source.pyread_resource.pyutils.pyvalidate_data_resource_config.pyvalidate_resource_config.pytfplugin6.prototfplugin6_pb2.pytfplugin6_pb2.pyitfplugin6_pb2_grpc.py__init__.pybase.pyprovider.pybase.pycontext.pyprotocol.py__init__.pycodec.pyexceptions.pyschema.pytypes.pyconftest.pytest_dynamic_value_conversion.pytest_function_adapter.pytest_provider_handler_delegation.pytest_provider_handler_hub_interaction.pytest_component_discovery.pytest_component_registry.pymock_base.pytest_wire_type_encoder.pyuv.lock