{ "info": { "author": "Juan-Pablo Scaletti", "author_email": "juanpablo@jpscaletti.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "\n# Proper Web Framework\n\n*Conventions over configuration*\n\n\n### Requirements\n\n- Python 3.6+\n\n\n## Design principles\n\n- \"Conventions over configuration\".\n\n- No globals.\n\tWhen you need a shared object, pass it arround.\n\n- Optimize for the 95%.\n\tDon't compromise the usability of the common cases to keep consistency\n\twith the edge cases.\n\n- Code redability is very important.\n\n- App-code over framework-code\n\tBecause app code is infintely configurable without dirty hacks.\n\n- \"Everyone is an adult here\".\n\tRun with scissors if you must.\n\n- Greenthtreads over async\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "MIT", "maintainer": "Juan-Pablo Scaletti", "maintainer_email": "juanpablo@jpscaletti.com", "name": "proper", "package_url": "https://pypi.org/project/proper/", "platform": "", "project_url": "https://pypi.org/project/proper/", "project_urls": null, "release_url": "https://pypi.org/project/proper/0.1.0/", "requires_dist": null, "requires_python": ">=3.6,<4.0", "summary": "Conventions over configuration web framework", "version": "0.1.0" }, "last_serial": 4775740, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "e2216362a6ae00464c644a38b9123451", "sha256": "d24d66436552aeb7a991b98456e798cd2da7b4a651d356816c85fec0208baba2" }, "downloads": -1, "filename": "Proper-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e2216362a6ae00464c644a38b9123451", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 1528, "upload_time": "2019-02-03T21:21:52", "url": "https://files.pythonhosted.org/packages/ca/1f/e7f098ae1757256f4ad642a4c07e03a33da1abe0ffe625379f8c7e3de3b9/Proper-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46f827d1cb1956bbff12e188e4acf17d", "sha256": "fee5cba1846f7181fa12f3acf4067c3e7e5ff4fbed80c1dfb13b4b13fb7d2020" }, "downloads": -1, "filename": "Proper-0.1.0.tar.gz", "has_sig": false, "md5_digest": "46f827d1cb1956bbff12e188e4acf17d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 1372, "upload_time": "2019-02-03T21:21:54", "url": "https://files.pythonhosted.org/packages/a0/2c/1bdb881bfb31db6ebdd471c7209320955742844e157d333662137aee0e2b/Proper-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e2216362a6ae00464c644a38b9123451", "sha256": "d24d66436552aeb7a991b98456e798cd2da7b4a651d356816c85fec0208baba2" }, "downloads": -1, "filename": "Proper-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e2216362a6ae00464c644a38b9123451", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 1528, "upload_time": "2019-02-03T21:21:52", "url": "https://files.pythonhosted.org/packages/ca/1f/e7f098ae1757256f4ad642a4c07e03a33da1abe0ffe625379f8c7e3de3b9/Proper-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46f827d1cb1956bbff12e188e4acf17d", "sha256": "fee5cba1846f7181fa12f3acf4067c3e7e5ff4fbed80c1dfb13b4b13fb7d2020" }, "downloads": -1, "filename": "Proper-0.1.0.tar.gz", "has_sig": false, "md5_digest": "46f827d1cb1956bbff12e188e4acf17d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 1372, "upload_time": "2019-02-03T21:21:54", "url": "https://files.pythonhosted.org/packages/a0/2c/1bdb881bfb31db6ebdd471c7209320955742844e157d333662137aee0e2b/Proper-0.1.0.tar.gz" } ] }