v0.4.0 CSV mode - API key is optional from now on
Added
- Enhanced provider information retrieval:
- New
get_provider_info()
method in both API and CSV modes - Combines live provider data with downloaded dataset information
- Automatic fallback to CSV catalog on API errors
- Comprehensive metadata about downloaded datasets
- New
- CSV catalog fallback functionality (#5):
- Automatic fallback to CSV catalog when API key is not available
- Optional
force_csv_mode
to always use CSV catalog - Lazy initialization of CSV catalog to improve performance
- ID normalization for consistent provider lookup
- Improved error handling:
- Graceful handling of 413 (Request Entity Too Large) errors
- Automatic fallback to CSV mode on authentication errors
- Better token handling with empty headers when no token is available
- Robust handling of CSV network errors with fallback to cached data
- Proper handling of empty metadata files during concurrent access
Changed
- Made CSV catalog initialization lazy to reduce unnecessary directory creation
- Improved token handling to return
None
instead of raising errors - Enhanced error messages and logging for better debugging
- Improved file locking mechanism:
- Fixed handling of file modes for concurrent access
- Added proper file existence checks before opening
- Enhanced empty file handling during metadata operations
Developer Changes
- Added comprehensive tests for provider information retrieval
- Added tests for CSV catalog functionality
- Added tests for ID normalization and conversion
- Added tests for lazy initialization behavior
- Added tests for CSV network error scenarios
- Added tests for concurrent file access edge cases
- Updated documentation with CSV fallback examples and API reference
Full Changelog: v0.3.0...v0.4.0