Skip to content

mytime v0.9.0 - Enhanced myday with Multi-file Processing

Choose a tag to compare

@stevedoyle stevedoyle released this 22 Jul 10:02
· 38 commits to main since this release

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 --path option
  • 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-breaks support

📋 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