🧩🔧 Pyvider Components
Example components for the Pyvider Terraform provider framework
This repository provides a standard set of example components for the Pyvider framework, demonstrating how to build Terraform providers in Python.
✨ Key Features
- 📚 Learning Resources - Real-world examples of Pyvider components
- 🔧 Reusable Components - Data sources, resources, and functions ready to use
- 🧪 Test Patterns - Reference implementations for provider testing
- 🏗️ Build Templates - Fork and customize for your own providers
Quick Start
- Install:
uv add pyvider-components - Read the Documentation
- Explore Examples
Getting Started
To use the pyvider-components provider, configure it in your Terraform project:
terraform {
required_providers {
pyvider = {
source = "local/providers/pyvider"
version = ">= 0.0.0" # For development/learning
# For specific versions: version = "~> 0.1"
}
}
}
provider "pyvider" {
# Provider configuration options go here
}
Documentation
Development
Quick Start
# Set up environment
uv sync
# Run common tasks
we run test # Run tests
we run lint # Check code
we run format # Format code
we tasks # See all available commands
See CLAUDE.md for detailed development instructions and architecture information.
pytest
Contributing
See CONTRIBUTING.md for contribution guidelines.
License
See LICENSE for license details.
What is pyvider-components?
pyvider-components is a learning and reference library that demonstrates how to build Terraform provider components using the Pyvider framework. It contains working examples of resources, data sources, and functions that you can:
- 📚 Learn from - See real-world examples of Pyvider components
- 🔍 Reference - Use as templates for your own providers
- 🧪 Test with - Try out Pyvider features without writing code
- 🏗️ Build on - Fork and customize for your needs
Note: This is primarily an example/learning library, not a production provider. For production use, the terraform-provider-pyvider packages these components into a deployable provider.
Relationship to terraform-provider-pyvider
┌─────────────────────────┐
│ pyvider (framework) │ ← Core framework for building providers
└───────────┬─────────────┘
│
├─────────────────────────────────────┐
│ │
┌───────────▼─────────────┐ ┌───────────────▼──────────────┐
│ pyvider-components │────▶│ terraform-provider-pyvider │
│ (example library) │ │ (pre-release/testing provider) │
│ │ │ │
│ • Learning resources │ │ • Uses components from ← │
│ • Reference examples │ │ • Packaged & tested │
│ • Component demos │ │ • Pre-release learning tool │
└─────────────────────────┘ └──────────────────────────────┘
Key Difference:
- pyvider-components: Learn how to build components (this repo)
- terraform-provider-pyvider: Pre-release provider for testing and learning (terraform-provider-pyvider)
When to use pyvider-components
Use this repository when you want to:
✅ Learn how to build Pyvider providers ✅ See working examples of resources, data sources, and functions ✅ Experiment with Pyvider features ✅ Reference implementation patterns ✅ Build your own custom provider
When to use terraform-provider-pyvider
Use the provider when you want to:
✅ Learn and experiment with Pyvider in Terraform ✅ Test provider functions and resources ✅ Follow a getting started tutorial ✅ Build sample configurations
Part of the provide.io Ecosystem
This project is part of a larger ecosystem of tools for Python and Terraform development.
Understand how provide-foundation, pyvider, flavorpack, and other projects work together.
Components
Data Sources
pyvider_env_variables: Provides access to environment variables.pyvider_file_info: Provides metadata about a file or directory.pyvider_http_api: Makes an HTTP request and returns the response.pyvider_lens_jq: Transforms data using a JQ expression.
Resources
pyvider_file_content: Manages the content of a file.pyvider_local_directory: Manages a directory on the local filesystem.pyvider_private_state_verifier: Verifies the private state of a resource (for testing).pyvider_timed_token: Manages a short-lived token (for testing).pyvider_warning_example: Demonstrates how to return warnings (for testing).
Functions
A rich set of utility functions are provided for common data manipulations.
- Numeric:
add,subtract,multiply,divide,sum,min,max,round - String:
upper,lower,split,join,replace,format,truncate,format_size,pluralize,to_snake_case,to_kebab_case,to_camel_case - Collection:
length,contains,lookup - Type Conversion:
tostring - Transformation:
lens_jq
Examples
Read Environment Variables
data "pyvider_env_variables" "shell" {
keys = ["SHELL"]
}
output "shell_path" {
value = data.pyvider_env_variables.shell.values["SHELL"]
}
Manage a File
resource "pyvider_file_content" "example" {
filename = "/tmp/example.txt"
content = "This file is managed by Terraform."
}
output "file_hash" {
value = pyvider_file_content.example.content_hash
}
Use a String Function
output "uppercase_example" {
value = provider::pyvider::upper("hello world")
}
Copyright (c) provide.io LLC.
Metadata
Release files for pyvider-components 0.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyvider_components-0.8.1.tar.gz | 175.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyvider_components-0.8.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 383.3 kB
Release files / pyvider_components-0.8.1.tar.gz
| Download URL | pyvider_components-0.8.1.tar.gz |
|---|---|
| Size | 175.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
72ee62bea97bf5dc82a81426f7922c9580e44a49d727a93189b695ac17cb8322
|
|
BLAKE2b-256 checksum How to use checksums |
25f7646881eff506dbb2ee981d81a54f9252aacc67f11493a90f803e4440eb31
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency logRelease files / pyvider_components-0.8.1-py3-none-any.whl
| Download URL | pyvider_components-0.8.1-py3-none-any.whl |
|---|---|
| Size | 207.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
81e9d41dada21d3e7793daddc03f9d563b07b68ec3c79c18bff88eacc838284a
|
|
BLAKE2b-256 checksum How to use checksums |
60eb7974aeeaca663a4eb51e10239c4440f58bc719403758e5f0d3d453b8359c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency log