Repository navigation
Release 0.3.0
✨ New Features
Natural Language DateTime Parsing
from time_helper import parse_natural, DateTimeWrapper
# Parse natural language expressions
tomorrow = parse_natural("tomorrow at 3pm")
next_week = parse_natural("next Monday")
relative = parse_natural("in 3 days")
# Use with DateTimeWrapper for chaining
wrapper = DateTimeWrapper("next Friday at 2:30pm")Comprehensive DST Support
from time_helper.dst import is_dst_active, get_dst_transitions, next_dst_transition
# Check if DST is active
is_dst = is_dst_active("2024-07-15", "America/New_York")
# Get DST transition dates for a year
transitions = get_dst_transitions(2024, "Europe/Berlin")
# Find next DST transition
next_transition = next_dst_transition("2024-03-01", "America/New_York")Enhanced Logging
- All print statements replaced with proper Python logging
- Configurable via environment variables
- Module-specific loggers for fine-grained control
🐛 Bug Fixes
- Fixed DateTimeWrapper.round() - Now properly returns DateTimeWrapper for method chaining (#9)
- Improved timezone handling - Better disambiguation of IST, CST, BST, and other ambiguous abbreviations (#1)
- Enhanced ISO 8601 parsing - Now correctly handles milliseconds and Z suffix
- DST edge cases - Proper handling of ambiguous times during transitions
📊 Quality Improvements
- Test Coverage: Increased from 84% to 96% overall
timezone.py: 100% coveragenatural.py: 100% coveragewrapper.py: 99% coverageconvert.py: 95% coverage
- Type Safety: Full mypy compliance with strict configuration
- Code Quality: All ruff checks passing
- Testing: 276 comprehensive tests added
🔧 Technical Enhancements
- Migrated to UV package manager for faster dependency resolution
- Modern Python 3.10+ type hints (using
X | Ysyntax) - Pre-commit hooks with ruff for code quality
- Optimized imports and lazy loading for better performance
📦 Installation
# Basic installation
pip install time-helper
# With pandas support
pip install time-helper[pandas]
# With numpy support
pip install time-helper[numpy]
# All extras
pip install time-helper[pandas,numpy]💔 Breaking Changes
None! This release maintains full backwards compatibility.
🙏 Acknowledgments
Special thanks to all contributors and users who reported issues. This release addresses all open GitHub issues (#10, #9, #3, #1) and significantly improves the library's reliability and feature set.
📚 Documentation
Check out the updated README for comprehensive examples and usage patterns.
Full Changelog: v0.2.0...v0.3.0