const std = @import("std"); const Io = std.Io; const zpy = @import("zpy"); pub fn main() !void { var py: zpy.Interpreter = try .init(); defer py.deinit(); _ = try py.run("def hello(a, b): return a + b", .{}); var test_fn = py.globals.get(.{ .string = "hello" }) orelse unreachable; defer test_fn.decref(); var result = try test_fn.call(try .pack(&.{ (try zpy.List.new(&.{ (try zpy.Int.from(5)).asObject(), (try zpy.Int.from(6)).asObject(), })).asObject(), (try zpy.List.new(&.{ (try zpy.Int.from(2)).asObject(), (try zpy.Int.from(3)).asObject(), (try zpy.Int.from(9)).asObject(), })).asObject(), }), null); defer result.decref(); std.debug.print("hello = {f}\n", .{result}); var global_iterator = py.globals.iterator(); while (global_iterator.next()) |pair| { std.debug.print("{f}\n", .{pair.key}); } const structtype: *zpy.Type = try .new( .{ .name = "MyStruct" }, &.{ .{ .name = "first" }, .{ .name = "second" }, } ); var struct_seq: *zpy.StructSequence = try .new(structtype); struct_seq.set(0, (try zpy.Int.from(42)).asObject()); struct_seq.set(1, (zpy.Str.from("hello")).asObject()); std.debug.print("struct = {f}\n", .{struct_seq.asObject()}); }