# Post-Processing Module - Refactored Architecture
## Overview
This module provides a comprehensive, refactored post-processing system for the Matrice Python SDK. The system has been completely redesigned to be more pythonic, maintainable, and extensible while providing powerful analytics capabilities for various use cases.
## ๐ Key Features
### โ
**Unified Architecture**
- **Single Entry Point**: `PostProcessor` class handles all processing needs
- **Standardized Results**: All operations return `ProcessingResult` objects
- **Consistent Configuration**: Type-safe configuration system with validation
- **Registry Pattern**: Easy registration and discovery of use cases
### โ
**Separate Use Case Classes**
- **People Counting**: Advanced people counting with zone analysis and tracking
- **Customer Service**: Comprehensive customer service analytics with business intelligence
- **Extensible Design**: Easy to add new use cases
### โ
**Pythonic Configuration Management**
- **Dataclass-based**: Type-safe configurations using dataclasses
- **Nested Configurations**: Support for complex nested config structures
- **File Support**: JSON/YAML configuration file loading and saving
- **Validation**: Built-in validation with detailed error messages
### โ
**Comprehensive Error Handling**
- **Standardized Errors**: All errors return structured `ProcessingResult` objects
- **Detailed Information**: Error messages include type, context, and debugging info
- **Graceful Degradation**: System continues operating even with partial failures
### โ
**Processing Statistics**
- **Performance Tracking**: Automatic processing time measurement
- **Success Metrics**: Success/failure rates and statistics
- **Insights Generation**: Automatic generation of actionable insights
## ๐ Architecture
```
post_processing/
โโโ __init__.py # Main exports and convenience functions
โโโ processor.py # Main PostProcessor class
โโโ README.md # This documentation
โ
โโโ core/ # Core system components
โ โโโ __init__.py
โ โโโ base.py # Base classes, enums, and protocols
โ โโโ config.py # Configuration system
โ โโโ advanced_usecases.py # Advanced use case implementations
โ
โโโ usecases/ # Separate use case implementations
โ โโโ __init__.py
โ โโโ people_counting.py # People counting use case
โ โโโ customer_service.py # Customer service use case
โ
โโโ utils/ # Utility functions organized by category
โโโ __init__.py
โโโ geometry_utils.py # Geometric calculations
โโโ format_utils.py # Format detection and conversion
โโโ filter_utils.py # Filtering and cleaning operations
โโโ counting_utils.py # Counting and aggregation
โโโ tracking_utils.py # Tracking and movement analysis
```
## ๐ Quick Start
### Basic Usage
```python
from matrice.deploy.utils.post_processing import PostProcessor, process_simple
# Method 1: Simple processing (recommended for quick tasks)
result = process_simple(
raw_results,
usecase="people_counting",
confidence_threshold=0.5
)
# Method 2: Using PostProcessor class (recommended for complex workflows)
processor = PostProcessor()
result = processor.process_simple(
raw_results,
usecase="people_counting",
confidence_threshold=0.5,
enable_tracking=True
)
print(f"Status: {result.status.value}")
print(f"Summary: {result.summary}")
print(f"Insights: {len(result.insights)} generated")
```
### Advanced Configuration
```python
# Create complex configuration
config = processor.create_config(
'people_counting',
confidence_threshold=0.6,
enable_tracking=True,
person_categories=['person', 'people', 'human'],
zone_config={
'zones': {
'entrance': [[0, 0], [100, 0], [100, 100], [0, 100]],
'checkout': [[200, 200], [300, 200], [300, 300], [200, 300]]
}
},
alert_config={
'count_thresholds': {'all': 10},
'occupancy_thresholds': {'entrance': 5}
}
)
# Process with configuration
result = processor.process(raw_results, config)
```
### Configuration File Support
```python
# Save configuration to file
processor.save_config(config, "people_counting_config.json")
# Load and use configuration from file
result = processor.process_from_file(raw_results, "people_counting_config.json")
```
## ๐ Use Cases
### 1. People Counting (`people_counting`)
Advanced people counting with comprehensive analytics:
```python
result = process_simple(
raw_results,
usecase="people_counting",
confidence_threshold=0.5,
enable_tracking=True,
person_categories=['person', 'people'],
zone_config={
'zones': {
'entrance': [[0, 0], [100, 0], [100, 100], [0, 100]]
}
}
)
```
**Features:**
- Multi-category person detection
- Zone-based counting and analysis
- Unique person tracking
- Occupancy analysis
- Alert generation based on thresholds
- Temporal analysis and trends
### 2. Customer Service (`customer_service`)
Comprehensive customer service analytics:
```python
result = process_simple(
raw_results,
usecase="customer_service",
confidence_threshold=0.6,
service_proximity_threshold=50.0,
staff_categories=['staff', 'employee'],
customer_categories=['customer', 'person']
)
```
**Features:**
- Staff utilization analysis
- Customer-staff interaction detection
- Service quality metrics
- Area occupancy analysis
- Queue management insights
- Business intelligence metrics
## ๐ง Configuration System
### Configuration Classes
All configurations are type-safe dataclasses with built-in validation:
```python
from matrice.deploy.utils.post_processing import PeopleCountingConfig, ZoneConfig
# Create configuration programmatically
config = PeopleCountingConfig(
confidence_threshold=0.5,
enable_tracking=True,
zone_config=ZoneConfig(
zones={
'entrance': [[0, 0], [100, 0], [100, 100], [0, 100]]
}
)
)
# Validate configuration
errors = config.validate()
if errors:
print(f"Configuration errors: {errors}")
```
### Configuration Templates
```python
# Get configuration template for a use case
template = processor.get_config_template('people_counting')
print(f"Available options: {list(template.keys())}")
# List all available use cases
use_cases = processor.list_available_usecases()
print(f"Available use cases: {use_cases}")
```
## ๐ Processing Results
All processing operations return a standardized `ProcessingResult` object:
```python
class ProcessingResult:
data: Any # Processed data
status: ProcessingStatus # SUCCESS, ERROR, WARNING, PARTIAL
usecase: str # Use case name
category: str # Use case category
processing_time: float # Processing time in seconds
summary: str # Human-readable summary
insights: List[str] # Generated insights
warnings: List[str] # Warning messages
error_message: Optional[str] # Error message if failed
predictions: List[Dict[str, Any]] # Detailed predictions
metrics: Dict[str, Any] # Performance metrics
```
### Working with Results
```python
result = processor.process_simple(data, "people_counting")
# Check status
if result.is_success():
print(f"โ
{result.summary}")
# Access insights
for insight in result.insights:
print(f"๐ก {insight}")
# Access metrics
print(f"๐ Metrics: {result.metrics}")
# Access processed data
processed_data = result.data
else:
print(f"โ Processing failed: {result.error_message}")
```
## ๐ Statistics and Monitoring
```python
# Get processing statistics
stats = processor.get_statistics()
print(f"Total processed: {stats['total_processed']}")
print(f"Success rate: {stats['success_rate']:.2%}")
print(f"Average processing time: {stats['average_processing_time']:.3f}s")
# Reset statistics
processor.reset_statistics()
```
## ๐ Extensibility
### Adding New Use Cases
1. **Create Use Case Class**:
```python
from matrice.deploy.utils.post_processing.core.base import BaseProcessor
class MyCustomUseCase(BaseProcessor):
def __init__(self):
super().__init__("my_custom_usecase")
self.category = "custom"
def process(self, data, config, context=None):
# Implement your processing logic
return self.create_result(processed_data, "my_custom_usecase", "custom")
```
2. **Register Use Case**:
```python
from matrice.deploy.utils.post_processing.core.base import registry
registry.register_use_case("custom", "my_custom_usecase", MyCustomUseCase)
```
### Adding New Utility Functions
Add utility functions to the appropriate module in the `utils/` directory and export them in `utils/__init__.py`.
## ๐งช Testing
The system includes comprehensive error handling and validation. Here's how to test your implementations:
```python
# Test configuration validation
errors = processor.validate_config({
'usecase': 'people_counting',
'confidence_threshold': 0.5
})
# Test with sample data
sample_data = [
{'category': 'person', 'confidence': 0.8, 'bbox': [10, 10, 50, 50]}
]
result = process_simple(sample_data, 'people_counting')
assert result.is_success()
```
## ๐ Migration from Old System
If you're migrating from the old post-processing system:
1. **Update Imports**:
```python
# Old
from matrice.deploy.utils.old_post_processing import some_function
# New
from matrice.deploy.utils.post_processing import PostProcessor, process_simple
```
2. **Update Processing Calls**:
```python
# Old
result = old_process_function(data, config_dict)
# New
result = process_simple(data, "usecase_name", **config_dict)
```
3. **Update Configuration**:
```python
# Old
config = {"threshold": 0.5, "enable_tracking": True}
# New
config = processor.create_config("people_counting",
confidence_threshold=0.5,
enable_tracking=True)
```
## ๐ Troubleshooting
### Common Issues
1. **Use Case Not Found**:
```python
# Check available use cases
print(processor.list_available_usecases())
```
2. **Configuration Validation Errors**:
```python
# Validate configuration
errors = processor.validate_config(config)
if errors:
print(f"Validation errors: {errors}")
```
3. **Processing Failures**:
```python
# Check result status and error details
if not result.is_success():
print(f"Error: {result.error_message}")
print(f"Error type: {result.error_type}")
print(f"Error details: {result.error_details}")
```
## ๐ API Reference
### Main Classes
- **`PostProcessor`**: Main processing class
- **`ProcessingResult`**: Standardized result container
- **`BaseConfig`**: Base configuration class
- **`PeopleCountingConfig`**: People counting configuration
- **`CustomerServiceConfig`**: Customer service configuration
### Convenience Functions
- **`process_simple()`**: Simple processing function
- **`create_config_template()`**: Get configuration template
- **`list_available_usecases()`**: List available use cases
- **`validate_config()`**: Validate configuration
### Utility Functions
The system provides comprehensive utility functions organized by category:
- **Geometry**: Point-in-polygon, distance calculations, IoU
- **Format**: Format detection and conversion
- **Filter**: Confidence filtering, deduplication
- **Counting**: Object counting, zone analysis
- **Tracking**: Movement analysis, line crossing detection
## ๐ฏ Best Practices
1. **Use Simple Processing for Quick Tasks**:
```python
result = process_simple(data, "people_counting", confidence_threshold=0.5)
```
2. **Use PostProcessor Class for Complex Workflows**:
```python
processor = PostProcessor()
config = processor.create_config("people_counting", **params)
result = processor.process(data, config)
```
3. **Always Check Result Status**:
```python
if result.is_success():
# Process successful result
else:
# Handle error
```
4. **Use Configuration Files for Complex Setups**:
```python
processor.save_config(config, "config.json")
result = processor.process_from_file(data, "config.json")
```
5. **Monitor Processing Statistics**:
```python
stats = processor.get_statistics()
# Monitor success rates and performance
```
## ๐ฎ Future Enhancements
The refactored system is designed for easy extension. Planned enhancements include:
- Additional use cases (security monitoring, retail analytics)
- Advanced tracking algorithms
- Real-time processing capabilities
- Integration with external analytics platforms
- Machine learning-based insights generation
---
**The refactored post-processing system provides a solid foundation for scalable, maintainable, and powerful analytics capabilities. The clean architecture makes it easy to extend and customize for specific use cases while maintaining consistency and reliability.**
Raw data
{
"_id": null,
"home_page": null,
"name": "matrice-analytics",
"maintainer": null,
"docs_url": null,
"requires_python": "<4,>=3.7",
"maintainer_email": null,
"keywords": "matrice, analytics, utilities, cython, postprocessing, usecases",
"author": null,
"author_email": "\"Matrice.ai\" <dipendra@matrice.ai>",
"download_url": "https://files.pythonhosted.org/packages/e7/fd/731e662a17d8e3aa65a86df1da88cded3d2311b109bc98ff66ccbf5973fe/matrice_analytics-0.1.0.tar.gz",
"platform": null,
"description": "# Post-Processing Module - Refactored Architecture\n\n## Overview\n\nThis module provides a comprehensive, refactored post-processing system for the Matrice Python SDK. The system has been completely redesigned to be more pythonic, maintainable, and extensible while providing powerful analytics capabilities for various use cases.\n\n## \ud83d\ude80 Key Features\n\n### \u2705 **Unified Architecture**\n- **Single Entry Point**: `PostProcessor` class handles all processing needs\n- **Standardized Results**: All operations return `ProcessingResult` objects\n- **Consistent Configuration**: Type-safe configuration system with validation\n- **Registry Pattern**: Easy registration and discovery of use cases\n\n### \u2705 **Separate Use Case Classes**\n- **People Counting**: Advanced people counting with zone analysis and tracking\n- **Customer Service**: Comprehensive customer service analytics with business intelligence\n- **Extensible Design**: Easy to add new use cases\n\n### \u2705 **Pythonic Configuration Management**\n- **Dataclass-based**: Type-safe configurations using dataclasses\n- **Nested Configurations**: Support for complex nested config structures\n- **File Support**: JSON/YAML configuration file loading and saving\n- **Validation**: Built-in validation with detailed error messages\n\n### \u2705 **Comprehensive Error Handling**\n- **Standardized Errors**: All errors return structured `ProcessingResult` objects\n- **Detailed Information**: Error messages include type, context, and debugging info\n- **Graceful Degradation**: System continues operating even with partial failures\n\n### \u2705 **Processing Statistics**\n- **Performance Tracking**: Automatic processing time measurement\n- **Success Metrics**: Success/failure rates and statistics\n- **Insights Generation**: Automatic generation of actionable insights\n\n## \ud83d\udcc1 Architecture\n\n```\npost_processing/\n\u251c\u2500\u2500 __init__.py # Main exports and convenience functions\n\u251c\u2500\u2500 processor.py # Main PostProcessor class\n\u251c\u2500\u2500 README.md # This documentation\n\u2502\n\u251c\u2500\u2500 core/ # Core system components\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 base.py # Base classes, enums, and protocols\n\u2502 \u251c\u2500\u2500 config.py # Configuration system\n\u2502 \u2514\u2500\u2500 advanced_usecases.py # Advanced use case implementations\n\u2502\n\u251c\u2500\u2500 usecases/ # Separate use case implementations\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 people_counting.py # People counting use case\n\u2502 \u2514\u2500\u2500 customer_service.py # Customer service use case\n\u2502\n\u2514\u2500\u2500 utils/ # Utility functions organized by category\n \u251c\u2500\u2500 __init__.py\n \u251c\u2500\u2500 geometry_utils.py # Geometric calculations\n \u251c\u2500\u2500 format_utils.py # Format detection and conversion\n \u251c\u2500\u2500 filter_utils.py # Filtering and cleaning operations\n \u251c\u2500\u2500 counting_utils.py # Counting and aggregation\n \u2514\u2500\u2500 tracking_utils.py # Tracking and movement analysis\n```\n\n## \ud83d\udee0 Quick Start\n\n### Basic Usage\n\n```python\nfrom matrice.deploy.utils.post_processing import PostProcessor, process_simple\n\n# Method 1: Simple processing (recommended for quick tasks)\nresult = process_simple(\n raw_results,\n usecase=\"people_counting\",\n confidence_threshold=0.5\n)\n\n# Method 2: Using PostProcessor class (recommended for complex workflows)\nprocessor = PostProcessor()\nresult = processor.process_simple(\n raw_results,\n usecase=\"people_counting\", \n confidence_threshold=0.5,\n enable_tracking=True\n)\n\nprint(f\"Status: {result.status.value}\")\nprint(f\"Summary: {result.summary}\")\nprint(f\"Insights: {len(result.insights)} generated\")\n```\n\n### Advanced Configuration\n\n```python\n# Create complex configuration\nconfig = processor.create_config(\n 'people_counting',\n confidence_threshold=0.6,\n enable_tracking=True,\n person_categories=['person', 'people', 'human'],\n zone_config={\n 'zones': {\n 'entrance': [[0, 0], [100, 0], [100, 100], [0, 100]],\n 'checkout': [[200, 200], [300, 200], [300, 300], [200, 300]]\n }\n },\n alert_config={\n 'count_thresholds': {'all': 10},\n 'occupancy_thresholds': {'entrance': 5}\n }\n)\n\n# Process with configuration\nresult = processor.process(raw_results, config)\n```\n\n### Configuration File Support\n\n```python\n# Save configuration to file\nprocessor.save_config(config, \"people_counting_config.json\")\n\n# Load and use configuration from file\nresult = processor.process_from_file(raw_results, \"people_counting_config.json\")\n```\n\n## \ud83d\udcca Use Cases\n\n### 1. People Counting (`people_counting`)\n\nAdvanced people counting with comprehensive analytics:\n\n```python\nresult = process_simple(\n raw_results,\n usecase=\"people_counting\",\n confidence_threshold=0.5,\n enable_tracking=True,\n person_categories=['person', 'people'],\n zone_config={\n 'zones': {\n 'entrance': [[0, 0], [100, 0], [100, 100], [0, 100]]\n }\n }\n)\n```\n\n**Features:**\n- Multi-category person detection\n- Zone-based counting and analysis\n- Unique person tracking\n- Occupancy analysis\n- Alert generation based on thresholds\n- Temporal analysis and trends\n\n### 2. Customer Service (`customer_service`)\n\nComprehensive customer service analytics:\n\n```python\nresult = process_simple(\n raw_results,\n usecase=\"customer_service\",\n confidence_threshold=0.6,\n service_proximity_threshold=50.0,\n staff_categories=['staff', 'employee'],\n customer_categories=['customer', 'person']\n)\n```\n\n**Features:**\n- Staff utilization analysis\n- Customer-staff interaction detection\n- Service quality metrics\n- Area occupancy analysis\n- Queue management insights\n- Business intelligence metrics\n\n## \ud83d\udd27 Configuration System\n\n### Configuration Classes\n\nAll configurations are type-safe dataclasses with built-in validation:\n\n```python\nfrom matrice.deploy.utils.post_processing import PeopleCountingConfig, ZoneConfig\n\n# Create configuration programmatically\nconfig = PeopleCountingConfig(\n confidence_threshold=0.5,\n enable_tracking=True,\n zone_config=ZoneConfig(\n zones={\n 'entrance': [[0, 0], [100, 0], [100, 100], [0, 100]]\n }\n )\n)\n\n# Validate configuration\nerrors = config.validate()\nif errors:\n print(f\"Configuration errors: {errors}\")\n```\n\n### Configuration Templates\n\n```python\n# Get configuration template for a use case\ntemplate = processor.get_config_template('people_counting')\nprint(f\"Available options: {list(template.keys())}\")\n\n# List all available use cases\nuse_cases = processor.list_available_usecases()\nprint(f\"Available use cases: {use_cases}\")\n```\n\n## \ud83d\udcc8 Processing Results\n\nAll processing operations return a standardized `ProcessingResult` object:\n\n```python\nclass ProcessingResult:\n data: Any # Processed data\n status: ProcessingStatus # SUCCESS, ERROR, WARNING, PARTIAL\n usecase: str # Use case name\n category: str # Use case category\n processing_time: float # Processing time in seconds\n summary: str # Human-readable summary\n insights: List[str] # Generated insights\n warnings: List[str] # Warning messages\n error_message: Optional[str] # Error message if failed\n predictions: List[Dict[str, Any]] # Detailed predictions\n metrics: Dict[str, Any] # Performance metrics\n```\n\n### Working with Results\n\n```python\nresult = processor.process_simple(data, \"people_counting\")\n\n# Check status\nif result.is_success():\n print(f\"\u2705 {result.summary}\")\n \n # Access insights\n for insight in result.insights:\n print(f\"\ud83d\udca1 {insight}\")\n \n # Access metrics\n print(f\"\ud83d\udcca Metrics: {result.metrics}\")\n \n # Access processed data\n processed_data = result.data\nelse:\n print(f\"\u274c Processing failed: {result.error_message}\")\n```\n\n## \ud83d\udcca Statistics and Monitoring\n\n```python\n# Get processing statistics\nstats = processor.get_statistics()\nprint(f\"Total processed: {stats['total_processed']}\")\nprint(f\"Success rate: {stats['success_rate']:.2%}\")\nprint(f\"Average processing time: {stats['average_processing_time']:.3f}s\")\n\n# Reset statistics\nprocessor.reset_statistics()\n```\n\n## \ud83d\udd0c Extensibility\n\n### Adding New Use Cases\n\n1. **Create Use Case Class**:\n\n```python\nfrom matrice.deploy.utils.post_processing.core.base import BaseProcessor\n\nclass MyCustomUseCase(BaseProcessor):\n def __init__(self):\n super().__init__(\"my_custom_usecase\")\n self.category = \"custom\"\n \n def process(self, data, config, context=None):\n # Implement your processing logic\n return self.create_result(processed_data, \"my_custom_usecase\", \"custom\")\n```\n\n2. **Register Use Case**:\n\n```python\nfrom matrice.deploy.utils.post_processing.core.base import registry\n\nregistry.register_use_case(\"custom\", \"my_custom_usecase\", MyCustomUseCase)\n```\n\n### Adding New Utility Functions\n\nAdd utility functions to the appropriate module in the `utils/` directory and export them in `utils/__init__.py`.\n\n## \ud83e\uddea Testing\n\nThe system includes comprehensive error handling and validation. Here's how to test your implementations:\n\n```python\n# Test configuration validation\nerrors = processor.validate_config({\n 'usecase': 'people_counting',\n 'confidence_threshold': 0.5\n})\n\n# Test with sample data\nsample_data = [\n {'category': 'person', 'confidence': 0.8, 'bbox': [10, 10, 50, 50]}\n]\n\nresult = process_simple(sample_data, 'people_counting')\nassert result.is_success()\n```\n\n## \ud83d\udd04 Migration from Old System\n\nIf you're migrating from the old post-processing system:\n\n1. **Update Imports**:\n ```python\n # Old\n from matrice.deploy.utils.old_post_processing import some_function\n \n # New\n from matrice.deploy.utils.post_processing import PostProcessor, process_simple\n ```\n\n2. **Update Processing Calls**:\n ```python\n # Old\n result = old_process_function(data, config_dict)\n \n # New\n result = process_simple(data, \"usecase_name\", **config_dict)\n ```\n\n3. **Update Configuration**:\n ```python\n # Old\n config = {\"threshold\": 0.5, \"enable_tracking\": True}\n \n # New\n config = processor.create_config(\"people_counting\", \n confidence_threshold=0.5, \n enable_tracking=True)\n ```\n\n## \ud83d\udc1b Troubleshooting\n\n### Common Issues\n\n1. **Use Case Not Found**:\n ```python\n # Check available use cases\n print(processor.list_available_usecases())\n ```\n\n2. **Configuration Validation Errors**:\n ```python\n # Validate configuration\n errors = processor.validate_config(config)\n if errors:\n print(f\"Validation errors: {errors}\")\n ```\n\n3. **Processing Failures**:\n ```python\n # Check result status and error details\n if not result.is_success():\n print(f\"Error: {result.error_message}\")\n print(f\"Error type: {result.error_type}\")\n print(f\"Error details: {result.error_details}\")\n ```\n\n## \ud83d\udcdd API Reference\n\n### Main Classes\n\n- **`PostProcessor`**: Main processing class\n- **`ProcessingResult`**: Standardized result container\n- **`BaseConfig`**: Base configuration class\n- **`PeopleCountingConfig`**: People counting configuration\n- **`CustomerServiceConfig`**: Customer service configuration\n\n### Convenience Functions\n\n- **`process_simple()`**: Simple processing function\n- **`create_config_template()`**: Get configuration template\n- **`list_available_usecases()`**: List available use cases\n- **`validate_config()`**: Validate configuration\n\n### Utility Functions\n\nThe system provides comprehensive utility functions organized by category:\n\n- **Geometry**: Point-in-polygon, distance calculations, IoU\n- **Format**: Format detection and conversion\n- **Filter**: Confidence filtering, deduplication\n- **Counting**: Object counting, zone analysis\n- **Tracking**: Movement analysis, line crossing detection\n\n## \ud83c\udfaf Best Practices\n\n1. **Use Simple Processing for Quick Tasks**:\n ```python\n result = process_simple(data, \"people_counting\", confidence_threshold=0.5)\n ```\n\n2. **Use PostProcessor Class for Complex Workflows**:\n ```python\n processor = PostProcessor()\n config = processor.create_config(\"people_counting\", **params)\n result = processor.process(data, config)\n ```\n\n3. **Always Check Result Status**:\n ```python\n if result.is_success():\n # Process successful result\n else:\n # Handle error\n ```\n\n4. **Use Configuration Files for Complex Setups**:\n ```python\n processor.save_config(config, \"config.json\")\n result = processor.process_from_file(data, \"config.json\")\n ```\n\n5. **Monitor Processing Statistics**:\n ```python\n stats = processor.get_statistics()\n # Monitor success rates and performance\n ```\n\n## \ud83d\udd2e Future Enhancements\n\nThe refactored system is designed for easy extension. Planned enhancements include:\n\n- Additional use cases (security monitoring, retail analytics)\n- Advanced tracking algorithms\n- Real-time processing capabilities\n- Integration with external analytics platforms\n- Machine learning-based insights generation\n\n---\n\n**The refactored post-processing system provides a solid foundation for scalable, maintainable, and powerful analytics capabilities. The clean architecture makes it easy to extend and customize for specific use cases while maintaining consistency and reliability.** \n",
"bugtrack_url": null,
"license": null,
"summary": "Common utilities for Matrice.ai services",
"version": "0.1.0",
"project_urls": null,
"split_keywords": [
"matrice",
" analytics",
" utilities",
" cython",
" postprocessing",
" usecases"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "db1bdca8a01485e793ae9aa7948d9115f1785271a8f50dca6d513db25cd27b1e",
"md5": "d5a201047e83183758011dba5d05436c",
"sha256": "075f81460eb3f9bd9ab06102b6fe98c14a544c7a66718078e8aa06e00c2f3dd6"
},
"downloads": -1,
"filename": "matrice_analytics-0.1.0-py3-none-manylinux_2_17_x86_64.whl",
"has_sig": false,
"md5_digest": "d5a201047e83183758011dba5d05436c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.7",
"size": 81200352,
"upload_time": "2025-08-19T12:10:50",
"upload_time_iso_8601": "2025-08-19T12:10:50.907641Z",
"url": "https://files.pythonhosted.org/packages/db/1b/dca8a01485e793ae9aa7948d9115f1785271a8f50dca6d513db25cd27b1e/matrice_analytics-0.1.0-py3-none-manylinux_2_17_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e7fd731e662a17d8e3aa65a86df1da88cded3d2311b109bc98ff66ccbf5973fe",
"md5": "c3b0013d6dcca85078dfca7607f7e627",
"sha256": "4dd827a5c239f0e9e08662f663d95562bc002ece76a1d2d466404b2938872b03"
},
"downloads": -1,
"filename": "matrice_analytics-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "c3b0013d6dcca85078dfca7607f7e627",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.7",
"size": 80609965,
"upload_time": "2025-08-19T12:10:56",
"upload_time_iso_8601": "2025-08-19T12:10:56.666577Z",
"url": "https://files.pythonhosted.org/packages/e7/fd/731e662a17d8e3aa65a86df1da88cded3d2311b109bc98ff66ccbf5973fe/matrice_analytics-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-19 12:10:56",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "matrice-analytics"
}