コード例 #1
0
ファイル: pymodule.go プロジェクト: gemrs/gem
func init() {
	lock := py.NewLock()
	defer lock.Unlock()

	/* Setup default targets */
	stdoutTarget := log.NewTextTarget(os.Stdout)
	bufferingTarget := log.NewBufferingTarget(stdoutTarget)
	log.Targets["stdout"] = bufferingTarget

	/* Create package */
	var err error
	var module *py.Module
	if module, err = modules.Init("gem.log", []py.Method{
		{"begin_redirect", Py_begin_redirect, ""},
		{"end_redirect", Py_end_redirect, ""},
	}); err != nil {
		panic(err)
	}

	/* Register modules */
	for _, registerFunc := range moduleRegisterFuncs {
		if err = registerFunc(module); err != nil {
			panic(err)
		}
	}
}
コード例 #2
0
ファイル: pybind_test.go プロジェクト: gemrs/gem
// TestPyBindOut tests creating objects in python and extracting them
func TestPyBindOut(t *testing.T) {
	_ = py.NewLock()
	safe.Unsafe = true

	if main, err := py.NewDict(); err != nil {
		t.Fatal(err)
	} else if g, err := py.GetBuiltins(); err != nil {
		t.Fatal(err)
	} else if err := main.SetItemString("__builtins__", g); err != nil {
		t.Fatal(err)
	} else if module, err := modules.Init("test_module", []py.Method{}); err != nil {
		t.Fatal(err)
	} else if err := RegisterCat(module); err != nil {
		t.Fatal(err)
	} else if _, err := py.RunString(testCatOut, py.FileInput, main, nil); err != nil {
		t.Fatal(err)
	} else if a, err := main.GetItemString("the_cat"); err != nil {
		t.Fatal(err)
	} else if the_cat, ok := a.(*Cat); !ok {
		t.Errorf("Unable to extract test object")
	} else {
		if the_cat.Name != "Garfield" || the_cat.Cheeseburgers != 1 {
			t.Errorf("Object's properties weren't updated")
		}
		t.Logf("%V", the_cat)
	}
}
コード例 #3
0
ファイル: events.go プロジェクト: gemrs/gem
func init() {
	lock := py.NewLock()
	defer lock.Unlock()

	/* Create package */
	var err error
	var module *py.Module
	if module, err = modules.Init("gem.game.event", []py.Method{}); err != nil {
		panic(err)
	}

	createEventObjects(module)
}
コード例 #4
0
ファイル: pymodule.go プロジェクト: gemrs/gem
func init() {
	lock := py.NewLock()
	defer lock.Unlock()

	/* Create package */
	var err error
	var module *py.Module
	if module, err = modules.Init("gem.archive", []py.Method{}); err != nil {
		panic(err)
	}

	/* Register modules */
	for _, registerFunc := range moduleRegisterFuncs {
		if err = registerFunc(module); err != nil {
			panic(err)
		}
	}
}
コード例 #5
0
ファイル: pymodule.go プロジェクト: gemrs/gem
func init() {
	lock := py.NewLock()
	defer lock.Unlock()

	/* Create package */
	var err error
	var module *py.Module
	methods := []py.Method{
		{"submit", Py_submit, "submit a task to the scheduler"},
	}
	if module, err = modules.Init("gem.task", methods); err != nil {
		panic(err)
	}

	createTaskHookConstants(module)

	/* Register modules */
	for _, registerFunc := range moduleRegisterFuncs {
		if err = registerFunc(module); err != nil {
			panic(err)
		}
	}
}