{ "info": { "author": "Florian Knoop", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "son | sequential object notation\n===\n\n![python](https://img.shields.io/badge/python-3.5--3.7-lightgrey.svg?style=flat-square)\n[![pypi](https://img.shields.io/pypi/v/son.svg?style=flat-square)](https://pypi.org/project/son/)\n![license](https://img.shields.io/pypi/l/son.svg?color=red&style=flat-square)\n[![code style](https://img.shields.io/badge/code%20style-black-202020.svg?style=flat-square)](https://github.com/ambv/black)\n\n\n## What is this?\n_son_ is a data format that builds on [JSON](https://www.json.org/) and adds one \nfeature inspired by [YAML](https://yaml.org/): concatenation of objects with \n`---`. Optionally, the delimiter `===` can be used once per _son_ file to delimit \nmetadata.\n\n## Why _son_?\nWhile JSON is perfect for storing structured data, it is inherently impossible\nto add new portions of data to a file without reading it first. YAML files on \nthe other hand are self extensible by the `---` delimiter, but the flexibility \nYAML offers makes the files inefficient to parse. They are thus unsuited to \nstore significant amounts of data.\n\n_son_ fills the gap by allowing JSON objects to be concatenated with `---`. It\nthus combines the speed and efficiency of JSON with the sequential extensibility\nof YAML, see [example](#Example). It further adds to discern metadata from \nactual data by using `===`.\n\n_son_ does **not** allow to overwrite data. In order to avoid accidental data loss,\nmetada can only be written to fresh files, whereas data can only be appended to files.\n\n## Who needs this?\n_son_ originated from the need to store computational data that is produced\nportion by portion on a computer. The requirements were:\n- Possible to be read by a human,\n- possible to store arbitrary data structures _including_ metadata,\n- easy to write and parse by a computer,\n- efficient to parse to allow files of up to GB size (takes forever to parse with YAML),\n- sequential and incorruptible,\n- resilient to data loss.\n\n## Example\nThis is a valid _son_ string:\n```yaml\n{\n \"purpose\": \"store biography data\",\n \"version\": 0.1\n}\n===\n{\n \"first name\": \"Hildegard\",\n \"second name\": \"Kneef\",\n \"age\": 93\n}\n---\n{\n \"first name\": \"Wiglaf\",\n \"second name\": \"Droste\",\n \"age\": 57\n}\n```\nIt will be parsed into the metadata object, and a list containing the data objects with\n```python\nimport son\n\nmetadata, data = son.load('file.son')\n```\n\n## Changelog\nv.0.3.2: fix for interactively working in `ipython` console\n\nv.0.3.1: inform _before_ file is read, makes more sense when that takes some time\n\nv.0.3.0: support for reading compressed `.bz2` and `.gz` files\n\nv.0.2.5: progressbar is only shown when a terminal is attached (`.isatty()`)\n\nv.0.2.4: progressbar without external dependency\n\nv.0.2.3: `progress.bar` prints to `stdout` instead of `stderr`\n\nv.0.2.2: optionally be verbose and show progressbar with `progress` package (optional dependency, install with `pip install son[progress]`)\n", "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/flokno/son", "keywords": "file format,data", "license": "ISC", "maintainer": "Florian Knoop", "maintainer_email": "", "name": "son", "package_url": "https://pypi.org/project/son/", "platform": "", "project_url": "https://pypi.org/project/son/", "project_urls": { "Homepage": "https://github.com/flokno/son", "Repository": "https://github.com/flokno/son" }, "release_url": "https://pypi.org/project/son/0.3.2/", "requires_dist": null, "requires_python": ">=3.5", "summary": "Tools to read and write .son files", "version": "0.3.2" }, "last_serial": 5540527, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "97d7a0fc9569ef8c18fb5b18739e09a5", "sha256": "b5a31460def63d4afef949bddc71243ec373bf77e8091e71477dcf452cdcd2c3" }, "downloads": -1, "filename": "son-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "97d7a0fc9569ef8c18fb5b18739e09a5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3721, "upload_time": "2019-06-03T22:46:27", "url": "https://files.pythonhosted.org/packages/a9/ab/ecd49c61c4ac19388e118b2f8f2f5abb0865a8800b60469d95212200c729/son-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96db41ee4a8b2028c98c93d74c205156", "sha256": "eae9d5328e799b08fc6398164bcf5b32323b4ad36dd7722e3302cc0dcf06bb11" }, "downloads": -1, "filename": "son-0.1.1.tar.gz", "has_sig": false, "md5_digest": "96db41ee4a8b2028c98c93d74c205156", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3170, "upload_time": "2019-06-03T22:46:30", "url": "https://files.pythonhosted.org/packages/7a/b6/7f92ad8b81ce1d9103643295af0935282cc6c46aa54c2cc77d4cb9576ab0/son-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "530053a01e08fffbb7ce8e49b430e762", "sha256": "8ced4b7868a4440b0a4842660f96237d6b4a8a3dd722228d4ef9bcbe6d6697bc" }, "downloads": -1, "filename": "son-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "530053a01e08fffbb7ce8e49b430e762", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4585, "upload_time": "2019-06-04T09:36:19", "url": "https://files.pythonhosted.org/packages/d6/9f/7e455aece03ad1bba2f9430b3a3d235f295238189d46d640537346834c9b/son-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73e95967a3bc8712945cc3bb129b90a2", "sha256": "94becd6aa9d15b76cd075b3f1687f34128021f4f3909a312c1917c7cd77025b7" }, "downloads": -1, "filename": "son-0.1.2.tar.gz", "has_sig": false, "md5_digest": "73e95967a3bc8712945cc3bb129b90a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3392, "upload_time": "2019-06-04T09:36:20", "url": "https://files.pythonhosted.org/packages/ce/b4/49c9bd6c0f98c90405b71f10408a7ea45a8a3ae0304b00559a50424bcb5a/son-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "6bf99dd00b7a1bb02ff264bb22306bab", "sha256": "6e992bec9fb0faa75894716c738d2567c768b35f3cbf41cb7213120222d16e5b" }, "downloads": -1, "filename": "son-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6bf99dd00b7a1bb02ff264bb22306bab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4598, "upload_time": "2019-06-04T09:56:01", "url": "https://files.pythonhosted.org/packages/e0/b8/d3f6b92d3a6d910c27d0c4bc23ce859a862363ee66b3620a7818de83f299/son-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca52bf6bea95282d93c9ab85f07cdb1c", "sha256": "7f68e0da4b3c9535e7ab63f835e529cc90965c7da91e9fb660caa31ffb828260" }, "downloads": -1, "filename": "son-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ca52bf6bea95282d93c9ab85f07cdb1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3405, "upload_time": "2019-06-04T09:56:02", "url": "https://files.pythonhosted.org/packages/c0/a1/bbb4e9e271fb83bb61b8745c91a669115c66182ac57a5157e713e139c91f/son-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "e4882cb684dedd1b7f042b419cb1bb90", "sha256": "c03f5be14b260220be886e424526ebd15d17c60be9bf810716aa9c70426277f7" }, "downloads": -1, "filename": "son-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e4882cb684dedd1b7f042b419cb1bb90", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 4026, "upload_time": "2019-06-04T14:43:06", "url": "https://files.pythonhosted.org/packages/90/2c/96f573e23fade8a60b0665cc1838a68ecfc4613275e5cd2e6f27a4289129/son-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83ba921a4db97124a456739482c87157", "sha256": "f10ece25be57f908d1250b6722d3f4254735c838583732c75ccc0de14e9ad4b1" }, "downloads": -1, "filename": "son-0.1.4.tar.gz", "has_sig": false, "md5_digest": "83ba921a4db97124a456739482c87157", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 3893, "upload_time": "2019-06-04T14:43:07", "url": "https://files.pythonhosted.org/packages/2c/c2/a477708da613da06652016cd85292a16a4d330806778902d6cd0043f3d23/son-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "bc4d79cb549270bebf9403241cab64a5", "sha256": "258ef19da51f6fcbbede389c745a4ef3a1135d8385c647ca56dab90d6980a469" }, "downloads": -1, "filename": "son-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bc4d79cb549270bebf9403241cab64a5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 3746, "upload_time": "2019-06-07T12:28:57", "url": "https://files.pythonhosted.org/packages/44/5d/60fc53e500157df1bdc64e1dd7be5dc1c873c151d37808389f449c23952e/son-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6530d3608e0d23de25ea8593ec7bc7fb", "sha256": "9507999160bbfa6b9169221b81d77e5ed2957ec4021a7ec9de9947c7e4a9e8d5" }, "downloads": -1, "filename": "son-0.1.5.tar.gz", "has_sig": false, "md5_digest": "6530d3608e0d23de25ea8593ec7bc7fb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 3783, "upload_time": "2019-06-07T12:28:58", "url": "https://files.pythonhosted.org/packages/ac/d0/d2b008391dbb800022d8fb9d3df62c7ca938c2e6377e5ccdc9dad6a0d892/son-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "03eec30e2b88b47fc38d90ce6328bbed", "sha256": "c428b7306553258ebf6c55dd04d58b4415a2b19a48e61a1187d567fe0f2ce5f7" }, "downloads": -1, "filename": "son-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "03eec30e2b88b47fc38d90ce6328bbed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3730, "upload_time": "2019-06-07T13:28:35", "url": "https://files.pythonhosted.org/packages/89/40/93e48ac04185decd0c023fe14ef226feb8060d800781dd1494560b872bd1/son-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0dcb27c403985c6b217b319ca2898b45", "sha256": "5567d639205be01b37fee6f53a15c711883b37bbb13a6984ec83f73c0e9a805d" }, "downloads": -1, "filename": "son-0.1.6.tar.gz", "has_sig": false, "md5_digest": "0dcb27c403985c6b217b319ca2898b45", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3790, "upload_time": "2019-06-07T13:28:37", "url": "https://files.pythonhosted.org/packages/e8/15/6156a4f8d087d64d8e23436d0a91d82a26f8fefb0d7108d3695dd062bbd4/son-0.1.6.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "a4785424ba7e9a10ac281f3fe2ee095d", "sha256": "d63b371f57593cc6a11093db3d9b89afda5adff4d1c9cd666fdf3e428e2b9b15" }, "downloads": -1, "filename": "son-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a4785424ba7e9a10ac281f3fe2ee095d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3719, "upload_time": "2019-06-13T16:33:39", "url": "https://files.pythonhosted.org/packages/45/f3/d9f7999cf867c9ddd520a69913ca3fcd21970e923f1a05e34d298611dc69/son-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "650c0313320da522e57f93bce958b8f4", "sha256": "56469fd6f024cbcaeb3df9ae799547658243389b43b56622cb9328f538e80af4" }, "downloads": -1, "filename": "son-0.2.1.tar.gz", "has_sig": false, "md5_digest": "650c0313320da522e57f93bce958b8f4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3785, "upload_time": "2019-06-13T16:33:40", "url": "https://files.pythonhosted.org/packages/ed/10/75ffab4c00f71b639354c284a83114b977a9e2d1e7682597c2274c1db6c5/son-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "d97a1ef6fad10f5f7deb77e5ff69570c", "sha256": "99f95e5aedc63a81ec21b59b2a575e82cf3c5d52fd388059a6a8985f8a5db200" }, "downloads": -1, "filename": "son-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d97a1ef6fad10f5f7deb77e5ff69570c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4004, "upload_time": "2019-07-08T11:13:59", "url": "https://files.pythonhosted.org/packages/0b/93/155108eb8ed790ebe1a53c83a5c140e245b47736f8f5950c2af14b6fea8c/son-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8c05635d24971737e2c00c991d2dc2d", "sha256": "a37eaf9497d6a2904fb97afd2e3289868659ef13ff1a8f2405020175dd69e937" }, "downloads": -1, "filename": "son-0.2.2.tar.gz", "has_sig": false, "md5_digest": "d8c05635d24971737e2c00c991d2dc2d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4113, "upload_time": "2019-07-08T11:14:00", "url": "https://files.pythonhosted.org/packages/0f/91/e394363338ddae9da145e983810126579a3804435d973ab01bde31cd7f6b/son-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "a4df23a0c366706ef72b446f01538cdf", "sha256": "fca6f8a5a114a9c5cea342c18443e2920841466bcc491724e4d5998b36f8ff1d" }, "downloads": -1, "filename": "son-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a4df23a0c366706ef72b446f01538cdf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4067, "upload_time": "2019-07-09T11:35:34", "url": "https://files.pythonhosted.org/packages/55/3e/cdc5bb1b4aae6ff7e238d0d4021c941879ce56cb90f5d22beb9c75da826b/son-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11f334de1bce24b8ad1dcf98d5cc63e5", "sha256": "b142805905cb6e3f75c1f0f19f2d170b31286500d2ed76fc22fdd966a4422792" }, "downloads": -1, "filename": "son-0.2.3.tar.gz", "has_sig": false, "md5_digest": "11f334de1bce24b8ad1dcf98d5cc63e5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4176, "upload_time": "2019-07-09T11:35:36", "url": "https://files.pythonhosted.org/packages/26/a4/048c05fa75074acdbedc21e62d2552289e4659bec4120fc31a3411145e49/son-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "90f480db4d610f89954d38d648313a8e", "sha256": "9cb936ca07bd6ef1b037400f81295c7128de4150b4c67c7d25722cb9b1a78946" }, "downloads": -1, "filename": "son-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "90f480db4d610f89954d38d648313a8e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4581, "upload_time": "2019-07-13T00:21:31", "url": "https://files.pythonhosted.org/packages/2d/fc/3b374a2406db5bf1051fe3f036dcff4941cb9c22670672320e2abfa03367/son-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "060a8870a015f62326383470cd35c1c0", "sha256": "796e73889e0f7a4cdf42b6176cc9349d94e121a877c1ea0c43b6d99bf3e36ce1" }, "downloads": -1, "filename": "son-0.2.4.tar.gz", "has_sig": false, "md5_digest": "060a8870a015f62326383470cd35c1c0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4449, "upload_time": "2019-07-13T00:21:32", "url": "https://files.pythonhosted.org/packages/de/1c/0245b9aaa981fc490f4e6f79c001df5cb4e335556f0e760797253f706993/son-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "71244fd1de91b8577b06609a598e265b", "sha256": "be9fdadb9b2cbbf507d3e803fab40bcbf1b136541a0350b7fb05f030d3b7bc65" }, "downloads": -1, "filename": "son-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "71244fd1de91b8577b06609a598e265b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4644, "upload_time": "2019-07-13T02:05:15", "url": "https://files.pythonhosted.org/packages/d3/e1/69972d02511e2d016943bfa900dfd2fdf50ee4a6f3f09f55d57f93add84b/son-0.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61f8d493e38c82f497e82c6005e0935c", "sha256": "022d0dc0a492acce95ab0e7ef648dc1ae476152d4615f5f236a86ced59cca01c" }, "downloads": -1, "filename": "son-0.2.5.tar.gz", "has_sig": false, "md5_digest": "61f8d493e38c82f497e82c6005e0935c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4508, "upload_time": "2019-07-13T02:05:17", "url": "https://files.pythonhosted.org/packages/6a/66/a73ebbd8e84bf1302134eeeafdaa847ec221f578d5d94840870354f6a5b7/son-0.2.5.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6739caa0984e24e88ccb99ca910bd9f7", "sha256": "ae044d3955df833534ac53b0cf0ceffa676826e41c473f0db70477ca732a7c3f" }, "downloads": -1, "filename": "son-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6739caa0984e24e88ccb99ca910bd9f7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4734, "upload_time": "2019-07-13T18:34:33", "url": "https://files.pythonhosted.org/packages/38/a7/e809ad7cb2702c49a848e852cc26b5eedc26d364add8648687cb71b67671/son-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b4e49878426cf982027854c53a23e89", "sha256": "48525da53eb9a3a3d58ab9ebd6f3553472f51a6281463b832d256c9edbfb4886" }, "downloads": -1, "filename": "son-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8b4e49878426cf982027854c53a23e89", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4604, "upload_time": "2019-07-13T18:34:34", "url": "https://files.pythonhosted.org/packages/15/eb/baef9c689c8916d83752be0a31cac36074f5eafe059ddaa4c1cd68bed079/son-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "edc5317efd4cbbb633183884246111a2", "sha256": "49b76d9747a07a0d19c270cf3c45d2e565d88ffc9a279a243bfb175bc5aaf559" }, "downloads": -1, "filename": "son-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "edc5317efd4cbbb633183884246111a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4766, "upload_time": "2019-07-13T19:30:38", "url": "https://files.pythonhosted.org/packages/17/31/45322ff02b3d11b21a0b185d51a6f07b82fe0391bbcc39308ebaeb42a447/son-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c62fb8b716af8b1b55b0bc44242a7ebe", "sha256": "7e3d417a71e612c50bd3703e9b20696886f8ffdb9a055983134109b5cadb7598" }, "downloads": -1, "filename": "son-0.3.1.tar.gz", "has_sig": false, "md5_digest": "c62fb8b716af8b1b55b0bc44242a7ebe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4655, "upload_time": "2019-07-13T19:30:40", "url": "https://files.pythonhosted.org/packages/f0/5a/ac4960347cdb2f386552757510b0d20f8b5f92320fb0152d7a8211f7d575/son-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "e479c5c5e8d448a87a41e65b1dea70c1", "sha256": "05c310e7ff9e5f92ebac2d7ba12ed28f1b00f53632d97145c1d2b802075b46e4" }, "downloads": -1, "filename": "son-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e479c5c5e8d448a87a41e65b1dea70c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4813, "upload_time": "2019-07-16T13:22:27", "url": "https://files.pythonhosted.org/packages/e2/69/e74992649a709e6444306ebc7ef26aca44eb4994b715f08df6dd37039074/son-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "614675a94efb743bd2af2e35c5fd75c8", "sha256": "bb21d54be0ddbf622a1c23953b4dee45cf7484e661716b2a8aa4b01887b931b9" }, "downloads": -1, "filename": "son-0.3.2.tar.gz", "has_sig": false, "md5_digest": "614675a94efb743bd2af2e35c5fd75c8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4718, "upload_time": "2019-07-16T13:22:28", "url": "https://files.pythonhosted.org/packages/7b/6a/0e5a1ade1c5f6dc8033bb4081a5e44ed6f33d7f3a134033994cf912bc5a9/son-0.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e479c5c5e8d448a87a41e65b1dea70c1", "sha256": "05c310e7ff9e5f92ebac2d7ba12ed28f1b00f53632d97145c1d2b802075b46e4" }, "downloads": -1, "filename": "son-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e479c5c5e8d448a87a41e65b1dea70c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4813, "upload_time": "2019-07-16T13:22:27", "url": "https://files.pythonhosted.org/packages/e2/69/e74992649a709e6444306ebc7ef26aca44eb4994b715f08df6dd37039074/son-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "614675a94efb743bd2af2e35c5fd75c8", "sha256": "bb21d54be0ddbf622a1c23953b4dee45cf7484e661716b2a8aa4b01887b931b9" }, "downloads": -1, "filename": "son-0.3.2.tar.gz", "has_sig": false, "md5_digest": "614675a94efb743bd2af2e35c5fd75c8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4718, "upload_time": "2019-07-16T13:22:28", "url": "https://files.pythonhosted.org/packages/7b/6a/0e5a1ade1c5f6dc8033bb4081a5e44ed6f33d7f3a134033994cf912bc5a9/son-0.3.2.tar.gz" } ] }