{ "info": { "author": "Da_Blitz", "author_email": "code@blitz.works", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", "Topic :: Software Development :: Testing" ], "description": "======\nicheck\n======\n\n\"Because syntax checking should happen on file writes, not VCS commits\"\n\nquick (or not so quick) and dirty tool to run syntax checking and doc tests\non python code in a separate screen window\n\nFeatures\n---------\n* Syntax check files\n* Doc test files\n* Call a command on syntax failures\n* terminal bell\n* filter files by hashbang and globs\n* color output with tty detection\n* multiple output formats (oneline, short and long)\n* Supports python2 and python3\n\nThis program was mainly written to assist me in developing python code and \nletting me know a couple of seconds before i try and run my program that there \nare basic syntax mistakes in the code.\n\nto achieve this inotify is used to wait for files to be written to and then if \nall pre conditions are fine (globs and hashbangs) then a syntax check is \nexecuted. on an error a message is printed and it moves on to the next file\n\nBy using the 'bell' facility the window running check does not have to be \nvisible to the programmer and instead a message will be printed in the message \nline on error indicating attention may be required, allowing screen to be used \nas the windowing component of a flexible IDE setup\n\nExamples\n---------\nTo check a directory for file changes and run syntax checks on file save try \nthe following command\n\n $ icheck -b ~/code/icheck/icheck/\n\nThis will 'ring the bell' in the terminal on file changes that are \nsyntactically incorrect. in screen this causes a 'bell in window x' message to \nbe displayed at the bottom of the screen for all files in the directory\n\nTo limit ourselves to just scanning .py files (sounds like a good idea!) we can \nadd a filter based on filename with the '-g' flag\n\n $ icheck -b -g '\\*.py' ~/code/icheck/icheck/\n\nOptionally we can filter based on the hash-bang at the beginning of the file \nwith '-s' this defaults to looking for the string 'python' however this can be \nchanged by specifying it after the '-s' flag. This is applied in an 'AND' \nfashion with the '-g' flag so that the file extension AND the shebang need to \nmatch. if only one detection method is desired then only use one flag or \noptionally use neither detection and specify exactly which files you want to \nwatch (ie specifying files on the cmdline rather than the directory they are \ncontained in)\n \n \nLimitations\n------------\n* At this point in time file watching is not recursive, creating directories \n does not cause them to be watched. It is assumed that the project layout that \n you are watching is mostly static for the time being. to watch \n sub-directories try the command below\n\n $ icheck ~/code/icheck/icheck ~/code/icheck/icheck/\\*/\n* Docstring checking imports your modules, if you run your code in a virtualenv\n with libs not avalible to the system then import errors may occur. to prevent\n this install and run icheck from your virtualenv\n\n\n.. :changelog:\n\nRelease History\n---------------\n\n1.8 (2015-08-29)\n++++++++++++++++\n- Run Doctests as well as syntax checking\n\n1.7 (2015-08-15)\n++++++++++++++++\n\n**Bug Fixes**\n\n- Errors on the last line of a src file would crash the checker\n\n1.6 (2014-10-24)\n++++++++++++++++\n\n**Bug Fixes**\n\n- Certain conditions would prevent a variable that was used from being set/create\n\n1.5 (2014-10-24)\n++++++++++++++++\n\n- Fixed up some links in setup.py\n- Add reason why the syntax check failed to output, where available\n\n1.4 (2014-10-24)\n++++++++++++++++\n\n- Check on file close rather than write to avoid partial files\n\n1.3 (2014-10-20)\n++++++++++++++++\n\n- Add python 2.7 compatibility\n\n1.2.1 (2014-10-20)\n++++++++++++++++++\n\n**Bug Fixes**\n\n- Fix packaging again and convert to module, now installs correctly\n\n1.2 (2014-10-20)\n++++++++++++++++\n\n**Bug Fixes**\n\n- Fix packaging so setup.py is included again\n\n1.1 (2014-10-20)\n++++++++++++++++\n\n- Change-log now appended to project description\n\n**Bug Fixes**\n\n- Fixed (one) race condition on checking hashbang\n- Fixed up entry point to eat stack trace on Keyboard Interrupt\n\n1.0 (2014-10-19)\n++++++++++++++++\n\n- Initial Release", "description_content_type": null, "docs_url": null, "download_url": "http://blitz.works/icheck/archive/tip.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://blitz.works/icheck", "keywords": "butter syntax check test doctest", "license": "MIT BSD", "maintainer": null, "maintainer_email": null, "name": "icheck", "package_url": "https://pypi.org/project/icheck/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/icheck/", "project_urls": { "Download": "http://blitz.works/icheck/archive/tip.zip", "Homepage": "http://blitz.works/icheck" }, "release_url": "https://pypi.org/project/icheck/1.8/", "requires_dist": null, "requires_python": null, "summary": "Syntax checker for python using inotify", "version": "1.8" }, "last_serial": 1713062, "releases": { "0.1": [], "1.0": [ { "comment_text": "", "digests": { "md5": "0b67fd3a393fe212654d8da43ba0e1fc", "sha256": "4725abfa6b7819a3c6464a4053136ed3f39eaa930d026d9dc75961ce18d15530" }, "downloads": -1, "filename": "icheck-1.0.tar.bz2", "has_sig": false, "md5_digest": "0b67fd3a393fe212654d8da43ba0e1fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4081, "upload_time": "2014-10-18T16:30:43", "url": "https://files.pythonhosted.org/packages/70/e0/6d9671b2bc10e531114b15bd7152896eef56a23ad039aa92166442d5e5e7/icheck-1.0.tar.bz2" }, { "comment_text": "", "digests": { "md5": "2c24334d15057914726d41f8d1a1321e", "sha256": "948f6307641071bacab8534f507f3d99f9969d0428e25661bc9bae9a132f2935" }, "downloads": -1, "filename": "icheck-1.0.zip", "has_sig": false, "md5_digest": "2c24334d15057914726d41f8d1a1321e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6443, "upload_time": "2014-10-18T16:30:40", "url": "https://files.pythonhosted.org/packages/b6/de/c1e2b5892a551edaaaef1b18bf902c41789fccdda2f23bb3555df47af612/icheck-1.0.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "332954bb20d6fa9783af0b234d3cd040", "sha256": "452f5540ebadf75f9f65c81730f467f9a8c352d57e7c5cbfdc0767ae2a2d6e31" }, "downloads": -1, "filename": "icheck-1.1.tar.bz2", "has_sig": false, "md5_digest": "332954bb20d6fa9783af0b234d3cd040", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4386, "upload_time": "2014-10-19T18:34:42", "url": "https://files.pythonhosted.org/packages/0a/36/6fa02d79337d6a2d80047dc77c0ffdba102a73951b08ba9fc4d3c03ed938/icheck-1.1.tar.bz2" }, { "comment_text": "", "digests": { "md5": "db5619101cb6e06e420ab69b5a6bbd30", "sha256": "6df53cbc5f3ce8635aae8d1f098cc4e42a2696c0427b3e50faaf96236354c2c6" }, "downloads": -1, "filename": "icheck-1.1.zip", "has_sig": false, "md5_digest": "db5619101cb6e06e420ab69b5a6bbd30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6911, "upload_time": "2014-10-19T18:34:45", "url": "https://files.pythonhosted.org/packages/7d/f4/e3185787ca6c6660d8816aeb93bcd3da0d58d2bcea2befafae5915440a51/icheck-1.1.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "48484ba14d1242a3a144e49b085612e5", "sha256": "f2cac11802c08c55175c6dfa7c17ec41992d18b5f1f24031a1743e202d1e3841" }, "downloads": -1, "filename": "icheck-1.2.tar.bz2", "has_sig": false, "md5_digest": "48484ba14d1242a3a144e49b085612e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5210, "upload_time": "2014-10-20T04:14:30", "url": "https://files.pythonhosted.org/packages/03/8d/9a3c4934c7f4c98f22c9d4d66269c17e7ea578c965a7325264cd99c48616/icheck-1.2.tar.bz2" }, { "comment_text": "", "digests": { "md5": "ebc6fa9929d95b801a60b66dd0ed9d9a", "sha256": "159b5b57a4f323e9c211b68fcc857ebf3a212042a3af407caf0e12b121515508" }, "downloads": -1, "filename": "icheck-1.2.zip", "has_sig": false, "md5_digest": "ebc6fa9929d95b801a60b66dd0ed9d9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8270, "upload_time": "2014-10-20T04:14:35", "url": "https://files.pythonhosted.org/packages/3d/ad/25d5a592759502052ec740a9fbbd110ba35ad84031af1a437bbca745eee2/icheck-1.2.zip" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "1170d4c82a0e55d57ff54eaaa4afc578", "sha256": "dec205e96ed45600079c9c2e34cbfeb8e0b7d884d7c0e2dc8942bb41ab9da2a7" }, "downloads": -1, "filename": "icheck-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1170d4c82a0e55d57ff54eaaa4afc578", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 6784, "upload_time": "2014-10-20T07:49:06", "url": "https://files.pythonhosted.org/packages/ce/5b/409247d7ab65772ba69b116c2d36f80c8a65f14cd13b0e37ff46be6e54aa/icheck-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ec5e9c4d8cc1f276853c9badb4a95f2", "sha256": "63ff701bd7c16e5f2dc0e3e1844d7340d5735387c55b43c98e809d67f70776e4" }, "downloads": -1, "filename": "icheck-1.2.1.tar.bz2", "has_sig": false, "md5_digest": "4ec5e9c4d8cc1f276853c9badb4a95f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5276, "upload_time": "2014-10-20T07:48:51", "url": "https://files.pythonhosted.org/packages/00/cc/eab1ae3f5d4f6c218ede84d6df26aebf043a737d5e844a0eb7d740b74a67/icheck-1.2.1.tar.bz2" }, { "comment_text": "", "digests": { "md5": "9bfb2fd22eb57337029315917c2979b5", "sha256": "f84e4dde210ef013c6b96792102c8f1b074e209047781fbec3c8435af631aabe" }, "downloads": -1, "filename": "icheck-1.2.1.zip", "has_sig": false, "md5_digest": "9bfb2fd22eb57337029315917c2979b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8408, "upload_time": "2014-10-20T07:48:55", "url": "https://files.pythonhosted.org/packages/14/c1/fcdb8589e2f7db9ae8b2642ff63e8f6161f17c01acb63b5ac864c60365ef/icheck-1.2.1.zip" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "b7e95878fdea67d54b0e67c6f53cec1f", "sha256": "c479db2b3cf947307360fb183cf5ce95c21a63b5b8beea304b93854fe53c9af9" }, "downloads": -1, "filename": "icheck-1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b7e95878fdea67d54b0e67c6f53cec1f", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 6809, "upload_time": "2014-10-20T07:54:01", "url": "https://files.pythonhosted.org/packages/de/dd/6999b46d819c681c12dc7ec80efefad6b76552c9a759eac065511f56d7d0/icheck-1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2edcc44400ab89e0d99358b7f54806b3", "sha256": "7f4f9e3020401022c6f813df055e4ef61868e4b1da4e9e50245584694ca09a7d" }, "downloads": -1, "filename": "icheck-1.3.tar.bz2", "has_sig": false, "md5_digest": "2edcc44400ab89e0d99358b7f54806b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5289, "upload_time": "2014-10-20T07:53:53", "url": "https://files.pythonhosted.org/packages/49/41/043cf93f43660b60036097cc77ac934161bf88e91269dd7ed8241191638f/icheck-1.3.tar.bz2" }, { "comment_text": "", "digests": { "md5": "6fc391e71d057d8b0be67b5676a17fc6", "sha256": "43a58b501b441846e27d40cf39eb8bf4440b0c38c35fed4a360eb72bc6e7e66b" }, "downloads": -1, "filename": "icheck-1.3.zip", "has_sig": false, "md5_digest": "6fc391e71d057d8b0be67b5676a17fc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8427, "upload_time": "2014-10-20T07:53:56", "url": "https://files.pythonhosted.org/packages/06/d1/6056bb6acc72424a65ed49784b0e65b1e1e1bef5576256d363c78efb6ccf/icheck-1.3.zip" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "3ddb97d98d1f609f7b8971125d005b02", "sha256": "2a094b0603d07a84c204b8cd56c06265749a061cb8bba5e00ac59ef1c3ac2fcb" }, "downloads": -1, "filename": "icheck-1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3ddb97d98d1f609f7b8971125d005b02", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 8228, "upload_time": "2014-10-23T17:43:14", "url": "https://files.pythonhosted.org/packages/09/c2/a766e0af8f98d1cd92e85e1714cec3142cb78e6af749d8859157264b08ac/icheck-1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bee98db040e10d908a0c2a10403caa86", "sha256": "f5faf57af8e81d008c4d958f0c6722ef84dfee5bcb2981c5c41abae0b0298e29" }, "downloads": -1, "filename": "icheck-1.4.tar.bz2", "has_sig": false, "md5_digest": "bee98db040e10d908a0c2a10403caa86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6320, "upload_time": "2014-10-23T17:43:05", "url": "https://files.pythonhosted.org/packages/23/4a/55f8dc032ded71d51cfb39dce50f8b92e1d5c18602e2aec41ef356482a59/icheck-1.4.tar.bz2" }, { "comment_text": "", "digests": { "md5": "2f364f35c01795438315e3a81986b32a", "sha256": "e2d45732d5a7ad8543eaa935387b0900bc716a4f2401ee576280d2e0a9dace65" }, "downloads": -1, "filename": "icheck-1.4.zip", "has_sig": false, "md5_digest": "2f364f35c01795438315e3a81986b32a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10580, "upload_time": "2014-10-23T17:43:09", "url": "https://files.pythonhosted.org/packages/3b/2d/46287d85f4a5825cf15d286e470e02b3cebe1efdc1e9bc7a8d033f5923be/icheck-1.4.zip" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "5576483f006157991d0de225d473165d", "sha256": "ed4711eadf1d97ca25de0a6b91610d5003dc194d452e26d1fb28b751f14e96e4" }, "downloads": -1, "filename": "icheck-1.7.tar.bz2", "has_sig": false, "md5_digest": "5576483f006157991d0de225d473165d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9388, "upload_time": "2015-08-14T14:45:15", "url": "https://files.pythonhosted.org/packages/c0/2c/8e36cab92dd9c174f7d73a840c5e52df2a47bcc591f90ecba5708f0eea40/icheck-1.7.tar.bz2" }, { "comment_text": "", "digests": { "md5": "13b316f993c0390013348e12a4c0a523", "sha256": "4baf9e0f502fe67c7de5ecedc3643abfc3fc797c9ad37abfe4a5b25b377609f6" }, "downloads": -1, "filename": "icheck-1.7.tar.gz", "has_sig": false, "md5_digest": "13b316f993c0390013348e12a4c0a523", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9079, "upload_time": "2015-08-14T14:45:19", "url": "https://files.pythonhosted.org/packages/2f/11/37f53af0d275aaed5e8e113df66f9158860ac419488b5ccbfee73b0b8d2c/icheck-1.7.tar.gz" }, { "comment_text": "", "digests": { "md5": "e28fbebc0af8111b216d6cb60d4b9c62", "sha256": "6a9d4c81cda2e8663dc13f586f47b628728bdf2ccd52878c454fb2ac57be9990" }, "downloads": -1, "filename": "icheck-1.7.zip", "has_sig": false, "md5_digest": "e28fbebc0af8111b216d6cb60d4b9c62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14868, "upload_time": "2015-08-14T14:45:24", "url": "https://files.pythonhosted.org/packages/bd/f0/cf8322c30a7bfddc545dae4d73ef5a5488a656c3443b7c3621f7a0af6446/icheck-1.7.zip" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "f8dcca7c06cbf4240633a139c733b538", "sha256": "f7aa7bec05ac0723cea912803d96f3bdbd8187091dbe423934bebe6454f3bebb" }, "downloads": -1, "filename": "icheck-1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f8dcca7c06cbf4240633a139c733b538", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9068, "upload_time": "2015-08-28T16:28:03", "url": "https://files.pythonhosted.org/packages/ca/2d/97eaa7009ebb392f89ad2bdcb1845f0469ee6384aa56c2f1708117c79188/icheck-1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f89ac7e6e0866b8035cd6cb9a261259b", "sha256": "ee3b38060136ea55c372315fa0dfc0902988824f7d7c705a1f846d370e1145af" }, "downloads": -1, "filename": "icheck-1.8.tar.bz2", "has_sig": false, "md5_digest": "f89ac7e6e0866b8035cd6cb9a261259b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9899, "upload_time": "2015-08-28T16:27:52", "url": "https://files.pythonhosted.org/packages/6c/bc/9d3ea7df0d735a9b6488f78a10dfe6dc8260f4c30276263af429345b624e/icheck-1.8.tar.bz2" }, { "comment_text": "", "digests": { "md5": "7a8cd6c64a6c6622d9852f57fca36344", "sha256": "002257ced64d067d6b43cb8df72e0303089f14930c90ed3fb4e2a633c671cf76" }, "downloads": -1, "filename": "icheck-1.8.zip", "has_sig": false, "md5_digest": "7a8cd6c64a6c6622d9852f57fca36344", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15472, "upload_time": "2015-08-28T16:27:57", "url": "https://files.pythonhosted.org/packages/15/78/da37c881ac6a555e0bfce33dce30fa8c43a7346f958bef1f89279dd357f7/icheck-1.8.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f8dcca7c06cbf4240633a139c733b538", "sha256": "f7aa7bec05ac0723cea912803d96f3bdbd8187091dbe423934bebe6454f3bebb" }, "downloads": -1, "filename": "icheck-1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f8dcca7c06cbf4240633a139c733b538", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9068, "upload_time": "2015-08-28T16:28:03", "url": "https://files.pythonhosted.org/packages/ca/2d/97eaa7009ebb392f89ad2bdcb1845f0469ee6384aa56c2f1708117c79188/icheck-1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f89ac7e6e0866b8035cd6cb9a261259b", "sha256": "ee3b38060136ea55c372315fa0dfc0902988824f7d7c705a1f846d370e1145af" }, "downloads": -1, "filename": "icheck-1.8.tar.bz2", "has_sig": false, "md5_digest": "f89ac7e6e0866b8035cd6cb9a261259b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9899, "upload_time": "2015-08-28T16:27:52", "url": "https://files.pythonhosted.org/packages/6c/bc/9d3ea7df0d735a9b6488f78a10dfe6dc8260f4c30276263af429345b624e/icheck-1.8.tar.bz2" }, { "comment_text": "", "digests": { "md5": "7a8cd6c64a6c6622d9852f57fca36344", "sha256": "002257ced64d067d6b43cb8df72e0303089f14930c90ed3fb4e2a633c671cf76" }, "downloads": -1, "filename": "icheck-1.8.zip", "has_sig": false, "md5_digest": "7a8cd6c64a6c6622d9852f57fca36344", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15472, "upload_time": "2015-08-28T16:27:57", "url": "https://files.pythonhosted.org/packages/15/78/da37c881ac6a555e0bfce33dce30fa8c43a7346f958bef1f89279dd357f7/icheck-1.8.zip" } ] }