mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-01-10 06:10:50 +08:00
- Run comfyui workflows directly inside other python applications using EmbeddedComfyClient. - Optional telemetry in prompts and models using anonymity preserving Plausible self-hosted or hosted. - Better OpenAPI schema - Basic support for distributed ComfyUI backends. Limitations: no progress reporting, no easy way to start your own distributed backend, requires RabbitMQ as a message broker.
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
import asyncio
|
|
from typing import List, Optional, Dict, Any, Union
|
|
|
|
from .event_tracker import EventTracker
|
|
|
|
|
|
class MultiEventTracker(EventTracker):
|
|
def __init__(self, trackers: List[EventTracker]) -> None:
|
|
super().__init__()
|
|
self.trackers = trackers
|
|
|
|
async def track_event(self, name: str, url: str, referrer: Optional[str] = None,
|
|
props: Optional[Dict[str, Any]] = None) -> None:
|
|
tasks = [tracker.track_event(name, url, referrer, props) for tracker in self.trackers]
|
|
await asyncio.gather(*tasks)
|
|
|
|
async def close(self) -> None:
|
|
tasks = [tracker.close() for tracker in self.trackers]
|
|
await asyncio.gather(*tasks)
|
|
|
|
@property
|
|
def user_agent(self) -> str:
|
|
return next(tracker.user_agent for tracker in self.trackers) if len(self.trackers) > 0 else "(unknown)"
|
|
|
|
@user_agent.setter
|
|
def user_agent(self, value: str) -> None:
|
|
for tracker in self.trackers:
|
|
tracker.user_agent = value
|
|
|
|
@property
|
|
def domain(self) -> str:
|
|
return next(tracker.domain for tracker in self.trackers) if len(self.trackers) > 0 else ("unknown")
|
|
|
|
@domain.setter
|
|
def domain(self, value: str) -> None:
|
|
for tracker in self.trackers:
|
|
tracker.domain = value
|