def resolve_value_type(self, val): """ Return the numba type of a Python value that is being used as a runtime constant. None is returned for unsupported types. """ tp = typeof(val, Purpose.constant) if tp is not None: return tp if isinstance(val, (types.ExternalFunction, types.NumbaFunction)): return val if isinstance(val, type): if issubclass(val, BaseException): return types.ExceptionClass(val) if issubclass(val, tuple) and hasattr(val, "_asdict"): return types.NamedTupleClass(val) try: # Try to look up target specific typing information return self._get_global_type(val) except KeyError: pass return None
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)
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))
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)