Skip to content

Commit f033cf1

Browse files
authored
[www-authenticate] Add stubs (#14688)
1 parent dc290f4 commit f033cf1

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
version = "0.9.*"
2+
upstream_repository = "https://github.com/alexsdutton/www-authenticate"
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from _typeshed import Incomplete
2+
from collections import OrderedDict
3+
from typing import Protocol, TypeVar, overload, type_check_only
4+
5+
_T = TypeVar("_T")
6+
_VT = TypeVar("_VT")
7+
8+
@type_check_only
9+
class _SupportsCasefold(Protocol):
10+
def casefold(self) -> str: ...
11+
12+
@type_check_only
13+
class _SupportsLower(Protocol):
14+
def lower(self) -> str: ...
15+
16+
class CaseFoldedOrderedDict(OrderedDict[str, _VT]):
17+
def __getitem__(self, key: _SupportsCasefold | _SupportsLower) -> _VT: ...
18+
def __setitem__(self, key: _SupportsCasefold | _SupportsLower, value: _VT) -> None: ...
19+
def __contains__(self, key: _SupportsCasefold | _SupportsLower) -> bool: ... # type: ignore[override]
20+
# See overloads for dict class:
21+
@overload
22+
def get(self, key: _SupportsCasefold | _SupportsLower, default: None = None) -> _VT | None: ...
23+
@overload
24+
def get(self, key: _SupportsCasefold | _SupportsLower, default: _VT) -> _VT: ...
25+
@overload
26+
def get(self, key: _SupportsCasefold | _SupportsLower, default: _T) -> _VT | _T: ...
27+
@overload # type: ignore[override]
28+
def pop(self, key: _SupportsCasefold | _SupportsLower, default: None = None) -> _VT | None: ...
29+
@overload
30+
def pop(self, key: _SupportsCasefold | _SupportsLower, default: _VT) -> _VT: ...
31+
@overload
32+
def pop(self, key: _SupportsCasefold | _SupportsLower, default: _T) -> _VT | _T: ...
33+
34+
def parse(value: str) -> CaseFoldedOrderedDict[Incomplete]: ...

0 commit comments

Comments
 (0)