Initialises the Python DateTime API, the druntime, and creates the Python extension module
Reflects on the modules given and creates a Python module called libraryName with wrappers for all of the functions and types in each of the modules.
Returns a string with the module creation function for Python, i.e. the Python extension module's entry point. Needs to be a string mixin since Python knows which function is the entry point by name convention, where an extension module called "foo" needs to export a function PyInit_foo. "All" this function does is create a function with the appropriate name and stringify the arguments to pass to the function doing the heavy lifting: createPythonModule.
Returns a string to mixin that implements the necessary boilerplate to create a Python library containing one Python module wrapping all relevant D code and data structures.
Used in a module to ignore certain symbols
The name of the dynamic library, i.e. the file name with the .so/.dll extension
A module to automatically wrap. Usually not needed since a string will do, but is useful when trying to export all functions from a module by using Module("mymodule", Yes.alwaysExport) instead of "mymodule"
The list of modules to automatically wrap for consumption by other languages.
Code to be inserted after the call to module_init
Code to be inserted before the call to module_init
The D aggregates (structs/classes/enums) to be wrapped for Python. "Returned" as python.boilerplate.Aggregates
The C functions that Python is actually going to call, of the type PyObject* (PyObject* args, PyObject* kwargs). "Returned" as python.boilerplate.CFunctions, obtained by reflecting on the passed-in modules and synthethising the necessary functions by doing all conversions automatically.
Converts from mirror.meta.reflection.FunctionSymbol to the template CFunction from python.boilerplate. The reason identifier defaults to an empty string is because otherwise it doesn't compile if a regular D function symbol is passed.
Wrapping functionality for D to Python.