-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do you need type conversion of struct? #220
Comments
How do you think gpython should be helping here? Can you write an example? Thank you. |
Based on my recent usage experience, I believe that gpython's embedded use lacks a convenient "bridge" for exchanging data with Go, such as the functionality in goja (https://github.com/dop251/goja) that exports types and methods from the VM as native Go types and functions. Currently, I do not have a specific plan for implementing this "bridge". However, I was wondering if you have any plans to develop gpython in the direction of an embedded script interpreter? Furthermore, I noticed this issue because I found basic type conversion code in py/util.go, and I thought I could improve it. I will provide examples later. Also, thank you for your contributions to this project. It's a great project. |
I see what you mean.
Great. Yes that code could certainly be expanded.
:-) |
example here https://go.dev/play/p/aT2zebez5zC?v=goprev Some uint types and pointer types are not supported. It's easy to add them, you know. If you think it is useful, I will add some test cases and submit a push request |
Nice code! This converts Go structs into python dicts. Do you think converting them into a python object would be more pythonic? So Perhaps if we made a base class So
Would become an instance of a = GoStruct()
a.X = 1
a.Y = "hello" Potentially this would allow python to call the methods on the struct too. |
I also think it's better to convert to an object type. I just used it for data transfer, so I converted it to a dictionary. Perhaps we do need a similar 'GoStruct' type. |
When I use gpython as a plugin parser, I use reflect and recurrence to achieve a more general type conversion because of the trouble of type conversion.
Support mutual conversion of go type and gpython type including struct and map
Of course, the performance is not very good
https://github.com/wetor/AnimeGo/blob/feature-update_plugin/pkg/plugin/utils.go
and https://github.com/wetor/AnimeGo/blob/feature-update_plugin/pkg/utils/utils.go line 65, 76
The text was updated successfully, but these errors were encountered: