How kitagrasa/evaca-centinela works
This Python CLI monitors public eVaca portfolios and also produces indexed performance series for Portfolio Performance. The check workflow loads configuration and watchlists, fetches portfolio snapshots, compares positions with saved state, then formats and optionally sends alerts. The separate series workflow coordinates data acquisition, pure calculation, output formatting, and persisted results. The source index and excerpts support these principal calls; the README is empty, so other workflow details are not inferred.
Main entry points: monitor.py Monitor orchestration · cli.py CLI commands · serie_run.py Series orchestration · config.py Configuration
Components 22
CLI and configuration
- CLI commands
evaca_monitor/cli.py - Configuration
evaca_monitor/config.py - Followed users
evaca_monitor/watchlist.py - Schedule rules
evaca_monitor/schedule.py
Portfolio monitoring
- Monitor orchestration
evaca_monitor/monitor.py - Portfolio models
evaca_monitor/models.py - Position comparison
evaca_monitor/diff.py - Alert rendering
evaca_monitor/render.py - Historical operations
evaca_monitor/historial.py
Performance series
- Series orchestration
evaca_monitor/serie_run.py - Series calculations
evaca_monitor/serie.py - Series HTML output
evaca_monitor/serie_html.py
State and outputs
- Portfolio state
evaca_monitor/state.py - Alert cooldown
evaca_monitor/cooldown.py - State files
state - Series storage
evaca_monitor/serie_store.py - Series data files
data/series
External services
- eVaca client
evaca_monitor/client.py - Telegram notifier
evaca_monitor/telegram.py
Other components
- Operator
- Public eVaca API
- Telegram
Connections 23
- Operator → CLI commands: runs commands
evaca_monitor/cli.py - CLI commands → Configuration: loads settings
evaca_monitor/cli.py - Configuration → Followed users: loads users
evaca_monitor/config.py - Configuration → Schedule rules: parses rules
evaca_monitor/config.py - CLI commands → Monitor orchestration: runs checks
evaca_monitor/cli.py - Monitor orchestration → eVaca client: fetches portfolios
evaca_monitor/monitor.py - eVaca client → Public eVaca API: requests public data
evaca_monitor/client.py - Monitor orchestration → Portfolio models: builds snapshots
evaca_monitor/monitor.py - Monitor orchestration → Position comparison: compares snapshots
evaca_monitor/monitor.py - Monitor orchestration → Portfolio state: loads and saves
evaca_monitor/monitor.py - Portfolio state → State files: persists
evaca_monitor/state.py - Monitor orchestration → Historical operations: checks history
evaca_monitor/monitor.py - Monitor orchestration → Alert rendering: formats alerts
evaca_monitor/monitor.py - Monitor orchestration → Alert cooldown: checks cooldown
evaca_monitor/monitor.py - Alert cooldown → State files: persists
evaca_monitor/cooldown.py - CLI commands → Telegram notifier: configures notifier
evaca_monitor/cli.py - Telegram notifier → Telegram: sends messages
- CLI commands → Series orchestration: runs series
evaca_monitor/cli.py - Series orchestration → eVaca client: fetches source data
evaca_monitor/serie_run.py - Series orchestration → Series calculations: calculates returns
evaca_monitor/serie_run.py - Series orchestration → Series HTML output: formats output
evaca_monitor/serie_run.py - Series orchestration → Series storage: reads and writes
evaca_monitor/serie_run.py - Series storage → Series data files: persists series