Repository navigation
mytime v0.9.0 - Enhanced myday with Multi-file Processing
mytime v0.9.0 - Enhanced myday with Multi-file Processing
This minor release introduces powerful new multi-file processing capabilities to the myday tool, enabling users to analyze time entries across multiple daily notes for specified time periods.
🚀 New Features
Multi-file Time Period Analysis
The myday tool now supports analyzing multiple daily note files at once:
--thisweek- Process all daily notes from the current week--lastweek- Process all daily notes from last week--thismonth- Process all daily notes from the current month--lastmonth- Process all daily notes from last month
Smart File Discovery
- Automatically discovers and processes YYYY-MM-DD.md files within specified date ranges
- Works with any directory structure using the
--pathoption - Graceful handling of missing files and date parsing errors
Comprehensive Aggregated Reports
Multi-file mode provides detailed analysis across all processed files:
- Per-file summaries with entry counts and totals
- Aggregated summaries by Project, Type, and Productivity Focus
- Consistent output format with Time.XXX.YYY structured data
- Break handling with proper
--include-breakssupport
📋 Usage Examples
# Analyze time entries for this week
myday --thisweek
# Last month's analysis including break time
myday --lastmonth --include-breaks
# Filter analysis for specific activities
myday --thisweek --filter "meeting|coding"
# Process files from a specific directory
myday --thismonth --path ~/daily-notes
# Combine with other existing options
myday --lastweek --ignore-empty --path ./notes📊 Enhanced Output Format
Multi-file processing provides rich, structured output:
📁 Processing This Week (2025-07-14 to 2025-07-20)
Found 5 files in .
📊 Files processed: 5
• 2025-07-14.md: 8 entries, (7, 30)
• 2025-07-15.md: 6 entries, (6, 45)
• 2025-07-16.md: 7 entries, (8, 15)
🕐 Total Time (This Week): 35:15
📈 Summary by Type (This Week):
| Type | Total Time |
|---------|------------|
| Task | 18:30 |
| Meeting | 7:15 |
| Admin | 4:30 |
📊 Summary by Project (This Week):
| Project | Total Time |
|-------------|------------|
| MyProject | 12:15 |
| ClientWork | 8:30 |
| General | 6:20 |
Projects:
- Time.Proj.MyProject: 12.25
- Time.Proj.ClientWork: 8.5
- Time.Proj.General: 6.33
Types:
- Time.Type.Task: 18.5
- Time.Type.Meeting: 7.25
- Time.Type.Admin: 4.5
Productivity:
- Time.Focus.Deep: 18.5
- Time.Focus.Meeting: 7.25
- Time.Focus.Shallow: 4.5
Total time: 30:15
🛡️ Compatibility & Quality
- 100% Backward Compatible: All existing single-file functionality preserved
- Comprehensive Testing: All 42 existing tests pass plus extensive integration testing
- Smart Validation: Prevents incompatible option combinations (--validate/--fix with multi-file)
- Error Resilience: Graceful handling of malformed files and missing data
🔧 Technical Enhancements
- Added date utility functions for consistent time period calculations
- Implemented
process_multiple_files()for efficient multi-file aggregation - Enhanced CLI argument processing with proper validation
- Improved error handling and user feedback
- Maintained code quality with comprehensive linting and formatting
📦 Component Versions
- mytime: 0.8.0 (stable)
- myday: 0.3.0 (new multi-file features)
- Package: 0.9.0
🐛 Bug Fixes & Improvements
- Fixed total time calculation consistency between single and multi-file modes
- Improved Time.XXX.YYY output formatting for better machine readability
- Enhanced error messages for better user experience
- Optimized file processing performance
Installation: pip install mytime==0.9.0
Full Changelog: v0.8.3...v0.9.0