Metadata-Version: 1.1
Name: cymbal
Version: 1.0.0
Summary: Helps you add functionality missing from libclang Python bindings
Home-page: http://github.com/AndrewWalker/cymbal
Author: Andrew Walker
Author-email: walker.ab@gmail.com
License: MIT
Description: Cymbal
        ======
        
        Overview
        --------
        
        Cymbal makes it easy to add functionality missing from libclang Python bindings
        
        The Clang `libclang python bindings` use `ctypes`_ to invoke functions present
        in libclang dynamic library.  In some cases, only a subset of the C functions
        are available, because the platform or version specific Python bindings omit
        functions.  Cymbal simplfies the process of dynamically adding those methods to
        Types and Cursors.
        
        |license| |build| |coverage|
        
        Usage
        -----
        
        Import Cymbal, monkeypatch any required functions, adding appropriate ctypes
        annotations as necessary. 
        
        .. code:: python
        
            import clang.cindex
            from clang.cindex import *
            import cymbal
            from ctypes import *
        
            # add functions omitted from the pip installable clang packages on OSX
        
            cymbal.monkeypatch_type('get_template_argument_type',
                                    'clang_Type_getTemplateArgumentAsType',
                                    [Type, c_uint],
                                    Type)
        
            cymbal.monkeypatch_type('get_num_template_arguments',
                                    'clang_Type_getNumTemplateArguments',
                                    [Type],
                                    c_int)
        
        
        Requirements
        ------------
        
        The only requirements are libclang and the python bindings for libclang.
        
        Contributing
        ------------
        
        If you experience problems with Cymbal, `log them on GitHub`_. If you
        want to contribute code, please `fork the code`_ and `submit a pull request`_.
        
        Licensing
        ---------
        
        This project builds on the work of the LLVM team and the University of Illinois
        at Urbana-Champaign, but is no way affiliated with either group.
        
        .. _libclang: http://clang.llvm.org/doxygen/group__CINDEX.html
        .. _libclang python bindings: https://github.com/llvm-mirror/clang/tree/master/bindings/python
        .. _log them on Github: https://github.com/AndrewWalker/cymbal/issues
        .. _ctypes: https://docs.python.org/2/library/ctypes.html
        .. _fork the code: https://github.com/AndrewWalker/cymbal
        .. _submit a pull request: https://github.com/AndrewWalker/cymbal/pulls
        
        .. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg
           :target: https://raw.githubusercontent.com/andrewwalker/cymbal/master/LICENSE
           :alt: MIT License
        
        .. |build| image:: https://travis-ci.org/AndrewWalker/cymbal.svg?branch=master
           :target: https://travis-ci.org/AndrewWalker/cymbal
           :alt: Continuous Integration
        
        .. |coverage| image:: https://coveralls.io/repos/github/AndrewWalker/cymbal/badge.svg?branch=master
           :target: https://coveralls.io/github/AndrewWalker/cymbal?branch=master
           :alt: Coverage Testing Results
        
        
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
