Releases: jaypaulb/CanvusPythonAPI
Releases · jaypaulb/CanvusPythonAPI
v1.0.0 - Complete Canvus Python API with Advanced Filtering
🎉 Major Release: Canvus Python API v1.0.0
✨ New Features
🔍 Advanced Filtering System
- Complete Filter Class: Advanced filtering with multiple operators and conditions
- Spatial Filtering: Filter widgets by location and area using geometry utilities
- Text Search: Search across titles, text, and descriptions with multiple field support
- Wildcard Patterns: Use * and ? for pattern matching in any field
- Filter Combinations: Combine multiple filters with AND logic
- Real-time Performance: Client-side filtering for immediate results
🛠️ Helper Functions
create_filter()- Create empty filtercreate_spatial_filter()- Spatial area filteringcreate_widget_type_filter()- Filter by widget typescreate_text_filter()- Text search across multiple fieldscreate_wildcard_filter()- Pattern-based filteringcombine_filters()- Combine multiple filters
🔧 Enhanced Client Methods
list_canvases(filter_obj=...)- Filter canvases by any criterialist_widgets(filter_obj=...)- Filter widgets by type, location, text, etc.
🧪 Testing & Quality
- Comprehensive Integration Tests: All tests pass with real server data
- Performance Optimized: Efficient client-side filtering
- Type Safety: Full type hints and validation
- Production Ready: All linter issues resolved
📦 Package Structure
- Complete filtering system integrated into main package
- All functions exported via
__init__.py - Version updated to 1.0.0 for production release
🚀 Ready for Production
This release represents a complete, production-ready Python SDK for the Canvus API with advanced filtering capabilities that make it easy to query and manage canvases and widgets efficiently.
📚 Usage Example
from canvus_api import CanvusClient, create_spatial_filter, create_text_filter
# Filter canvases by name
name_filter = create_filter().add_condition('name', 'contains', 'API')
api_canvases = await client.list_canvases(filter_obj=name_filter)
# Filter widgets by spatial area
spatial_filter = create_spatial_filter(Rectangle(0, 0, 1000, 1000), 'intersects')
area_widgets = await client.list_widgets(canvas_id, filter_obj=spatial_filter)
# Text search across multiple fields
text_filter = create_text_filter('search term', ['title', 'text', 'description'])
matching_widgets = await client.list_widgets(canvas_id, filter_obj=text_filter)🎯 Breaking Changes
None - This is a feature-complete release that maintains full backward compatibility.
🔗 Installation
pip install canvus-apiThis release makes the Canvus Python API a complete, enterprise-ready SDK for building applications with the Canvus platform.