📄 ratemeasure.py
字号:
# Written by Bram Cohen# see LICENSE.txt for license informationfrom time import timetrue = 1false = 0class RateMeasure: def __init__(self, left): self.start = None self.last = None self.rate = 0 self.remaining = None self.left = left self.broke = false self.got_anything = false def data_came_in(self, amount): if not self.got_anything: self.got_anything = true self.start = time() - 2 self.last = self.start self.left -= amount return self.update(time(), amount) def data_rejected(self, amount): self.left += amount def get_time_left(self): if not self.got_anything: return None t = time() if t - self.last > 15: self.update(t, 0) return self.remaining def get_size_left(self): return self.left def update(self, t, amount): self.left -= amount try: self.rate = ((self.rate * (self.last - self.start)) + amount) / (t - self.start) self.last = t self.remaining = self.left / self.rate if self.start < self.last - self.remaining: self.start = self.last - self.remaining except ZeroDivisionError: self.remaining = None if self.broke and self.last - self.start < 20: self.start = self.last - 20 if self.last - self.start > 20: self.broke = true
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -