aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/multidict/_multidict_base.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/multidict/_multidict_base.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/multidict/_multidict_base.py')
-rw-r--r--.venv/lib/python3.12/site-packages/multidict/_multidict_base.py176
1 files changed, 176 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/multidict/_multidict_base.py b/.venv/lib/python3.12/site-packages/multidict/_multidict_base.py
new file mode 100644
index 00000000..df0d7009
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/multidict/_multidict_base.py
@@ -0,0 +1,176 @@
+import sys
+from collections.abc import (
+ Container,
+ ItemsView,
+ Iterable,
+ KeysView,
+ Mapping,
+ Set,
+ ValuesView,
+)
+from typing import Literal, Union
+
+if sys.version_info >= (3, 10):
+ from types import NotImplementedType
+else:
+ from typing import Any as NotImplementedType
+
+if sys.version_info >= (3, 11):
+ from typing import assert_never
+else:
+ from typing_extensions import assert_never
+
+
+def _abc_itemsview_register(view_cls: type[object]) -> None:
+ ItemsView.register(view_cls)
+
+
+def _abc_keysview_register(view_cls: type[object]) -> None:
+ KeysView.register(view_cls)
+
+
+def _abc_valuesview_register(view_cls: type[object]) -> None:
+ ValuesView.register(view_cls)
+
+
+def _viewbaseset_richcmp(
+ view: set[object], other: object, op: Literal[0, 1, 2, 3, 4, 5]
+) -> Union[bool, NotImplementedType]:
+ if op == 0: # <
+ if not isinstance(other, Set):
+ return NotImplemented # type: ignore[no-any-return]
+ return len(view) < len(other) and view <= other
+ elif op == 1: # <=
+ if not isinstance(other, Set):
+ return NotImplemented # type: ignore[no-any-return]
+ if len(view) > len(other):
+ return False
+ for elem in view:
+ if elem not in other:
+ return False
+ return True
+ elif op == 2: # ==
+ if not isinstance(other, Set):
+ return NotImplemented # type: ignore[no-any-return]
+ return len(view) == len(other) and view <= other
+ elif op == 3: # !=
+ return not view == other
+ elif op == 4: # >
+ if not isinstance(other, Set):
+ return NotImplemented # type: ignore[no-any-return]
+ return len(view) > len(other) and view >= other
+ elif op == 5: # >=
+ if not isinstance(other, Set):
+ return NotImplemented # type: ignore[no-any-return]
+ if len(view) < len(other):
+ return False
+ for elem in other:
+ if elem not in view:
+ return False
+ return True
+ else: # pragma: no cover
+ assert_never(op)
+
+
+def _viewbaseset_and(
+ view: set[object], other: object
+) -> Union[set[object], NotImplementedType]:
+ if not isinstance(other, Iterable):
+ return NotImplemented # type: ignore[no-any-return]
+ if isinstance(view, Set):
+ view = set(iter(view))
+ if isinstance(other, Set):
+ other = set(iter(other))
+ if not isinstance(other, Set):
+ other = set(iter(other))
+ return view & other
+
+
+def _viewbaseset_or(
+ view: set[object], other: object
+) -> Union[set[object], NotImplementedType]:
+ if not isinstance(other, Iterable):
+ return NotImplemented # type: ignore[no-any-return]
+ if isinstance(view, Set):
+ view = set(iter(view))
+ if isinstance(other, Set):
+ other = set(iter(other))
+ if not isinstance(other, Set):
+ other = set(iter(other))
+ return view | other
+
+
+def _viewbaseset_sub(
+ view: set[object], other: object
+) -> Union[set[object], NotImplementedType]:
+ if not isinstance(other, Iterable):
+ return NotImplemented # type: ignore[no-any-return]
+ if isinstance(view, Set):
+ view = set(iter(view))
+ if isinstance(other, Set):
+ other = set(iter(other))
+ if not isinstance(other, Set):
+ other = set(iter(other))
+ return view - other
+
+
+def _viewbaseset_xor(
+ view: set[object], other: object
+) -> Union[set[object], NotImplementedType]:
+ if not isinstance(other, Iterable):
+ return NotImplemented # type: ignore[no-any-return]
+ if isinstance(view, Set):
+ view = set(iter(view))
+ if isinstance(other, Set):
+ other = set(iter(other))
+ if not isinstance(other, Set):
+ other = set(iter(other))
+ return view ^ other
+
+
+def _itemsview_isdisjoint(view: Container[object], other: Iterable[object]) -> bool:
+ "Return True if two sets have a null intersection."
+ for v in other:
+ if v in view:
+ return False
+ return True
+
+
+def _itemsview_repr(view: Iterable[tuple[object, object]]) -> str:
+ lst = []
+ for k, v in view:
+ lst.append("{!r}: {!r}".format(k, v))
+ body = ", ".join(lst)
+ return "{}({})".format(view.__class__.__name__, body)
+
+
+def _keysview_isdisjoint(view: Container[object], other: Iterable[object]) -> bool:
+ "Return True if two sets have a null intersection."
+ for k in other:
+ if k in view:
+ return False
+ return True
+
+
+def _keysview_repr(view: Iterable[object]) -> str:
+ lst = []
+ for k in view:
+ lst.append("{!r}".format(k))
+ body = ", ".join(lst)
+ return "{}({})".format(view.__class__.__name__, body)
+
+
+def _valuesview_repr(view: Iterable[object]) -> str:
+ lst = []
+ for v in view:
+ lst.append("{!r}".format(v))
+ body = ", ".join(lst)
+ return "{}({})".format(view.__class__.__name__, body)
+
+
+def _mdrepr(md: Mapping[object, object]) -> str:
+ lst = []
+ for k, v in md.items():
+ lst.append("'{}': {!r}".format(k, v))
+ body = ", ".join(lst)
+ return "<{}({})>".format(md.__class__.__name__, body)