{ "info": { "author": "Andrew Walker", "author_email": "walker.ab@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "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", "Topic :: Software Development :: Compilers" ], "description": "====\nGlud \n====\n\nOverview\n========\n\n\nGlud is an abstraction on the libclang library that make matching fragments of\nthe Clang AST simple and Pythonic, in the same way that `libclangastmatchers`_\ndoes for the C++ Clang API. \n\n|license| |build| |coverage|\n\nExamples\n========\n\nOn the code snippet\n\n.. code:: cpp\n\n // input.cpp\n namespace X {\n class Y {};\n }\n class Y {};\n\nYou could match a class named X in the namespace Y with the matcher:\n\n.. code:: python\n\n from glud import *\n m = cxxRecordDecl(\n hasName('Y'),\n hasAncestor(namespaceDecl(hasName('X'))))\n tu = parse('input.cpp')\n matches = walk(m, tu.cursor)\n\n\nPrerequisites\n=============\n\nInstall a recent version of Clang and the python libclang bindings. On Ubuntu\nTrusty, you can install pre-built binaries from the LLVM apt repositories:\n\n.. code:: console\n\n wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -\n echo \"deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main\" | sudo tee -a /etc/apt/sources.list\n sudo apt-get update -qq\n sudo apt-get install -y python-clang-3.8 libclang1-3.8\n\nTo run glud, you'll need to make sure that libclang.so is on your loader path.\n\n.. code:: console\n\n export LD_LIBRARY_PATH=/usr/lib/llvm-3.8/lib\n\nInstalling\n==========\n\nYou can install the latest stable version from PyPI\n\n.. code:: console\n\n $ pip install glud\n\nOr, you can install the latest development version from GitHub\n\n.. code:: console \n\n $ pip install git+git://github.com/AndrewWalker/glud.git\n\n\n\nAcknowledgements\n================\n\nThis project is in no way affiliated with the LLVM Team or the University of\nIllinois at Urbana-Champaign.\n\nContributing\n============\n\nIf you experience problems with glud, `log them on GitHub`_. If you\nwant to contribute code, please `fork the code`_ and `submit a pull request`_.\n\n\n\n.. _libclangastmatchers: http://clang.llvm.org/docs/LibASTMatchersReference.html\n.. _log them on Github: https://github.com/AndrewWalker/glud/issues\n.. _fork the code: https://github.com/AndrewWalker/glud\n.. _submit a pull request: https://github.com/AndrewWalker/glud/pulls\n\n.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg\n :target: https://raw.githubusercontent.com/andrewwalker/glud/master/LICENSE\n :alt: MIT License\n\n.. |build| image:: https://travis-ci.org/AndrewWalker/glud.svg?branch=master\n :target: https://travis-ci.org/AndrewWalker/glud\n :alt: Continuous Integration\n\n.. |coverage| image:: https://coveralls.io/repos/github/AndrewWalker/glud/badge.svg?branch=master \n :target: https://coveralls.io/github/AndrewWalker/glud?branch=master\n :alt: Coverage Testing Results", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/AndrewWalker/glud", "keywords": "libclang,clang,AST", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "glud", "package_url": "https://pypi.org/project/glud/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/glud/", "project_urls": { "Homepage": "http://github.com/AndrewWalker/glud" }, "release_url": "https://pypi.org/project/glud/0.3.3/", "requires_dist": [ "asciitree", "clang" ], "requires_python": null, "summary": "Functional tools for matching nodes in the clang AST", "version": "0.3.3" }, "last_serial": 2246689, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "104403281983c84e76904f5042c09850", "sha256": "7823b864f9f223e94450720a9d7a1abecf2be4d2aaaa1c6c483e666d1400328a" }, "downloads": -1, "filename": "glud-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "104403281983c84e76904f5042c09850", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10895, "upload_time": "2016-05-10T23:58:52", "url": "https://files.pythonhosted.org/packages/a7/fa/8b6f31ba124ec1308c9c9a8b2d0a383443990ef16971a902c6b036473d20/glud-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d401cc26935ee70b9cf76aa823d11c6", "sha256": "4050c0e656c77cd2be6acddb3b35b0fdc7d6020095511cb4fcecb85840755904" }, "downloads": -1, "filename": "glud-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2d401cc26935ee70b9cf76aa823d11c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7205, "upload_time": "2016-05-10T23:59:07", "url": "https://files.pythonhosted.org/packages/26/ec/e059a8e851717bc2e6a34e1c11dbd249973a92c88a7311b2079efaba7069/glud-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "8097e905e873801dd2f715968a4b8ea1", "sha256": "9186e2f999a0c6bf7aef0fb62184b4ff79a3bdd37e1f18763ae78a568148a625" }, "downloads": -1, "filename": "glud-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8097e905e873801dd2f715968a4b8ea1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10990, "upload_time": "2016-05-11T05:19:30", "url": "https://files.pythonhosted.org/packages/d0/ad/3828f20a6fb4a1f6fc6fa20e0451e6dfed421f59746009369debc3bbbf8b/glud-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd946f4f7fdce1f25247b3230cb7b570", "sha256": "f6357c5f7f669eee88513ffc4f09881dad9f12622f9013c57f84f7d2f77090fe" }, "downloads": -1, "filename": "glud-0.2.0.tar.gz", "has_sig": false, "md5_digest": "fd946f4f7fdce1f25247b3230cb7b570", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7411, "upload_time": "2016-05-11T05:19:35", "url": "https://files.pythonhosted.org/packages/53/e5/235dad7ce60d45ee2dc23a026080fd974af16bd834f536fd44de8d91987f/glud-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "b3e5e2ba43747ee03b5f37b71fdf22ca", "sha256": "7202508a1a0ab89e4490c9e5c50fcb19f0b9137ade23ccba7a67cd3dc43fa093" }, "downloads": -1, "filename": "glud-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b3e5e2ba43747ee03b5f37b71fdf22ca", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11224, "upload_time": "2016-07-09T11:28:28", "url": "https://files.pythonhosted.org/packages/c7/1f/33974eff378bf0ee45680223ed64e63b0499830975f192cae92fa8fa8c7b/glud-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed27953a2fda98f5a1ab6e5c347233c8", "sha256": "b9dd97729ee26e9d8ed1c3a3b989aceca06f6aabc8bc8ff9b0afc3b98326c1b1" }, "downloads": -1, "filename": "glud-0.3.0.tar.gz", "has_sig": false, "md5_digest": "ed27953a2fda98f5a1ab6e5c347233c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7910, "upload_time": "2016-07-09T11:28:33", "url": "https://files.pythonhosted.org/packages/ad/e7/673ec5d9e1d1b450cc0742f752db46450356a6caaa65b3f6e51fd28071bf/glud-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "661506ea8294f330ec8d24bf4f83dc98", "sha256": "1b797850f7b99ccf507b3fc9ca950d9e7ee0236c8a8c09c7b49105417ed1d5e3" }, "downloads": -1, "filename": "glud-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "661506ea8294f330ec8d24bf4f83dc98", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11244, "upload_time": "2016-07-09T12:43:18", "url": "https://files.pythonhosted.org/packages/38/cf/38fe63b60b70966fa94ccb0a9c2c6476ce3d78d635c2806a74c03afed470/glud-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "85b356ae4bb96e32936103660fa7a559", "sha256": "f4575e913b439d3992767e7d484f809f99ab8cf1ec04b73a466205e201d4006e" }, "downloads": -1, "filename": "glud-0.3.1.tar.gz", "has_sig": false, "md5_digest": "85b356ae4bb96e32936103660fa7a559", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7935, "upload_time": "2016-07-09T12:43:24", "url": "https://files.pythonhosted.org/packages/6c/e6/64ee1874e9bf20b8d501027946e8b8592baaee831fcc53751300fbccbd40/glud-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "b9b41c6438687bf018125944f78fbe49", "sha256": "78c73b16711feae6acb490a0133ac9ef8bbbf7522cd6794a7f75fc5785952ae6" }, "downloads": -1, "filename": "glud-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9b41c6438687bf018125944f78fbe49", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11241, "upload_time": "2016-07-10T11:07:20", "url": "https://files.pythonhosted.org/packages/67/8b/157a5357e352ce456aafe76ec9e2d53a2e9b2194bbf8528d05e5ef49ad7a/glud-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4fc442261fd4f096b52e8354235c86b", "sha256": "b402ae05cf52688b68794bfe3823e3d2ae6fb5e7459c239c2a28fbf080febd84" }, "downloads": -1, "filename": "glud-0.3.2.tar.gz", "has_sig": false, "md5_digest": "c4fc442261fd4f096b52e8354235c86b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7985, "upload_time": "2016-07-10T11:07:24", "url": "https://files.pythonhosted.org/packages/67/eb/72bbb637250dece6200259071a804406f7fa35d73530ea59ee0150600c81/glud-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "69050dd7b6209f0c3b2d34581a1b7a3d", "sha256": "7e6a7ab7a328d2c90c7b87ad5076b44df7affd38ca2a6667a5cf7f89b22c7915" }, "downloads": -1, "filename": "glud-0.3.3.tar.gz", "has_sig": false, "md5_digest": "69050dd7b6209f0c3b2d34581a1b7a3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7972, "upload_time": "2016-07-10T11:37:50", "url": "https://files.pythonhosted.org/packages/27/90/3d98276c41c0f8101ecab2c514b8b2ff5234bb0e639bf2d0d8f13534fb01/glud-0.3.3.tar.gz" } ], "0.4.0rc5": [ { "comment_text": "", "digests": { "md5": "f519a4d560020798a6ecfe7f8c180ca1", "sha256": "7e4ff667adcd1f6a9483ae90b564de27c813079c60cbdd46850c050ff30a55c4" }, "downloads": -1, "filename": "glud-0.4.0rc5.tar.gz", "has_sig": false, "md5_digest": "f519a4d560020798a6ecfe7f8c180ca1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8616, "upload_time": "2016-07-27T11:40:12", "url": "https://files.pythonhosted.org/packages/08/36/bc3fb12346901d2cc381da3a7a953fbeb1f6c7daf372f55d5b9fbe1cc504/glud-0.4.0rc5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "69050dd7b6209f0c3b2d34581a1b7a3d", "sha256": "7e6a7ab7a328d2c90c7b87ad5076b44df7affd38ca2a6667a5cf7f89b22c7915" }, "downloads": -1, "filename": "glud-0.3.3.tar.gz", "has_sig": false, "md5_digest": "69050dd7b6209f0c3b2d34581a1b7a3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7972, "upload_time": "2016-07-10T11:37:50", "url": "https://files.pythonhosted.org/packages/27/90/3d98276c41c0f8101ecab2c514b8b2ff5234bb0e639bf2d0d8f13534fb01/glud-0.3.3.tar.gz" } ] }