Skip to content
This repository was archived by the owner on Feb 2, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from 1 commit
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
Prev Previous commit
Next Next commit
split into several files
  • Loading branch information
KsanaKozlova committed Sep 4, 2020
commit 90e436e13224eefd791c60e3b835e0ab168bd561
2 changes: 2 additions & 0 deletions numba_typing/new_types/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

__all__ = ['array', 'number_types', 'pandas', 'special']
17 changes: 17 additions & 0 deletions numba_typing/new_types/array.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import typing
import numpy as np
from abc import abstractmethod

T = typing.TypeVar('T')
S = typing.TypeVar('S')


class Array(typing.Generic[T, S]):
'''Annotation for np.ndarray
Use square brackets to indicate type and dimension
For example: Array[int, typing_extensions.Literal[4]]'''
__slots__ = ()

@abstractmethod
def __array__(self) -> np.ndarray:
pass
80 changes: 80 additions & 0 deletions numba_typing/new_types/number_types.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
import typing
from abc import abstractmethod
import typing_extensions


class int8(typing_extensions.Protocol):
"""Annotation for int8"""
@abstractmethod
def __int__(self) -> int:
pass


class int16(typing_extensions.Protocol):
"""Annotation for int16"""
@abstractmethod
def __int__(self) -> int:
pass


class int32(typing_extensions.Protocol):
"""Annotation for int32"""
@abstractmethod
def __int__(self) -> int:
pass


class int64(typing_extensions.Protocol):
"""Annotation for int64"""
@abstractmethod
def __int__(self) -> int:
pass


class unint8(typing_extensions.Protocol):
"""Annotation for unsigned int8"""
@abstractmethod
def __int__(self) -> int:
pass


class unint16(typing_extensions.Protocol):
"""Annotation for unsigned int16"""
@abstractmethod
def __int__(self) -> int:
pass


class unint32(typing_extensions.Protocol):
"""Annotation for unsigned int32"""
@abstractmethod
def __int__(self) -> int:
pass


class unint64(typing_extensions.Protocol):
"""Annotation for unsigned int64"""
@abstractmethod
def __int__(self) -> int:
pass


class float32(typing_extensions.Protocol):
"""Annotation for float32"""
@abstractmethod
def __float__(self) -> float:
pass


class float64(typing_extensions.Protocol):
"""Annotation for float32"""
@abstractmethod
def __float__(self) -> float:
pass


number = typing.Union[int, float] # numba's number type


T_int = typing.TypeVar('T_int', int8, int16, int32, int64)
T_float = typing.TypeVar('T_float', float32, float64)
23 changes: 23 additions & 0 deletions numba_typing/new_types/special.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import typing
import number_types

T = typing.TypeVar('T')


class LiteralType(typing.Generic[T]):
pass


class PreferLiteralType(typing.Generic[T]):
pass


class PreferNonLiteralType(typing.Generic[T]):
pass


L_int = LiteralType[int]
L_float = LiteralType[float]

TL_int = LiteralType[number_types.T_int]
TL_float = LiteralType[number_types.T_float]