{ "info": { "author": "Matt Schmidt", "author_email": "matt@mattptr.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "SerialAlchemy adds serialization to SQLAlchemy_ ORM objects via a mixin class. It\nis tightly coupled with SQLAlchemy, because it's the best thing ever invented.\n\n\nAbout\n=====\n\nSerialAlchemy aims to be the one serialization library that I use for web\nprojects. If other people like it, that's cool too. Released under the MIT License, \nso fork away!\n\n\nWhy create SerialAlchemy?\n-------------------------\n\nThe serialization problem for web apps has been solved many times over. I had been \nusing marshmallow_ for several projects. It's a great library, and has its own\n`justification for existence`_.\n\nWhile I liked working with marshmallow just fine, it is designed to be very broad and\nfit a lot of different situations. I mostly create small web applications, so my \nsituation rarely changes.\n\nIf there is one reason for creating SerialAlchemy, it is the fact that I didn't like\nthe idea of defining my models, then having to define marshmallow schemas. It felt\nlike redundancy to me. Keeping the marshmallow schema in sync with model changes\nwas also a pain, but feeling like I was repeating myself was the bigger reason.\n\nAnd yes, \"alAl\" in SerialAlchemy bothers me, but SeriAlchemy sounds too much like\nSiri-Alchemy, and I fear Apple's legal team.\n\n\nWhy not use SerialAlchemy?\n--------------------------\n\nI thought I'd take a different approach to selling this. Truth is, I made this \nlibrary for me, and don't really care if anyone else uses it.\n\n- SQLAlchemy is required. This library simply won't work without it.\n\n- While SerialAlchemy is not beholden to any particular web framework, it doesn't\n make a lot of sense outside the web application area. SQLAlchemy has a \n built-in way to `serialize expressions`_, and the result sets can be pickled.\n\n- There is no data validation. SQLAlchemy has `simple validation`_ built-in, \n and I feel like something more extensive is outside the scope of this project.\n\n- SerialAlchemy is Python 3 *only*. Get used to it ;)\n\n\n.. _SQLAlchemy: http://www.sqlalchemy.org\n.. _marshmallow: http://marshmallow.readthedocs.org/en/latest/\n.. _justification for existence: http://marshmallow.readthedocs.org/en/latest/why.html#why\n.. _serialize expressions: http://docs.sqlalchemy.org/en/rel_1_0/core/serializer.html\n.. _simple validation: http://docs.sqlalchemy.org/en/rel_1_0/orm/mapped_attributes.html\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/sloat/SerialAlchemy", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "SerialAlchemy", "package_url": "https://pypi.org/project/SerialAlchemy/", "platform": "", "project_url": "https://pypi.org/project/SerialAlchemy/", "project_urls": { "Homepage": "https://gitlab.com/sloat/SerialAlchemy" }, "release_url": "https://pypi.org/project/SerialAlchemy/0.3.4.post1/", "requires_dist": null, "requires_python": "", "summary": "Simple object serialization for SQLAlchemy", "version": "0.3.4.post1" }, "last_serial": 5991160, "releases": { "0.1.1.post1": [ { "comment_text": "", "digests": { "md5": "0129cc74528b6a36d8d0c36400bb2dbb", "sha256": "37c53c46755c87017262b31f36af5aa37973dd8726618492a52351abf495e899" }, "downloads": -1, "filename": "SerialAlchemy-0.1.1.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "0129cc74528b6a36d8d0c36400bb2dbb", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 5491, "upload_time": "2015-09-30T13:31:38", "url": "https://files.pythonhosted.org/packages/37/ff/3aa0bc486e958dc40af4e9de9b0187ddc4d909f027fd51aeb977b189f300/SerialAlchemy-0.1.1.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c83030f09125d80a28c0d518dece3bd", "sha256": "d2dd953258e421b0cf6651ba85c097d12c3644c5794e3a5cec73dadc62edc6c1" }, "downloads": -1, "filename": "SerialAlchemy-0.1.1.post1.tar.gz", "has_sig": false, "md5_digest": "8c83030f09125d80a28c0d518dece3bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5225, "upload_time": "2015-09-30T13:31:33", "url": "https://files.pythonhosted.org/packages/4c/65/e330990ef7c0797cb0fe0db3e8ed5cd06b09bb9348c590edfe4140047f99/SerialAlchemy-0.1.1.post1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "9240e515346b05c71b6a1c395ec361a6", "sha256": "49bd564de868947e73e1cc375e8d939585e62b6c1e9ca1a1eb33434517704b4b" }, "downloads": -1, "filename": "SerialAlchemy-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9240e515346b05c71b6a1c395ec361a6", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5478, "upload_time": "2016-09-15T19:00:34", "url": "https://files.pythonhosted.org/packages/ff/e3/a3d94b6d90946092736fcc9bd2e9bbacabd3a81853285e45f496942a0f12/SerialAlchemy-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "089c4be7bf8eff9d41fd5f20dc8c9a3a", "sha256": "8733f7e76c3e3dfabfc8ed517a81356d79ce033023ac87bf37266e1917b6637d" }, "downloads": -1, "filename": "SerialAlchemy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "089c4be7bf8eff9d41fd5f20dc8c9a3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5282, "upload_time": "2016-09-15T19:00:45", "url": "https://files.pythonhosted.org/packages/cb/05/44b8fb6ad911ae51111ce8d1e6c2cefc2fb58620f17d59600763bba07e67/SerialAlchemy-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "a327f67290215d49b0905d0401002c24", "sha256": "e0bce024319f47d89228881a7131ab36757ecf4fab65eba07b090f37a280b979" }, "downloads": -1, "filename": "SerialAlchemy-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a327f67290215d49b0905d0401002c24", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5754, "upload_time": "2016-09-28T19:01:37", "url": "https://files.pythonhosted.org/packages/ea/b4/9262582cb1596ba810cafda5b1fe20d202e6450dc839daf19f1267d1fd4e/SerialAlchemy-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1716998b7bcf017185f9439efecfb07", "sha256": "82a5c7d7b41ac0f7872b9e7ed6eb5cfcf0193476b948682a17a81dc1409278fe" }, "downloads": -1, "filename": "SerialAlchemy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b1716998b7bcf017185f9439efecfb07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5546, "upload_time": "2016-09-28T19:01:52", "url": "https://files.pythonhosted.org/packages/15/80/a290983524abb6d84dbf6f9da30aaa3b7a626056a827e894c9af8d7b34d2/SerialAlchemy-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "d526238c5ebe52c867bd608d1a83834e", "sha256": "11c6a052addf3f352ddbfdc8806d790e9f6b41ffe6df2b7b7503f635045eb9be" }, "downloads": -1, "filename": "SerialAlchemy-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d526238c5ebe52c867bd608d1a83834e", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5896, "upload_time": "2016-12-29T17:47:41", "url": "https://files.pythonhosted.org/packages/37/58/42fc14b75bb9a9ef59d8e53701ec3f50c3dec0bdcffa7edf77a4ed2fc3ee/SerialAlchemy-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ba10748b39dccd5c096c677b1d1981c", "sha256": "6cf5ea977a73b94ad4f649592936b6f5d6d0c418e4439844ba45b4c1adfd43fb" }, "downloads": -1, "filename": "SerialAlchemy-0.2.2.tar.gz", "has_sig": false, "md5_digest": "2ba10748b39dccd5c096c677b1d1981c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5682, "upload_time": "2016-12-29T17:47:56", "url": "https://files.pythonhosted.org/packages/cc/18/b90bee42edc3b28c52dd1aee201680950f9ae09b722473995764c36c8169/SerialAlchemy-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "452ab2006162bd2be23f94e73f032168", "sha256": "48115f33365dd5c32850eaa14ce749fe697cb67af48a0ce3124be8b4b7138dce" }, "downloads": -1, "filename": "SerialAlchemy-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "452ab2006162bd2be23f94e73f032168", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6243, "upload_time": "2017-05-19T14:01:02", "url": "https://files.pythonhosted.org/packages/9e/ba/cf79941ffcb50414d80b87f8dc5dfdbefd60a8fb392421a5a91a84d3db49/SerialAlchemy-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01c385c1ff75fb05e3e8a1fb5c1bca6e", "sha256": "4cce613176379b764d578fb7cf12f92389fa58a0f176c70139f9247fbfb6f1c2" }, "downloads": -1, "filename": "SerialAlchemy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "01c385c1ff75fb05e3e8a1fb5c1bca6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6073, "upload_time": "2017-05-19T14:01:09", "url": "https://files.pythonhosted.org/packages/01/c7/e6a7c9ad131a1d55729ed46e8b606f0a5c1ad0aa725bc44d8dc2b49f8877/SerialAlchemy-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "83f1d156e4e8d6d73a19fa1ca442b00c", "sha256": "93ac3e1294f8246901a6206ba9b9318a95508812b5ff5588c3666e6ae7200f69" }, "downloads": -1, "filename": "SerialAlchemy-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "83f1d156e4e8d6d73a19fa1ca442b00c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6262, "upload_time": "2017-06-12T16:35:44", "url": "https://files.pythonhosted.org/packages/0c/ac/8a4c70cfd05e1e76661ceb6b0e3ec7fd2c0563199658dbf7ce84c7113449/SerialAlchemy-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ccd1cc1473ea7c97ef0488788fa404d", "sha256": "c63d262ea24bc5bccdaf517127d72cf1bc8615178f0e57fc81b98697037002c5" }, "downloads": -1, "filename": "SerialAlchemy-0.3.1.tar.gz", "has_sig": false, "md5_digest": "7ccd1cc1473ea7c97ef0488788fa404d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6087, "upload_time": "2017-06-12T16:35:51", "url": "https://files.pythonhosted.org/packages/cb/55/7b56e8ef68bea7d1ca9bd2da1af08371e59c08d43755f6a0897e3d1631f3/SerialAlchemy-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "bc6ca2a148837ce6ab630693f6b56df5", "sha256": "25ba097a0bdb4e7b01d9695260d8d29c6c91f696a3b0b642d87817d56b2e663f" }, "downloads": -1, "filename": "SerialAlchemy-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "bc6ca2a148837ce6ab630693f6b56df5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6370, "upload_time": "2018-01-10T17:27:50", "url": "https://files.pythonhosted.org/packages/dd/fc/8f9061df7404b7ad3d5a0942d86aee958bef35268f4415517612e58b6be5/SerialAlchemy-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f1d089d6dea70d61cc170822bd3d964", "sha256": "d9b5b0464b7f3d8a74df2d0193037dcfeb65708dc62af532fc0f7a3039431573" }, "downloads": -1, "filename": "SerialAlchemy-0.3.2.tar.gz", "has_sig": false, "md5_digest": "4f1d089d6dea70d61cc170822bd3d964", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6168, "upload_time": "2018-01-10T17:28:06", "url": "https://files.pythonhosted.org/packages/87/e4/e75522a9a669f721aff98eeec0ba6804f98a910ffdd23d1e863be607887f/SerialAlchemy-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "3b03e086bc97e52b4cc3a260a5c8a265", "sha256": "07deb2a636987a3b11239f779b7cac4ee84c21f47ad25fa2c5c2ea2e235370a6" }, "downloads": -1, "filename": "SerialAlchemy-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "3b03e086bc97e52b4cc3a260a5c8a265", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 6342, "upload_time": "2019-05-06T15:46:06", "url": "https://files.pythonhosted.org/packages/03/dc/5e0c030d1fde07add7c5be9910a60c4f604c471e8b5a225d553dbd7fc6b2/SerialAlchemy-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a240216b31534cbf93daf5009dfc964", "sha256": "feba8ae74f670281a7e4fd70951a4c6066110a8f512d0ba29ee982ff013bd8f8" }, "downloads": -1, "filename": "SerialAlchemy-0.3.3.tar.gz", "has_sig": false, "md5_digest": "3a240216b31534cbf93daf5009dfc964", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6368, "upload_time": "2019-05-06T15:45:10", "url": "https://files.pythonhosted.org/packages/98/a8/2b7574b18282575600d59ccafaf8ea326433209049aea9224d54e1c0b09b/SerialAlchemy-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "572c956e84731332b84608df86350a88", "sha256": "6b5d258ddec3025e1729565ca7df91334f22cef252b57d6e34813348401925a7" }, "downloads": -1, "filename": "SerialAlchemy-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "572c956e84731332b84608df86350a88", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 7410, "upload_time": "2019-10-16T18:54:02", "url": "https://files.pythonhosted.org/packages/21/08/e01452044b225f444e3835feb2f4834158fa6bd0fbb8db41cdaddf92b741/SerialAlchemy-0.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80fa316dcddff379989c35ce1d02acbd", "sha256": "d3c078dab66af2824a4d6c878796490faa5f4666ac7bbc7eadc21357b202799a" }, "downloads": -1, "filename": "SerialAlchemy-0.3.4.tar.gz", "has_sig": false, "md5_digest": "80fa316dcddff379989c35ce1d02acbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6634, "upload_time": "2019-10-16T18:54:56", "url": "https://files.pythonhosted.org/packages/a8/be/583ac51cb4c2c68233214868baa91e9e58946d682d84e59ac972466b1ee7/SerialAlchemy-0.3.4.tar.gz" } ], "0.3.4.post1": [ { "comment_text": "", "digests": { "md5": "01024d1c3578f9fea804687d20a820b9", "sha256": "966fb69e2d618043ee87115e9afb24009bddcf3dc36479def303aa6d34af126a" }, "downloads": -1, "filename": "SerialAlchemy-0.3.4.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "01024d1c3578f9fea804687d20a820b9", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 7744, "upload_time": "2019-10-17T16:38:40", "url": "https://files.pythonhosted.org/packages/39/49/2e1a549fbdcf0f4ce6b78987f88357feb5a28966e0882e184cf3d529829b/SerialAlchemy-0.3.4.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70f658eb62362bb02c87dc63ca4b3527", "sha256": "73c08b376d7d1c842a0409e528bcb1ab720780650d5534205302c20ef0f20aa8" }, "downloads": -1, "filename": "SerialAlchemy-0.3.4.post1.tar.gz", "has_sig": false, "md5_digest": "70f658eb62362bb02c87dc63ca4b3527", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6899, "upload_time": "2019-10-17T16:38:55", "url": "https://files.pythonhosted.org/packages/17/bd/bb685f5c1097489b02dcb82ec2fdd2de64a6e786635293fe5d38aa078440/SerialAlchemy-0.3.4.post1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "01024d1c3578f9fea804687d20a820b9", "sha256": "966fb69e2d618043ee87115e9afb24009bddcf3dc36479def303aa6d34af126a" }, "downloads": -1, "filename": "SerialAlchemy-0.3.4.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "01024d1c3578f9fea804687d20a820b9", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 7744, "upload_time": "2019-10-17T16:38:40", "url": "https://files.pythonhosted.org/packages/39/49/2e1a549fbdcf0f4ce6b78987f88357feb5a28966e0882e184cf3d529829b/SerialAlchemy-0.3.4.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70f658eb62362bb02c87dc63ca4b3527", "sha256": "73c08b376d7d1c842a0409e528bcb1ab720780650d5534205302c20ef0f20aa8" }, "downloads": -1, "filename": "SerialAlchemy-0.3.4.post1.tar.gz", "has_sig": false, "md5_digest": "70f658eb62362bb02c87dc63ca4b3527", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6899, "upload_time": "2019-10-17T16:38:55", "url": "https://files.pythonhosted.org/packages/17/bd/bb685f5c1097489b02dcb82ec2fdd2de64a6e786635293fe5d38aa078440/SerialAlchemy-0.3.4.post1.tar.gz" } ] }