Skip to content

Release 0.3.0

Choose a tag to compare

@felixnext felixnext released this 15 Jul 11:53
· 1 commit to main since this release
d242897

✨ 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% coverage
    • natural.py: 100% coverage
    • wrapper.py: 99% coverage
    • convert.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 | Y syntax)
  • 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