diff --git a/stubs/lupa/@tests/stubtest_allowlist.txt b/stubs/lupa/@tests/stubtest_allowlist.txt new file mode 100644 index 000000000000..4a40f0cef308 --- /dev/null +++ b/stubs/lupa/@tests/stubtest_allowlist.txt @@ -0,0 +1,9 @@ +# These are type aliases and not real objects +lupa.lua51.LuaKey +lupa.lua51.LuaObject +lupa.lua52.LuaKey +lupa.lua52.LuaObject +lupa.lua53.LuaKey +lupa.lua53.LuaObject +lupa.lua54.LuaKey +lupa.lua54.LuaObject diff --git a/stubs/lupa/lupa/lua51.pyi b/stubs/lupa/lupa/lua51.pyi index cdd4e4b096dd..6b9a0cd55aa6 100644 --- a/stubs/lupa/lupa/lua51.pyi +++ b/stubs/lupa/lupa/lua51.pyi @@ -1,6 +1,7 @@ from _typeshed import MaybeNone -from collections.abc import Callable, Iterator +from collections.abc import Callable, Iterable from typing import Any, Final, Generic, TypeVar, type_check_only +from typing_extensions import TypeAlias __all__ = [ "LUA_VERSION", @@ -34,15 +35,17 @@ unpacks_lua_table_method: Callable[[Callable[..., Any]], Callable[..., Any]] # inner classes -@type_check_only -class _LuaIter: - def __iter__(self) -> Iterator[object]: ... - @type_check_only class _LuaTable: - def keys(self) -> _LuaIter: ... - def values(self) -> _LuaIter: ... - def items(self) -> _LuaIter: ... + def keys(self) -> Iterable[LuaKey]: ... + def values(self) -> Iterable[LuaObject]: ... + def items(self) -> Iterable[tuple[LuaKey, LuaObject]]: ... + def __getitem__(self, key: LuaKey) -> LuaObject: ... + def __setitem__(self, key: LuaKey, value: LuaObject) -> None: ... + def __delitem__(self, key: LuaKey) -> None: ... + +LuaKey: TypeAlias = str | int +LuaObject: TypeAlias = _LuaTable | int | str | float | bool | None @type_check_only class _LuaNoGC: ... @@ -70,8 +73,7 @@ class LuaRuntime: lua_implementation: Final[str] lua_version: Final[tuple[int, int]] - # @classmethod - # def __cinit__(cls, unpack_return_tuples: bool) -> None: ... + def __init__(self, /, unpack_returned_tuples: bool, *args: Any) -> None: ... # def add_pending_unref(self, ref: int) -> None: ... # def clean_up_pending_unrefs(self) -> int: ... def get_max_memory(self, total: bool = False) -> int | MaybeNone: ... diff --git a/stubs/lupa/lupa/lua52.pyi b/stubs/lupa/lupa/lua52.pyi index cdd4e4b096dd..6b9a0cd55aa6 100644 --- a/stubs/lupa/lupa/lua52.pyi +++ b/stubs/lupa/lupa/lua52.pyi @@ -1,6 +1,7 @@ from _typeshed import MaybeNone -from collections.abc import Callable, Iterator +from collections.abc import Callable, Iterable from typing import Any, Final, Generic, TypeVar, type_check_only +from typing_extensions import TypeAlias __all__ = [ "LUA_VERSION", @@ -34,15 +35,17 @@ unpacks_lua_table_method: Callable[[Callable[..., Any]], Callable[..., Any]] # inner classes -@type_check_only -class _LuaIter: - def __iter__(self) -> Iterator[object]: ... - @type_check_only class _LuaTable: - def keys(self) -> _LuaIter: ... - def values(self) -> _LuaIter: ... - def items(self) -> _LuaIter: ... + def keys(self) -> Iterable[LuaKey]: ... + def values(self) -> Iterable[LuaObject]: ... + def items(self) -> Iterable[tuple[LuaKey, LuaObject]]: ... + def __getitem__(self, key: LuaKey) -> LuaObject: ... + def __setitem__(self, key: LuaKey, value: LuaObject) -> None: ... + def __delitem__(self, key: LuaKey) -> None: ... + +LuaKey: TypeAlias = str | int +LuaObject: TypeAlias = _LuaTable | int | str | float | bool | None @type_check_only class _LuaNoGC: ... @@ -70,8 +73,7 @@ class LuaRuntime: lua_implementation: Final[str] lua_version: Final[tuple[int, int]] - # @classmethod - # def __cinit__(cls, unpack_return_tuples: bool) -> None: ... + def __init__(self, /, unpack_returned_tuples: bool, *args: Any) -> None: ... # def add_pending_unref(self, ref: int) -> None: ... # def clean_up_pending_unrefs(self) -> int: ... def get_max_memory(self, total: bool = False) -> int | MaybeNone: ... diff --git a/stubs/lupa/lupa/lua53.pyi b/stubs/lupa/lupa/lua53.pyi index cdd4e4b096dd..6b9a0cd55aa6 100644 --- a/stubs/lupa/lupa/lua53.pyi +++ b/stubs/lupa/lupa/lua53.pyi @@ -1,6 +1,7 @@ from _typeshed import MaybeNone -from collections.abc import Callable, Iterator +from collections.abc import Callable, Iterable from typing import Any, Final, Generic, TypeVar, type_check_only +from typing_extensions import TypeAlias __all__ = [ "LUA_VERSION", @@ -34,15 +35,17 @@ unpacks_lua_table_method: Callable[[Callable[..., Any]], Callable[..., Any]] # inner classes -@type_check_only -class _LuaIter: - def __iter__(self) -> Iterator[object]: ... - @type_check_only class _LuaTable: - def keys(self) -> _LuaIter: ... - def values(self) -> _LuaIter: ... - def items(self) -> _LuaIter: ... + def keys(self) -> Iterable[LuaKey]: ... + def values(self) -> Iterable[LuaObject]: ... + def items(self) -> Iterable[tuple[LuaKey, LuaObject]]: ... + def __getitem__(self, key: LuaKey) -> LuaObject: ... + def __setitem__(self, key: LuaKey, value: LuaObject) -> None: ... + def __delitem__(self, key: LuaKey) -> None: ... + +LuaKey: TypeAlias = str | int +LuaObject: TypeAlias = _LuaTable | int | str | float | bool | None @type_check_only class _LuaNoGC: ... @@ -70,8 +73,7 @@ class LuaRuntime: lua_implementation: Final[str] lua_version: Final[tuple[int, int]] - # @classmethod - # def __cinit__(cls, unpack_return_tuples: bool) -> None: ... + def __init__(self, /, unpack_returned_tuples: bool, *args: Any) -> None: ... # def add_pending_unref(self, ref: int) -> None: ... # def clean_up_pending_unrefs(self) -> int: ... def get_max_memory(self, total: bool = False) -> int | MaybeNone: ... diff --git a/stubs/lupa/lupa/lua54.pyi b/stubs/lupa/lupa/lua54.pyi index cdd4e4b096dd..6b9a0cd55aa6 100644 --- a/stubs/lupa/lupa/lua54.pyi +++ b/stubs/lupa/lupa/lua54.pyi @@ -1,6 +1,7 @@ from _typeshed import MaybeNone -from collections.abc import Callable, Iterator +from collections.abc import Callable, Iterable from typing import Any, Final, Generic, TypeVar, type_check_only +from typing_extensions import TypeAlias __all__ = [ "LUA_VERSION", @@ -34,15 +35,17 @@ unpacks_lua_table_method: Callable[[Callable[..., Any]], Callable[..., Any]] # inner classes -@type_check_only -class _LuaIter: - def __iter__(self) -> Iterator[object]: ... - @type_check_only class _LuaTable: - def keys(self) -> _LuaIter: ... - def values(self) -> _LuaIter: ... - def items(self) -> _LuaIter: ... + def keys(self) -> Iterable[LuaKey]: ... + def values(self) -> Iterable[LuaObject]: ... + def items(self) -> Iterable[tuple[LuaKey, LuaObject]]: ... + def __getitem__(self, key: LuaKey) -> LuaObject: ... + def __setitem__(self, key: LuaKey, value: LuaObject) -> None: ... + def __delitem__(self, key: LuaKey) -> None: ... + +LuaKey: TypeAlias = str | int +LuaObject: TypeAlias = _LuaTable | int | str | float | bool | None @type_check_only class _LuaNoGC: ... @@ -70,8 +73,7 @@ class LuaRuntime: lua_implementation: Final[str] lua_version: Final[tuple[int, int]] - # @classmethod - # def __cinit__(cls, unpack_return_tuples: bool) -> None: ... + def __init__(self, /, unpack_returned_tuples: bool, *args: Any) -> None: ... # def add_pending_unref(self, ref: int) -> None: ... # def clean_up_pending_unrefs(self) -> int: ... def get_max_memory(self, total: bool = False) -> int | MaybeNone: ...