{ "info": { "author": "Andrew Walker", "author_email": "walker.ab@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "Cymbal\n======\n\nOverview\n--------\n\nCymbal makes it easy to add functionality missing from libclang Python bindings\n\nThe Clang `libclang python bindings` use `ctypes`_ to invoke functions present\nin libclang dynamic library. In some cases, only a subset of the C functions\nare available, because the platform or version specific Python bindings omit\nfunctions. Cymbal simplfies the process of dynamically adding those methods to\nTypes and Cursors.\n\n|license| |build| |coverage|\n\nUsage\n-----\n\nImport Cymbal, monkeypatch any required functions, adding appropriate ctypes\nannotations as necessary. \n\n.. code:: python\n\n import clang.cindex\n from clang.cindex import *\n import cymbal\n from ctypes import *\n\n # add functions omitted from the pip installable clang packages on OSX\n\n cymbal.monkeypatch_type('get_template_argument_type',\n 'clang_Type_getTemplateArgumentAsType',\n [Type, c_uint],\n Type)\n\n cymbal.monkeypatch_type('get_num_template_arguments',\n 'clang_Type_getNumTemplateArguments',\n [Type],\n c_int)\n\n\nRequirements\n------------\n\nThe only requirements are libclang and the python bindings for libclang.\n\nContributing\n------------\n\nIf you experience problems with Cymbal, `log them on GitHub`_. If you\nwant to contribute code, please `fork the code`_ and `submit a pull request`_.\n\nLicensing\n---------\n\nThis project builds on the work of the LLVM team and the University of Illinois\nat Urbana-Champaign, but is no way affiliated with either group.\n\n.. _libclang: http://clang.llvm.org/doxygen/group__CINDEX.html\n.. _libclang python bindings: https://github.com/llvm-mirror/clang/tree/master/bindings/python\n.. _log them on Github: https://github.com/AndrewWalker/cymbal/issues\n.. _ctypes: https://docs.python.org/2/library/ctypes.html\n.. _fork the code: https://github.com/AndrewWalker/cymbal\n.. _submit a pull request: https://github.com/AndrewWalker/cymbal/pulls\n\n.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg\n :target: https://raw.githubusercontent.com/andrewwalker/cymbal/master/LICENSE\n :alt: MIT License\n\n.. |build| image:: https://travis-ci.org/AndrewWalker/cymbal.svg?branch=master\n :target: https://travis-ci.org/AndrewWalker/cymbal\n :alt: Continuous Integration\n\n.. |coverage| image:: https://coveralls.io/repos/github/AndrewWalker/cymbal/badge.svg?branch=master\n :target: https://coveralls.io/github/AndrewWalker/cymbal?branch=master\n :alt: Coverage Testing Results", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/AndrewWalker/cymbal", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "cymbal", "package_url": "https://pypi.org/project/cymbal/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/cymbal/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/AndrewWalker/cymbal" }, "release_url": "https://pypi.org/project/cymbal/1.0.0/", "requires_dist": null, "requires_python": null, "summary": "Helps you add functionality missing from libclang Python bindings", "version": "1.0.0" }, "last_serial": 2103588, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "ad4d32d92449761432a934480d97591e", "sha256": "5ff334e1be271ba895c9f4ed8c0bf6e4aff4f011cf6cbc61a5d9edf3319a4e86" }, "downloads": -1, "filename": "cymbal-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ad4d32d92449761432a934480d97591e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5910, "upload_time": "2016-05-07T02:28:26", "url": "https://files.pythonhosted.org/packages/ba/c7/4eac7b0cb1f21938e69688c0b314f9691ad21aafabe186f9e8f0afbf9834/cymbal-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "06c6012b865789a66dabfe4898424bdb", "sha256": "1c79a00190bc8646505392b904e6e76410e98018f96f247ff7d363365241e2e0" }, "downloads": -1, "filename": "cymbal-1.0.0.tar.gz", "has_sig": false, "md5_digest": "06c6012b865789a66dabfe4898424bdb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4145, "upload_time": "2016-05-07T02:28:34", "url": "https://files.pythonhosted.org/packages/43/17/1c6a47859d59743941480d1709aa003a78fbbd8c0903b14ff4e7f9a775a7/cymbal-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ad4d32d92449761432a934480d97591e", "sha256": "5ff334e1be271ba895c9f4ed8c0bf6e4aff4f011cf6cbc61a5d9edf3319a4e86" }, "downloads": -1, "filename": "cymbal-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ad4d32d92449761432a934480d97591e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5910, "upload_time": "2016-05-07T02:28:26", "url": "https://files.pythonhosted.org/packages/ba/c7/4eac7b0cb1f21938e69688c0b314f9691ad21aafabe186f9e8f0afbf9834/cymbal-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "06c6012b865789a66dabfe4898424bdb", "sha256": "1c79a00190bc8646505392b904e6e76410e98018f96f247ff7d363365241e2e0" }, "downloads": -1, "filename": "cymbal-1.0.0.tar.gz", "has_sig": false, "md5_digest": "06c6012b865789a66dabfe4898424bdb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4145, "upload_time": "2016-05-07T02:28:34", "url": "https://files.pythonhosted.org/packages/43/17/1c6a47859d59743941480d1709aa003a78fbbd8c0903b14ff4e7f9a775a7/cymbal-1.0.0.tar.gz" } ] }