{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Software Development :: Quality Assurance" ], "description": "========\ncppclean\n========\n\n.. image:: https://travis-ci.org/myint/cppclean.svg?branch=master\n :target: https://travis-ci.org/myint/cppclean\n :alt: Build status\n\n\nGoal\n====\n\ncppclean attempts to find problems in C++ source that slow development\nin large code bases, for example various forms of unused code.\nUnused code can be unused functions, methods, data members, types, etc\nto unnecessary #include directives. Unnecessary #includes can cause\nconsiderable extra compiles increasing the edit-compile-run cycle.\n\nThis is a fork of the original cppclean project. The original project home\npage, which no longer contains code, is at https://code.google.com/p/cppclean/.\n\n\nFeatures\n========\n\ncppclean finds the following:\n\n- Classes with virtual methods, no virtual destructor, and no bases\n- Global/static data that are potential problems when using threads\n- Functions that are declared but not defined\n- Unnecessary forward class declarations\n- Unnecessary function declarations\n- Undeclared function definitions\n- Unnecessary #includes in header files\n - No direct reference to anything in the header\n - Header is unnecessary if classes were forward declared instead\n- Inconsistent case in #includes (``foo.h`` versus ``Foo.h``)\n- (planned) Unnecessary #includes in source files\n- (planned) Source files that reference headers not directly #included,\n ie, files that rely on a transitive #include from another header\n- (planned) Unused members (private, protected, & public) methods and data\n- (planned) ``using namespace std`` in header files\n- (planned) Methods that are declared but not defined\n\nAST is Abstract Syntax Tree, a representation of parsed source code\n(https://en.wikipedia.org/wiki/Abstract_syntax_tree).\n\n\nInstallation\n============\n\n::\n\n $ pip install --upgrade cppclean\n\n\nRun\n===\n\n::\n\n $ cppclean \n\n\nMultiple include paths can be specified::\n\n $ cppclean --include-path=directory1 --include-path=directory2 \n\n\nCurrent status\n==============\n\nThe parser works pretty well for header files, parsing about 99% of Google's\nheader files. Anything which inspects structure of C++ source files should\nwork reasonably well. Function bodies are not transformed to an AST,\nbut left as tokens.\n\n\nNon-goals\n=========\n\n- Parsing all valid C++ source\n- Handling invalid C++ source gracefully\n- Compiling to machine code (or anything beyond an AST)\n\n\nLinks\n=====\n\n* Coveralls_\n\n.. _`Coveralls`: https://coveralls.io/r/myint/cppclean", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/myint/cppclean", "keywords": "", "license": "Apache license", "maintainer": "", "maintainer_email": "", "name": "cppclean", "package_url": "https://pypi.org/project/cppclean/", "platform": "", "project_url": "https://pypi.org/project/cppclean/", "project_urls": { "Homepage": "https://github.com/myint/cppclean" }, "release_url": "https://pypi.org/project/cppclean/0.13/", "requires_dist": null, "requires_python": "", "summary": "Find problems in C++ source that slow development of large code bases.", "version": "0.13" }, "last_serial": 5607389, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "9910bf87cc788b6972dd9abc9337025a", "sha256": "13125d509c6c83931811898ea5d9d9dd6e94f65bdf79a3f9d7e8c8e91922b8c1" }, "downloads": -1, "filename": "cppclean-0.1.1.tar.gz", "has_sig": false, "md5_digest": "9910bf87cc788b6972dd9abc9337025a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26264, "upload_time": "2013-09-20T18:54:41", "url": "https://files.pythonhosted.org/packages/16/42/3d5bc7cee60b72d838cc7b8c5831a75965c918afcdc8408a71e91b9dbc91/cppclean-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "891464fd92330e15b4e444f7c1c05122", "sha256": "9be512c0de63f3856ccb540e9be00a2c44890e0083454be96e759bcc4e7a7260" }, "downloads": -1, "filename": "cppclean-0.1.2.tar.gz", "has_sig": false, "md5_digest": "891464fd92330e15b4e444f7c1c05122", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29865, "upload_time": "2013-09-28T16:04:41", "url": "https://files.pythonhosted.org/packages/a3/9d/1897bd90138cb364073837ef0b77c4d3111adf35e3af337153c5809a1b49/cppclean-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "43cb4ac499ae0c8ada1e71b320a56686", "sha256": "a516694c54486e29fe887953bc14077fcb7aad2dc9d38bd69c134cec206fae10" }, "downloads": -1, "filename": "cppclean-0.1.3.tar.gz", "has_sig": false, "md5_digest": "43cb4ac499ae0c8ada1e71b320a56686", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30161, "upload_time": "2013-09-29T23:04:11", "url": "https://files.pythonhosted.org/packages/a2/a0/d1af489f8247ab7d4ea1d03db260c22cbf55a608708ae57867afa35ce489/cppclean-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "65e6ece6db48d5a44f2cdad15b97fccb", "sha256": "fd52aeebc60102d2194c035a06c3f0aa90a4992a239c92e60d5d479262908132" }, "downloads": -1, "filename": "cppclean-0.1.4.tar.gz", "has_sig": false, "md5_digest": "65e6ece6db48d5a44f2cdad15b97fccb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30116, "upload_time": "2013-10-04T20:56:19", "url": "https://files.pythonhosted.org/packages/a7/87/7318b922469191cb5cd475df56144999bf6614ffd4bb5b9d4efe22fe1a1a/cppclean-0.1.4.tar.gz" } ], "0.10": [ { "comment_text": "", "digests": { "md5": "905b57cc6cd534579165a48245c82804", "sha256": "b368ebf9a30b766e36c0ef0cc24e58ecc9d2b40a032881fdab8e7f1e39eee8ec" }, "downloads": -1, "filename": "cppclean-0.10.tar.gz", "has_sig": false, "md5_digest": "905b57cc6cd534579165a48245c82804", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29165, "upload_time": "2016-06-04T02:35:42", "url": "https://files.pythonhosted.org/packages/c8/e7/d551892c2879abd7fa45614472a6df388728b2b4934f717a5ac340d49e2e/cppclean-0.10.tar.gz" } ], "0.11": [ { "comment_text": "", "digests": { "md5": "c7c5ca9db64a2e1c1dd9eaae4ad2c47d", "sha256": "b99fc447b26f99c6098ec873e75747cf9422d3b2097d5ec7ad3e1c89979cd913" }, "downloads": -1, "filename": "cppclean-0.11.tar.gz", "has_sig": false, "md5_digest": "c7c5ca9db64a2e1c1dd9eaae4ad2c47d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29135, "upload_time": "2016-07-08T17:39:35", "url": "https://files.pythonhosted.org/packages/a6/b0/71da2d595a99553668a7b3840d79b814c84098805ecf3d70bf6e17bc54e9/cppclean-0.11.tar.gz" } ], "0.12": [ { "comment_text": "", "digests": { "md5": "ae538ca51f3af3e49890610b3236afb1", "sha256": "59605ea292485f8e19b36b375dc4371443645b03da3798c7b8f00f9babc6e016" }, "downloads": -1, "filename": "cppclean-0.12.tar.gz", "has_sig": false, "md5_digest": "ae538ca51f3af3e49890610b3236afb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29221, "upload_time": "2016-08-07T19:14:33", "url": "https://files.pythonhosted.org/packages/5d/b6/add9db6792f6a2f1fe09341a668deda702e1d8c6b893d867c387fe28ec49/cppclean-0.12.tar.gz" } ], "0.13": [ { "comment_text": "", "digests": { "md5": "3dc2f4f4ae0001ed3eaa377a3107c68d", "sha256": "704e844f4340d4fd5bcaa9cd0095389d348f11548628f7054d8eb95463d72109" }, "downloads": -1, "filename": "cppclean-0.13.tar.gz", "has_sig": false, "md5_digest": "3dc2f4f4ae0001ed3eaa377a3107c68d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31147, "upload_time": "2019-07-30T12:19:46", "url": "https://files.pythonhosted.org/packages/e3/72/f19e794a81dcbfe637a4e8b10b5de12a5cd798ae63653b4fb05886db2bb7/cppclean-0.13.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "001f18b0473029037cf474ea6446a346", "sha256": "6d6e16fcc7645e77b3c4819c1bd7bce700e9439eec2b47d4c9ac28f0c9a69f5c" }, "downloads": -1, "filename": "cppclean-0.2.tar.gz", "has_sig": false, "md5_digest": "001f18b0473029037cf474ea6446a346", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30251, "upload_time": "2013-11-02T14:31:51", "url": "https://files.pythonhosted.org/packages/ad/fb/f018f86fe779a5578ad54ab49dc5e524b5b58419fe9a97d276b70cace0b0/cppclean-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "78ea2aa24bef432d423beff2ac9e5db9", "sha256": "1ebbfd2c6fc2bc49cb564fe2f2ecde6a973e8dcfc19baafbac8fe3e17baed22b" }, "downloads": -1, "filename": "cppclean-0.2.1.tar.gz", "has_sig": false, "md5_digest": "78ea2aa24bef432d423beff2ac9e5db9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30212, "upload_time": "2013-11-16T16:27:09", "url": "https://files.pythonhosted.org/packages/e2/38/b99c358e5e53cc99b299f87f27eb7731ad72c0ad63e81433353ae0fbed44/cppclean-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "c32353ad37eff8a8c2b050182f67f0a8", "sha256": "43a7e2480494659f925a7bff3fe6bdb2e7d9a8f1af487e0735f761b8be24ba66" }, "downloads": -1, "filename": "cppclean-0.2.2.tar.gz", "has_sig": false, "md5_digest": "c32353ad37eff8a8c2b050182f67f0a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30023, "upload_time": "2014-01-11T19:21:00", "url": "https://files.pythonhosted.org/packages/ac/ca/9606f290b9c5923d01fd67b192352881f62d60e922700107208f89cfe8cd/cppclean-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "3b5bce6df3b5ba2ad03fed3a69d23678", "sha256": "dc8eb1e778e2792fa641015f12e60f0036addb7c9c1b8541a23f4d45a73b6c59" }, "downloads": -1, "filename": "cppclean-0.2.3.tar.gz", "has_sig": false, "md5_digest": "3b5bce6df3b5ba2ad03fed3a69d23678", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30101, "upload_time": "2014-01-22T04:32:17", "url": "https://files.pythonhosted.org/packages/61/95/f71993a4fd6ca062871b1cd71d5e691a993145ce889039a85fcb83a5f105/cppclean-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "275d3ec696656fa83d48f939859bb2c7", "sha256": "21d3994cfe91a990d35b14a7211bc7550f7d8c7844876b921b51c314770d4706" }, "downloads": -1, "filename": "cppclean-0.2.4.tar.gz", "has_sig": false, "md5_digest": "275d3ec696656fa83d48f939859bb2c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30191, "upload_time": "2014-03-01T16:20:01", "url": "https://files.pythonhosted.org/packages/8e/ac/22134f769ff52888884887421078ded675d4d90d4cdf1f558fd1411e6147/cppclean-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "2c8e9e09c0f90ce7b44966bbe47fe9cb", "sha256": "ef645dfaf9548078a7b544243cd1ec04cc807ef717faf6b704a5ed0a20edc247" }, "downloads": -1, "filename": "cppclean-0.2.5.tar.gz", "has_sig": false, "md5_digest": "2c8e9e09c0f90ce7b44966bbe47fe9cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30370, "upload_time": "2014-04-04T15:54:25", "url": "https://files.pythonhosted.org/packages/4e/56/fd07e216d66958946f17d0da0375e5d7fb0a58a2c603bbc3f1f9cdb145b3/cppclean-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "feb704abe0804fdf4ad7b65f9bd82c58", "sha256": "101aafe19a9f0608482d52b9069dc83a45858428d2c2bc23474a6b40b2ce39db" }, "downloads": -1, "filename": "cppclean-0.2.6.tar.gz", "has_sig": false, "md5_digest": "feb704abe0804fdf4ad7b65f9bd82c58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30423, "upload_time": "2014-10-10T14:25:33", "url": "https://files.pythonhosted.org/packages/4c/21/9b938a0f5095075202d377824ee0851020ffd5e6d7f53cbf35f124f02bfe/cppclean-0.2.6.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "a5c659c6cc87665892e411297204c369", "sha256": "2f9866378bafd27876ee54d0dce74d9a6f87612d66f7a1afc2aed6b023230f31" }, "downloads": -1, "filename": "cppclean-0.3.tar.gz", "has_sig": false, "md5_digest": "a5c659c6cc87665892e411297204c369", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30280, "upload_time": "2015-07-28T15:32:38", "url": "https://files.pythonhosted.org/packages/65/6b/7d735ffd4d9c60fff337990e87fe1d5713273b24922f40f3a86214bac1c9/cppclean-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "cad3b0d5651c1b3c4dbbec2e80d0b771", "sha256": "3a252642f632581d70e7e172ddc7561ab1f12991a5478afce19d1ef0de76df12" }, "downloads": -1, "filename": "cppclean-0.4.tar.gz", "has_sig": false, "md5_digest": "cad3b0d5651c1b3c4dbbec2e80d0b771", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29809, "upload_time": "2015-08-04T14:44:03", "url": "https://files.pythonhosted.org/packages/18/be/cbf5ef8e7ba017b5d6260471cc94191efb5862f30365facec3c91c06d519/cppclean-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "8d9795b73613aca9345411ac96af2168", "sha256": "7cc8f582c1c5cab510c61d27a4be891b59f7be26c7cc7e63141c66f394a9dc51" }, "downloads": -1, "filename": "cppclean-0.5.tar.gz", "has_sig": false, "md5_digest": "8d9795b73613aca9345411ac96af2168", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29541, "upload_time": "2015-09-23T13:38:35", "url": "https://files.pythonhosted.org/packages/5b/82/57e5d039a7cbaecebeeb7f82249fa0006efc738208aab017b690b23a8c38/cppclean-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "be616e0d524221e5036b68decbfecfed", "sha256": "d55b540a3ef5885df985cc1321650b6454c01fc4f25e3385f211daccde275fce" }, "downloads": -1, "filename": "cppclean-0.6.tar.gz", "has_sig": false, "md5_digest": "be616e0d524221e5036b68decbfecfed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29718, "upload_time": "2015-11-15T00:06:28", "url": "https://files.pythonhosted.org/packages/87/93/a8fe36b1fd6b2e37414cab4c0503b93e84f0ba9a5a2dffbaaf0bb088a628/cppclean-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "8a0e665139c17ff0382df45cdfa1c0b8", "sha256": "18c8464238b1329973d54f741070ad693e3938589f4747ab7f3615a15d1d659c" }, "downloads": -1, "filename": "cppclean-0.7.tar.gz", "has_sig": false, "md5_digest": "8a0e665139c17ff0382df45cdfa1c0b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29850, "upload_time": "2015-12-02T16:36:37", "url": "https://files.pythonhosted.org/packages/e4/ca/11583cd8813e80e29a4a46980a2d9ef2ff5a3fe3391f849f84e0ebc902ee/cppclean-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "4ab3814207dee73d34d9e87f110431ca", "sha256": "b345e9359c6db2088b77dd6325cecc22b9e7b3dd27a8c1c48329732a4313ae46" }, "downloads": -1, "filename": "cppclean-0.8.tar.gz", "has_sig": false, "md5_digest": "4ab3814207dee73d34d9e87f110431ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28840, "upload_time": "2016-01-12T15:17:01", "url": "https://files.pythonhosted.org/packages/39/40/6f83a816bb5e54afe5a3c1ac5fe9853b1edbf8a6ba75333ad65dea41e4f4/cppclean-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "fe5bb7b38ed56576682d66073570fb81", "sha256": "529b00aa8ef8c25410eca295d207a7ec3bbf802bcf2b8ad1d6e239a7196b322a" }, "downloads": -1, "filename": "cppclean-0.9.tar.gz", "has_sig": false, "md5_digest": "fe5bb7b38ed56576682d66073570fb81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28926, "upload_time": "2016-02-13T19:12:01", "url": "https://files.pythonhosted.org/packages/57/72/78864fde42bfaea25569deea2e25b2babe5da59dc67375e91ee9a24feea7/cppclean-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3dc2f4f4ae0001ed3eaa377a3107c68d", "sha256": "704e844f4340d4fd5bcaa9cd0095389d348f11548628f7054d8eb95463d72109" }, "downloads": -1, "filename": "cppclean-0.13.tar.gz", "has_sig": false, "md5_digest": "3dc2f4f4ae0001ed3eaa377a3107c68d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31147, "upload_time": "2019-07-30T12:19:46", "url": "https://files.pythonhosted.org/packages/e3/72/f19e794a81dcbfe637a4e8b10b5de12a5cd798ae63653b4fb05886db2bb7/cppclean-0.13.tar.gz" } ] }