Source code for mmlspark.core.schema.TypeConversionUtils

# Copyright (C) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See LICENSE in project root for information.

from py4j.protocol import Py4JError

[docs]def generateTypeConverter(name, cache, typeConverter): """ Type converter Args: name (str): cache: typeConverter: Returns: lambda: Function to convert the type """ return lambda value: typeConverter(name, value, cache)
[docs]def complexTypeConverter(name, value, cache): """ Type conversion for complex types Args: name: value: cache: Returns: _java_obj: """ cache[name]=value try: if isinstance(value, list): java_value=[] for v in value: if hasattr(v, "_transfer_params_to_java"): v._transfer_params_to_java() java_value.append(v._java_obj) return java_value if hasattr(value, "_transfer_params_to_java"): value._transfer_params_to_java() if hasattr(value, "_java_obj"): return value._java_obj else: return value._to_java() except Py4JError as e: return value