/
githubmirror
/
XX-Net
Обзор
Документация
Войти
/
githubmirror
/
XX-Net
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
code/default/lib/noarch/hyper/packages/hyperframe/flags.py
46 строк
1 KB
XX-Net.dev
Fix python 3.10 lib compatible issue under New Mac.
14 ноя 2021, 10:27
14 ноя 2021, 10:27
c18b1e9
Код
Авторство
О чём код?
# -*- coding: utf-8 -*- """ hyperframe/flags ~~~~~~~~~~~~~~~~ Defines basic Flag and Flags data structures. """ from collections import namedtuple try: from collections import MutableSet except: from collections.abc import MutableSet Flag = namedtuple("Flag", ["name", "bit"]) class Flags(MutableSet): """ A simple MutableSet implementation that will only accept known flags as elements. Will behave like a regular set(), except that a ValueError will be thrown when .add()ing unexpected flags. """ def __init__(self, defined_flags): self._valid_flags = set(flag.name for flag in defined_flags) self._flags = set() def __contains__(self, x): return self._flags.__contains__(x) def __iter__(self): return self._flags.__iter__() def __len__(self): return self._flags.__len__() def discard(self, value): return self._flags.discard(value) def add(self, value): if isinstance(value, str): value = value.encode("utf-8") if value not in self._valid_flags: raise ValueError("Unexpected flag: {}".format(value)) return self._flags.add(value)