How andreas-prouza/obi works
OBI is a Python backend for building IBM i objects, usable by IDE integrations or directly. Its central workflow reads project settings and source files, detects changes or accepts a requested source, expands dependency-aware compile lists, generates configured build commands, and presents build results. The sampled source confirms source scanning, dependency handling, command construction, and reporting; the excerpts do not show the complete CLI dispatch path, so the graph leaves execution wiring from the CLI out rather than inferring it. README capabilities such as IDE-independent backend use are represented at the boundary.
Main entry points: files.py File persistence · main.py CLI backend · properties.py Project properties · compile_list.py Compile-list management
Components 16
Client entry
- CLI backend
main.py
Build planning
- Source scanning
module/files.py - Compile-list management
module/compile_list.py - Dependency analysis
module/dependency.py
Build execution
- Command generation
module/build_cmds.py - Step selection
module/app_config_tools.py - Command execution
module/run_cmds.py
Configuration and results
- Build reporting
module/results.py - Project properties
module/properties.py - TOML helpers
module/toml_tools.py - File persistence
module/files.py - Build-list files
- Project configuration
- Build reports and logs
Other components
- IDE or user
- IBM i shell
Connections 22
- IDE or user → CLI backend: invokes
- CLI backend → Project properties: loads settings
- CLI backend → Source scanning: scans sources
- CLI backend → Compile-list management: adds source
- CLI backend → Build reporting: creates report
- Project properties → TOML helpers: reads tables
- Project properties → File persistence: reads configuration
- Compile-list management → Dependency analysis: finds dependents
- Compile-list management → Command generation: sets source commands
- Compile-list management → File persistence: writes lists
- Dependency analysis → Command generation: adds build commands
- Command generation → Project properties: resolves properties
- Command generation → Step selection: selects steps
- Step selection → Project properties: gets source settings
- Command execution → IBM i shell: runs commands
- Command execution → File persistence: reads and writes state
- Build reporting → File persistence: reads build data
- Build reporting → Dependency analysis: reads dependency data
- File persistence → Build-list files: persists
- File persistence → Project configuration: reads
- Build reporting → Build reports and logs: writes reports
- Command execution → Build reports and logs: stores command output