{ "info": { "author": "Marc Sibson and contributors", "author_email": "ben+pydiscourse@benlopatin.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "===========\npydiscourse\n===========\n\n.. image:: https://secure.travis-ci.org/bennylope/pydiscourse.svg?branch=master\n :alt: Build Status\n :target: http://travis-ci.org/bennylope/pydiscourse\n\nA Python library for working with Discourse.\n\nThis is a fork of the original Tindie version. It was forked to include fixes,\nadditional functionality, and to distribute a package on PyPI.\n\nGoals\n=====\n\n* Exceptional documentation\n* Support all supported Python versions\n* Provide functional parity with the Discourse API, for the currently supported\n version of Discourse (something of a moving target)\n\nThe order here is important. The Discourse API is itself poorly documented so\nthe level of documentation in the Python client is critical.\n\nInstallation\n============\n\n::\n\n pip install pydiscourse\n\nExamples\n========\n\nCreate a client connection to a Discourse server::\n\n from pydiscourse import DiscourseClient\n client = DiscourseClient(\n 'http://example.com',\n api_username='username',\n api_key='areallylongstringfromdiscourse')\n\nGet info about a user::\n\n user = client.user('eviltrout')\n print user\n\n user_topics = client.topics_by('johnsmith')\n print user_topics\n\nCreate a new user::\n\n user = client.create_user('The Black Knight', 'blacknight', 'knight@python.org', 'justafleshwound')\n\nImplement SSO for Discourse with your Python server::\n\n @login_required\n def discourse_sso_view(request):\n payload = request.GET.get('sso')\n signature = request.GET.get('sig')\n nonce = sso_validate(payload, signature, SECRET)\n url = sso_redirect_url(nonce, SECRET, request.user.email, request.user.id, request.user.username)\n return redirect('http://discuss.example.com' + url)\n\nCommand line\n============\n\nTo help experiment with the Discourse API, pydiscourse provides a simple command line client::\n\n export DISCOURSE_API_KEY=your_master_key\n pydiscoursecli --host-http://yourhost --api-user-system latest_topics\n pydiscoursecli --host-http://yourhost --api-user-system topics_by johnsmith\n pydiscoursecli --host-http://yourhost --api-user-system user eviltrout\n\n\n\n\nRelease history\n===============\n\n0.9.0\n-----\n\n- Added rate limiting support\n- Added some support for user activation\n\n0.8.0\n-----\n\n- Add some PR guidance\n- Add support for files in the core request methods\n- Adds numerous new API controls, including:\n - tag_group\n - user_actions\n - upload_image\n - block\n - trust_level_lock\n - create_site_customization (theme)\n - create_color_scheme\n - color_schemes\n - add_group_members\n - group_members\n - group_owners\n - delete_group\n - create_group\n - group\n - customize_site_texts\n - delete_category\n - user_emails\n - update_topic_status\n - create_post\n - update_topic\n - update_avatar\n - user_all\n\n\n0.7.0\n-----\n\n* Place request parameters in the request body for POST and PUT requests.\n Allows larger request sizes and solves for `URI Too Large` error.\n\n0.6.0\n-----\n\n* Adds method to add user to group by user ID\n\n0.5.0\n-----\n\n* Adds badges functionality\n\n0.4.0\n-----\n\n* Adds initial groups functionality\n\n0.3.2\n-----\n\n* SSO functionality fixes\n\n0.3.1\n-----\n\n* Fix how empty responses are handled\n\n0.3.0\n-----\n\n* Added method to unsuspend suspended user\n\n0.2.0\n-----\n\n* Inital fork, including gberaudo's changes\n* Packaging cleanup, dropping Python 2.6 support and adding Python 3.5, PyPy,\n PyPy3\n* Packaging on PyPI\n\n0.1.0.dev\n---------\n\nAll pre-PyPI development\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bennylope/pydiscourse", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "pydiscourse", "package_url": "https://pypi.org/project/pydiscourse/", "platform": "", "project_url": "https://pypi.org/project/pydiscourse/", "project_urls": { "Homepage": "https://github.com/bennylope/pydiscourse" }, "release_url": "https://pypi.org/project/pydiscourse/0.9.0/", "requires_dist": [ "requests (>=2.4.2)" ], "requires_python": "", "summary": "A Python library for the Discourse API", "version": "0.9.0" }, "last_serial": 5170375, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "4b1ad023136c3663a16406edc871441d", "sha256": "41f94279d83bae01050d94a0fa666e0e497e189cd261fc6190c057d64255a430" }, "downloads": -1, "filename": "pydiscourse-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4b1ad023136c3663a16406edc871441d", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 9873, "upload_time": "2016-04-07T21:52:57", "url": "https://files.pythonhosted.org/packages/8e/82/f239ed4a809d1a79d2345de7b34686c2a853bf7f7262bb8e014424332c46/pydiscourse-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4d26c1df1676b265c651a0a9f2e27f5", "sha256": "2ea266bc16488a9b235a09ddd4e11cb8b933e1646595240a55fbdc20dbce34e5" }, "downloads": -1, "filename": "pydiscourse-0.2.0.tar.gz", "has_sig": false, "md5_digest": "e4d26c1df1676b265c651a0a9f2e27f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6848, "upload_time": "2016-04-07T21:52:01", "url": "https://files.pythonhosted.org/packages/1b/dc/e3e4688d2f352f832d8875679a4e080741cd1aaf465a9942a6c32807fe3c/pydiscourse-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6806b502972ff806f1fb692b3cc70d55", "sha256": "ed5e40692fef47423582e321f19473f04972aec6cba6e0625fb30bc6224ff986" }, "downloads": -1, "filename": "pydiscourse-0.3.0.tar.gz", "has_sig": false, "md5_digest": "6806b502972ff806f1fb692b3cc70d55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8396, "upload_time": "2016-04-08T17:51:17", "url": "https://files.pythonhosted.org/packages/43/af/074794cbba1e7f0e8132d8a8a2dd4ced9c900d74445cbc9ef9c813f8aedd/pydiscourse-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "8887074a0178022109ee4ef3d34d679b", "sha256": "717e6199f3a84274dfbf33b8ae2c5e223e7c56d1fcb97b67b709cda8ff4d8da7" }, "downloads": -1, "filename": "pydiscourse-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8887074a0178022109ee4ef3d34d679b", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 10699, "upload_time": "2016-04-08T22:02:05", "url": "https://files.pythonhosted.org/packages/f6/5f/91b81a3127e7bb5ee8ea65a8ddb7c9967196777f4bb662e1c748f483cae0/pydiscourse-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2795e68b55a00609df6e89ba5aa8c114", "sha256": "dc99d01cc6d17edaed5eb47c65e4ee5c8e5a32565c632a8566aeb7ea80e4054c" }, "downloads": -1, "filename": "pydiscourse-0.3.1.tar.gz", "has_sig": false, "md5_digest": "2795e68b55a00609df6e89ba5aa8c114", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8525, "upload_time": "2016-04-08T21:59:20", "url": "https://files.pythonhosted.org/packages/b4/2f/9cb05875288b06640f8b72b91bba811d69a0d5b4b48ed8e0e41e9d688252/pydiscourse-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "fb612389f69ca0b4f470a5689e7db207", "sha256": "6b9225346f0b8d7e897e9b5929512ccea0be1d927354796d0a9cc5610cbd2278" }, "downloads": -1, "filename": "pydiscourse-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fb612389f69ca0b4f470a5689e7db207", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 11283, "upload_time": "2016-04-17T15:36:34", "url": "https://files.pythonhosted.org/packages/68/f5/0e779ae9847ab12b8a1d8a49cde96540ca9def6acee5e22265006da93443/pydiscourse-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2c7093a71f0bc0f59d4cdbfc93324c2", "sha256": "b2179bd86710d8372bdd49f0218d4111b31eca38366287671dfc1af984eba774" }, "downloads": -1, "filename": "pydiscourse-0.3.2.tar.gz", "has_sig": false, "md5_digest": "b2c7093a71f0bc0f59d4cdbfc93324c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10108, "upload_time": "2016-04-17T15:36:28", "url": "https://files.pythonhosted.org/packages/19/b0/ab58c3f389d424568c32b8a7315a104257f33c1ab11172c34d88183d8cd1/pydiscourse-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "c589ce31d3086901a9b9fd36033012ea", "sha256": "cc296b02a1acbfcf379f065c3043a9e416f29297347b892e4246316d4296e184" }, "downloads": -1, "filename": "pydiscourse-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c589ce31d3086901a9b9fd36033012ea", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 11956, "upload_time": "2016-05-04T12:39:38", "url": "https://files.pythonhosted.org/packages/93/9a/fe40c79a79b85c10debf92b3a63c63051503e18dc30e4c0699cc35fdfd19/pydiscourse-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29f451033cef5825ca79dd40ebadbebd", "sha256": "ec8428ddfe7915578336e0b32b15e2da5eeeb36aa458b27ed285eefd7726d371" }, "downloads": -1, "filename": "pydiscourse-0.4.0.tar.gz", "has_sig": false, "md5_digest": "29f451033cef5825ca79dd40ebadbebd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10731, "upload_time": "2016-05-04T12:38:37", "url": "https://files.pythonhosted.org/packages/30/70/20c5f57ef651ad4b0780fdebfea4a5d71557f3cca36bfca07b7c6a481ca1/pydiscourse-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "436aabe271902502abf46ee4b9bbd77a", "sha256": "25d1908b8903f52a5b9948abfde3a4436a3f98ca605a6f543acf4c47fd846ecc" }, "downloads": -1, "filename": "pydiscourse-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "436aabe271902502abf46ee4b9bbd77a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12055, "upload_time": "2016-06-13T15:41:45", "url": "https://files.pythonhosted.org/packages/b6/20/ae32d91c9dd6c05c6c81db3171156dcfc05903ec4dcf06addc9c3cbb5b57/pydiscourse-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b7ba61dd27b0d0e2bbd941e37c0813e", "sha256": "832d0fffd155226b7b2993800060dea907a9f6280bbaefa3d42fdadd23d4de79" }, "downloads": -1, "filename": "pydiscourse-0.5.0.tar.gz", "has_sig": false, "md5_digest": "1b7ba61dd27b0d0e2bbd941e37c0813e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10839, "upload_time": "2016-06-13T16:09:17", "url": "https://files.pythonhosted.org/packages/e5/e5/f5285691192d78363a6d1ba4600c62f68c459a3bad9e762a01e5300d9842/pydiscourse-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "27fbf9f6be43918b88ab7f10ccd143a5", "sha256": "435ebaf5a2d46ed57a2819d58cb6f31d5e110266cfb56a774f52e93cfbcae309" }, "downloads": -1, "filename": "pydiscourse-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "27fbf9f6be43918b88ab7f10ccd143a5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12139, "upload_time": "2016-07-22T12:49:24", "url": "https://files.pythonhosted.org/packages/9e/c5/5e4892525ec29abac51c0f77fec787f477d9bff0827a79dd537c00adce37/pydiscourse-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81ddf38988df33e80c39e38bec88eca6", "sha256": "842d9bae98d5e28b78732a171ce29a786c72f56d9813c55b30fdd485d81ff5c4" }, "downloads": -1, "filename": "pydiscourse-0.6.0.tar.gz", "has_sig": false, "md5_digest": "81ddf38988df33e80c39e38bec88eca6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10927, "upload_time": "2016-07-22T12:49:26", "url": "https://files.pythonhosted.org/packages/53/5a/764ae7f49c141fae7e02bdb72f04a645cea041764883605801039e1f2953/pydiscourse-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "6126802e28fee7d6a72346ff7fa49c23", "sha256": "a94fb4c188d9f723d867f28bca178370e0baba1a4978a73c0170606835ec38ba" }, "downloads": -1, "filename": "pydiscourse-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6126802e28fee7d6a72346ff7fa49c23", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12316, "upload_time": "2016-09-09T14:10:01", "url": "https://files.pythonhosted.org/packages/d1/f8/84b73a748e0a91ccc5df380caf22292d3767b967588f556985f875903177/pydiscourse-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ee02ae31dc330f0c30bb93ac3ba1b4e", "sha256": "272f1fe421c2dcbd8fdaacad32f57ed63643695a19dcaf4c632b53fa49ff9dde" }, "downloads": -1, "filename": "pydiscourse-0.7.0.tar.gz", "has_sig": false, "md5_digest": "7ee02ae31dc330f0c30bb93ac3ba1b4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11171, "upload_time": "2016-09-09T14:10:03", "url": "https://files.pythonhosted.org/packages/f3/50/929c41df1e98b78697ea2267d5b748c9991217e990890310aae546095103/pydiscourse-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "446f623442357bd28e507188c8a78e6b", "sha256": "4c00872d8c514f830160d4b6b706e01083beb0a1c9a28a3b8016eaa3a77ad188" }, "downloads": -1, "filename": "pydiscourse-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "446f623442357bd28e507188c8a78e6b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11985, "upload_time": "2018-10-29T22:16:13", "url": "https://files.pythonhosted.org/packages/03/d0/7d0881e939155a433ff16358f9ebb4c8b86ec234a29eb164f63f2d1e8c13/pydiscourse-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5f22fe5079ac9e69a642008f5a5b667", "sha256": "a85945f9916a213c7b75fcfed8b8a599966545872544485d113eca1a0ef6c221" }, "downloads": -1, "filename": "pydiscourse-0.8.0.tar.gz", "has_sig": false, "md5_digest": "a5f22fe5079ac9e69a642008f5a5b667", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13547, "upload_time": "2018-10-29T22:16:14", "url": "https://files.pythonhosted.org/packages/b3/fd/b740eccfad95b48ea227f947c0a512db704af616c9cbd0289e63f5059624/pydiscourse-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "3d652e5bb78ea45c4ddfa4c584d40f0e", "sha256": "fbb33b2a2facea1357e9d359605eb5d05557fd829b3726026d7629b71fee7e51" }, "downloads": -1, "filename": "pydiscourse-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d652e5bb78ea45c4ddfa4c584d40f0e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13790, "upload_time": "2019-04-21T17:54:32", "url": "https://files.pythonhosted.org/packages/d9/7b/5b38190eeec3ca0c0215f4a58856359930390acb16bbf77aa636e2b6a0d2/pydiscourse-0.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9ff04ca2a240339e375b8e99cc2321e", "sha256": "23c2ae415a3d1da4298d5c5792c9bfa7670f2a01a171462be1f30d43b60056f1" }, "downloads": -1, "filename": "pydiscourse-0.9.0.tar.gz", "has_sig": false, "md5_digest": "f9ff04ca2a240339e375b8e99cc2321e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14172, "upload_time": "2019-04-21T17:54:34", "url": "https://files.pythonhosted.org/packages/49/25/eef53872e03dcb55581aeac4a5cd21f6e4bbaf84e84a8b23010dd811bded/pydiscourse-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3d652e5bb78ea45c4ddfa4c584d40f0e", "sha256": "fbb33b2a2facea1357e9d359605eb5d05557fd829b3726026d7629b71fee7e51" }, "downloads": -1, "filename": "pydiscourse-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d652e5bb78ea45c4ddfa4c584d40f0e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13790, "upload_time": "2019-04-21T17:54:32", "url": "https://files.pythonhosted.org/packages/d9/7b/5b38190eeec3ca0c0215f4a58856359930390acb16bbf77aa636e2b6a0d2/pydiscourse-0.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9ff04ca2a240339e375b8e99cc2321e", "sha256": "23c2ae415a3d1da4298d5c5792c9bfa7670f2a01a171462be1f30d43b60056f1" }, "downloads": -1, "filename": "pydiscourse-0.9.0.tar.gz", "has_sig": false, "md5_digest": "f9ff04ca2a240339e375b8e99cc2321e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14172, "upload_time": "2019-04-21T17:54:34", "url": "https://files.pythonhosted.org/packages/49/25/eef53872e03dcb55581aeac4a5cd21f6e4bbaf84e84a8b23010dd811bded/pydiscourse-0.9.0.tar.gz" } ] }