code: def wrap_udf(hdfs_file, inputs, output, so_symbol, name=None):
      
      func = ImpalaUDF(inputs, output, so_symbol, name=name, lib_path=hdfs_file)
      return func
docs: Creates a callable scalar function object. Must be created in Impala to be
      used
  
      Parameters
      ----------
      hdfs_file: .so file that contains relevant UDF
      inputs: list of strings or sig.TypeSignature
        Input types to UDF
      output: string
        Ibis data type
      so_symbol: string, C++ function name for relevant UDF
      name: string (optional). Used internally to track function
  
      Returns
      -------
      container : UDF object