pack
argument forbuild_lib
to configure struct packingoverride
argument forbuild_lib
to configure whether repeated declarations are supported.
use_handle
flag for defining static midlevel methods- LibFunction kwarg support for Python 3.3 and later
- Path for community edition of Visual Studio (thanks @DerekK88)
- Fixed
to_py_src
to handle unsigned int, long int, and double constants- Consolidated warnings for un-pythonable macros
- Better support for libs with absolute paths
pycparser
extension for parsing C++isms- Warnings against using using
NiceObjectDef
and tuple-based Sigs - Support for
#include_next
directive - Lexing support for u/U/L-prefixed char literals
- Python source generation of char literals
- Include "include-fixed" directory in INCLUDE_DIRS
- Fixed error on fileless header parsing
- Fixed StopIteration issue caused by PEP 479
- Improved error message for invalid
LibFunction
input args - Fixed duplicate struct issue exposed by pycparser 2.19
- Fixed free_buf-related bug caused by typo (thanks @Gene2002)
- Support for custom-named build files
- Support for passing args to
build()
function (viaload_lib()
) - Support for passing only header source to
build_lib()
- Auto-casting to
void *
for arrays and pointer 'inout' args Sig
andArgHandler
systemRetHandler
system- Parsing and storing of C-function argnames
- Function signatures in
LibFunction
docstrings - Support for relative-path lookup of headers
- Support for loading low-level bindings without using a package
NiceObject
subclass definition-based syntax for definingNiceObject
subclasses (makes sense, right?)- Tests of argname parsing
- Tests of low- and mid-level bindings, using a toy
.so
library - Official support for "hybrid" functions--hand-written functions wrap an autogenerated midlevel binding
- New
LibMethod
object which is a bound-method version of aLibFunction
- Use per-module loggers
- Warn on missing env vars in header paths
- Overhauled internals of mid-level bindings system
NiceClassMeta
toNiceObjectMeta
- Use
NiceObjectMeta
as a metaclass forNiceObject
- Dropped TravisCI testing of Py 3.3 in favor of 3.6
- Begin transitioning to
_
-surrounded flag names, e.g._prefix
->_prefix_
, to make them prettier and more official-looking
- Never-completed mock system
- Support for searching for heaaders from multiple possible sets
- Automatic PyPI deployment via TravisCI
build_lib()
is now silent by default- Ignore bad or unsupported types during header processing
- Fix handling of lib paths
- Account for nonexistent attributes in FFI libs
- Fix handling of empty signature tuples
- Change error for missing functions into a warning
- Inject
funcname
intoret
- Support for Unicode headers
- Experimental support for specifying units that
len
sig handler uses - Strip prefixes of enum constants too
- Allow searching for a lib under multiple names/locations
- New logo
- Renamed
ret_wrap
to toret
for consistency - Fixed handling of nested structs/unions/enums in
struct_func_hook
- Use only one
cparser
. Speeds up parsing of large header sets dramatically - Fixed
init
arg handling forNiceObjectDef
- Fixed bug that prevented generation of func-like macros that had arguments
- Introduced
load_lib
- Introduce the
LibInfo
object and the_info
NiceLib class attribute 'bufout'
argtype and'buf_free'
setting'use_numpy'
setting for wrapping output arrays- 'Hooks' system for allowing user to hook into header processing at various points
- Allow specifying existing return-wrappers by name
- Binding auto-generation via
generate_bindings()
- Inject optional args into
ret_wrap
- Allow ignoring of various headers
- A bunch of tests
- Renamed
NiceObject
toNiceObjectDef
- Renamed
_err_wrap
to_ret_wrap
- Renamed
_lib
to__ffilib
- Fixed silly, horrible release bug that broke almost all wrapping of args
- Preprocessor now recognizes same common types as
cffi
- Prevent redefinition of struct/union/enum typedefs due to
pycparser
- Build and load lib using the correct directories
- Standardized settings/flags to be consistent across scopes
- Parse C code in chunks
- Fixed lexing of some missing and nonstandard tokens
- Some lexing performance improvements
- Keep unwrapped ffi funcs out of
dir(NiceFoo)
- Improved error output
- Python2/3 compatibility via
future
- Support for
#include
,#error
, and#warning
directives NiceObject
s- Convenient
build_lib()
function - Platform-specific macros/settings
- New signature types 'arr' and 'ignore'
- Support for
numpy
ndarray
s - Basic documentation
- Initial unit-tests and Travis CI support
- Support for calculated enum values
- Basic support for wrapping variadic functions
- Spun off
NiceLib
fromInstrumental