d_serialize
===========
Universal converter of all things Python to a `dict`. So it can be serialized
to `JSON`.
Install
-------
pip install d-serialize
Usage:
------
```python
from d_serialize import d_serialize
from objects import SomeObject
some_object = SomeObject()
json_values = d_serialize(some_object)
```
Usage in Flask
--------------
```python
from d_serialize import d_serialize
from flask import jsonify
from objects import SomeObject
@app.route('/a_route')
def a_route():
some_object = SomeObject()
json_values = d_serialize(some_object)
return jsonify(json_values)
```
d_serialize will enumerate all public properties of your object, set, list or `dict` and convert them
to a JSON allowable type. IE:
list, dictionary, string, float, integer or boolean.
Any property that is not one of these types will be converted to a `string`. Enumerables: `set`
and `tuple` will be converted to `list`.
Dictionary and list properties will be followed to ensure all child objects and
values are also converted.
Methods and private properties (starting with `_`) are not enumerated.
Any property or attribute that raises an exception will be excluded or
have a `None` value.
Example:
--------
Converting a Class instance.
```python
from d_serialize import d_serialize
class TestObject:
number_value = 1
float_value = 1.1
def dont_call_me(self):
"""return self.number_value"""
print(d_serialize(TestObject()))
# dict(number_value=1, float_value=1.1)
```
Release History
===============
* 1.0.0 First version of this wondrous package.
* 1.0.1 Check for None when serializing and return None rather than 'None'. Exceptions on getattr return None for value.
* 1.0.2 Crummy circular reference test. Convert top level list, set, tuple.
* 1.0.3 Fix deploy workflow
* 1.0.4 Allow for readonly objects
Raw data
{
"_id": null,
"home_page": "https://github.com/Martlark/d_serialize",
"name": "d-serialize",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "serialize json convert dict",
"author": "Andrew Rowe",
"author_email": "rowe.andrew.d@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/49/92/df0aef95c3b8434d32a74792511eb301b9275df24be4f2705c9ebb652c24/d-serialize-1.0.5.tar.gz",
"platform": null,
"description": "d_serialize\n\n===========\n\n\n\nUniversal converter of all things Python to a `dict`. So it can be serialized\n\nto `JSON`. \n\n\n\nInstall\n\n-------\n\n\n\npip install d-serialize\n\n\n\nUsage:\n\n------\n\n\n\n```python\n\nfrom d_serialize import d_serialize\n\nfrom objects import SomeObject\n\n\n\nsome_object = SomeObject()\n\njson_values = d_serialize(some_object)\n\n```\n\n\n\nUsage in Flask\n\n--------------\n\n\n\n```python\n\nfrom d_serialize import d_serialize\n\nfrom flask import jsonify\n\nfrom objects import SomeObject\n\n\n\n@app.route('/a_route')\n\ndef a_route():\n\n some_object = SomeObject()\n\n json_values = d_serialize(some_object)\n\n return jsonify(json_values)\n\n```\n\n\n\nd_serialize will enumerate all public properties of your object, set, list or `dict` and convert them\n\nto a JSON allowable type. IE:\n\n\n\n list, dictionary, string, float, integer or boolean.\n\n\n\nAny property that is not one of these types will be converted to a `string`. Enumerables: `set`\n\nand `tuple` will be converted to `list`.\n\n\n\nDictionary and list properties will be followed to ensure all child objects and\n\nvalues are also converted.\n\n\n\nMethods and private properties (starting with `_`) are not enumerated.\n\n\n\nAny property or attribute that raises an exception will be excluded or\n\nhave a `None` value.\n\n\n\nExample:\n\n--------\n\n\n\nConverting a Class instance.\n\n\n\n```python\n\nfrom d_serialize import d_serialize\n\n\n\nclass TestObject:\n\n number_value = 1\n\n float_value = 1.1\n\n\n\n def dont_call_me(self):\n\n \"\"\"return self.number_value\"\"\"\n\n\n\nprint(d_serialize(TestObject()))\n\n\n\n# dict(number_value=1, float_value=1.1)\n\n```\n\n\n\nRelease History\n\n===============\n\n\n\n* 1.0.0 First version of this wondrous package.\n\n* 1.0.1 Check for None when serializing and return None rather than 'None'. Exceptions on getattr return None for value.\n\n* 1.0.2 Crummy circular reference test. Convert top level list, set, tuple.\n\n* 1.0.3 Fix deploy workflow\n\n* 1.0.4 Allow for readonly objects\n\n",
"bugtrack_url": null,
"license": "Apache Software License",
"summary": "Universal Python serializer",
"version": "1.0.5",
"project_urls": {
"Download": "https://github.com/Martlark/d_serialize/archive/1.0.5.tar.gz",
"Homepage": "https://github.com/Martlark/d_serialize"
},
"split_keywords": [
"serialize",
"json",
"convert",
"dict"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f73132d89ba0066f2b66ac7b2d24dd5e832cf639b14c6e61bf8bfdc3fcccc039",
"md5": "276e5874104cde9f584f7951be6c6749",
"sha256": "dc33902df0deeb2cf4a455e60024f4df07b3faefeb644e1a73d9df749d342634"
},
"downloads": -1,
"filename": "d_serialize-1.0.5-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "276e5874104cde9f584f7951be6c6749",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 4287,
"upload_time": "2023-09-03T10:01:08",
"upload_time_iso_8601": "2023-09-03T10:01:08.986487Z",
"url": "https://files.pythonhosted.org/packages/f7/31/32d89ba0066f2b66ac7b2d24dd5e832cf639b14c6e61bf8bfdc3fcccc039/d_serialize-1.0.5-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4992df0aef95c3b8434d32a74792511eb301b9275df24be4f2705c9ebb652c24",
"md5": "2b67e1cb52c84716f3d3dfe8c2a69958",
"sha256": "6447dab5fc500b4e0e38c7c7727544ea9ce73f8bc7cf4a55f4960bfcd29e9237"
},
"downloads": -1,
"filename": "d-serialize-1.0.5.tar.gz",
"has_sig": false,
"md5_digest": "2b67e1cb52c84716f3d3dfe8c2a69958",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5577,
"upload_time": "2023-09-03T10:01:10",
"upload_time_iso_8601": "2023-09-03T10:01:10.584679Z",
"url": "https://files.pythonhosted.org/packages/49/92/df0aef95c3b8434d32a74792511eb301b9275df24be4f2705c9ebb652c24/d-serialize-1.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-03 10:01:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Martlark",
"github_project": "d_serialize",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "d-serialize"
}