{ "info": { "author": "Michael Kowalchik", "author_email": "mikepk@tenzerolab.com", "bugtrack_url": null, "classifiers": [], "description": "# Pybald\n\n[![Current Build Test\nState](https://travis-ci.org/mikepk/pybald.svg?branch=master)](https://travis-ci.org/mikepk/pybald)\n\nPybald is a light weight, python, [MVC](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) style\nweb framework. It is inspired by work done by [Ian\nBicking](https://blog.ianbicking.org/), and builds upon the concepts\npresented in [Another do-it-yourself\nframework](https://docs.pylonsproject.org/projects/webob/en/stable/do-it-yourself.html).\nIt is also takes design inspiration from [Ruby on\nRails](http://rubyonrails.org) and\n[Django](http://www.djangoproject.com/).\n\n[The in-progress documentation](http://pybald.com/)\n\nPybald began life as an ultra-bare-bones framework but has evolved over\ntime adding convenience methods, components and glue:\n\n> - [Routes](https://routes.readthedocs.io/en/latest/) for dispatching\n> and URL parsing\n> - [Mako](https://www.makotemplates.org/) as the template engine.\n> - [SqlAlchemy](https://sqlalchemy.org/) for data persistence and\n> object mapping\n> - [WTForms](https://wtforms.readthedocs.io/en/latest/) for automated\n> form generation and validation\n> - A more complex WSGI decorator\n> - Some deploy infrastructure such as Apache and Nginx configuration\n> templates\n> - Session Management, Simple Logging, and template helper functions\n\n\n\n# Pybald Changelog\n\n## Release 0.5.7 (August 23, 2019)\n\n - Change dependencies to minimums instead of pinned\n versions\n\n## Release 0.5.6 (April 29, 2019)\n\n - Update SQLAlchemy dependency to 1.3.3 to mitigate a \n security issue with SQLAlchemy verstions <= 1.3.0\n\n## Release 0.5.4 (February 18, 2019)\n\n - Update dependencies: WTForms, alembic, SQLALchemy, WebOb\n - Change docs from ReStructured text to Markdown\n\n## Release 0.5.3 (February 14, 2019)\n\n - Fix Python 3 compatibility issue in Proxy.\\_\\_dir\\_\\_\n\n## Release 0.5.2 (January 2, 2019)\n\n - Fix bug with stacktrace template for default Error handler\n - Improve the context model binding function\n\n## Release 0.5.0 (August 19, 2017)\n\n - **Warning** - this release may not be compatible with previous\n pybald releases *if* you were making use of the asset pipeline\n (bundles, bundle filters, JSX compilation), utilizing the celery\n loader or the newrelic adapter\n - This removes the webasset pipeline from core pybald. The webasset\n pipeline was only used in a few projects and added complexity and\n numerous requirements to pybald.\n - The webasset pipeline will be re-designed and released as a\n supporting pybald package instead of included in the core.\n - The newrelic adapter and celery support code will also be\n re-designed and released as supporting pybald packages instead of\n included in the core.\n - This release also bumps the supporting library versions: Mako,\n SqlAlchemy, WTForms\n - Remove requirement for forked routes library, required behaviors\n have been included in the main routes project\n - Improve tests and test coverage\n\n## Release 0.4.1 (February 26, 2016)\n\n - Fix a bug with the default error controller. Now the raw exception\n can be passed in and the order of the arguments was changed but not\n updated in the default.\n\n## Release 0.4.0 (January 28, 2016)\n\n - **Warning** - this release is not compatible with previous pybald\n releases.\n - Major configuration changes, deprecate the use of importing\n 'project.py' directly.\n - New application context that lives globally is the config passing\n mechanism.\n - Replace FormAlchemy with WTForms as the primary mechanism for form\n processing and validation\n - Utilize controller and model registry.\n - Global context is on a threadlocal stacked proxy to allow multiple\n pybald applications in one interpreter.\n - Database session is now attached to the app context.\n - Shared application resources (caches etc..) are now registered with\n the context\n - ErrorMiddleware now has a more consistent interface with error\n controllers, passing the raw exception as a \\*parg, followed by\n context-specific \\*\\*kargs\n\n## Release 0.3.2 (March 25, 2015)\n\n - Add jsx filters for react components\n\n## Release 0.3.1 (February 19, 2015)\n\n - Fix webassets dependencies and bugs\n - Added browser caching headers to the simple static server\n\n## Release 0.3.0 (November 2, 2014)\n\n - Change the default behavior of all templates to include the html\n escape filter\n - New helper: HTMLLiteral. Allows explicit html escape bypassing\n - Add csrf decorator\n - New newrelic instrumentation code to improve controller/action\n visibility\n\n## Release 0.2.8 (June 26, 2014)\n\n - Update the webasset-based asset bundler to take input and output\n paths from the project config file. The new arguments are\n BUNDLE\\_SOURCE\\_PATHS and BUNDLE\\_OUTPUT\\_PATH. So in the project.py\n file you might have a config\n\nthat looks like:\n\n BUNDLE_SOURCE_PATHS = ['alternate_source_path', 'public']\n BUNDLE_OUTPUT_PATH = '/some_path/public_files/'", "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/mikepk/pybald", "keywords": "web framework", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pybald", "package_url": "https://pypi.org/project/pybald/", "platform": "", "project_url": "https://pypi.org/project/pybald/", "project_urls": { "Documentation": "http://pybald.com/", "Homepage": "https://github.com/mikepk/pybald", "Source Code": "https://github.com/mikepk/pybald" }, "release_url": "https://pypi.org/project/pybald/0.5.7/", "requires_dist": null, "requires_python": "", "summary": "A lightweight python web framework", "version": "0.5.7" }, "last_serial": 5720871, "releases": { "0.1.5": [], "0.2.3": [ { "comment_text": "", "digests": { "md5": "af25e96dcb01b4d4f4aac9654fc0358c", "sha256": "65bd5318590c76aa60da4b6f7964b429a42caf8291f36ef35259cd67b6dc0728" }, "downloads": -1, "filename": "pybald-0.2.3.tar.gz", "has_sig": false, "md5_digest": "af25e96dcb01b4d4f4aac9654fc0358c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38459, "upload_time": "2014-03-08T19:35:28", "url": "https://files.pythonhosted.org/packages/10/11/3e795ef8fcded5c2ee50498c277a1d7b726c3c56f5535acad886083c0e98/pybald-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "21f1b2a5adfc35294003edc6be869aea", "sha256": "bf86faf27b6bac895bb8b53cb517e48c784b965ba7e76796ad82d128d00f7563" }, "downloads": -1, "filename": "pybald-0.2.4.tar.gz", "has_sig": false, "md5_digest": "21f1b2a5adfc35294003edc6be869aea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38469, "upload_time": "2014-03-19T16:21:29", "url": "https://files.pythonhosted.org/packages/94/2a/8f2a0a161fa3618ee5efd55d3d6f42d2ebede37a0c4cef341559980ff61f/pybald-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "3bb6eebe62438ef8a81d48423d546bc1", "sha256": "9baf7dcc0fd6dd8f76b7f728e2fae9fe9ede3d0e0e59145cad4ddbe9a34d806d" }, "downloads": -1, "filename": "pybald-0.2.5.tar.gz", "has_sig": false, "md5_digest": "3bb6eebe62438ef8a81d48423d546bc1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38736, "upload_time": "2014-04-23T21:15:08", "url": "https://files.pythonhosted.org/packages/b7/ab/3a0ab344e47fc59e947f5163101f3594a4e1f35b34138d1fe074ca7bb913/pybald-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "07032fc0245e2a0c35ab7c40b14ef4b6", "sha256": "fadad895266547200f5cf4afd451c51c75fada1f60b10f61c897307c3c57c82f" }, "downloads": -1, "filename": "pybald-0.2.6.tar.gz", "has_sig": false, "md5_digest": "07032fc0245e2a0c35ab7c40b14ef4b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38746, "upload_time": "2014-04-29T15:31:15", "url": "https://files.pythonhosted.org/packages/2e/ba/14816c307eec23cf6d87dc2c33f42aa08c48d4f5987d9c18368b7943de3a/pybald-0.2.6.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "abe7f8038bb275730b7fe118c73d5138", "sha256": "c6af93b5744c5709142adcad9210b79db7c277e477e65749c086519354ab26d7" }, "downloads": -1, "filename": "pybald-0.2.8.tar.gz", "has_sig": false, "md5_digest": "abe7f8038bb275730b7fe118c73d5138", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42568, "upload_time": "2014-06-26T20:56:11", "url": "https://files.pythonhosted.org/packages/d1/b6/d08e6794b560f8a10ce5528ff0cd2f9febaf06d6f0f7c21ff99f6b4ee027/pybald-0.2.8.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "08187c5de0c8fb2e2d8c40e822414bd3", "sha256": "90a7ff88f47474c91729d72afbeb491a87975ae626868d52b44375f8e4be31c0" }, "downloads": -1, "filename": "pybald-0.3.0.tar.gz", "has_sig": false, "md5_digest": "08187c5de0c8fb2e2d8c40e822414bd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44760, "upload_time": "2014-11-03T18:40:34", "url": "https://files.pythonhosted.org/packages/4a/f8/ccd494c2b9a4188dd89696e7ff2689ea87906f1833cdce1cfa5e90e345e8/pybald-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "acfa119ca8d904b65adf6d1116c1635a", "sha256": "6fd1ee003171495dc682cf5a6303f8bcf4ef022b7f83ffe3507588ddbda8fa23" }, "downloads": -1, "filename": "pybald-0.3.1.tar.gz", "has_sig": false, "md5_digest": "acfa119ca8d904b65adf6d1116c1635a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45005, "upload_time": "2015-02-19T05:11:46", "url": "https://files.pythonhosted.org/packages/91/c9/89a30a5e93acac3679be16d67467db778a41e8991632527a25c771f95822/pybald-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "8d060ef37a69de85e635dcd52542a2cf", "sha256": "556219fab3b4bebd6d7f4ddb303354e00fd1a63060a6e75173570b6b052a6dc1" }, "downloads": -1, "filename": "pybald-0.3.2.tar.gz", "has_sig": false, "md5_digest": "8d060ef37a69de85e635dcd52542a2cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45356, "upload_time": "2015-03-25T18:19:25", "url": "https://files.pythonhosted.org/packages/29/20/1633b81bfc277c3a6a92ae88b7b0293bdd50ce2e1bb0b909dd15754d0e85/pybald-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "914c16e899310824167cd5a2e759590f", "sha256": "9c593aabc716e75906fdd24378799b53629fa258b20e2125059fac88c9c09a48" }, "downloads": -1, "filename": "pybald-0.4.0.tar.gz", "has_sig": false, "md5_digest": "914c16e899310824167cd5a2e759590f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49644, "upload_time": "2016-01-29T00:07:23", "url": "https://files.pythonhosted.org/packages/16/22/030b23d12e1c469f8004fc6430970f1f38f9173366ec38b9f0fd513aa510/pybald-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "733cd41f534c3bee937472e3c3ea192a", "sha256": "0d95060a862afe0238e06afda4610db6f9ac29104a4cb57028d9a2eb1701f0ff" }, "downloads": -1, "filename": "pybald-0.4.1.tar.gz", "has_sig": false, "md5_digest": "733cd41f534c3bee937472e3c3ea192a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49665, "upload_time": "2016-02-26T21:34:54", "url": "https://files.pythonhosted.org/packages/0a/a0/d97b6053fc4c6eb7198b49f3f6859b617e7b6c9945bdffee07fa64eb2f56/pybald-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "561e159f7dec4e82978108aefe168fe7", "sha256": "5a90bb5096805ccd68aa062de01a42d0919b8c7c9ee62064f0f27f259eb6c456" }, "downloads": -1, "filename": "pybald-0.5.0.tar.gz", "has_sig": false, "md5_digest": "561e159f7dec4e82978108aefe168fe7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49164, "upload_time": "2017-08-20T03:05:49", "url": "https://files.pythonhosted.org/packages/c4/33/1f19a2b5ed8e3dcca82d2aebe16273db3353e1d6718cdafff758e7aec51e/pybald-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "c1e5ebb9642d93e49dadd9bdb75b5725", "sha256": "d1f9899b5ef3ebd0a5a67162dd4c9c2cb51732fd969641525d91852408f17c4f" }, "downloads": -1, "filename": "pybald-0.5.1.tar.gz", "has_sig": false, "md5_digest": "c1e5ebb9642d93e49dadd9bdb75b5725", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51859, "upload_time": "2018-03-02T06:17:52", "url": "https://files.pythonhosted.org/packages/db/a9/f4121d95bfe7e98dc8085db2d984de516349d7a4ba5b3a21d436e0988b22/pybald-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "65874745db3d6fcb95847e99ad1afce6", "sha256": "1e4a26200857b43415869725202c1348352a0519b4771cad7f2b3aeb77765191" }, "downloads": -1, "filename": "pybald-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "65874745db3d6fcb95847e99ad1afce6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 70793, "upload_time": "2019-01-02T21:12:11", "url": "https://files.pythonhosted.org/packages/f3/af/4cce7e7ea94e6d6a32b37b9a7758937b4213aff0bd67d00a2a9199635a80/pybald-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7436bc08ab344cf8fc2f0eab9eddc02f", "sha256": "13ec2af7d599cf494729267c37345b84a26e2e50a628a4a91726d8b72da5c306" }, "downloads": -1, "filename": "pybald-0.5.2.tar.gz", "has_sig": false, "md5_digest": "7436bc08ab344cf8fc2f0eab9eddc02f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52556, "upload_time": "2019-01-02T21:12:12", "url": "https://files.pythonhosted.org/packages/3d/8e/1ba4e5a105f7b80759ae0739b0d5d375353db03cc11698cd18d07610042a/pybald-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "b36557f9592855d88088e457b2dfe3bf", "sha256": "f82dd5953cef7a63f5b592d2e6e8b2cd7924b595237fc17e65ed58441edf0219" }, "downloads": -1, "filename": "pybald-0.5.3.tar.gz", "has_sig": false, "md5_digest": "b36557f9592855d88088e457b2dfe3bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52514, "upload_time": "2019-02-18T05:01:36", "url": "https://files.pythonhosted.org/packages/b1/a7/46095f38beb45b156b0d531f4cb175ca1b7e23b4c2ce844271cae2212ab3/pybald-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "99e4cb298219162acde966410944a831", "sha256": "fa46bf313178d6af46280849e43e58839055a6b2441deb04504ee2451adae1b7" }, "downloads": -1, "filename": "pybald-0.5.4.tar.gz", "has_sig": false, "md5_digest": "99e4cb298219162acde966410944a831", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53370, "upload_time": "2019-02-18T05:49:46", "url": "https://files.pythonhosted.org/packages/60/02/eead8e882acc9aa4e9e373fe76d5204ee6c2b7ff09bdb4f06218044ccb45/pybald-0.5.4.tar.gz" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "ba1652fb34ba216b87376e97301d947e", "sha256": "f54249f54cf36b37ea29989afa983a6926135d7b92d251dbaefde3c2d43d038e" }, "downloads": -1, "filename": "pybald-0.5.5.tar.gz", "has_sig": false, "md5_digest": "ba1652fb34ba216b87376e97301d947e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53374, "upload_time": "2019-04-29T15:37:09", "url": "https://files.pythonhosted.org/packages/b0/2d/d429f524a75240be6664d921dd83241754d474764c3409384a12d72d9c76/pybald-0.5.5.tar.gz" } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "16f20121f52edc147035b1559e209760", "sha256": "3524f8ce9fb5233b48a839c213bfbff00233c53db1f52f841633a3120d642074" }, "downloads": -1, "filename": "pybald-0.5.6.tar.gz", "has_sig": false, "md5_digest": "16f20121f52edc147035b1559e209760", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53466, "upload_time": "2019-04-29T15:40:18", "url": "https://files.pythonhosted.org/packages/7b/e9/d7121235d333ff961f9d80398aad6a84fc6b062ba790d0857d070cd2eb5c/pybald-0.5.6.tar.gz" } ], "0.5.7": [ { "comment_text": "", "digests": { "md5": "e3d6cbe95c0880e253e0fe62a9a69018", "sha256": "c3ddf0fd0722050d81565d3c9ef7ba85cae12938158dfcb8f6bcda8bafbaded2" }, "downloads": -1, "filename": "pybald-0.5.7.tar.gz", "has_sig": false, "md5_digest": "e3d6cbe95c0880e253e0fe62a9a69018", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53198, "upload_time": "2019-08-23T13:53:00", "url": "https://files.pythonhosted.org/packages/9d/dd/76bc2862881e2231b0e3b9d8a67d5c0818fbc7d8b14a5efca380b31073e8/pybald-0.5.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e3d6cbe95c0880e253e0fe62a9a69018", "sha256": "c3ddf0fd0722050d81565d3c9ef7ba85cae12938158dfcb8f6bcda8bafbaded2" }, "downloads": -1, "filename": "pybald-0.5.7.tar.gz", "has_sig": false, "md5_digest": "e3d6cbe95c0880e253e0fe62a9a69018", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53198, "upload_time": "2019-08-23T13:53:00", "url": "https://files.pythonhosted.org/packages/9d/dd/76bc2862881e2231b0e3b9d8a67d5c0818fbc7d8b14a5efca380b31073e8/pybald-0.5.7.tar.gz" } ] }