zooui.objects.mediaobjects.mediaobjectsutils.string.parallellayout module¶
ParallelLayoutCalculator class for parallel text layout calculation.
This class manages parallel calculation of text layouts using thread pools, ensuring thread safety and efficient resource usage.
- class zooui.objects.mediaobjects.mediaobjectsutils.string.parallellayout.CalculationStatus(*values)[source]¶
Bases:
EnumStatus of layout calculation.
- PENDING = 0¶
- IN_PROGRESS = 1¶
- COMPLETED = 2¶
- FAILED = 3¶
- CANCELLED = 4¶
- class zooui.objects.mediaobjects.mediaobjectsutils.string.parallellayout.CalculationResult(status, layout_data=None, error=None, processing_time_ms=0.0, timestamp=<factory>)[source]¶
Bases:
objectResult of a layout calculation.
- status¶
- layout_data = None¶
- error = None¶
- processing_time_ms = 0.0¶
- timestamp¶
- class zooui.objects.mediaobjects.mediaobjectsutils.string.parallellayout.ParallelLayoutCalculator(max_workers=None, batch_timeout_ms=5000.0, enable_profiling=False)[source]¶
Bases:
objectManages parallel calculation of text layouts using thread pools.
This class provides thread-safe parallel calculation of text layouts for batches of objects, with progress tracking and error handling.
- max_workers¶
Maximum number of worker threads
- batch_timeout_ms¶
Timeout for batch calculations in milliseconds
- enable_profiling¶
Whether to enable performance profiling
- thread_pool¶
Thread pool executor for parallel calculations
- calculation_queue¶
Queue for pending calculations
- results_cache¶
Cache for calculation results
- lock¶
Thread lock for thread-safe operations
- shutdown_event¶
Event to signal shutdown
Initialize the ParallelLayoutCalculator.
- Parameters:
max_workers – Maximum number of worker threads (default: CPU count)
batch_timeout_ms – Timeout for batch calculations (default: 5000ms)
enable_profiling – Enable performance profiling (default: False)
- _process_calculation(index, prioritized_obj, viewport_rect, callback=None)[source]¶
Process a single layout calculation.
- Parameters:
index – Object index
prioritized_obj – Prioritized object to calculate layout for
viewport_rect – Current viewport rectangle
callback – Optional callback function for completion
- submit_batch(batch, viewport_rect, callback=None)[source]¶
Submit a batch of objects for parallel layout calculation.
- Parameters:
batch – List of prioritized objects
viewport_rect – Current viewport rectangle
callback – Optional callback for individual completions
- Returns:
Dictionary mapping object indices to calculation results
- wait_for_batch(batch_indices, timeout_ms=None)[source]¶
Wait for a batch of calculations to complete.
- Parameters:
batch_indices – List of object indices to wait for
timeout_ms – Timeout in milliseconds (default: batch_timeout_ms)
- Returns:
Dictionary mapping object indices to calculation results
- get_result(index)[source]¶
Get calculation result for a specific object.
- Parameters:
index – Object index
- Returns:
CalculationResult if available, None otherwise
- invalidate_cache(index=None)[source]¶
Invalidate cache for specific object or all objects.
- Parameters:
index – Object index to invalidate, or None for all objects
- get_statistics()[source]¶
Get statistics about calculator performance.
- Returns:
Dictionary with statistics
See Also¶
zooui/objects/mediaobjects/mediaobject - Base media object class
zooui/objects/mediaobjects/mediaobjectsutils/string/textlayout - Text layout utilities