go-python / gopy

gopy generates a CPython extension module from a go package.
BSD 3-Clause "New" or "Revised" License
2.05k stars 113 forks source link

[]byte Parameter Results in Unexpected Integer Type #344

Open krypton-byte opened 11 months ago

krypton-byte commented 11 months ago

I am facing an issue with Golang-to-Python interoperability. Specifically, when I call a Python function from Golang and pass a []byte data as a parameter, the Python function unexpectedly receives an integer instead of the intended MengByte/bytes object.

Code:

test.go

package hujan

type MengByte []byte
type Fungsi func(MengByte)

func Test(fun Fungsi) {
    fun(MengByte{255, 211, 21, 23, 0, 1, 2, 3, 82, 2, 33})
}

test.py

from out.hujan import Test, MengByte

def fun(arg: MengByte):
    print('arg: ', type(arg))
    return arg

Test(fun)

I would appreciate assistance in resolving this issue and ensuring that the Python function correctly receives the MengByte/bytes object.

pratclot commented 5 months ago

I have the same issue. There are some examples in here, where Python functions are called from Go with arguments. Whenever I try to pass a struct or a map[string]string, Python would receive 1 as argument.

I "worked around" this by passing a string from Go, but it would be nice to learn how to reference Go types in Python.