Skip to content

Loader#5

Merged
StuartFarmer merged 34 commits into
mainfrom
loader
Oct 23, 2025
Merged

Loader#5
StuartFarmer merged 34 commits into
mainfrom
loader

Conversation

@StuartFarmer

Copy link
Copy Markdown
Owner

No description provided.

StuartFarmer and others added 4 commits October 23, 2025 14:18
CRITICAL FIX: Resolves AttributeError when backtester queries earliest dates

Problem:
- DataInterface.earliest_any_date() and earliest_common_date() call
  store.earliest(symbol) at interface.py:63 and :211
- No DataStore implementation had this method
- Would crash at runtime during backtest start date determination

Solution:
- Added earliest() method to base.py abstract interface
- Implemented in CSVDataStore (returns df.index.min())
- Implemented in ParquetDataStore (returns df.index.min())
- Implemented in NoisyDataStore (delegates to base_store)
- Implemented in MarketDataLoaderAdapter (returns df.index[0])

Testing:
- Added test_earliest_date() for ParquetDataStore
- Updated test_delegation_methods() for NoisyDataStore
- All 21 tests passing (was 20 before)

Impact:
- Fixes: Backtester can now determine earliest available dates
- No breaking changes (pure addition)
- Symmetric with existing latest() method

Related: plan/01-critical-blockers.md

Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
Created detailed planning documents to track refactor status and guide
completion to merge.

Contents:
- plan/README.md - Overview and quick links
- plan/01-critical-blockers.md - Must-fix issues before merge
- plan/02-architecture-overview.md - Complete system design docs
- plan/03-branch-cleanup.md - Branch management strategy
- plan/04-merge-readiness.md - Merge checklist and timeline

Purpose:
- Document refactor status (80-85% complete)
- Track critical blockers
- Provide merge path
- Enable future reference

Status: One blocker resolved (earliest() method), remaining blockers
documented in 01-critical-blockers.md

Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
All critical blockers have been fixed:
✅ earliest() method implemented (commit 5b87687)
✅ cvxpy dependency verified (already in pyproject.toml)
✅ Full test suite passing (521 tests)

Status: Ready for merge to main

Remaining items are optional code quality improvements that don't
block the merge.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
@StuartFarmer StuartFarmer merged commit 203a42b into main Oct 23, 2025
1 check passed
@StuartFarmer StuartFarmer deleted the loader branch October 24, 2025 10:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant