{ "info": { "author": "Alexis Roda", "author_email": "alexis.roda.villalonga@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Natural Language :: English", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Testing" ], "description": ".. -*- ispell-local-dictionary: \"british\" -*-\n\nIntroduction\n============\n\nSimple application that monitors file changes (events) and triggers\nthe execution of a program in response. It is being developed with CI\nin mind but may be useful for other purposes as well.\n\nTe program is in pre-alpha state but it's functional enough to test\nitself.\n\n\nInstallation\n============\n\n.. image:: https://travis-ci.org/patxoca/arv.autotest.svg?branch=master\n :target: https://travis-ci.org/patxoca/arv.autotest\n\nThis program has been tested with python 2.6, 2.7, 3.3 i 3.4.\n\n::\n\n pip install arv.autotest\n\n\nInternals overview\n==================\n\n- monitor sets files/directories for changes (``pynotify``)\n\n- decide what events are processed (``event_filters.py``). The filters\n can drop events by type, because the events are coming to fast etc.\n Throtling is implemented here.\n\n- execute a command in response (``runner.py``)\n\n- process the output from the command (``reporters``).\n\n - display the output on screen\n\n - display a notification on completion\n\n - there exist a proof of concept preprocessor that can modify the\n output (ignore and highlight lines).\n\n - adjust throtling dynamically\n\n\nConfiguration file\n==================\n\nThe following example is the configuration file used by ``autotest``\nto test itself::\n\n {\n \"command\": \"nosetests --verbosity=2\",\n \"global_ignore\": [\"\\\\..*\"],\n \"watch\" : [\n {\n \"path\" : \"arv\",\n \"include\" : [\".*\\\\.py\"]\n },\n {\n \"path\" : \"tests\",\n \"include\" : [\"test_.*\\\\.py\"]\n }\n ]\n }\n\nThe command specified in the ``command`` key will be executed whenever\na change is detected in any of the watched files (the files matching\n``*.py`` within the ``arv`` directory and those matching\n``test_*.py`` in the ``tests`` directory). Files matching any of the\n``global_ignore`` patterns (hidden files in the example) will be\nignored.\n\nIn order to determine if an event is processed or ignored:\n\n#. if the file name matches any of the ``global_ignore`` regexes the\n event is ignored. Use this option to ignore temporary files, VCS\n files etc.\n\n#. the most specific watch is looked for (the one with the longest\n matching path):\n\n #. if the file name matches any of the corresponding ``exclude``\n patterns the event is ignored.\n\n #. if the file matches any of the ``include`` patterns the event is\n processed.\n\n #. otherwise it is ignored.\n\n\nConfiguration options\n---------------------\n\nTop level options:\n\n:command: string, required. Command to be executed on every file\n change.\n\n:watch: a list of watches. See below.\n\n:global_ignore: a list of regexes (strings), optional. If a file name\n (not path) matches any regex the events related to\n that file are ignored.\n\n:throttling: See below.\n\n:peprocessor: A list of directives. See below.\n\nWatch options:\n\n:path: string, required. Path of the directory.\n\n:recurse: boolean, default ``true``. If ``true`` sub-directories will\n be monitored recursively.\n\n:auto_add: boolean, default ``true``. If ``true`` newly created\n sub-directories will be automatically monitored.\n\n:include: list of regexes (strings). Regexes matching included files.\n\n:exclude: list of regexes (strings). Regexes matching excluded files.\n\nPreprocessor options:\n\n:regex: regular expression. If the regex matches the **whole** line\n the corresponding action i executed.\n\n:action: action identifier. Currently two actions are defined:\n\n - ``ignore``: remove the line from the output\n\n - ``failure``: highlight the line in red\n\nThrottling options:\n\n:max_events_second: limit the maximum number of events that will be\n processed per second.\n\n\nNotes on regexes\n----------------\n\nRegexes are ``re`` regular expressions, not shell globs. Use ``.*``\nnot ``*``.\n\nRegular expressions are matched against the file name, not the path.\n\nA ``$`` is added to the end of the regexes so ``test_.*\\\\.py`` will\nmatch ``test_foo.py`` but not ``test_foo.py.bak``. Use\n``test_.*\\\\.py.*`` to match both.\n\nBe careful with the slashes, the json loader requires them to be\nescaped (doubled).\n\n\nContact information\n===================\n\nAlexis Roda, alexis.roda.villalonga@gmail.com\n\nIf you find a bug of have some improvement feel free to drop em an\ne-mail.\n\n\n.. LocalWords: autotest json regex regexes", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/patxoca/arv.autotest", "keywords": "", "license": "GPLv3+", "maintainer": null, "maintainer_email": null, "name": "arv.autotest", "package_url": "https://pypi.org/project/arv.autotest/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/arv.autotest/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/patxoca/arv.autotest" }, "release_url": "https://pypi.org/project/arv.autotest/0.2.4/", "requires_dist": null, "requires_python": null, "summary": "Run tests whenever a file changes", "version": "0.2.4" }, "last_serial": 1370197, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "cee710b50f16336c26befdef93e020e5", "sha256": "492ea4f2f37210ba55f37340d214b93b1deec7b0bfac6227230863499fed445d" }, "downloads": -1, "filename": "arv.autotest-0.2.tar.gz", "has_sig": false, "md5_digest": "cee710b50f16336c26befdef93e020e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27996, "upload_time": "2014-04-25T20:07:40", "url": "https://files.pythonhosted.org/packages/bf/60/807f8d2605121a97c14e43d8eb0d215309ac77328271a9b820232fa75a5d/arv.autotest-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "13044caf8f394d9914dca4cadef14acd", "sha256": "38a27d4875ab73eafe3724a34c450af8373e08134950e853f7aaaf0bb462274d" }, "downloads": -1, "filename": "arv.autotest-0.2.1.tar.gz", "has_sig": false, "md5_digest": "13044caf8f394d9914dca4cadef14acd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27971, "upload_time": "2014-04-25T20:10:16", "url": "https://files.pythonhosted.org/packages/71/c9/52b8f0a206c902d1597f48bd65c2414e0eed1d0015b72899fa8633294e73/arv.autotest-0.2.1.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "48a3b80dac8c122d13b460bf7141717f", "sha256": "2bbb3688b58c2e1b6d66475406e43b6497c2e4a1f6b5d8037c42269166546b9a" }, "downloads": -1, "filename": "arv.autotest-0.2.4.tar.gz", "has_sig": false, "md5_digest": "48a3b80dac8c122d13b460bf7141717f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56113, "upload_time": "2015-01-04T18:33:47", "url": "https://files.pythonhosted.org/packages/24/57/e3cd731eebc2d9b0bd5b56715328a1c5427decb54d9aa977ef46ad9a1f64/arv.autotest-0.2.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "48a3b80dac8c122d13b460bf7141717f", "sha256": "2bbb3688b58c2e1b6d66475406e43b6497c2e4a1f6b5d8037c42269166546b9a" }, "downloads": -1, "filename": "arv.autotest-0.2.4.tar.gz", "has_sig": false, "md5_digest": "48a3b80dac8c122d13b460bf7141717f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56113, "upload_time": "2015-01-04T18:33:47", "url": "https://files.pythonhosted.org/packages/24/57/e3cd731eebc2d9b0bd5b56715328a1c5427decb54d9aa977ef46ad9a1f64/arv.autotest-0.2.4.tar.gz" } ] }