baloo.weld.convertors package

Submodules

baloo.weld.convertors.encoders module

class baloo.weld.convertors.encoders.NumPyDecoder[source]

Bases: weld.weldobject.WeldObjectDecoder

decode(obj, restype, raw_ptr=False)[source]

Decodes obj, assuming object is of type restype. obj’s Python type is ctypes.POINTER(restype.ctype_class).

class baloo.weld.convertors.encoders.NumPyEncoder[source]

Bases: weld.weldobject.WeldObjectEncoder

encode(obj)[source]

Encodes an object. All objects encodable by this encoder should return a valid Weld type using py_to_weld_type.

py_to_weld_type(obj)[source]

Returns a WeldType corresponding to a Python object

baloo.weld.convertors.encoders.default_missing_data_literal(weld_type)[source]

Convert from Weld type to missing literal placeholder.

Parameters:
weld_type : WeldType

Weld type.

Returns:
str

Literal for missing data.

Examples

>>> import numpy as np
>>> from baloo.weld import default_missing_data_literal, WeldDouble
>>> default_missing_data_literal(WeldDouble())
'-999.0'
baloo.weld.convertors.encoders.numpy_to_weld_type(np_dtype)[source]

Convert from NumPy dtype to Weld type.

Note that support for strings is intended to be only for Python 2 str and Python 3 bytes. No unicode.

Parameters:
np_dtype : numpy.dtype or str

NumPy dtype.

Returns:
WeldType

Corresponding WeldType.

Examples

>>> import numpy as np
>>> from baloo.weld import numpy_to_weld_type
>>> str(numpy_to_weld_type(np.dtype(np.int64)))
'i64'
>>> str(numpy_to_weld_type('?'))
'bool'
baloo.weld.convertors.encoders.weld_to_numpy_dtype(weld_type)[source]

Convert from Weld type to NumPy dtype.

Note that support for strings is intended to be only for Python 2 str and Python 3 bytes. No unicode.

Parameters:
weld_type : WeldType

Weld type.

Returns:
numpy.dtype

Corresponding Numpy dtype.

Examples

>>> import numpy as np
>>> from baloo.weld import weld_to_numpy_dtype, WeldFloat
>>> weld_to_numpy_dtype(WeldFloat())
dtype('float32')