# minzastro/joblib_viewer architecture

> Architecture diagram of the GitHub repository minzastro/joblib_viewer, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/minzastro/joblib_viewer
- Repository: https://github.com/minzastro/joblib_viewer

## Overview

This is a small terminal viewer for a joblib-serialized Python object. The user supplies a file path; the program loads the object, presents dictionary keys in a scroll menu, previews values, and lets the user enter nested dictionaries or return to the prior level. The single source file implements loading, navigation, and rendering; no README or further source is available, so the graph shows only relationships explicit in the excerpt.

Main entry points: [`joblib_viewer.py`](https://github.com/minzastro/joblib_viewer/blob/main/joblib_viewer.py) (Load object)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_viewer["Terminal viewer"]
  node_loader["Load object<br/>[joblib_viewer.py]"]
  node_menu_operator["Menu operator<br/>[joblib_viewer.py]"]
  node_terminal_ui["Terminal UI<br/>[joblib_viewer.py]"]
end

node_user(("User"))
node_joblib_file["Joblib file"]

node_user -->|"provides path"| node_joblib_file
node_joblib_file -->|"loads data"| node_loader
node_loader -->|"passes object"| node_menu_operator
node_menu_operator -->|"configures UI"| node_terminal_ui
node_user -->|"navigates"| node_terminal_ui

click node_loader "https://github.com/minzastro/joblib_viewer/blob/main/joblib_viewer.py"
click node_menu_operator "https://github.com/minzastro/joblib_viewer/blob/main/joblib_viewer.py"
click node_terminal_ui "https://github.com/minzastro/joblib_viewer/blob/main/joblib_viewer.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_loader,node_menu_operator,node_terminal_ui,node_user toneBlue
class node_joblib_file toneIndigo
```

## Components

### Terminal viewer

- [Load object](https://github.com/minzastro/joblib_viewer/blob/main/joblib_viewer.py): `joblib_viewer.py`
- [Menu operator](https://github.com/minzastro/joblib_viewer/blob/main/joblib_viewer.py): `joblib_viewer.py`
- [Terminal UI](https://github.com/minzastro/joblib_viewer/blob/main/joblib_viewer.py): `joblib_viewer.py`

### Other components

- **User**
- **Joblib file**

## Connections

- User → Joblib file: provides path
- Joblib file → Load object: loads data (evidence: `joblib_viewer.py`)
- Load object → Menu operator: passes object (evidence: `joblib_viewer.py`)
- Menu operator → Terminal UI: configures UI (evidence: `joblib_viewer.py`)
- User → Terminal UI: navigates (evidence: `joblib_viewer.py`)
