Skip to content

Commit cf189ac

Browse files
authored
Merge pull request #19 from bryanforbes/improve-util
Improve typings for util
2 parents b7d3f9a + bb100b9 commit cf189ac

File tree

5 files changed

+33
-16
lines changed

5 files changed

+33
-16
lines changed

setup.cfg

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ install_requires =
3535

3636
[mypy]
3737
incremental = True
38+
strict = True
39+
warn_unused_ignores = False
3840

3941

4042

sqlalchemy-stubs/util/_collections.pyi

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ if sys.version_info >= (3, 0):
4141
else:
4242
_B = TypeVar("_B", bound=Union[basestring, bytes]) # noqa: F821
4343

44-
EMPTY_SET: frozenset
44+
EMPTY_SET: frozenset[None]
4545

4646
class ImmutableContainer:
4747
def __delitem__(self, key: Any) -> NoReturn: ...
@@ -188,7 +188,10 @@ class OrderedSet(Set[_T]):
188188
def insert(self, pos: int, element: _T) -> None: ...
189189
def discard(self, element: _T) -> None: ...
190190
def clear(self) -> None: ...
191-
def __getitem__(self, key: int): ...
191+
@overload
192+
def __getitem__(self, key: int) -> _T: ...
193+
@overload
194+
def __getitem__(self, s: slice) -> List[_T]: ...
192195
def __iter__(self) -> Iterator[_T]: ...
193196
def __add__(self: _OS, other: Iterable[_T]) -> _OS: ...
194197
def update(self: _OS, iterable: Iterable[_T]) -> _OS: ... # type: ignore[override]

sqlalchemy-stubs/util/_concurrency_py3k.pyi

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,20 @@ if sys.version_info >= (3, 0):
55
from typing import Any
66
from typing import Callable
77
from typing import Coroutine
8-
def await_only(awaitable: Coroutine) -> Any: ...
9-
def await_fallback(awaitable: Coroutine) -> Any: ...
8+
from typing import TypeVar
9+
10+
_T = TypeVar("_T")
11+
_AAL = TypeVar("_AAL", bound=AsyncAdaptedLock)
12+
def await_only(awaitable: Coroutine[_T, Any, Any]) -> _T: ...
13+
def await_fallback(awaitable: Coroutine[_T, Any, Any]) -> _T: ...
1014
async def greenlet_spawn(
11-
fn: Callable, *args: Any, _require_await: Any = ..., **kwargs: Any
12-
) -> Any: ...
15+
fn: Callable[..., _T],
16+
*args: Any,
17+
_require_await: bool = ...,
18+
**kwargs: Any,
19+
) -> _T: ...
1320
class AsyncAdaptedLock:
1421
mutex: Any = ...
1522
def __init__(self) -> None: ...
16-
def __enter__(self): ...
23+
def __enter__(self: _AAL) -> _AAL: ...
1724
def __exit__(self, *arg: Any, **kw: Any) -> None: ...

sqlalchemy-stubs/util/compat.pyi

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ else:
162162
collections_abc = collections
163163

164164
def b(s: Any) -> Any: ...
165-
def decode_backslashreplace(text: binary_type, encoding: str): ...
165+
def decode_backslashreplace(text: binary_type, encoding: str) -> text_type: ...
166166
def raise_(
167167
exception: Any,
168168
with_traceback: Optional[Any] = ...,
@@ -187,12 +187,12 @@ def inspect_formatargspec(
187187

188188
if sys.version_info >= (3, 7):
189189
from dataclasses import Field
190-
def dataclass_fields(cls) -> Sequence[Field[Any]]: ...
191-
def local_dataclass_fields(cls) -> List[Field[Any]]: ...
190+
def dataclass_fields(cls: Any) -> Sequence[Field[Any]]: ...
191+
def local_dataclass_fields(cls: Any) -> List[Field[Any]]: ...
192192

193193
else:
194-
def dataclass_fields(cls) -> Sequence[Any]: ...
195-
def local_dataclass_fields(cls) -> List[Any]: ...
194+
def dataclass_fields(cls: Any) -> Sequence[Any]: ...
195+
def local_dataclass_fields(cls: Any) -> List[Any]: ...
196196

197197
def raise_from_cause(
198198
exception: Any, exc_info: Optional[Any] = ...

sqlalchemy-stubs/util/langhelpers.pyi

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,10 @@ class hybridproperty:
178178
func: Any = ...
179179
clslevel: Any = ...
180180
def __init__(self, func: Any) -> None: ...
181-
def __get__(self, instance: Any, owner: Any): ...
181+
@overload
182+
def __get__(self: _HP, instance: None, owner: Any) -> _HP: ...
183+
@overload
184+
def __get__(self, instance: Any, owner: Any) -> Any: ...
182185
def classlevel(self: _HP, func: Any) -> _HP: ...
183186

184187
class hybridmethod:
@@ -194,8 +197,8 @@ class _symbol(int):
194197
name: Any,
195198
doc: Optional[Any] = ...,
196199
canonical: Optional[Any] = ...,
197-
): ...
198-
def __reduce__(self): ...
200+
) -> _symbol: ...
201+
def __reduce__(self) -> Any: ...
199202

200203
class symbol:
201204
symbols: Any = ...
@@ -218,7 +221,9 @@ def set_creation_order(instance: Any) -> None: ...
218221
def warn_exception(
219222
func: Callable[..., _T], *args: Any, **kwargs: Any
220223
) -> _T: ...
221-
def ellipses_string(value: str, len_: int = ...): ...
224+
def ellipses_string(
225+
value: compat.text_type, len_: int = ...
226+
) -> compat.text_type: ...
222227
def warn(msg: str) -> None: ...
223228
def warn_limited(msg: str, args: Any) -> None: ...
224229
def only_once(fn: _F, retry_on_exception: bool) -> _F: ...

0 commit comments

Comments
 (0)