Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _numpy_scalar_type(t: pydsdl.Any) -> str:
def pick_width(w: int) -> int:
for o in [8, 16, 32, 64]:
if w <= o:
return o
raise ValueError(f'Invalid bit width: {w}') # pragma: no cover
if isinstance(t, pydsdl.BooleanType):
return f'_np_.bool'
elif isinstance(t, pydsdl.SignedIntegerType):
return f'_np_.int{pick_width(t.bit_length)}'
elif isinstance(t, pydsdl.UnsignedIntegerType):
return f'_np_.uint{pick_width(t.bit_length)}'
elif isinstance(t, pydsdl.FloatType):
return f'_np_.float{pick_width(t.bit_length)}'
else:
assert not isinstance(t, pydsdl.PrimitiveType), 'Forgot to handle some primitive types'
return f'_np_.object_'