tofusoup
2025-05-27
Initial project scaffolding with registry clients, search engine, and Textual TUI
21 files · 1,747+ · 1,637-
Project scaffolding and configuration
1 file changed
pyproject.tomlProject metadata with dependencies on attrs, click, httpx, textual, structlog, aiosqlite, semver; pytest and dev tooling configuration
- Established Python 3.13+ project structure with uv management and comprehensive dev tooling (pytest, ruff, mypy)
instantiate
architectural
1 file
pyproject.toml
Registry abstraction and implementations
5 files changed
base.pyAbstract base registry class with async context manager, provider/module listing and detail methodsopentofu.pyOpenTofu registry client with dual HTTP clients for registry.opentofu.org and api.opentofu.org search endpointterraform.pyTerraform registry client for registry.terraform.io API__init__.pyRegistry package exports without OCI registrymodule.pyModule data models with attrs including downloads and verified fields
- Built async registry abstraction with Terraform and OpenTofu implementations using httpx clients
instantiate
architectural
3 files
base.pyopentofu.pyterraform.py
- Removed OCI registry implementation to focus on Terraform and OpenTofu registries
harden
architectural
2 files
oci.py__init__.py
Search engine
1 file changed
engine.pySearch engine supporting multi-registry queries with SearchQuery and SearchResult models
- Implemented multi-registry search engine that aggregates results across configured registries
instantiate
behavioral
1 file
engine.py
Textual TUI application
4 files changed
app.pyTextual application with registry browser interfaceapp.tcssTextual CSS stylesheet for TUI layoutdetail_view.pyDetailView widget for displaying module/provider details in a tree layoutsearch_view.pySearchView widget with search input and results display
- Created Textual TUI with SearchView for querying registries and DetailView for inspecting results
instantiate
external
3 files
app.pysearch_view.pydetail_view.py
CLI interface
1 file changed
cli.pyClick CLI with browse and search commands, TUI launch support, and async registry search
- Built Click CLI with browse command to launch TUI and search command for non-interactive registry queries
instantiate
behavioral
1 file
cli.py
Test suites and mockups
7 files changed
test_opentofu_registry.pyOpenTofu registry tests rewritten for new API-based search approachtest_terraform_registry.pyTerraform registry teststest_detail_view.pyDetailView widget tests with tree label assertionstest_search_view.pySearchView widget teststfbrowser_mockup.txtText-based TUI mockup for search interfacetfbrowser_mockup_dashboard.txtText-based TUI mockup for dashboard viewtfbrowser_mockup_registry_selection.txtText-based TUI mockup for registry selection