Commit History
-
feat: poetry integration
use poetry for dependency management and running python779ae91 -
chore: update BEST-PRACTICES
c119a7b -
refactor: move business logic from CLI to core library and improve documentation
This commit addresses a critical architectural issue by moving business logic from the CLI layer to the core library, ensuring proper separation of concerns. Key changes: 1. Refactored business logic: - Moved `generate_spy_changes` from `src/focli/utils.py` to `src/folio/simulator.py` - Moved `calculate_position_value_with_price_change` from `src/focli/utils.py` to `src/folio/portfolio_value.py` - Moved `simulate_position_with_spy_changes` from `src/focli/utils.py` to `src/folio/simulator.py` - Updated imports in CLI code to use the functions from the core library 2. Enhanced documentation: - Added separation of concerns principles to BEST-PRACTICES.md - Created a dedicated "Separation of Concerns" section in project-design.md - Added CLI interface documentation to project-design.md - Added code examples of proper separation in project-conventions.md 3. Verified changes: - Ran tests to ensure all functionality works correctly - Manually tested the CLI …5a20d88 -
feat(focli): Implement Phase 2 - Enhanced Interactivity
Add advanced interactive features to the Folio CLI: - Position-specific analysis with risk metrics and simulations - Ticker filtering capabilities across commands - State management between commands for workflow continuity - Parameter customization with presets for frequent analyses - Detailed position breakdowns with risk metrics Also includes: - Make target for easy startup (make focli) - Improved help documentation - User-centric README and release announcement - Bug fixes for simulation calculations Completes all Phase 2 tasks from the MVP plan.45ac00a -
feat: Implement Folio CLI Phase 1 - Interactive Shell
This commit adds a new interactive command-line interface for Folio portfolio management. The CLI provides an interactive shell environment for running portfolio simulations, analyzing positions, and exploring investment scenarios. Key features: - Interactive shell with command history and auto-completion - Portfolio loading and viewing capabilities - SPY simulation with customizable parameters - Position-specific analysis with detailed breakdowns - Comprehensive help system Technical details: - Uses prompt_toolkit for the interactive shell - Leverages existing code from src/folio modules - Maintains the same output formatting using Rich - Follows project coding conventions and passes linting The CLI provides at least the same functionality as scripts/folio-simulator.py but in an interactive shell environment where users can run multiple commands without restarting the application. This is Phase 1 of the planned implementation, focusing on core functionality. Future phases will add…f56729d -
chore: fix lint and introduce pre-commit hooks
286e013 -
refactor(data-fetcher): simplify data fetcher to use only YFinance
BREAKING CHANGE: Removed FMP data fetcher and related configuration options - Removed src/fmp.py module and all related tests - Consolidated DataFetcherSingleton into a single implementation in src/stockdata.py - Removed data_source configuration option from folio.yaml - Simplified create_data_fetcher to only support YFinance - Updated all imports and usages to use the simplified data fetcher - Removed scripts/check_beta.py and tests/fetch_sample_data.py that depended on FMP - Updated documentation to reflect YFinance as the only supported data source This change simplifies the codebase by removing unnecessary abstraction and focusing on a single data source implementation.203d1e9