ctypeslib1
Convert header files to xml intermediates xml2py - convert xml intermediates to python ctypes interface
Usage
h2xml includefile ...
[options]
-o
outputxmlfile
xml2py xmlfile ...
[options]
-o
outputpyfile
Overview
ctypeslib is a Python code generator capable of converting C header files into xml files (using gccxml), and then converting the xmlfiles into Python modules which define a ctypes interface to the corresponding C library.
Ctypeslib is not ctypes. Ctypes is included in Python 2.5+ and as an add-on for lower versions, while ctypeslib is a lesser known add-on written by the ctypes author. If you use ctypes a lot and are tired of setting argtypes and restype of the called functions, you should look into ctypeslib. Ctypeslib can also set up data types and structures from C header files automatically.
h2xml and xml2py are the user interface scripts to ctypeslib. h2xml converts C header files into xml intermediates (using gccxml) and xml2py converts these intermediates to Python files. At the minimum, you can get automatic construction of the C types (structures, etc) in ctypes definitions. With extra options, macro definitions can be expanded and the output Python file can be automatically linked (using ctypes) to the corresponding C library.
The briefest example is:
h2xml header.h -o out_c.xml
xml2py out_c.xml -o out_c.py
To obtain preprocessor symbols, you must use the -c flag to h2xml. To automatically link to C libraries via ctypes, you muss pass the relevant libraries to xml2py with -l library.so.
Options
h2xml options:
-
-h, --help -
show brief help message
-q, --quiet
-
-D NAME[=VALUE] -
macros to define
-
-U NAME -
macros to undefine
-
-I DIRECTORY -
additional include directories
-
-o XMLFILE -
XML output filename
-
-c, --cpp-symbols -
try to find #define symbols - this may give compiler errors, so it's off by default.
-
-k -
don't delete the temporary files created (useful for finding problems)
xml2py options:
-
-h, --help -
show this help message and exit
-
-c -
include source file location in comments
-
-d -
include docstrings containing C prototype and source file location
-
-k TYPEKIND -
kind of type descriptions to include: d = #defines, e = enumerations, f = functions, s = structures, t = typedefs
-
-l DLLS -
libraries to search for exported functions
-
-o OUTPUT -
output filename (if not specified, standard output will be used)
-
-r EXPRESSION -
regular expression for symbols to include (if neither symbols nor expressions are specified,everything will be included)
-
-s SYMBOL -
symbol to include (if neither symbols nor expressions are specified,everything will be included)
-
-v -
verbose output
-
-w -
add all standard windows dlls to the searched dlls list
-
-m module -
Python module(s) containing symbols which will be imported instead of generated
-
--preload=DLL -
dlls to be loaded before all others (to resolve symbols)
Examples
Please see /usr/share/doc/python-ctypeslib/examples.Debian for examples and explanation.
Releases
3 releases since Debian 6.0 (Squeeze); the text changed 1 time.