Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion maint/stubtest/allowlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ numba\.core\.untyped_passes\..*
numba\.core\.utils\..*
numba\.cpython\..*
numba\.cuda\..*
numba\.experimental\..*
numba\.experimental\.structref
numba\.misc\.POST
numba\.misc\.appdirs\..*
numba\.misc\.coverage_support\..*
Expand Down
25 changes: 25 additions & 0 deletions numba/experimental/jitclass/decorators.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from collections.abc import Mapping, Sequence
from typing import Protocol, TypeAlias, overload, type_check_only

from typing_extensions import TypeVar

from numba.core import types

###

_ToSpec: TypeAlias = Mapping[str, types.Type] | Sequence[tuple[str, types.Type]]

_ClsT = TypeVar("_ClsT", bound=type)

@type_check_only
class _Wrap(Protocol):
def __call__(self, cls: _ClsT) -> _ClsT: ...

###

@overload
def jitclass(cls_or_spec: None = None, spec: _ToSpec | None = None) -> _Wrap: ...
@overload
def jitclass(cls_or_spec: _ToSpec, spec: None = None) -> _Wrap: ...
@overload
def jitclass(cls_or_spec: _ClsT, spec: _ToSpec | None = None) -> _ClsT: ...