{ "info": { "author": "Chris Dent", "author_email": "cdent@anticdent.org", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "What and Why\n============\n\nPurpler is the beginning of a suite of tools that manage content to\napply purple numbers, starting with a logging IRC bot that enables\ntransclusion. See a `blog posting\n`_ for more details.\n\nThere are further plans. IRC logging is just the first part.\n\nUse\n===\n\nPurpler consists of two services:\n\n* A WSGI application that presents logs of content:\n ``purpler.wsgi``.\n* An IRC bot script that listens on configured channels:\n ``purpler-bot``.\n\nThe WSGI application requires a database url to run. Provide this by\ncreate a file ``purpler.db_url`` in the working directory of the\nWSGI application containing something like::\n\n mysql+pymysql://localhost/purpler?charset=utf8mb4\n\nThe IRC bot takes a complex set of configuration on the command\nline (run ``purpler-bot --help``). To avoid this complexity it is\npossible to read configuration from a file. Here's one way to\nstart it::\n\n nohup purpler-bot @purplerbot.conf --db-url=`cat purpler.db_url` &\n\n``purplerbot.conf`` contains entries like::\n\n --no-log=#someprivatechannel\n -c #openstack-nova\n -c #openstack-sdks\n -c #openstack-telemetry\n -c #openstack-dev\n -c #someprivatechannel\n\nInstall\n=======\n\nInstall purpler in the usual pip way::\n\n pip install -U purpler\n\nAlso install a database driver that will work with sqlalchemy.\n\nWeb App\n-------\n\nConfigure a WSGI server to run the wsgi application. Here's an\nexample using mod_wsgi (you should modify this for your own\nrequirements with regard to logging, auth, etc.)::\n\n \n ServerName p.anticdent.org\n AllowEncodedSlashes On\n\n WSGIDaemonProcess purpler user=cdent processes=2 threads=20 stack-size=524288 display-name=%{GROUP} maximum-requests=500\n WSGIProcessGroup purpler\n\n WSGIScriptAlias / /some/path/to/purpler/wsgi.py\n \n\nThe templates used for presenting the logs exist within the purpler\npackage. If you want custom templates set the ``PURPLER_TEMPLATE_PATH``\nenvironment variable to a path to find overrides. CSS is inlined from a\nstyle.css template.\n\nThe Bot\n-------\n\nSee above for an example of how to start up ``purpler-bot``. That's\njust one of many ways. Other options include systemd service,\nsupervisord or an initscript.\n\nCode\n====\n\nOn `GitHub `_.\n\nCaveats\n-------\n\nThis could charitably be described as a weekend hack so there\nhas been limited testing of the code with proper testing.\n\nLicense\n-------\n\nApache License, Version 2.0", "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/cdent/purpler", "keywords": null, "license": "Apache-2", "maintainer": null, "maintainer_email": null, "name": "purpler", "package_url": "https://pypi.org/project/purpler/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/purpler/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/cdent/purpler" }, "release_url": "https://pypi.org/project/purpler/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "A suite of tools for purpling things", "version": "0.2.0" }, "last_serial": 2021118, "releases": { "0.0.1.dev30": [], "0.1.0": [ { "comment_text": "", "digests": { "md5": "55328c5e720362771a27021f78fe211a", "sha256": "e4a169df497be5239b85f85c21e6b82cbe542c6d1fa8267be4bbec797595b503" }, "downloads": -1, "filename": "purpler-0.1.0.tar.gz", "has_sig": false, "md5_digest": "55328c5e720362771a27021f78fe211a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14065, "upload_time": "2016-03-20T13:00:57", "url": "https://files.pythonhosted.org/packages/87/01/601580fd2c153bfb246c1e4137833c75a8868f3577980bb2989618b1df58/purpler-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ab7d98463bd73c09ddfb244a720380a4", "sha256": "5b54b8409d76dffbba28ca3f6541950cc924c413456c9b3096bd55b16db9e911" }, "downloads": -1, "filename": "purpler-0.2.0.tar.gz", "has_sig": false, "md5_digest": "ab7d98463bd73c09ddfb244a720380a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14286, "upload_time": "2016-03-22T18:05:12", "url": "https://files.pythonhosted.org/packages/0c/f2/4bff5e497fe4ebe9efdb8bd84069b4331d7107d98c28a09572029221876c/purpler-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ab7d98463bd73c09ddfb244a720380a4", "sha256": "5b54b8409d76dffbba28ca3f6541950cc924c413456c9b3096bd55b16db9e911" }, "downloads": -1, "filename": "purpler-0.2.0.tar.gz", "has_sig": false, "md5_digest": "ab7d98463bd73c09ddfb244a720380a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14286, "upload_time": "2016-03-22T18:05:12", "url": "https://files.pythonhosted.org/packages/0c/f2/4bff5e497fe4ebe9efdb8bd84069b4331d7107d98c28a09572029221876c/purpler-0.2.0.tar.gz" } ] }