pyqt_reactive.services.parameter_ops_service

Consolidated Parameter Operations Service.

Merges: - ParameterResetService: Type-safe parameter reset with discriminated union dispatch - PlaceholderRefreshService: Placeholder resolution and live context management

Key features: 1. Type-safe dispatch using ParameterInfo discriminated unions 2. Auto-discovery of handlers via ParameterServiceABC 3. Placeholder resolution with live context from other windows 4. Consistent widget update + signal emission

Classes

ParameterOpsService()

Consolidated service for parameter reset and placeholder refresh.

class pyqt_reactive.services.parameter_ops_service.ParameterOpsService[source]

Consolidated service for parameter reset and placeholder refresh.

Examples

service = ParameterOpsService()

# Reset parameter: service.reset_parameter(manager, param_name)

# Refresh placeholders with live context: service.refresh_with_live_context(manager)

# Refresh all placeholders in a form: service.refresh_all_placeholders(manager)

__init__()[source]

Initialize with widget operations dependency.

reset_parameter(manager, param_name: str) None[source]

Reset parameter using type-safe dispatch.

refresh_single_placeholder(manager, field_name: str) None[source]

Refresh placeholder for a single field in a manager.

Only updates if: 1. The field exists as a widget in the manager 2. The current value is None (needs placeholder)

Uses ObjectState.get_resolved_value() for resolution, then formats for display.

Parameters:
  • manager – The manager containing the field

  • field_name – Name of the field to refresh

refresh_with_live_context(manager, defer: bool = False) None[source]

Refresh placeholders using live values from tree registry.

Parameters:
  • manager – ParameterFormManager instance to refresh

  • defer – If True, defer refresh with QTimer to ensure async widget creation completes. Used during async widget creation to avoid race conditions.

refresh_all_placeholders(manager) None[source]

Refresh placeholder text for all widgets in a form.

Uses ObjectState.get_resolved_value() for resolution, then formats for display.