{ "info": { "author": "mdrachuk", "author_email": "misha@drach.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: POSIX :: BSD", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Utilities", "Typing :: Typed" ], "description": "# serious\n[![PyPI](https://img.shields.io/pypi/v/serious)][pypi]\n[![Build Status](https://img.shields.io/azure-devops/build/misha-drachuk/serious/2)](https://dev.azure.com/misha-drachuk/serious/_build/latest?definitionId=1&branchName=master)\n[![Test Coverage](https://img.shields.io/coveralls/github/mdrachuk/serious/master)](https://coveralls.io/github/mdrachuk/serious)\n[![Supported Python](https://img.shields.io/pypi/pyversions/serious)][pypi]\n[![Documentation](https://img.shields.io/readthedocs/serious)][docs]\n\nA dataclass model toolkit: serialization, validation, and more.\n\n[Documentation][docs]\n\n\n## Features\n- Model definitions in pure Python.\n- Validation showing up in code coverage.\n- Type annotations for all public-facing APIs.\n- (Optionally) ensures immutability.\n- Easily extensible.\n- Made for people.\n- Documented rigorously.\n\n## Basics\n### Installation\nAvailable from [PyPI][pypi]:\n```shell\npip install serious\n```\n\n### Quick Example\n\nCentral part of Serious API are different [Models][doc-models].\n\nGiven a regular dataclass:\n```python\nfrom dataclasses import dataclass\n\n@dataclass\nclass Person:\n name: str\n```\n\nLet\u2019s create a `JsonModel`: \n```python\nfrom serious.json import JsonModel\n\nmodel = JsonModel(Person)\n```\n\nAnd use its [dump/load methods][doc-serialization]:\n```python\nperson = Person('Albert Einstein')\n\nmodel.dump(person) # {\"name\": \"Albert Einstein\"}\n```\n\n### Validation\nTo add validation to the example above all we need is to add `__validate__` method to person:\n```python\nfrom dataclasses import dataclass\nfrom typing import Optional\nfrom serious import ValidationError, Email\n\n@dataclass\nclass Person:\n name: str\n email: Optional[Email]\n phone: Optional[str]\n\n def __validate__(self):\n if len(self.name) == 0:\n raise ValidationError('Every person needs a name')\n if self.phone is None and self.email is None:\n raise ValidationError('At least some contact should be present')\n```\n\n[More on validation.][doc-validation]\n\n\n### Supported formats:\n- [x] [JSON][doc-json-model]\n- [x] [Python Dictionaries][doc-dict-model]\n- [ ] YAML\n- [ ] Form data\n\n\n### Supported field types\n[More in docs.][doc-types]\n\n- Other dataclasses\n- Primitives: `str`, `int`, `float`, `bool`\n- Dictionaries: only with string keys: `Dict[str, Any]` \n- Lists, [sets][set], [deques][deque]: python collections of any serializable type\n- [Tuples][tuple] both with and without ellipsis:\n - tuples as set of independent elements (e.g. `Tuple[str, int, date]`) \n - with ellipses, acting as a frozen list (`Tuple[str, ...]`)\n- [Enumerations][enum] by value:\n - of primitives (e.g. `OperatingSystem(Enum)`) \n - typed enums (`Color(str, Enum)` and `FilePermission(IntFlag)`)\n- [Decimal][decimal]: encoded to JSON as string \n- [Datetime][datetime], [date][date] and [time][time]:\u00a0encoded to the [ISO 8601][iso8601] formatted string\n- [UUID][uuid]\n- `serious.types.Timestamp`: a UTC timestamp since [UNIX epoch][epoch] as float ms value \n- `serious.types.Email`: a string Tiny Type that supports validation and contains additional properties \n- custom immutable alternatives to native python types in `serious.types`: `FrozenList`, `FrozenDict`\n\n## A bigger example\n\n```python\nfrom dataclasses import dataclass\nfrom serious import JsonModel, ValidationError\nfrom typing import List\nfrom enum import Enum\n\nclass Specialty(Enum):\n Worker = 1\n Fool = 2\n\n\n@dataclass(frozen=True)\nclass Minion:\n name: str\n type: Specialty\n\n\n@dataclass(frozen=True)\nclass Boss:\n name: str\n minions: List[Minion]\n\n def __validate__(self):\n if len(self.minions) < 2:\n raise ValidationError('What kind of boss are you?')\n\n\nboss = Boss(\"me\", [Minion('evil minion', Specialty.Fool), Minion('very evil minion', Specialty.Worker)])\nboss_json = \"\"\"{\n \"name\": \"me\",\n \"minions\": [\n {\n \"name\": \"evil minion\",\n \"type\": 2\n },\n {\n \"name\": \"very evil minion\",\n \"type\": 1\n }\n ]\n}\"\"\"\n\nmodel = JsonModel(Boss, indent=4)\n\nassert model.dump(boss) == boss_json\nassert model.load(boss_json) == boss\n```\n\n\n## Acknowledgements\nInitially, a fork of [@lidatong/dataclasses-json](https://github.com/lidatong/dataclasses-json).\n\n[pypi]: https://pypi.org/project/serious/\n[dataclass]: https://docs.python.org/3/library/dataclasses.html\n[iso8601]: https://en.wikipedia.org/wiki/ISO_8601\n[epoch]: https://en.wikipedia.org/wiki/Unix_time\n[enum]: https://docs.python.org/3/library/enum.html\n[decimal]: https://docs.python.org/3/library/decimal.html\n[tuple]: https://docs.python.org/3/library/stdtypes.html#tuple\n[list]: https://docs.python.org/3/library/stdtypes.html#list\n[set]: https://docs.python.org/3/library/stdtypes.html#set\n[deque]: https://docs.python.org/3.7/library/collections.html#collections.deque\n[datetime]: https://docs.python.org/3.7/library/datetime.html#datetime.datetime\n[date]: https://docs.python.org/3.7/library/datetime.html#datetime.date\n[time]: https://docs.python.org/3.7/library/datetime.html#datetime.time\n[uuid]: https://docs.python.org/3.7/library/uuid.html?highlight=uuid#uuid.UUID\n[doc-types]: https://serious.readthedocs.io/en/latest/types/\n[doc-models]: https://serious.readthedocs.io/en/latest/models/\n[doc-json-model]: https://serious.readthedocs.io/en/latest/models/#jsonmodel\n[doc-dict-model]: https://serious.readthedocs.io/en/latest/models/#dictmodel\n[doc-serialization]: https://serious.readthedocs.io/en/latest/serialization/ (Serialization documentation)\n[doc-validation]: https://serious.readthedocs.io/en/latest/validation/ (Validation documentation)\n[docs]: https://serious.readthedocs.io/en/latest/ \n\n\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/mdrachuk/serious", "keywords": "dataclasses json serialization", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "serious", "package_url": "https://pypi.org/project/serious/", "platform": "", "project_url": "https://pypi.org/project/serious/", "project_urls": { "Homepage": "https://github.com/mdrachuk/serious", "Issues": "https://github.com/mdrachuk/serious/issues", "Pipelines": "https://dev.azure.com/misha-drachuk/serious", "Source": "https://github.com/mdrachuk/serious/" }, "release_url": "https://pypi.org/project/serious/1.0.0.dev21/", "requires_dist": null, "requires_python": ">=3.7", "summary": "Easily serialize dataclasses to and from JSON", "version": "1.0.0.dev21" }, "last_serial": 5716809, "releases": { "1.0.0.dev10": [ { "comment_text": "", "digests": { "md5": "7992d020c6adba73119d71bddb7e427a", "sha256": "f6efe5a412c44bfc750110936184f9f79cb139ae792df33138e8e3f1c227ba0f" }, "downloads": -1, "filename": "serious-1.0.0.dev10-py3-none-any.whl", "has_sig": false, "md5_digest": "7992d020c6adba73119d71bddb7e427a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 23591, "upload_time": "2019-08-06T13:07:37", "url": "https://files.pythonhosted.org/packages/5b/e6/e7be14a547baafb4211171a11b7d2efa600a721793d485cd949248dcf297/serious-1.0.0.dev10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4eef79e4ac1b2339d8755470be0fe5a7", "sha256": "23d08862939541f724d6ffd3f99b78a5e2c778f614b0919536a10e5e2f0b6dc2" }, "downloads": -1, "filename": "serious-1.0.0.dev10.tar.gz", "has_sig": false, "md5_digest": "4eef79e4ac1b2339d8755470be0fe5a7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 18929, "upload_time": "2019-08-06T13:07:39", "url": "https://files.pythonhosted.org/packages/6f/d5/8a4a52965a8305589f2595b2dc9c030ece1d3fb45dbdc386d32289ee34ea/serious-1.0.0.dev10.tar.gz" } ], "1.0.0.dev11": [ { "comment_text": "", "digests": { "md5": "03d4a4c230a988ef81e7dc653c484fb1", "sha256": "f63f58d60e5965ecafc97844a70df9a8508328958b12ac7461cd08a5e0465dac" }, "downloads": -1, "filename": "serious-1.0.0.dev11-py3-none-any.whl", "has_sig": false, "md5_digest": "03d4a4c230a988ef81e7dc653c484fb1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 23621, "upload_time": "2019-08-06T17:26:57", "url": "https://files.pythonhosted.org/packages/4e/27/940d2ee5584c1f81de69a592ab785ad87d867c58a3c9c5d5ebd96a33c8b8/serious-1.0.0.dev11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2f7e51eef918298ce555564b1aa2153", "sha256": "9857361778e57f166cc5d1419afa70a233e918e59ac9f199dde9b2dc78b15768" }, "downloads": -1, "filename": "serious-1.0.0.dev11.tar.gz", "has_sig": false, "md5_digest": "c2f7e51eef918298ce555564b1aa2153", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 18991, "upload_time": "2019-08-06T17:26:59", "url": "https://files.pythonhosted.org/packages/09/e9/167c953280d4fbfddb7802a50a950790bc63386dc3712adc8823b1479e0b/serious-1.0.0.dev11.tar.gz" } ], "1.0.0.dev12": [ { "comment_text": "", "digests": { "md5": "8babd47ebedb040731bbf5893606f6c9", "sha256": "3990f8329924c00af39f4e6270bd3c2c3042cdd6f7df4fc8a039e6fbea97aa50" }, "downloads": -1, "filename": "serious-1.0.0.dev12-py3-none-any.whl", "has_sig": false, "md5_digest": "8babd47ebedb040731bbf5893606f6c9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 23621, "upload_time": "2019-08-06T17:46:11", "url": "https://files.pythonhosted.org/packages/82/44/66df72b24539769ea999c905b8cd64d38839e2a6e7754cdcffb6ad2facad/serious-1.0.0.dev12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac3d8c7ff560d551491ddaac9f731e7e", "sha256": "d4836953388a49bf6ac0e1c6ffe1be26547cddf21adb119e96596f14db94a480" }, "downloads": -1, "filename": "serious-1.0.0.dev12.tar.gz", "has_sig": false, "md5_digest": "ac3d8c7ff560d551491ddaac9f731e7e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 18998, "upload_time": "2019-08-06T17:46:13", "url": "https://files.pythonhosted.org/packages/82/8d/bc5ed84564898eb0851a3ceb7f7e1103d0066e26b73f0b31c2d24a83f6e9/serious-1.0.0.dev12.tar.gz" } ], "1.0.0.dev13": [ { "comment_text": "", "digests": { "md5": "977331ab9ead92f13badb14a6889e389", "sha256": "bb842d46a7256fa3fa3956fb63ab75b152d47b9ce22ed262c5279b5f8b781b4c" }, "downloads": -1, "filename": "serious-1.0.0.dev13-py3-none-any.whl", "has_sig": false, "md5_digest": "977331ab9ead92f13badb14a6889e389", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 24154, "upload_time": "2019-08-08T18:15:00", "url": "https://files.pythonhosted.org/packages/7e/d7/dbef897c12d476910d9c320822c3ab71329c5cbdab6353284a4fb75dd789/serious-1.0.0.dev13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5b1573766caa20ac6f614292545e1be1", "sha256": "480cd7435656e1cc35bc09c6b47965af47106d574d6101f6daceec410f6b3f71" }, "downloads": -1, "filename": "serious-1.0.0.dev13.tar.gz", "has_sig": false, "md5_digest": "5b1573766caa20ac6f614292545e1be1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 19593, "upload_time": "2019-08-08T18:15:02", "url": "https://files.pythonhosted.org/packages/f0/be/d37c1d77aadaf019afcda10d497e5f004cc5d82e749cfecc732aa8b66c2b/serious-1.0.0.dev13.tar.gz" } ], "1.0.0.dev14": [ { "comment_text": "", "digests": { "md5": "1b43eaa56315dfa874fbff5626a301a6", "sha256": "472f81d31da040e626cc2c0beeadcf128cb57b1af21570e049f2e8fd4939bf2a" }, "downloads": -1, "filename": "serious-1.0.0.dev14-py3-none-any.whl", "has_sig": false, "md5_digest": "1b43eaa56315dfa874fbff5626a301a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 25020, "upload_time": "2019-08-10T21:50:13", "url": "https://files.pythonhosted.org/packages/44/a3/941bd21773068a77da133b1dad4ab4b19e3fec23c0ee0d14ad88322857f6/serious-1.0.0.dev14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a6dac959057ceb38a3099d4b7aeb5ec", "sha256": "03f2a056f1c5a6937a49559be532e0593086e29afff71f317a6fff084b6a72cc" }, "downloads": -1, "filename": "serious-1.0.0.dev14.tar.gz", "has_sig": false, "md5_digest": "5a6dac959057ceb38a3099d4b7aeb5ec", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 20018, "upload_time": "2019-08-10T21:50:15", "url": "https://files.pythonhosted.org/packages/9a/15/e62da3740c823d070ff36c5e1404f0317defb0ed4007c1b4a969d446c797/serious-1.0.0.dev14.tar.gz" } ], "1.0.0.dev15": [ { "comment_text": "", "digests": { "md5": "e5c7867f4a7bc35fd3b8dee64f50e5a0", "sha256": "3e3e25206ae0dadff8cb37b8da07b93696021a95cf48994b8f9f860763c2a794" }, "downloads": -1, "filename": "serious-1.0.0.dev15-py3-none-any.whl", "has_sig": false, "md5_digest": "e5c7867f4a7bc35fd3b8dee64f50e5a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 25020, "upload_time": "2019-08-10T22:21:05", "url": "https://files.pythonhosted.org/packages/22/5c/dad5293954bb448764c17ac4dc4124ff9e228da1c8ab3c08051705af2517/serious-1.0.0.dev15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f3a5c24ac68e19c5ec4887db30cd459", "sha256": "7da809e11668bf09f2082e1882f88372512bcbc37cd763f950efe5f252eb71c6" }, "downloads": -1, "filename": "serious-1.0.0.dev15.tar.gz", "has_sig": false, "md5_digest": "0f3a5c24ac68e19c5ec4887db30cd459", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 20051, "upload_time": "2019-08-10T22:21:07", "url": "https://files.pythonhosted.org/packages/4f/e0/b7b1959e2152ab6be30ee0db115119742d6a387ef8490fc4dfc36da300d3/serious-1.0.0.dev15.tar.gz" } ], "1.0.0.dev16": [ { "comment_text": "", "digests": { "md5": "14df4737e669c7b2d664ae36609c2fee", "sha256": "ec9fabbc865abcc6965934e8cee02d6d9ab5839413a6fdaaf1c8386693bb27bd" }, "downloads": -1, "filename": "serious-1.0.0.dev16-py3-none-any.whl", "has_sig": false, "md5_digest": "14df4737e669c7b2d664ae36609c2fee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 26808, "upload_time": "2019-08-13T20:16:33", "url": "https://files.pythonhosted.org/packages/84/5b/8475c905363b78cde9857f262bccc5df5aa9c46bd527c24fc50ae13dfefd/serious-1.0.0.dev16-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6bd06f1c643c8068fec3b14627af0957", "sha256": "acead82c136807d40eafc2fed37a3c79f5996a66647bd9c50921d215258e0d06" }, "downloads": -1, "filename": "serious-1.0.0.dev16.tar.gz", "has_sig": false, "md5_digest": "6bd06f1c643c8068fec3b14627af0957", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 21640, "upload_time": "2019-08-13T20:16:34", "url": "https://files.pythonhosted.org/packages/07/56/c6ac4571d11ffff5349c9963f6fe7c91dd76574953a5c13ddecbd618cf73/serious-1.0.0.dev16.tar.gz" } ], "1.0.0.dev17": [ { "comment_text": "", "digests": { "md5": "c3a4d42f97fa72bef649562dcc9f2b37", "sha256": "5c1433bccc68d648e5895e17ccf7da05873af3718c0476ee8c24498d189c3201" }, "downloads": -1, "filename": "serious-1.0.0.dev17-py3-none-any.whl", "has_sig": false, "md5_digest": "c3a4d42f97fa72bef649562dcc9f2b37", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 27081, "upload_time": "2019-08-14T14:27:28", "url": "https://files.pythonhosted.org/packages/f5/9e/c9592be4e6db7b1b36b3f45e83e46439885eb8495533d6c2cf785a6e4753/serious-1.0.0.dev17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f60bb3a264864376ab6935a518370c54", "sha256": "1735aea629d99a5ad535878e76bb3a053a0e4b0d41f6d05eedfcce5d82686179" }, "downloads": -1, "filename": "serious-1.0.0.dev17.tar.gz", "has_sig": false, "md5_digest": "f60bb3a264864376ab6935a518370c54", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 22107, "upload_time": "2019-08-14T14:27:30", "url": "https://files.pythonhosted.org/packages/79/4e/bdff6b2f9d68382fb2f6b3e5d55a4bed7bbaeb4f120f4bc18325312484e1/serious-1.0.0.dev17.tar.gz" } ], "1.0.0.dev18": [ { "comment_text": "", "digests": { "md5": "a386437e8c934d1b2f2279f08d92dfc5", "sha256": "6446a4351b4531f51f407f84f313965aebdee2b90fe9b0796368620b31b4c2b6" }, "downloads": -1, "filename": "serious-1.0.0.dev18-py3-none-any.whl", "has_sig": false, "md5_digest": "a386437e8c934d1b2f2279f08d92dfc5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 30891, "upload_time": "2019-08-15T19:14:46", "url": "https://files.pythonhosted.org/packages/f4/25/4e06f1067e085c52c0b02c888cfde6ec332a1c5d7a1437ed63fb9ff62de7/serious-1.0.0.dev18-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc40be80c7277ba2f4d47c262d2f3d5e", "sha256": "2badd769535d8628f5d200593cf5b65af9bd42f96a69a6a3957f6bf29da94200" }, "downloads": -1, "filename": "serious-1.0.0.dev18.tar.gz", "has_sig": false, "md5_digest": "dc40be80c7277ba2f4d47c262d2f3d5e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 24169, "upload_time": "2019-08-15T19:14:47", "url": "https://files.pythonhosted.org/packages/4f/97/a58d8f7a76cdce3c049adaba6dfa130a8acfc3d3908d6e631c700faa26e4/serious-1.0.0.dev18.tar.gz" } ], "1.0.0.dev19": [ { "comment_text": "", "digests": { "md5": "1f3a41f14e052b325b27d888790c8530", "sha256": "f403abf19990d11b1207c2d08e6853260a746bc827bff73f3af631e7fe3abb5b" }, "downloads": -1, "filename": "serious-1.0.0.dev19-py3-none-any.whl", "has_sig": false, "md5_digest": "1f3a41f14e052b325b27d888790c8530", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 30863, "upload_time": "2019-08-18T14:11:10", "url": "https://files.pythonhosted.org/packages/6d/45/8ef6babe664717daadd279e8a81ecdfef519910a18b10f6d616933d072c0/serious-1.0.0.dev19-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc015c97e3dad72521e8e4d469637c0e", "sha256": "e2d04038aaa01fcac073886c6e8b601fb4767af0a0c20db53e60220b4f408dc5" }, "downloads": -1, "filename": "serious-1.0.0.dev19.tar.gz", "has_sig": false, "md5_digest": "cc015c97e3dad72521e8e4d469637c0e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 24267, "upload_time": "2019-08-18T14:11:11", "url": "https://files.pythonhosted.org/packages/bc/ca/9f57e5d74c089026030fcc4312d348130a220433ee4949380fefe9741331/serious-1.0.0.dev19.tar.gz" } ], "1.0.0.dev2": [ { "comment_text": "", "digests": { "md5": "4b35bedfae66175aed3d2f6c0433db13", "sha256": "d7a9f18fc92fd1d8c562b7305909eb3096d8bd50cb8eacef845f1ae6b8e5dccb" }, "downloads": -1, "filename": "serious-1.0.0.dev2-py3-none-any.whl", "has_sig": false, "md5_digest": "4b35bedfae66175aed3d2f6c0433db13", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 16533, "upload_time": "2019-07-12T18:00:20", "url": "https://files.pythonhosted.org/packages/d3/78/7ae69597b7c70839e6a56c50d2431afb4e0f36db7178e68075e843ab5b5b/serious-1.0.0.dev2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e052a8b8759ca303d9523572ff53a9e", "sha256": "0d279acf95475f1667b4e320bf653ac0738a876facf460e53cb9d712a6549241" }, "downloads": -1, "filename": "serious-1.0.0.dev2.tar.gz", "has_sig": false, "md5_digest": "0e052a8b8759ca303d9523572ff53a9e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 13458, "upload_time": "2019-07-12T18:00:22", "url": "https://files.pythonhosted.org/packages/15/2b/4d0f866e1e79ac1fb792ad1608c8d98a032c7756f4a3b208b62fa12d773c/serious-1.0.0.dev2.tar.gz" } ], "1.0.0.dev20": [ { "comment_text": "", "digests": { "md5": "77abf0c70f504ea3ec849e657ecba8d5", "sha256": "92fb97a6cb66be129fe50774d45eaba461bdeb136e1405f2f06d43ac75312759" }, "downloads": -1, "filename": "serious-1.0.0.dev20-py3-none-any.whl", "has_sig": false, "md5_digest": "77abf0c70f504ea3ec849e657ecba8d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 31013, "upload_time": "2019-08-21T14:24:11", "url": "https://files.pythonhosted.org/packages/52/04/67327fe90869797a710f44d0a7913c0d852d2368c50f25ee4715a8ef4ca1/serious-1.0.0.dev20-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae9d327704982368f32714034ae3549f", "sha256": "ad279eeb77614cca1c500d4421bc313d6476626c68b57ab710775a715b58f528" }, "downloads": -1, "filename": "serious-1.0.0.dev20.tar.gz", "has_sig": false, "md5_digest": "ae9d327704982368f32714034ae3549f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 24319, "upload_time": "2019-08-21T14:24:13", "url": "https://files.pythonhosted.org/packages/f0/1b/55261a6c64b574719f3ca4870617109fa81d44fa275874c695b5d67154a4/serious-1.0.0.dev20.tar.gz" } ], "1.0.0.dev21": [ { "comment_text": "", "digests": { "md5": "a5549cc9b207fb2f26a59f81f5cdc979", "sha256": "d7c77bd4e249f78b588f7446685c07c40ffd3a5fbcb9ecbda55fb6a1c800a01c" }, "downloads": -1, "filename": "serious-1.0.0.dev21-py3-none-any.whl", "has_sig": false, "md5_digest": "a5549cc9b207fb2f26a59f81f5cdc979", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 30995, "upload_time": "2019-08-22T18:56:14", "url": "https://files.pythonhosted.org/packages/ce/2d/b09534d3a36dca4056ff190202a23009f952b47986e3287047568f23540b/serious-1.0.0.dev21-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53cf35db922e6340826d789002f9d8b5", "sha256": "8b099a0c60de9382d1fb63eae52b87d645dae3c1777e735433c35ffdfba1f1b8" }, "downloads": -1, "filename": "serious-1.0.0.dev21.tar.gz", "has_sig": false, "md5_digest": "53cf35db922e6340826d789002f9d8b5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 24245, "upload_time": "2019-08-22T18:56:16", "url": "https://files.pythonhosted.org/packages/e2/cc/2695c2dd7cd14055dd542c0e653772e69a10d520267a8c55bdf513e6fc9a/serious-1.0.0.dev21.tar.gz" } ], "1.0.0.dev3": [ { "comment_text": "", "digests": { "md5": "323a9a140ed6e52a4d6195c81154cd64", "sha256": "c5e9d9fc3837aaa600198c0b9bf7431f08bf3b56f38ed80bddc37956ab66f3f5" }, "downloads": -1, "filename": "serious-1.0.0.dev3-py3-none-any.whl", "has_sig": false, "md5_digest": "323a9a140ed6e52a4d6195c81154cd64", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 17684, "upload_time": "2019-07-15T12:16:33", "url": "https://files.pythonhosted.org/packages/0f/08/4eba2108478495caa96a49dcc29763478ec16c62a2d2bcbbdcf8014e95f3/serious-1.0.0.dev3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6af7d9c0a7f770f3125c9f4f8fe78a4f", "sha256": "a0a66372ee83e9fb5f36614cc3a37dd0fe9d6661b74db5ecff3a2428c56dfa4f" }, "downloads": -1, "filename": "serious-1.0.0.dev3.tar.gz", "has_sig": false, "md5_digest": "6af7d9c0a7f770f3125c9f4f8fe78a4f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 14256, "upload_time": "2019-07-15T12:16:35", "url": "https://files.pythonhosted.org/packages/a5/1f/60a0d584531d9941d0dae4f38f86dd6ba7535d5ef36a2999e3255bfb331b/serious-1.0.0.dev3.tar.gz" } ], "1.0.0.dev4": [ { "comment_text": "", "digests": { "md5": "1f0f81b3666e7354bbebdbceace9fdd4", "sha256": "904ccc2fa08c98542febc23856605365c08ce9a6ed14e7ab8962771de85da3b9" }, "downloads": -1, "filename": "serious-1.0.0.dev4-py3-none-any.whl", "has_sig": false, "md5_digest": "1f0f81b3666e7354bbebdbceace9fdd4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 18322, "upload_time": "2019-07-17T11:57:21", "url": "https://files.pythonhosted.org/packages/40/c4/62763ce41aafd0fba1fc92d832a460e0f154c43e41eb758f7fd398e204ee/serious-1.0.0.dev4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "40f1aac8e8c213177d9e1a5f0abe473c", "sha256": "42591a53e66a3dd468e665101f534b9311022926a2670c1835552be70a213818" }, "downloads": -1, "filename": "serious-1.0.0.dev4.tar.gz", "has_sig": false, "md5_digest": "40f1aac8e8c213177d9e1a5f0abe473c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 14557, "upload_time": "2019-07-17T11:57:22", "url": "https://files.pythonhosted.org/packages/36/d7/e340a1b2356b07151da86118ef7d251a69a54bd415f7335ee149ac39228d/serious-1.0.0.dev4.tar.gz" } ], "1.0.0.dev5": [ { "comment_text": "", "digests": { "md5": "ea67b02a13a0f3d1af5495c1a01aff12", "sha256": "de2fc83cc037d3315ec8f73f86e9030fc9efc8a353258075eebdef2808a78feb" }, "downloads": -1, "filename": "serious-1.0.0.dev5-py3-none-any.whl", "has_sig": false, "md5_digest": "ea67b02a13a0f3d1af5495c1a01aff12", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 19862, "upload_time": "2019-07-20T07:29:27", "url": "https://files.pythonhosted.org/packages/e4/ba/f6fc74f24ad3fd705c5fa8f999ff2fdc503226498ee481b9d39200085ae9/serious-1.0.0.dev5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a1d0db826b865b2e697c3fee13dd777", "sha256": "3f049a992b4570fcb19a1cb142f32eb060582668485178311f8a66170e7d6599" }, "downloads": -1, "filename": "serious-1.0.0.dev5.tar.gz", "has_sig": false, "md5_digest": "4a1d0db826b865b2e697c3fee13dd777", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 15950, "upload_time": "2019-07-20T07:29:29", "url": "https://files.pythonhosted.org/packages/a4/0d/e7f4bd766a544d58f6a45d7c1b036e321e5b8eff061f1b8bffa74631c331/serious-1.0.0.dev5.tar.gz" } ], "1.0.0.dev6": [ { "comment_text": "", "digests": { "md5": "1de78f8f430432cc6d4a365e63081b3c", "sha256": "da984eb37f55ee0bdab9a314676a15d638023b2a3f98b064794b0434bcf40fb2" }, "downloads": -1, "filename": "serious-1.0.0.dev6-py3-none-any.whl", "has_sig": false, "md5_digest": "1de78f8f430432cc6d4a365e63081b3c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 21806, "upload_time": "2019-07-24T16:35:13", "url": "https://files.pythonhosted.org/packages/43/7f/1a9c37bab08f268b707ccff558e032b0fd3c3656c46cc971688004842a0a/serious-1.0.0.dev6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02ab23dbc901e23f1078a900547733c1", "sha256": "3188743f43ed3a9e104fea75a17df24513e7ec53d5fc52acea55bce196b3351a" }, "downloads": -1, "filename": "serious-1.0.0.dev6.tar.gz", "has_sig": false, "md5_digest": "02ab23dbc901e23f1078a900547733c1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 18142, "upload_time": "2019-07-24T16:35:15", "url": "https://files.pythonhosted.org/packages/12/34/4a40b970e2f9d74397631945607ea547fe3b47192134f879004892172b9c/serious-1.0.0.dev6.tar.gz" } ], "1.0.0.dev7": [ { "comment_text": "", "digests": { "md5": "ae152e03dffce8fe44ec3365f9dc98a0", "sha256": "f3cb866c8a3ac6346f5cf412a498ee28302fe05e58469f45ddfb539f3c9a16a7" }, "downloads": -1, "filename": "serious-1.0.0.dev7-py3-none-any.whl", "has_sig": false, "md5_digest": "ae152e03dffce8fe44ec3365f9dc98a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 22060, "upload_time": "2019-07-25T13:28:05", "url": "https://files.pythonhosted.org/packages/aa/07/0333e5036e43c2d3f4ec8360451352b0e85758700d48b5d5bbd8f670e29b/serious-1.0.0.dev7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2c23c306919efc731abed56fa04166d7", "sha256": "9a8ba5d41ee89973d5f34ebd4f5bc8c6bd1d8fec15c9b819c49d0edfae7ffea0" }, "downloads": -1, "filename": "serious-1.0.0.dev7.tar.gz", "has_sig": false, "md5_digest": "2c23c306919efc731abed56fa04166d7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 18364, "upload_time": "2019-07-25T13:28:07", "url": "https://files.pythonhosted.org/packages/43/4c/6064a0e1ba959d3c31505ce1baf8b096c490e8ad0d9c92004b437118d846/serious-1.0.0.dev7.tar.gz" } ], "1.0.0.dev8": [ { "comment_text": "", "digests": { "md5": "9bcd691f2beb9859a2ab1105502ef16c", "sha256": "00fe8c2db53d29f9c7e31de20911090387c445df5b0afb0a0bd40fc41e90bed5" }, "downloads": -1, "filename": "serious-1.0.0.dev8-py3-none-any.whl", "has_sig": false, "md5_digest": "9bcd691f2beb9859a2ab1105502ef16c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 21971, "upload_time": "2019-07-29T21:27:18", "url": "https://files.pythonhosted.org/packages/0a/1f/4d7ef37592d5bca45d7bc49f888a707a1ed891b3623d4b54ddd31b702f95/serious-1.0.0.dev8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2dd307c2e2493bfa9c1834ffa0c8975b", "sha256": "6e3081f8bc0071ccd61a6c52e089401d40b3cb9de184b7e57fd379cc28094697" }, "downloads": -1, "filename": "serious-1.0.0.dev8.tar.gz", "has_sig": false, "md5_digest": "2dd307c2e2493bfa9c1834ffa0c8975b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 18273, "upload_time": "2019-07-29T21:27:20", "url": "https://files.pythonhosted.org/packages/55/d4/a376813dd9d6a1983b6cef845fe3a52b867647494d1aad6fa0d1c536146d/serious-1.0.0.dev8.tar.gz" } ], "1.0.0.dev9": [ { "comment_text": "", "digests": { "md5": "0204c18a3432deaba413973dacaa8347", "sha256": "523c785e307d42119810832d618139ffabb69f5adbe4a4d6d3e7a19bef87b812" }, "downloads": -1, "filename": "serious-1.0.0.dev9-py3-none-any.whl", "has_sig": false, "md5_digest": "0204c18a3432deaba413973dacaa8347", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 23665, "upload_time": "2019-08-05T17:50:14", "url": "https://files.pythonhosted.org/packages/5a/64/8f5112290a4f1041c22479b22eae7c0e06026dedc52f5fcde8d0c44f48ba/serious-1.0.0.dev9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a2f94fde3883510ec189677465d670d", "sha256": "d542d619e7c136f434d741fd0f2e78c4e3549843b3346a1d81aea91163fddc22" }, "downloads": -1, "filename": "serious-1.0.0.dev9.tar.gz", "has_sig": false, "md5_digest": "0a2f94fde3883510ec189677465d670d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 19096, "upload_time": "2019-08-05T17:50:15", "url": "https://files.pythonhosted.org/packages/b4/3f/377539144bf1eec3e7f522f05d89e44ccdf9f887efe7ae731cf93483457f/serious-1.0.0.dev9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a5549cc9b207fb2f26a59f81f5cdc979", "sha256": "d7c77bd4e249f78b588f7446685c07c40ffd3a5fbcb9ecbda55fb6a1c800a01c" }, "downloads": -1, "filename": "serious-1.0.0.dev21-py3-none-any.whl", "has_sig": false, "md5_digest": "a5549cc9b207fb2f26a59f81f5cdc979", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 30995, "upload_time": "2019-08-22T18:56:14", "url": "https://files.pythonhosted.org/packages/ce/2d/b09534d3a36dca4056ff190202a23009f952b47986e3287047568f23540b/serious-1.0.0.dev21-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53cf35db922e6340826d789002f9d8b5", "sha256": "8b099a0c60de9382d1fb63eae52b87d645dae3c1777e735433c35ffdfba1f1b8" }, "downloads": -1, "filename": "serious-1.0.0.dev21.tar.gz", "has_sig": false, "md5_digest": "53cf35db922e6340826d789002f9d8b5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 24245, "upload_time": "2019-08-22T18:56:16", "url": "https://files.pythonhosted.org/packages/e2/cc/2695c2dd7cd14055dd542c0e653772e69a10d520267a8c55bdf513e6fc9a/serious-1.0.0.dev21.tar.gz" } ] }