Skip to content

Releases: jaypaulb/CanvusPythonAPI

v1.0.0 - Complete Canvus Python API with Advanced Filtering

20 Jul 19:13

Choose a tag to compare

🎉 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 filter
  • create_spatial_filter() - Spatial area filtering
  • create_widget_type_filter() - Filter by widget types
  • create_text_filter() - Text search across multiple fields
  • create_wildcard_filter() - Pattern-based filtering
  • combine_filters() - Combine multiple filters

🔧 Enhanced Client Methods

  • list_canvases(filter_obj=...) - Filter canvases by any criteria
  • list_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-api

This release makes the Canvus Python API a complete, enterprise-ready SDK for building applications with the Canvus platform.