{ "info": { "author": "Clark DuVall", "author_email": "clark.duvall@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "*********************************************\nserpy: ridiculously fast object serialization\n*********************************************\n\n.. container:: badges\n\n .. image:: https://travis-ci.org/clarkduvall/serpy.svg?branch=master\n :target: https://travis-ci.org/clarkduvall/serpy?branch=master\n :alt: Travis-CI\n\n\n .. image:: https://coveralls.io/repos/clarkduvall/serpy/badge.svg?branch=master\n :target: https://coveralls.io/r/clarkduvall/serpy?branch=master\n :alt: Coveralls\n\n .. image:: https://readthedocs.org/projects/serpy/badge/?version=latest\n :target: https://readthedocs.org/projects/serpy/?badge=latest\n :alt: Documentation Status\n\n .. image:: https://pypip.in/download/serpy/badge.svg\n :target: https://pypi.python.org/pypi/serpy/\n :alt: Downloads\n\n\n**serpy** is a super simple object serialization framework built for speed.\n**serpy** serializes complex datatypes (Django Models, custom classes, ...) to\nsimple native types (dicts, lists, strings, ...). The native types can easily\nbe converted to JSON or any other format needed.\n\nThe goal of **serpy** is to be able to do this *simply*, *reliably*, and\n*quickly*. Since serializers are class based, they can be combined, extended\nand customized with very little code duplication. Compared to other popular\nPython serialization frameworks like `marshmallow\n`_ or `Django Rest Framework Serializers\n`_ **serpy** is at\nleast an `order of magnitude\n`_ faster.\n\n\nSource\n======\nSource at: https://github.com/clarkduvall/serpy\n\nIf you want a feature, send a pull request!\n\nDocumentation\n=============\nFull documentation at: http://serpy.readthedocs.org/en/latest/\n\nInstallation\n============\n.. code-block:: bash\n\n $ pip install serpy\n\nExamples\n========\n\nSimple Example\n--------------\n.. code-block:: python\n\n import serpy\n\n class Foo(object):\n \"\"\"The object to be serialized.\"\"\"\n y = 'hello'\n z = 9.5\n\n def __init__(self, x):\n self.x = x\n\n\n class FooSerializer(serpy.Serializer):\n \"\"\"The serializer schema definition.\"\"\"\n # Use a Field subclass like IntField if you need more validation.\n x = serpy.IntField()\n y = serpy.Field()\n z = serpy.Field()\n\n f = Foo(1)\n FooSerializer(f).data\n # {'x': 1, 'y': 'hello', 'z': 9.5}\n\n fs = [Foo(i) for i in range(100)]\n FooSerializer(fs, many=True).data\n # [{'x': 0, 'y': 'hello', 'z': 9.5}, {'x': 1, 'y': 'hello', 'z': 9.5}, ...]\n\nNested Example\n--------------\n.. code-block:: python\n\n import serpy\n\n class Nestee(object):\n \"\"\"An object nested inside another object.\"\"\"\n n = 'hi'\n\n\n class Foo(object):\n x = 1\n nested = Nestee()\n\n\n class NesteeSerializer(serpy.Serializer):\n n = serpy.Field()\n\n\n class FooSerializer(serpy.Serializer):\n x = serpy.Field()\n # Use another serializer as a field.\n nested = NesteeSerializer()\n\n f = Foo()\n FooSerializer(f).data\n # {'x': 1, 'nested': {'n': 'hi'}}\n\nComplex Example\n---------------\n.. code-block:: python\n\n import serpy\n\n class Foo(object):\n y = 1\n z = 2\n super_long_thing = 10\n\n def x(self):\n return 5\n\n\n class FooSerializer(serpy.Serializer):\n w = serpy.Field(attr='super_long_thing')\n x = serpy.Field(call=True)\n plus = serpy.MethodField()\n\n def get_plus(self, obj):\n return obj.y + obj.z\n\n f = Foo()\n FooSerializer(f).data\n # {'w': 10, 'x': 5, 'plus': 3}\n\nInheritance Example\n-------------------\n.. code-block:: python\n\n import serpy\n\n class Foo(object):\n a = 1\n b = 2\n\n\n class ASerializer(serpy.Serializer):\n a = serpy.Field()\n\n\n class ABSerializer(ASerializer):\n \"\"\"ABSerializer inherits the 'a' field from ASerializer.\n\n This also works with multiple inheritance and mixins.\n \"\"\"\n b = serpy.Field()\n\n f = Foo()\n ASerializer(f).data\n # {'a': 1}\n ABSerializer(f).data\n # {'a': 1, 'b': 2}\n\nLicense\n=======\nserpy is free software distributed under the terms of the MIT license. See the\n`LICENSE `_ file.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/clarkduvall/serpy", "keywords": "serialization,rest,json,api,marshal,marshalling,validation,schema,fast", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "serpy", "package_url": "https://pypi.org/project/serpy/", "platform": "", "project_url": "https://pypi.org/project/serpy/", "project_urls": { "Homepage": "https://github.com/clarkduvall/serpy" }, "release_url": "https://pypi.org/project/serpy/0.3.1/", "requires_dist": [ "six" ], "requires_python": "", "summary": "ridiculously fast object serialization", "version": "0.3.1" }, "last_serial": 3370071, "releases": { "0.0.1": [], "0.0.2": [ { "comment_text": "", "digests": { "md5": "cb463dcbc5baec4a28b73ad46185cbea", "sha256": "d7e7973cb5724fc9580245265b8851687789205ac1574f32f53ef40aa9ad8dae" }, "downloads": -1, "filename": "serpy-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb463dcbc5baec4a28b73ad46185cbea", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 7555, "upload_time": "2015-04-05T03:13:28", "url": "https://files.pythonhosted.org/packages/3c/1b/b4935f0fac37dc282e4686d199ef1b26751b3f09dfe9eb5db997388037c5/serpy-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be0af8d43d287ea240b75ba82a40db2f", "sha256": "d6009b1f108d4041081cb8b74cb6b433f9cc6109836df7ffa97505bfe3002c97" }, "downloads": -1, "filename": "serpy-0.0.2.tar.gz", "has_sig": false, "md5_digest": "be0af8d43d287ea240b75ba82a40db2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5362, "upload_time": "2015-04-05T03:13:25", "url": "https://files.pythonhosted.org/packages/3d/ba/4305bd8d42d3b6592f1e59e9553bd2c727c970689f8af0b4f3779f2c2ffb/serpy-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "eaaad1d6d6ceb45983f18b795053f351", "sha256": "0ffd3e525252119a38a2959899adfc233e02dd40e08e9dfc73668a472d6396d1" }, "downloads": -1, "filename": "serpy-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eaaad1d6d6ceb45983f18b795053f351", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8604, "upload_time": "2015-04-07T07:01:02", "url": "https://files.pythonhosted.org/packages/11/b1/bd79186275406f9db66cc26557c39ab4cd29246fea4f4f011eb51863bafd/serpy-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7bce5e64c8a86f2ae90ef778a3a5fc0d", "sha256": "5c52c4fd1f3b0068e8ef47d60a65179a8d79c6af05e0d0788e96c556dc414dac" }, "downloads": -1, "filename": "serpy-0.0.3.tar.gz", "has_sig": false, "md5_digest": "7bce5e64c8a86f2ae90ef778a3a5fc0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6137, "upload_time": "2015-04-07T07:00:59", "url": "https://files.pythonhosted.org/packages/fe/c3/a64a55b08f7e82e1ed83725e5106fdb08f11f0ddcbc56d877dddd06366bf/serpy-0.0.3.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "ed35ccd47c26810186f42a3c37babc6a", "sha256": "a392b38a575b5c985c3fcb7268482fd04b1b7f6c1bf74d68ae843df695467c03" }, "downloads": -1, "filename": "serpy-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ed35ccd47c26810186f42a3c37babc6a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8744, "upload_time": "2015-09-11T17:05:59", "url": "https://files.pythonhosted.org/packages/71/99/2701ca082e630f773f52dae9d4d40982cecca9ebe9134c5daeeeeeaba534/serpy-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f38b981cf7f3d49ed504d75b38bf282", "sha256": "efd0c6209574023717471357fe49fef1dbdeb8c938d54f9642b7c3c3c96d6806" }, "downloads": -1, "filename": "serpy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8f38b981cf7f3d49ed504d75b38bf282", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6213, "upload_time": "2015-09-11T17:05:14", "url": "https://files.pythonhosted.org/packages/c5/d3/b3668724c022d59dfbc6c1d83b2e322e15481eec9f8163e5b8d54a79fbd9/serpy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "14901529fa77821a5347bb08b2f635a2", "sha256": "b774bfdf0c3b245660639e9fc5f311a8bbceb2725aaba72fce1fec00b453286e" }, "downloads": -1, "filename": "serpy-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "14901529fa77821a5347bb08b2f635a2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9111, "upload_time": "2016-04-12T01:43:51", "url": "https://files.pythonhosted.org/packages/5a/4e/a8f667bcacfc7fc8b011484e5642055bbc57d1755cc82ee337753777c877/serpy-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "379a4d17df1788691e6e716472566b80", "sha256": "b1481f8cb93d767b23903d1df6cc0a7120cb0694095b6695eb78d9d453b23c65" }, "downloads": -1, "filename": "serpy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "379a4d17df1788691e6e716472566b80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6440, "upload_time": "2016-04-12T01:43:46", "url": "https://files.pythonhosted.org/packages/6e/40/957005bc5f7996dcbf0ceedb302c4dc58fb9d2cceb5e2c3eb8a7f3c163e4/serpy-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "cdf152d3b22a354111a3769d9b65565a", "sha256": "e262afb3e3c71a57af7a38f1a6ed3d28ddedc4d25eddb35a4612381646172838" }, "downloads": -1, "filename": "serpy-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cdf152d3b22a354111a3769d9b65565a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9208, "upload_time": "2017-09-29T15:59:02", "url": "https://files.pythonhosted.org/packages/2d/5a/acb141155c28ed4b69b0955d26d4ca0b51541abc001a0bb2c7ef5a0b8c6a/serpy-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9e3693d5a8489d8d721bc768918909fd", "sha256": "7e62e242321b208362966d5ab32b45df93b1cb88da4ce6260277da060b4f7475" }, "downloads": -1, "filename": "serpy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9e3693d5a8489d8d721bc768918909fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6496, "upload_time": "2017-09-29T15:59:03", "url": "https://files.pythonhosted.org/packages/2a/12/aa3152e83efbc6101848a9be4c7a5ac3e24f3f7fa491407b919727613c31/serpy-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "427a5e59280a79875559459d4567edc1", "sha256": "ac4294edc9b7564b6917e81df89903d8697aa329fbbf685ff1c3f78a45ffd796" }, "downloads": -1, "filename": "serpy-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "427a5e59280a79875559459d4567edc1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9227, "upload_time": "2017-11-28T04:57:06", "url": "https://files.pythonhosted.org/packages/45/67/3eb2616de7e6505dc89bb43f46a20930452bcb2330319095d5e68e3407f5/serpy-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7e9e0e6d79f8171d5c1673cb02a42870", "sha256": "b5b04bd112fdda5ad2f648349a6edfa459430bd2d91dbc6366759f3a300636c5" }, "downloads": -1, "filename": "serpy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "7e9e0e6d79f8171d5c1673cb02a42870", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7163, "upload_time": "2017-11-28T04:57:07", "url": "https://files.pythonhosted.org/packages/ac/07/866d32e8eca61e44874c9eae1e27b9d6503a0122ecaeffb3fa8401b45a0a/serpy-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "253bcc314aa6b74f58e31825b3c493f8", "sha256": "750ded3df0671918b81d6efcab2b85cac12f9fcc2bce496c24a0ffa65d84b5da" }, "downloads": -1, "filename": "serpy-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "253bcc314aa6b74f58e31825b3c493f8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9223, "upload_time": "2017-11-28T05:23:02", "url": "https://files.pythonhosted.org/packages/62/81/8e9efbb206bb6cd79e515ea54365c8cac0cdfffefb073b51b2b7f9da46fa/serpy-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c1e72211aa9d098ae1ee7e0df9c1929", "sha256": "3772b2a9923fbf674000ff51abebf6ea8f0fca0a2cfcbfa0d63ff118193d1ec5" }, "downloads": -1, "filename": "serpy-0.3.1.tar.gz", "has_sig": false, "md5_digest": "4c1e72211aa9d098ae1ee7e0df9c1929", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7160, "upload_time": "2017-11-28T05:23:03", "url": "https://files.pythonhosted.org/packages/66/25/4cbf8f523989adbbaa6b8e560867789f0bdf493882402d8fc0a4bf4209ba/serpy-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "253bcc314aa6b74f58e31825b3c493f8", "sha256": "750ded3df0671918b81d6efcab2b85cac12f9fcc2bce496c24a0ffa65d84b5da" }, "downloads": -1, "filename": "serpy-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "253bcc314aa6b74f58e31825b3c493f8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9223, "upload_time": "2017-11-28T05:23:02", "url": "https://files.pythonhosted.org/packages/62/81/8e9efbb206bb6cd79e515ea54365c8cac0cdfffefb073b51b2b7f9da46fa/serpy-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c1e72211aa9d098ae1ee7e0df9c1929", "sha256": "3772b2a9923fbf674000ff51abebf6ea8f0fca0a2cfcbfa0d63ff118193d1ec5" }, "downloads": -1, "filename": "serpy-0.3.1.tar.gz", "has_sig": false, "md5_digest": "4c1e72211aa9d098ae1ee7e0df9c1929", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7160, "upload_time": "2017-11-28T05:23:03", "url": "https://files.pythonhosted.org/packages/66/25/4cbf8f523989adbbaa6b8e560867789f0bdf493882402d8fc0a4bf4209ba/serpy-0.3.1.tar.gz" } ] }