/usr/local/lib/swipl/library/ext/swipy/janus.pl
All Application Manual Name SummaryHelp

  • swipy
    • janus.pl -- Call Python from Prolog
      • py_version/0
      • py_call/1
      • py_call/2
      • py_call/3
      • py_iter/2
      • py_iter/3
      • py_setattr/3
      • py_is_object/1
      • py_is_dict/1
      • py_free/1
      • py_with_gil/1
      • py_gil_owner/1
      • py_func/3
      • py_func/4
      • py_dot/3
      • py_dot/4
      • values/3
      • keys/2
      • key/2
      • items/2
      • py_shell/0
      • py_pp/1
      • py_pp/2
      • py_pp/3
      • py_object_dir/2
      • py_object_dict/2
      • py_obj_dir/2
      • py_obj_dict/2
      • py_type/2
      • py_isinstance/2
      • py_module_exists/1
      • py_hasattr/2
      • py_import/2
      • py_module/2
      • py_initialize/3
      • py_lib_dirs/1
      • py_add_lib_dir/1
      • py_add_lib_dir/2
 py_module(+Module:atom, +Source:string) is det
Load Source into the Python module Module. This is intended to be used together with the string quasi quotation that supports long strings in SWI-Prolog. For example:
:- use_module(library(strings)).
:- py_module(hello,
             {|string||
              | def say_hello_to(s):
              |     print(f"hello {s}")
              |}).

Calling this predicate multiple times with the same Module and Source is a no-op. Called with a different source creates a new Python module that replaces the old in the global namespace.

Errors
- python_error(Type, Data) is raised if Python raises an error.