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.toml Project 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.py Abstract base registry class with async context manager, provider/module listing and detail methods
  • opentofu.py OpenTofu registry client with dual HTTP clients for registry.opentofu.org and api.opentofu.org search endpoint
  • terraform.py Terraform registry client for registry.terraform.io API
  • __init__.py Registry package exports without OCI registry
  • module.py Module 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.py
    • opentofu.py
    • terraform.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.py Search 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.py Textual application with registry browser interface
  • app.tcss Textual CSS stylesheet for TUI layout
  • detail_view.py DetailView widget for displaying module/provider details in a tree layout
  • search_view.py SearchView 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.py
    • search_view.py
    • detail_view.py

CLI interface

1 file changed
  • cli.py Click 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.py OpenTofu registry tests rewritten for new API-based search approach
  • test_terraform_registry.py Terraform registry tests
  • test_detail_view.py DetailView widget tests with tree label assertions
  • test_search_view.py SearchView widget tests
  • tfbrowser_mockup.txt Text-based TUI mockup for search interface
  • tfbrowser_mockup_dashboard.txt Text-based TUI mockup for dashboard view
  • tfbrowser_mockup_registry_selection.txt Text-based TUI mockup for registry selection
  • Added comprehensive test suites for registry clients and TUI widgets with text-based UI mockups qualify internal
    3 files
    • test_opentofu_registry.py
    • test_detail_view.py
    • test_search_view.py