where my Actual development of CCodeInline is a class implementation of the same idiom... Adding possibility to upgrade the skeleton, it also come with possibility to add Include header ( what was really missing inside the Initial boiler-plate of a good C extension of Python compiled code )
Some other story from my github can also comment more on development and what was achieved... But on 3 days of works it merely show a same-to-same comparison be achieved... Parsing is 90% complete and the inherent design like writing the code inside a temporary-path, building and loading module with imp is 100% ported from my class design... A Big Plus, More than one code can be inserted in a skeleton, and Include list ( Should ) follow... Example from the file inside the __main__ demonstrate it's capacity to keep the merged/parsed information and can be switched from a current skeleton to another...
So maybe another fews days, and the code will support many Parameter in entry, C/C++ function will have a choosen C/C++ parameter before compiling, Header-file will be fully integrated and Function itself will not throw an assert on entry-function parameter being only Int or float, PyObject, String and many more parameter will be accessible...
Also planned to be released on pypi.python.org, this one will be up and growing...
Example of Managing a Skeleton with CCodeInline:
Managing the Skeleton
### Main example to define some code , some skeleton-Index and calling the ### inline_debug . BInlineCode=r'''printf( "Program #%i: Hello world.\n", i ) ;''' BCode = CCodeInline( args=(1, ), py_types=(( int, 'i'),) ) ### Note, the object is ready and we only need to define a Skeleton ### with property SkeletonIndex BCode.SkeletonIndex = 1 BCode.AddSkeleton ### Also good if you do Errors by calling BCode.GenerateCode and parse tag and ### and realize there is an error inside the result, re-add the ### skeleton like this step to Initialize a Skeleton ### Just to sneak-out what inside to print a Generated/Parsed Skeleton ### you can call BCode.VarDefSkeleton property which is the active ### variable manager for current Skeleton print BCode.VarDefSkeleton ### Don't forget to add the code: BCode.FCCode = BInlineCode ### Did you add a malloc somewhere in your code.. Still need to add ### an Header ... BCode.IncludeHeaderType = 'internal' ### IncludeHeaderType one of two words, 'internal', 'external' ### Based on Standard, an internal header will be handled like this : #include <...> ### and external-one will look like this : #include '...' BCode.DictIncludeHeader = 'stdlib.h' ### Updating the Header list ready for parsing. BCode.UpdateIncludeHeader ### If you do like to see once again, call GenerateCode and you will see appear it inside ### the Include-Header section... BCode.GenerateCode()
X | Text may contains errors, syntax errors or lexical error... |
X | Now with SpellChecking and Editable text. Up to you to get something correct. |
1 No Interest 2 Somewhat good 3 Good 4 Special.