Changelog
=========
All notable changes to the Python CIMIS Client project will be documented here.
The format is based on `Keep a Changelog `_,
and this project adheres to `Semantic Versioning `_.
[Unreleased]
------------
[1.3.2] - 2025-07-20
---------------------
Added
~~~~~
- Complete ReadTheDocs documentation with Sphinx
- Comprehensive API reference documentation
- User guide with practical examples
- Installation guide with troubleshooting
- Examples section with real-world use cases
- Fixed get_daily_data() to return only daily records
- Enhanced README with comprehensive PyPI documentation
Changed
~~~~~~~
- Updated package metadata with correct author name
- Added M. A. Andrade as co-author
- Added Precision Irrigation Management Lab (PRIMA) as maintainer
- Updated documentation URLs to working GitHub links
- Improved CSV export with better column naming
- Enhanced error handling and validation
Fixed
~~~~~
- get_daily_data() now properly filters out hourly data
- Package metadata now shows correct author information
- Documentation URLs now point to working resources
[1.3.1] - 2025-07-18
---------------------
Added
~~~~~
- Enhanced CSV export functionality
- Automatic filename generation for exports
- Better error handling and validation
- Comprehensive test suite
Changed
~~~~~~~
- Improved API response handling
- Better data model structure
- Enhanced documentation
[1.3.0] - 2025-07-15
---------------------
Added
~~~~~
- Support for multiple target types (stations, zip codes, coordinates, addresses)
- Comprehensive data models for weather data and stations
- Custom exception classes for better error handling
- CSV export functionality with intelligent file naming
- Station discovery and information retrieval
- Quality control flag handling
Changed
~~~~~~~
- Restructured package organization
- Improved API client with better error handling
- Enhanced data validation and processing
[1.2.0] - 2025-07-10
---------------------
Added
~~~~~
- Hourly data support for WSN stations
- Spatial CIMIS System (SCS) data support
- Enhanced data filtering capabilities
- Comprehensive type hints
Changed
~~~~~~~
- Improved API response parsing
- Better handling of missing data
- Enhanced documentation
[1.1.0] - 2025-07-05
---------------------
Added
~~~~~
- Daily weather data retrieval
- Basic CSV export functionality
- Station information access
- Simple error handling
Changed
~~~~~~~
- Improved API client structure
- Better data model organization
[1.0.0] - 2025-07-01
---------------------
Added
~~~~~
- Initial release
- Basic CIMIS API client
- Core functionality for weather data retrieval
- MIT License
- Basic documentation
Features
--------
Current Features (v1.3.2)
~~~~~~~~~~~~~~~~~~~~~~~~~~
🌤️ **Weather Data Access**
- Daily and hourly weather measurements
- Multiple data sources (WSN and SCS)
- Quality control information
- Comprehensive data validation
🏛️ **Station Information**
- Complete station metadata
- Geographic coverage information
- Active/inactive status tracking
- ETo calculation capabilities
📊 **Data Export**
- CSV export with intelligent naming
- Configurable data filtering
- Quality control flag inclusion
- Batch processing support
🔧 **Developer Experience**
- Complete type hints
- Comprehensive error handling
- Extensive documentation
- Real-world examples
🌾 **Agricultural Applications**
- Irrigation scheduling calculations
- Growing degree day computations
- Frost monitoring and alerts
- Crop coefficient integration
Breaking Changes
----------------
Version 1.3.2
~~~~~~~~~~~~~~
- ``get_daily_data()`` now returns only daily records (previously could include hourly data)
- This ensures clean separation between daily and hourly data retrieval methods
Version 1.3.0
~~~~~~~~~~~~~~
- Restructured package organization - imports may need updating
- Enhanced data models with new attributes
- Improved error handling with custom exception classes
Migration Guide
---------------
From 1.3.1 to 1.3.2
~~~~~~~~~~~~~~~~~~~~
**Daily Data Filtering**
The ``get_daily_data()`` method now automatically filters out any hourly records:
.. code-block:: python
# Before (1.3.1) - could return mixed data
weather_data = client.get_daily_data(targets=[2], start_date="2023-06-01", end_date="2023-06-07")
records = weather_data.get_all_records() # Might include hourly records
# After (1.3.2) - only daily records
weather_data = client.get_daily_data(targets=[2], start_date="2023-06-01", end_date="2023-06-07")
records = weather_data.get_all_records() # Only daily records
**No Action Required**
This change is backward compatible and improves data consistency. No code changes are needed.
From 1.2.x to 1.3.0
~~~~~~~~~~~~~~~~~~~~
**Package Import Changes**
.. code-block:: python
# Before (1.2.x)
from python_cimis.client import CimisClient
# After (1.3.0)
from python_cimis import CimisClient
**Exception Handling**
.. code-block:: python
# Before (1.2.x)
try:
weather_data = client.get_daily_data(...)
except Exception as e:
print(f"Error: {e}")
# After (1.3.0)
from python_cimis.exceptions import CimisAPIError, CimisConnectionError
try:
weather_data = client.get_daily_data(...)
except CimisConnectionError as e:
print(f"Connection error: {e.message}")
except CimisAPIError as e:
print(f"API error: {e.message}")
Roadmap
-------
Planned Features
~~~~~~~~~~~~~~~~
**Version 1.4.0** (Q3 2025)
- Enhanced caching system
- Improved batch processing
- Advanced data analytics functions
- Integration with popular data science libraries
**Version 1.5.0** (Q4 2025)
- Real-time data streaming
- Advanced visualization tools
- Machine learning integration
- Enhanced agricultural decision support
**Version 2.0.0** (Q1 2026)
- Async/await support
- Multi-threaded processing
- Advanced caching strategies
- Enhanced performance optimizations
Contributing
------------
We welcome contributions! See our `Contributing Guide `_ for details.
**Areas where we need help:**
- Documentation improvements
- Example applications
- Bug reports and fixes
- Performance optimizations
- Integration with other libraries
Support
-------
- **Documentation**: Complete guides and API reference
- **Examples**: Real-world usage patterns in the examples directory
- **Issues**: Report bugs and request features on GitHub
- **Discussions**: Community support and questions
License
-------
This project is licensed under the MIT License - see the `LICENSE `_ file for details.