Example #1
0
def _typeof_nb_type(val, c):
    if isinstance(val, types.BaseFunction):
        return val
    elif isinstance(val, (types.Number, types.Boolean)):
        return types.NumberClass(val)
    else:
        return types.TypeRef(val)
Example #2
0
def typeof_type(val, c):
    """
    Type various specific Python types.
    """
    if issubclass(val, BaseException):
        return types.ExceptionClass(val)
    if issubclass(val, tuple) and hasattr(val, "_asdict"):
        return types.NamedTupleClass(val)

    if issubclass(val, np.generic):
        return types.NumberClass(numpy_support.from_dtype(val))

    from numba.typed import Dict
    if issubclass(val, Dict):
        return types.TypeRef(types.DictType)

    from numba.typed import List
    if issubclass(val, List):
        return types.TypeRef(types.ListType)
Example #3
0
 def test_dtype_values(self):
     self.assertEqual(typeof(np.int64), types.NumberClass(types.int64))
     self.assertEqual(typeof(np.float64), types.NumberClass(types.float64))
     self.assertEqual(typeof(np.int32), types.NumberClass(types.int32))
     self.assertEqual(typeof(np.int8), types.NumberClass(types.int8))
Example #4
0
 def resolve___class__(self, ty):
     return types.NumberClass(ty)
Example #5
0
def register_number_classes(register_global):
    for np_type in np_types:
        nb_type = getattr(types, np_type.__name__)

        register_global(np_type, types.NumberClass(nb_type))
Example #6
0
 def resolve_type(self, ary):
     # Wrap the numeric type in NumberClass
     return types.NumberClass(ary.dtype)