{ "info": { "author": "Aki Sasaki", "author_email": "aki@escapewindow.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: POSIX :: BSD", "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 :: Implementation :: PyPy", "Topic :: Software Development" ], "description": "Scriptharness\n*************\n\nScriptharness is a framework for writing scripts. There are three\ncore principles: full logging, flexible configuration, and modular\nactions. The goal of *full logging* is to be able to debug problems\npurely through the log. The goal of *flexible configuration* is to\nmake each script useful in a variety of contexts and environments.\nThe goals of *modular actions* are a) faster development feedback\nloops and b) different workflows for different usage requirements.\n\n\nFull logging\n============\n\nMany scripts log. However, logging can happen sporadically, and it's\ngenerally acceptable to run a number of actions silently (e.g.,\n\"os.chdir()\" will happily change directories with no indication in the\nlog). In *full logging*, the goal is to be able to debug bustage\npurely through the log.\n\nAt the outset, the user can add a generic logging wrapper to any\nmethod with minimal fuss. As scriptharness matures, there will be\nmore customized wrappers to use as drop-in replacements for\npreviously-non-logging methods.\n\n\nFlexible configuration\n======================\n\nMany scripts use some sort of configuration, whether hardcoded, in a\nfile, or through the command line. A family of scripts written by the\nsame author(s) may have similar configuration options and patterns,\nbut often times they vary wildly from script to script.\n\nBy offering a standard way of accepting configuration options, and\nthen exporting that config to a file for later debugging or\nreplication, scriptharness makes things a bit neater and cleaner and\nmore familiar between scripts.\n\nBy either disallowing runtime configuration changes, or by explicitly\nlogging them, scriptharness removes some of the guesswork when\ndebugging bustage.\n\n\nModular actions\n===============\n\nScriptharness actions allow for:\n\n* faster development feedback loops. No need to rerun the entirety\n of a long-running script when trying to debug a single action inside\n that script.\n\n* different workflows for different usage requirements, such as\n running standalone versus running in cloud infrastructure\n\nThis is in the same spirit of other frameworks that allow for discrete\ntargets, tasks, or actions: make, maven, ansible, and many more.\n\n\nRunning unit tests\n==================\n\n\nLinux and OS X\n--------------\n\n # By default, this will look for python 2.7 + 3.{3,4,5}.\n # You can run |tox -e ENV| to run a specific env, e.g. |tox -e py27|\n pip install tox\n tox\n # alternately, ./run_tests.sh\n\n\nWindows\n-------\n\n # By default, this will look for python 2.7 + 3.4\n # You can run |tox -c tox_win.ini -e ENV| to run a specific env, e.g. |tox -c tox_win.ini -e py27|\n pip install tox\n tox -c win.ini", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/scriptharness/scriptharness", "keywords": null, "license": "MPL2", "maintainer": null, "maintainer_email": null, "name": "scriptharness", "package_url": "https://pypi.org/project/scriptharness/", "platform": "Posix,MacOS X,Windows", "project_url": "https://pypi.org/project/scriptharness/", "project_urls": { "Homepage": "https://github.com/scriptharness/scriptharness" }, "release_url": "https://pypi.org/project/scriptharness/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "A generic logging, configuration, and workflow framework for scripts.", "version": "0.2.0" }, "last_serial": 1600609, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "59a8559adeaf2f6d8796593705e0fc2d", "sha256": "542c099ad19b614e6d244ac445ab6d28c8e97dc2c18ab559598f476b06026a69" }, "downloads": -1, "filename": "scriptharness-0.1.0.tar.gz", "has_sig": false, "md5_digest": "59a8559adeaf2f6d8796593705e0fc2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24003, "upload_time": "2015-05-25T07:31:34", "url": "https://files.pythonhosted.org/packages/c7/45/432709ce7c86ae77982d6af59d00278d4f5a7bd857cf07e064d3c80d8d27/scriptharness-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "3919c368c4a9f24596341e64ebc25fc6", "sha256": "c7d4567ad0ebc768fe7ada973237b1dbed6063c1ce83cd01fafd9e8714a2ebe9" }, "downloads": -1, "filename": "scriptharness-0.2.0.tar.gz", "has_sig": false, "md5_digest": "3919c368c4a9f24596341e64ebc25fc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39824, "upload_time": "2015-06-21T07:20:10", "url": "https://files.pythonhosted.org/packages/84/a3/36b7d3eee07576e78680e0d1fb2ec21dc75c84542c5e924fda8425ed901c/scriptharness-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3919c368c4a9f24596341e64ebc25fc6", "sha256": "c7d4567ad0ebc768fe7ada973237b1dbed6063c1ce83cd01fafd9e8714a2ebe9" }, "downloads": -1, "filename": "scriptharness-0.2.0.tar.gz", "has_sig": false, "md5_digest": "3919c368c4a9f24596341e64ebc25fc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39824, "upload_time": "2015-06-21T07:20:10", "url": "https://files.pythonhosted.org/packages/84/a3/36b7d3eee07576e78680e0d1fb2ec21dc75c84542c5e924fda8425ed901c/scriptharness-0.2.0.tar.gz" } ] }