import asyncio from typing import Optional from dash_emulator import logger, events, config log = logger.getLogger(__name__) class SpeedMonitor(object): _instance = None def __new__(cls, *args, **kwargs): if not isinstance(cls._instance, cls): cls._instance = object.__new__(cls, *args, **kwargs) cls._instance.inited = False return cls._instance def __init__(self): if not self.inited: self.inited = True self.cfg = None self.avg_bandwidth = 0 self.last_speed = -1 self.downloaded = 0 self.downloaded_before = 0 self._calculate_speed_task = None # type: Optional[asyncio.Task] async def calculate_speed(self): while True:
import operator import os.path import re import xml.etree.ElementTree as ET from typing import List, Optional from urllib.parse import urlparse from dash_emulator.logger import getLogger log = getLogger(__name__) class Representation(object): def __init__(self, tree, adapatationSet): self._id = None self._bandwidth = None self._width = None self._height = None self._mime = None self._codec = None self._adapatationSet = adapatationSet # type: AdaptationSet self.initialization = None self.media = None self.startNumber = None self.durations = None # type: Optional[List[float]] self.urls = None # type: Optional[List[str]] self.baseurl = None