You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
heck 7d4b55e4df cc backend is pybind11 specific 5 years ago
..
bin repo and project structure 5 years ago
examples pEpACIDgen Make example extension (synth_shed) a complete py-project 5 years ago
pEpACIDgen cc backend is pybind11 specific 5 years ago
tests repo and project structure 5 years ago
LICENSE.txt gen-cid project structure and tests 5 years ago
MANIFEST.in Include data files in py-pkg 5 years ago
Makefile make hierarchy that can be documented 5 years ago
README.md repo and project structure 5 years ago
pyproject.toml gen-cid project structure and tests 5 years ago
setup.cfg repo and project structure 5 years ago
setup.py gen-cid project structure and tests 5 years ago

README.md

pEpACIDgen

pEpACIDgen stands for "pEp Abstract C Interface Description Generator"

pEpACIDgen generates an Abstract C Interface Defintion file (json or yml2) given the inputs:

  • headerfile
  • list of function names needed
  • list of var names needed

The generator searches each function/var in the headerfile (recursively) and collects all the types needed (var type, return type, parm types).
As structs can contain further types, these dependent types need to be collected recursively.
Finally, all the collected types will be resolved to their final underlying type. If a type is primitive, nothing needs to be done, cause its already defined. But types of typekind struct or enum need to be defined. Their definition will be searched for in the headerfile and included in the interface definition The ACID file (yml2) contains all the information needed to represent:

  • functions
  • vars
  • structs
  • enums

well enough so they can be expressed in pyBind11.
use "pyBind11-CID" to generate the pyBind11 code out of the ACID file.