{ "info": { "author": "Forrest Button", "author_email": "forrest.button@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application" ], "description": "# madness: a method for your madness\n\nIt is built upon WSGI and the fabulous [werkzeug](https://github.com/pallets/werkzeug) routing system, like Flask.\n\n\n\n## Guiding Principles\n\n[Don't repeat yourself](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)\n\n[Dependency inversion principle](https://en.wikipedia.org/wiki/Dependency_inversion_principle)\n\n[Do One Thing and Do It Well.](https://en.wikipedia.org/wiki/Unix_philosophy#Do_One_Thing_and_Do_It_Well)\n\n[The Zen of Python](https://www.python.org/dev/peps/pep-0020/)\n\n## Goals\n\n[Cohesion](https://en.wikipedia.org/wiki/Cohesion_(computer_science))\n\n\n## Installing\n\n```console\n$ pip install -U madness\n```\n\n## A Simple Example\n\n```python\nfrom madness import application, get\n\ndef hello():\n return 'Hello, world!'\n\nif __name__ == '__main__':\n application(get('/', hello)).run()\n```\n\n## Routing\n\n* route and variants\n\n* routes and variants\n\n* defaults\n\n* url parameters\n\n```python\nfrom madness import routes, route, get, post, index\n\ndef hello():\n return 'world'\n\ndef bar():\n return 'zing!'\n\n# recommended style\n\nurls = routes(\n index(hello),\n routes(\n index(lambda: 'foo')\n route(bar, methods=['GET', 'POST', 'PUT']),\n path = '/foo'\n )\n)\n\n# flat style\n\nurls = routes(\n route('/', hello, methods=['GET']),\n route('/foo', lambda: 'foo', methods=['GET']),\n route('/foo/bar', bar, methods=['GET', 'POST', 'PUT']),\n)\n\n# add GET to all routes\n\nurls = routes(\n route('/', hello),\n route('/foo', lambda: 'foo'),\n route('/foo/bar', bar, methods=['POST', 'PUT']),\n methods = ['GET']\n)\n\n\n```\n\n## Abstractions (Dependency inversion principle)\n\n* g\n\n* extending g\n\n* madness.G and g_factory\n\n\n## Middleware (Coroutines)\n\nas decorator\n\nas serializer\n\nas request-contextmanager\n\nas response contextmanager\n\nas request-response contextmanager\n\nas error handler\n\n\n## Extensions\n\n* json\n\n* cors\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Waffles32/madness", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "madness", "package_url": "https://pypi.org/project/madness/", "platform": "", "project_url": "https://pypi.org/project/madness/", "project_urls": { "Homepage": "https://github.com/Waffles32/madness" }, "release_url": "https://pypi.org/project/madness/0.7.0/", "requires_dist": [ "more-itertools (>=5.0.0)", "werkzeug (>=0.14.1)" ], "requires_python": ">3.6", "summary": "wsgi microframework suitable for building modular DRY RESTful APIs", "version": "0.7.0" }, "last_serial": 5120903, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "fe9888b37b1b2735c94bfabf5cd64b94", "sha256": "12540cc38e72e40dc7161341ab50ff9ef8d252dcfdaa89a9bf2e8c3af8e7b3ec" }, "downloads": -1, "filename": "madness-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fe9888b37b1b2735c94bfabf5cd64b94", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.6", "size": 6635, "upload_time": "2019-01-30T01:28:50", "url": "https://files.pythonhosted.org/packages/35/f2/edcebaaa772ff65f1239227ec729bca1c33d6a4a8f7a825d0152ef1562ed/madness-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "51a8be37e5f6e1257f3cbaaab44a4461", "sha256": "5ced410340b54d402fb60510170254e282153d62997f76e2833ecc2740594f85" }, "downloads": -1, "filename": "madness-0.1.0.tar.gz", "has_sig": false, "md5_digest": "51a8be37e5f6e1257f3cbaaab44a4461", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6", "size": 5173, "upload_time": "2019-01-30T01:28:52", "url": "https://files.pythonhosted.org/packages/38/92/68dc58f784fc130cedd8756e6279b24de82265d64c783855cf91bdfa7fa2/madness-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "9a5f1c776e1a37fe24e5feb6a713d7dd", "sha256": "ebccbd8b1833e18bda61c2ca2b12d49c17390bfa776f8fc2849b8aa48eefa8ff" }, "downloads": -1, "filename": "madness-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9a5f1c776e1a37fe24e5feb6a713d7dd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.6", "size": 10956, "upload_time": "2019-01-30T06:07:14", "url": "https://files.pythonhosted.org/packages/79/1d/43bef2756f04ba28de39f2c7700875ccba8379b96b5c9dfaa6e2ad1e4698/madness-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ba76e21116304a63546ebeeabe48cad", "sha256": "c078fc6beb873c4e019e78e483a0f44946af24dac8865a6e32ae47b303974f2e" }, "downloads": -1, "filename": "madness-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0ba76e21116304a63546ebeeabe48cad", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6", "size": 8713, "upload_time": "2019-01-30T06:07:16", "url": "https://files.pythonhosted.org/packages/78/4d/514124856b9b9a9e5d0ad2a4e1a8ef1b87dcb830bf0c5dfbcc58bd80948f/madness-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "487b51a046823a59aeecefe9437deb51", "sha256": "1b4068782e655a0ee83fb3dc5fc3f049a2a74de0ef6213bc9b60e92d9c2420b7" }, "downloads": -1, "filename": "madness-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "487b51a046823a59aeecefe9437deb51", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.6", "size": 12052, "upload_time": "2019-01-31T05:27:13", "url": "https://files.pythonhosted.org/packages/79/f8/b005f8d9b804c99c0c7007d514b4b508f63ade4c41a49348b8ad7057f80f/madness-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "283f475ef3ad428b3452f2c57bcf6f2b", "sha256": "a3ff97d70633f0c827632f3476aefd8e24d130d91794f601ff19795bde2838e3" }, "downloads": -1, "filename": "madness-0.3.0.tar.gz", "has_sig": false, "md5_digest": "283f475ef3ad428b3452f2c57bcf6f2b", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6", "size": 10560, "upload_time": "2019-01-31T05:27:16", "url": "https://files.pythonhosted.org/packages/67/bb/b80c70b7a82056b45604c4dc3ddfd68f4dd244ff3f1d80bfc55b2b232bfb/madness-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "302ede5952e81632b8c3995286b65aea", "sha256": "9511012f81246c13ab8e947235fac86a57c4a80c6639ff4365815b2ecef5e405" }, "downloads": -1, "filename": "madness-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "302ede5952e81632b8c3995286b65aea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.6", "size": 12751, "upload_time": "2019-02-02T01:03:30", "url": "https://files.pythonhosted.org/packages/88/0f/28293dd58bfc4842a81ed612ecd099ffbd3fed97fff0307ddfc61184a642/madness-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ebcba6571da2b83db5fcdf1a2e28dfb0", "sha256": "343287b1476934eb430c760e2e64e7516da4b0920cd2c39500527139775695e4" }, "downloads": -1, "filename": "madness-0.4.0.tar.gz", "has_sig": false, "md5_digest": "ebcba6571da2b83db5fcdf1a2e28dfb0", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6", "size": 11131, "upload_time": "2019-02-02T01:03:33", "url": "https://files.pythonhosted.org/packages/5a/56/80d9741695cf3049c948652d629867c3ab836df463d97841529e8df57b48/madness-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "3b98e98753b5086f15e8fb7e0b5eab42", "sha256": "5af2508de962cabc41241220d7c9be98dcd149c5b3134c016c324ebf62b62455" }, "downloads": -1, "filename": "madness-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3b98e98753b5086f15e8fb7e0b5eab42", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.6", "size": 8389, "upload_time": "2019-04-04T04:58:07", "url": "https://files.pythonhosted.org/packages/54/7b/4ee56b5fe1044244b08ab291b23a69af0af195b80934054b7396c0e8104b/madness-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0455b202e194f8558ed896050c3e2c44", "sha256": "fd0f209dcb2afe5fe4e3cb5c51f7e7676706c17760b9a9ea769106dd9f5fbbf2" }, "downloads": -1, "filename": "madness-0.5.0.tar.gz", "has_sig": false, "md5_digest": "0455b202e194f8558ed896050c3e2c44", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6", "size": 6394, "upload_time": "2019-04-04T04:58:08", "url": "https://files.pythonhosted.org/packages/32/33/f72503585438d72f7298445378b726c205a2eccdd0a165f17659263e1976/madness-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "792737f63a9429deb5c4d49fb766e397", "sha256": "68764588209264bddafb9f76bf500379b19b3d799e622ef9e22ed009998f9cea" }, "downloads": -1, "filename": "madness-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "792737f63a9429deb5c4d49fb766e397", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.6", "size": 7058, "upload_time": "2019-04-04T18:15:27", "url": "https://files.pythonhosted.org/packages/ba/3b/da0a30cfea238ef6b75fe4efd8f6b2539832b891959340d52c65914a6669/madness-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cd1f98e888934f3d28ac993ad7be6ca7", "sha256": "e0170410f4b18093ebf361a9635639919d1962037e9548de241031dceb761642" }, "downloads": -1, "filename": "madness-0.6.0.tar.gz", "has_sig": false, "md5_digest": "cd1f98e888934f3d28ac993ad7be6ca7", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6", "size": 5147, "upload_time": "2019-04-04T18:15:28", "url": "https://files.pythonhosted.org/packages/82/6b/a83fdc16a62909b06de6a874f1dcf1a24fc5cd17a9e8bddec110e5d6f1d9/madness-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "34221f1430c568b503fc35c6f7cbe1e4", "sha256": "ccb1b768e3d5c1589c1de4885918a3ff82a547901893c87918c53476d181b994" }, "downloads": -1, "filename": "madness-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "34221f1430c568b503fc35c6f7cbe1e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.6", "size": 7049, "upload_time": "2019-04-09T21:13:17", "url": "https://files.pythonhosted.org/packages/3d/a7/8df6e4a2b8e7e476179537e5f738b899e5e598553d3d3a0eaf4cbf0f50fd/madness-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9a064830b94959f193926c232ab48f3", "sha256": "e9ca388fe1bbebf4c8b0efc9b7535c251366957b2a591da96bbcd6ccc7d94abd" }, "downloads": -1, "filename": "madness-0.7.0.tar.gz", "has_sig": false, "md5_digest": "f9a064830b94959f193926c232ab48f3", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6", "size": 5129, "upload_time": "2019-04-09T21:13:18", "url": "https://files.pythonhosted.org/packages/62/46/e5347b3ab396e299a58f4e3359b3adad3abb9da51ef34e12675f6f2560c5/madness-0.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "34221f1430c568b503fc35c6f7cbe1e4", "sha256": "ccb1b768e3d5c1589c1de4885918a3ff82a547901893c87918c53476d181b994" }, "downloads": -1, "filename": "madness-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "34221f1430c568b503fc35c6f7cbe1e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.6", "size": 7049, "upload_time": "2019-04-09T21:13:17", "url": "https://files.pythonhosted.org/packages/3d/a7/8df6e4a2b8e7e476179537e5f738b899e5e598553d3d3a0eaf4cbf0f50fd/madness-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9a064830b94959f193926c232ab48f3", "sha256": "e9ca388fe1bbebf4c8b0efc9b7535c251366957b2a591da96bbcd6ccc7d94abd" }, "downloads": -1, "filename": "madness-0.7.0.tar.gz", "has_sig": false, "md5_digest": "f9a064830b94959f193926c232ab48f3", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6", "size": 5129, "upload_time": "2019-04-09T21:13:18", "url": "https://files.pythonhosted.org/packages/62/46/e5347b3ab396e299a58f4e3359b3adad3abb9da51ef34e12675f6f2560c5/madness-0.7.0.tar.gz" } ] }