{ "info": { "author": "Jason Simeone", "author_email": "jay@classless.net", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "***********\nbasicserial\n***********\n\n.. image:: https://img.shields.io/pypi/v/basicserial.svg\n :target: https://pypi.python.org/pypi/basicserial\n.. image:: https://img.shields.io/pypi/l/basicserial.svg\n :target: https://pypi.python.org/pypi/basicserial\n.. image:: https://travis-ci.org/jayclassless/basicserial.svg?branch=master\n :target: https://travis-ci.org/jayclassless/basicserial\n.. image:: https://coveralls.io/repos/github/jayclassless/basicserial/badge.svg?branch=master\n :target: https://coveralls.io/github/jayclassless/basicserial?branch=master\n\n.. contents:: Contents\n\n\nOverview\n--------\nDoes this look familiar?\n\n::\n\n >>> import json\n >>> from datetime import date\n >>> MY_DATA = {'foo': 123, 'bar': date(2018, 5, 22)}\n >>> json.dumps(MY_DATA)\n Traceback (most recent call last):\n ...\n TypeError: datetime.date(2018, 5, 22) is not JSON serializable\n\nIt's one thing when your serialization tools don't know how to handle your\ncustom classes, but it's annoying when they don't handle the built-in and/or\ncommon data types. Thus, ``basicserial`` was born.\n\nThis package is a thin wrapper around the common serialization tools that can\ndo the following for you when working with JSON, YAML, and TOML:\n\n* Automatically serializes the following types to common-sense representations:\n\n .. list-table::\n :header-rows: 1\n\n * - Type\n - JSON\n - YAML\n - TOML\n * - `set `_\n - array\n - sequence\n - array\n * - `frozenset `_\n - array\n - sequence\n - array\n * - `Decimal `_\n - number\n - float\n - float\n * - `Fraction `_\n - string\n - string\n - string\n * - `date `_\n - string (ISO 8601)\n - timestamp\n - string (ISO 8601)\n * - `time `_\n - string (ISO 8601)\n - string (ISO 8601)\n - string (ISO 8601)\n * - `datetime `_\n - string (ISO 8601)\n - timestamp\n - string (ISO 8601)\n * - `complex `_\n - string\n - string\n - string\n * - `OrderedDict `_\n - object\n - map\n - key/value\n * - `defaultdict `_\n - object\n - map\n - key/value\n * - `namedtuple `_\n - object\n - map\n - key/value\n * - `UserDict `_\n - object\n - map\n - key/value\n * - `UserList `_\n - array\n - sequence\n - array\n * - `UserString `_\n - string\n - string\n - string\n\n* Can automatically deserialize dates, times, and datetimes into the native\n Python objects.\n\n* Provides a simple flag for generating \"pretty\" strings.\n\n\nUsage\n=====\nTo use this package, install it from PyPI (``pip install basicserial``). Then,\nif you want to use YAML or TOML, you'll also need to install a package that\nprovides that functionality (for YAML ``basicserial`` supports `PyYAML\n`_ and `ruamel.yaml\n`_, for TOML it supports `toml\n`_ or `pytoml\n`_). ``basicserial`` will use Python's\nbuilt-in `json `_ module to handle\nJSON.\n\nJSON::\n\n >>> print(basicserial.to_json(MY_DATA))\n {\"foo\": 123, \"bar\": \"2018-05-22\"}\n\n >>> print(basicserial.to_json(MY_DATA, pretty=True))\n {\n \"foo\": 123,\n \"bar\": \"2018-05-22\"\n }\n\n >>> basicserial.from_json(basicserial.to_json(MY_DATA))\n {u'foo': 123, u'bar': datetime.date(2018, 5, 22)}\n\n >>> basicserial.from_json(basicserial.to_json(MY_DATA), native_datetimes=False)\n {u'foo': 123, u'bar': u'2018-05-22'}\n\n\nYAML::\n\n >>> print(basicserial.to_yaml(MY_DATA))\n {bar: 2018-05-22, foo: 123}\n\n >>> print(basicserial.to_yaml(MY_DATA, pretty=True))\n bar: 2018-05-22\n foo: 123\n\n >>> basicserial.from_yaml(basicserial.to_yaml(MY_DATA))\n {u'foo': 123, u'bar': datetime.date(2018, 5, 22)}\n\n >>> basicserial.from_yaml(basicserial.to_yaml(MY_DATA), native_datetimes=False)\n {'foo': 123, 'bar': u'2018-05-22'}\n\n\nTOML::\n\n >>> print(basicserial.to_toml(MY_DATA))\n foo = 123\n bar = \"2018-05-22\"\n\n >>> print(basicserial.to_toml(MY_DATA, pretty=True))\n foo = 123\n bar = \"2018-05-22\"\n\n >>> basicserial.from_toml(basicserial.to_toml(MY_DATA))\n {u'foo': 123, u'bar': datetime.date(2018, 5, 22)}\n\n >>> basicserial.from_toml(basicserial.to_toml(MY_DATA), native_datetimes=False)\n {u'foo': 123, u'bar': u'2018-05-22'}\n\n\nLicense\n-------\nThis project is released under the terms of the `MIT License`_.\n\n.. _MIT License: https://opensource.org/licenses/MIT\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jayclassless/basicserial", "keywords": "serialize serialization json yaml toml", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "basicserial", "package_url": "https://pypi.org/project/basicserial/", "platform": "", "project_url": "https://pypi.org/project/basicserial/", "project_urls": { "Homepage": "https://github.com/jayclassless/basicserial" }, "release_url": "https://pypi.org/project/basicserial/0.2.0/", "requires_dist": [ "six", "iso8601" ], "requires_python": "", "summary": "A convenience wrapper around serialization libraries to handle common tasks.", "version": "0.2.0" }, "last_serial": 5197954, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "cbca9030d81048e225b287386cf135cc", "sha256": "e235d158f32c44afae65eaebf0f03e106bc4ea942ac12322778ce095c2185aec" }, "downloads": -1, "filename": "basicserial-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cbca9030d81048e225b287386cf135cc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5590, "upload_time": "2018-06-09T16:15:55", "url": "https://files.pythonhosted.org/packages/80/6f/0da8ffa2fc03f122539cc42581e1736c98fb5021d7e362e7911b77e27494/basicserial-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1559789cfcb032b283185a59753eb21f", "sha256": "1cda10e3defb4a34f37525edbdd48d292d8b83f93a3a5ddd0d44b790da9023b4" }, "downloads": -1, "filename": "basicserial-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1559789cfcb032b283185a59753eb21f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6553, "upload_time": "2018-06-09T16:15:56", "url": "https://files.pythonhosted.org/packages/d8/b8/0d6c46e3262fc51f2137beffc4d52fcf62a74b3c3c083c9b67e26cda5861/basicserial-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2d43436b8c3bd3f2ec9fb74acaece701", "sha256": "b669eb7cbac044e0db72f2732e9bdcb3d781d3dff426a328bad6ce8be332eb07" }, "downloads": -1, "filename": "basicserial-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2d43436b8c3bd3f2ec9fb74acaece701", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6428, "upload_time": "2019-04-27T22:20:56", "url": "https://files.pythonhosted.org/packages/6d/56/fdc75a48d157ee6147e6adb745cdaa1939c68a01a8d0e78c308a74bc2eed/basicserial-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d2426ed36e1451db3f1c0dd407298bc", "sha256": "6a3d8e61423eec78408da2d79f835017f799ff6d60df74f7aee17670573fbb5d" }, "downloads": -1, "filename": "basicserial-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5d2426ed36e1451db3f1c0dd407298bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6624, "upload_time": "2019-04-27T22:20:59", "url": "https://files.pythonhosted.org/packages/77/b6/21bb8ece6f64c7a166256cc98fa91fda4ea9b5f741b0f475f20df0763472/basicserial-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2d43436b8c3bd3f2ec9fb74acaece701", "sha256": "b669eb7cbac044e0db72f2732e9bdcb3d781d3dff426a328bad6ce8be332eb07" }, "downloads": -1, "filename": "basicserial-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2d43436b8c3bd3f2ec9fb74acaece701", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6428, "upload_time": "2019-04-27T22:20:56", "url": "https://files.pythonhosted.org/packages/6d/56/fdc75a48d157ee6147e6adb745cdaa1939c68a01a8d0e78c308a74bc2eed/basicserial-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d2426ed36e1451db3f1c0dd407298bc", "sha256": "6a3d8e61423eec78408da2d79f835017f799ff6d60df74f7aee17670573fbb5d" }, "downloads": -1, "filename": "basicserial-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5d2426ed36e1451db3f1c0dd407298bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6624, "upload_time": "2019-04-27T22:20:59", "url": "https://files.pythonhosted.org/packages/77/b6/21bb8ece6f64c7a166256cc98fa91fda4ea9b5f741b0f475f20df0763472/basicserial-0.2.0.tar.gz" } ] }