pyImport function

DartPyModule pyImport(
  1. String module
)

Loads a python module

Implementation

DartPyModule pyImport(String module) {
  _ensureInitialized();
  if (_moduleMap.containsKey(module)) {
    return _moduleMap[module]!;
  }
  final mstring = module.toNativeUtf8();
  final pyString = dartpyc.PyUnicode_DecodeFSDefault(mstring.cast<Char>());
  malloc.free(mstring);
  final pyImport = dartpyc.PyImport_Import(pyString);
  dartpyc.Py_DecRef(pyString);
  if (pyImport != nullptr) {
    final _mod = DartPyModule(module, pyImport);
    _moduleMap[module] = _mod;
    return _mod;
  } else {
    throw DartPyException(
        'Importing python module $module failed, make sure the $module is on your PYTHONPATH\n eg. export PYTHONPATH=\$PYTHONPATH:/path/to/$module');
  }
}