{ "info": { "author": "Aljosha Friemann", "author_email": "a.friemann@automate.wtf", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: BSD License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries" ], "description": "simple_model\n============\n\n.. image:: https://travis-ci.org/AFriemann/simple_model.svg?branch=master\n :target: https://travis-ci.org/AFriemann/simple_model\n.. image:: https://badge.fury.io/py/simple_model.svg\n :target: https://badge.fury.io/py/simple_model\n\nAs the name suggests, this is a very simple model framework. It can be used for data\nvalidation and (de-)serialization.\n\n**New** Head over to `v2 `_ now!\n\nInstallation\n------------\n\nInstall with pip::\n\n $ pip install --user simple_model\n\nUsage\n-----\n\nThis allows me to test the examples by taking care of sorting the dictionaries, it is not required for simple_model\nto work:\n\n.. code:: python\n\n >>> from pprint import pprint\n\nExamples:\n\n.. code:: python\n\n >>> from simple_model import Model, Attribute\n\n >>> class Data(Model):\n ... name = Attribute(str)\n ... some_value = Attribute(str, optional=True)\n ... another_value = Attribute(int, fallback=0)\n\n >>> pprint(dict(Data(name = 'test', some_value = None, another_value = 12)))\n {'another_value': 12, 'name': 'test', 'some_value': None}\n\n >>> pprint(dict(Data(name = 'test')))\n {'another_value': 0, 'name': 'test', 'some_value': None}\n\n >>> init_dict = {'name': 'test', 'some_value': 'val', 'another_value': 3}\n >>> pprint(dict(Data(**init_dict)))\n {'another_value': 3, 'name': 'test', 'some_value': 'val'}\n\nInitializing with missing attributes while not specifying them as optional or providing a fallback value\nwill result in a *ValueError* containing all failed attributes.\nNote that *fallback* takes precedence over *optional*, specifying both is unnecessary.\n\nUnknown values will be ignored\n\n.. code:: python\n\n >>> pprint(dict(Data(name = 'test', unknown_value = True)))\n {'another_value': 0, 'name': 'test', 'some_value': None}\n\n\nSerialization can be achieved easily, for example\n\n.. code:: python\n\n >>> import json\n >>> def serialize(model):\n ... return json.dumps(dict(model))\n\n >>> def deserialize(string):\n ... return Data(**json.loads(string))\n\nSince the Model class simply calls the Attribute class for each parameter and the Attribute class in turn calls the\ngiven 'type', one could easily use functions instead of types to achieve more complex results and value parsing\n\n.. code:: python\n\n >>> from datetime import datetime\n >>> def parse_date(string):\n ... return datetime.strptime(string, '%Y-%m-%d')\n\n >>> class Data(Model):\n ... date = Attribute(parse_date)\n\n >>> dict(Data(date='2015-11-20'))\n {'date': datetime.datetime(2015, 11, 20, 0, 0)}\n\nFallback values can also be given as functions\n\n.. code:: python\n\n >>> def fun():\n ... return \"foo\"\n\n >>> class Data(Model):\n ... point = Attribute(str, fallback=fun)\n\n >>> dict(Data())\n {'point': 'foo'}\n\nIf you need to verify Lists of objects, use functions\n\n.. code:: python\n\n >>> class Data(Model):\n ... points = Attribute(lambda l: list(map(str, l)))\n\n >>> dict(Data(points=['abc', 'def', 'ghi']))\n {'points': ['abc', 'def', 'ghi']}\n\nOr the included *list_type* helper class\n\n.. code:: python\n\n >>> from simple_model.helpers import list_type\n >>> class Data(Model):\n ... points = Attribute(list_type(str))\n\n >>> dict(Data(points=['abc', 'def', 'ghi']))\n {'points': ['abc', 'def', 'ghi']}\n\nFor more complex data, use Models to verify\n\n.. code:: python\n\n >>> class SubData(Model):\n ... some_value = Attribute(str)\n ... some_other_value = Attribute(int)\n\n >>> class Data(Model):\n ... point = Attribute(SubData)\n\n >>> pprint(dict(Data(point={'some_value': 'abc', 'some_other_value': 12})))\n {'point': {'some_other_value': 12, 'some_value': 'abc'}}\n\nTo allow uncommon names, use the Attribute name keyword\n\n.. code:: python\n\n >>> class Data(Model):\n ... point = Attribute(str, name='@point')\n\n >>> dict(Data(point='something'))\n {'@point': 'something'}\n\n >>> dict(Data(**{ '@point': 'something' }))\n {'@point': 'something'}\n\nTo easily check against expected values you can use the helper function *one_of*\n\n.. code:: python\n\n >>> from simple_model.helpers import one_of\n >>> class Data(Model):\n ... foo = Attribute(one_of('bar', 'foobar'))\n\n >>> dict(Data(foo='bar'))\n {'foo': 'bar'}\n\n >>> dict(Data(foo='foo')) # doctest: +ELLIPSIS\n Traceback (most recent call last):\n ...\n ValueError: {...'exception': \"ValueError: must be one of ('bar', 'foobar') but was 'foo'\"...}\n\nIf you want to disallow unknown values, set the __ignore_unknown__ attribute to False\n\n.. code:: python\n\n >>> class Data(Model):\n ... __ignore_unknown__ = False\n ...\n ... point = Attribute(str)\n\n >>> Data(point = 'abc', other = 'def')\n Traceback (most recent call last):\n ...\n ValueError: Unknown key \"other\" with value \"def\"\n\nYou can now set Models to be mutable and change Attribute values after creation\n\n.. code:: python\n\n >>> class Data(Model):\n ... point = Attribute(int)\n\n >>> d = Data(point = 1)\n >>> d.point\n 1\n >>> d.point = 2\n >>> d.point\n 2\n >>> d.__mutable__ = False\n >>> d.point = 3\n Traceback (most recent call last):\n ...\n AttributeError: Model is immutable\n\nTests\n-----\n\nTo run the tests use tox::\n\n $ tox\n\nIssues\n------\n\nPlease submit any issues on `GitHub `_.\n\nChangelog\n---------\n\nsee `CHANGELOG `_\n\nLicense\n-------\n\nsee `LICENSE `_", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/afriemann/simple_model/archive/1.3.0.post5.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/afriemann/simple_model", "keywords": "model,serialization,validation,dataclass", "license": "", "maintainer": "", "maintainer_email": "", "name": "simple_model", "package_url": "https://pypi.org/project/simple_model/", "platform": "linux", "project_url": "https://pypi.org/project/simple_model/", "project_urls": { "Download": "https://github.com/afriemann/simple_model/archive/1.3.0.post5.tar.gz", "Homepage": "https://github.com/afriemann/simple_model" }, "release_url": "https://pypi.org/project/simple_model/1.3.0.post5/", "requires_dist": null, "requires_python": "", "summary": "very simple model framework", "version": "1.3.0.post5" }, "last_serial": 3996626, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "3ef9840464cb4ec470a7be00eb84b15b", "sha256": "8707e2510feda5f5af6b256d2413b6dfe4a9728439603258dd09b19323f0978c" }, "downloads": -1, "filename": "simple_model-0.0.1.tar.gz", "has_sig": false, "md5_digest": "3ef9840464cb4ec470a7be00eb84b15b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1966, "upload_time": "2015-11-19T23:45:27", "url": "https://files.pythonhosted.org/packages/74/21/b95f03051db7acf2b33ac21b416596d072ea683b21efe47da1d26388117d/simple_model-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "faaafd2df51f64c266d79009085e1844", "sha256": "48b91af69e7efff3edb5e173a5e7c5c3ce5da1466846bbc908a92b54b5dbb71f" }, "downloads": -1, "filename": "simple_model-0.0.2.tar.gz", "has_sig": false, "md5_digest": "faaafd2df51f64c266d79009085e1844", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2641, "upload_time": "2015-11-20T00:52:52", "url": "https://files.pythonhosted.org/packages/87/b6/6d9f32257880a9dba028c72f29348580edfacabd85957d571d7eef411ddf/simple_model-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "1738ca5b9c69fee1a919e9f27fd779d3", "sha256": "0684152921fd72589fee33ba34e494926f19850c8b623a478a75c13810bb0c48" }, "downloads": -1, "filename": "simple_model-0.0.3.tar.gz", "has_sig": false, "md5_digest": "1738ca5b9c69fee1a919e9f27fd779d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2738, "upload_time": "2015-11-20T00:56:39", "url": "https://files.pythonhosted.org/packages/7d/05/416fe520ee06cf3735d7e9e0708fc5c1aa251d7f8eb5c48575078a666d19/simple_model-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "a62a0755e74fff66bf06764b801003a7", "sha256": "3678f7e6689a19e474dcdd851cf9b0a440ae829fd62d06c3d28b07b0a10761e7" }, "downloads": -1, "filename": "simple_model-0.0.4.tar.gz", "has_sig": false, "md5_digest": "a62a0755e74fff66bf06764b801003a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2826, "upload_time": "2015-11-20T01:26:24", "url": "https://files.pythonhosted.org/packages/fe/2f/2753ef13f22e6bf3a75d799739694f349208e6834effc2d4cd563e41de9a/simple_model-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "851a2558dd92ca5e046dc244deffd645", "sha256": "017a3e26f3b657b55189242c97f62c18c04846fe5feab64ae4a6c9ddde6115dc" }, "downloads": -1, "filename": "simple_model-0.0.5.tar.gz", "has_sig": false, "md5_digest": "851a2558dd92ca5e046dc244deffd645", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3055, "upload_time": "2015-11-20T01:51:49", "url": "https://files.pythonhosted.org/packages/c4/a5/69e8982757a367f5cb8672695d424737e1b0868b4e4e6125aef08c41239f/simple_model-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "b84cbe7c47f219471fe123c8c428add0", "sha256": "23770caa1372a00f8b79e2a86ae1aac07ad7a522aaabc8a706717ec070c986c5" }, "downloads": -1, "filename": "simple_model-0.0.6.tar.gz", "has_sig": false, "md5_digest": "b84cbe7c47f219471fe123c8c428add0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3119, "upload_time": "2016-01-01T16:28:49", "url": "https://files.pythonhosted.org/packages/d4/08/7d5fc6555067c1d3bba30feed53552363523601e5f44a81d2c2c8c4b791a/simple_model-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "80c9b07a5afeacfa32db931b428084dd", "sha256": "f4fc90e2cb9809947f1ee9b8cdd03b9c0b7855f943973c011d8b5a5d07cdc30b" }, "downloads": -1, "filename": "simple_model-0.0.7.tar.gz", "has_sig": false, "md5_digest": "80c9b07a5afeacfa32db931b428084dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3214, "upload_time": "2016-01-01T16:34:30", "url": "https://files.pythonhosted.org/packages/54/65/69d7ed662eb45ef8c6e52b120a9f9e2073fad883411cb157a340a3685c51/simple_model-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "abcc85ae5dfca60aa23f05103d701164", "sha256": "88ea94a20fdf3598de5b7e79f5982284246ea84b202fc1cb7821e1a5eaa7f3ae" }, "downloads": -1, "filename": "simple_model-0.0.8.tar.gz", "has_sig": false, "md5_digest": "abcc85ae5dfca60aa23f05103d701164", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3234, "upload_time": "2016-01-01T17:24:06", "url": "https://files.pythonhosted.org/packages/09/19/dec89646c1af99f45eb5b19e5a6396734f42bf9a2b2bc86a7e377e8cb688/simple_model-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "957c6ad09678eaab1ca35f2cdc090f80", "sha256": "ed8fcfb6df6680108ff401986406bb5c9148feb1808d7ab3bb076c5cd986a9ed" }, "downloads": -1, "filename": "simple_model-0.0.9.tar.gz", "has_sig": false, "md5_digest": "957c6ad09678eaab1ca35f2cdc090f80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3345, "upload_time": "2016-04-19T16:21:46", "url": "https://files.pythonhosted.org/packages/79/66/9a33376972268b675789a2885f98eafb8aa5ac20d3d5a176e80ac32e4490/simple_model-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "d3896eda1f1ddceaec6c3a0490b31338", "sha256": "ddd6710917130c1725fc0aeb81516720575d02d05872b33b6a340b18e8548002" }, "downloads": -1, "filename": "simple_model-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d3896eda1f1ddceaec6c3a0490b31338", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3329, "upload_time": "2016-04-19T16:26:21", "url": "https://files.pythonhosted.org/packages/0a/73/eb0c398fad65e255008337d62a61a300aa03e3eb70ac5d951f7be7575868/simple_model-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "36d97af4fb91fda80a5b5a5936096e44", "sha256": "bea7f459a7d054a8abb73d891f679a37f3c5145544a6850fcc4cb3a9bb02f1a9" }, "downloads": -1, "filename": "simple_model-0.1.1.tar.gz", "has_sig": false, "md5_digest": "36d97af4fb91fda80a5b5a5936096e44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3247, "upload_time": "2016-04-21T20:14:17", "url": "https://files.pythonhosted.org/packages/7b/bb/c615f9151a8c2b425793bfacd838c5a5694dbc36e2939e67a9e1b6d25949/simple_model-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e13a9e7ae511562bd06725a74e088a95", "sha256": "1852eef76993f4b0792152e3c7f8089ba7eb9cab9af268c8b8abcc1d32bfd4d8" }, "downloads": -1, "filename": "simple_model-0.1.2.tar.gz", "has_sig": false, "md5_digest": "e13a9e7ae511562bd06725a74e088a95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3466, "upload_time": "2016-04-21T21:03:47", "url": "https://files.pythonhosted.org/packages/56/01/ad10163b97e542282f883e933bcde6a2b1cfb0da8acc4264d3995a4d38a7/simple_model-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "d77de6f24d4415259605a7e3d34d6be3", "sha256": "efa00b2c71fc00b51487ed7eda7b87d0f69dc991bcae9d6dcc7e98a43e34aa4e" }, "downloads": -1, "filename": "simple_model-0.1.3.tar.gz", "has_sig": false, "md5_digest": "d77de6f24d4415259605a7e3d34d6be3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3540, "upload_time": "2016-04-22T13:49:20", "url": "https://files.pythonhosted.org/packages/cf/ca/ec6b65bb7e759ef2dc8b483a2f3c146018f8f435b1e21a64df7306e4c373/simple_model-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "cce88ecf9f2ae2aa5122296cee1e4429", "sha256": "676527255002fe5be09482f983ebe87a13759c6b39592a16ff850c8693f1964a" }, "downloads": -1, "filename": "simple_model-0.1.4.tar.gz", "has_sig": false, "md5_digest": "cce88ecf9f2ae2aa5122296cee1e4429", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3669, "upload_time": "2016-04-22T19:50:19", "url": "https://files.pythonhosted.org/packages/01/b3/0df17e03dd4f9926fd0842ae0f9fed8ed2288231da0fc1ce5757c78614e1/simple_model-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "2be066778617705814d4aea02f5ce276", "sha256": "b7af5f09c29d4d5f63870965148cc8b822f122a07b4f5590ad40ee069db953f1" }, "downloads": -1, "filename": "simple_model-0.1.5.tar.gz", "has_sig": false, "md5_digest": "2be066778617705814d4aea02f5ce276", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3752, "upload_time": "2016-04-22T20:54:35", "url": "https://files.pythonhosted.org/packages/22/d0/e887d70a4743a60036fec30f501910342253e0038ca6d54939a09d1c967b/simple_model-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "e914a9f9cb44c858272eb321bacf537c", "sha256": "1cee85bd35061d438055f6a9b70f12ca5f97126235d24ca956e0a89b18bd9863" }, "downloads": -1, "filename": "simple_model-0.1.6.tar.gz", "has_sig": false, "md5_digest": "e914a9f9cb44c858272eb321bacf537c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3777, "upload_time": "2016-05-02T15:16:35", "url": "https://files.pythonhosted.org/packages/36/1a/97ec930fc856ea63adc68b2a9a1ae5ab1c96004a2b33ee8543fcd8fe3092/simple_model-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "42bab24390b1d6ac620b4d644badd9f6", "sha256": "503a65ce0dda96836e710b0fd101995bbf18b168f1a7302e02b8de218bd6eb08" }, "downloads": -1, "filename": "simple_model-0.1.7.tar.gz", "has_sig": false, "md5_digest": "42bab24390b1d6ac620b4d644badd9f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3778, "upload_time": "2016-09-09T21:25:28", "url": "https://files.pythonhosted.org/packages/3b/cf/1bd97f8b29bffedf56ddf663e3e2431b30888a586e0a23ce468efcf8f4a8/simple_model-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "01167079bfc98a4c47d9aa8c8fd77a59", "sha256": "ea03158a8a15246ca6470b897746a14314a0982cd742ec39ddee23649c48a198" }, "downloads": -1, "filename": "simple_model-0.1.8.tar.gz", "has_sig": false, "md5_digest": "01167079bfc98a4c47d9aa8c8fd77a59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3864, "upload_time": "2016-09-30T11:16:11", "url": "https://files.pythonhosted.org/packages/57/96/bf8884f8e2b23e1eda9b9073bf5865953cce04911281733b07bd961095ef/simple_model-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "73997333f988e945042c3194f8398fd5", "sha256": "dc1b25a86159e0a1dd8f627467510fe16aa0b5834cbd3b07e3fbe86a3fdeb357" }, "downloads": -1, "filename": "simple_model-0.1.9.tar.gz", "has_sig": false, "md5_digest": "73997333f988e945042c3194f8398fd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3894, "upload_time": "2016-09-30T11:41:50", "url": "https://files.pythonhosted.org/packages/43/8b/b6584d9a66f0418137910d4f1864bca49f514bc671bd82ac4e4ebe810d0e/simple_model-0.1.9.tar.gz" } ], "0.1.9.post1": [ { "comment_text": "", "digests": { "md5": "75fd12aff15b26c48f36bc236961e216", "sha256": "ac5d807855b5349e0f589fdda30f3b0ea0c1fe479d64eb84cd27aef9465487c3" }, "downloads": -1, "filename": "simple_model-0.1.9.post1.tar.gz", "has_sig": false, "md5_digest": "75fd12aff15b26c48f36bc236961e216", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3879, "upload_time": "2016-09-30T11:46:54", "url": "https://files.pythonhosted.org/packages/38/ae/5ba0d6b0a42ae0d5f1be71db3030d70f9136eba5f3481d4d8e57e393efb1/simple_model-0.1.9.post1.tar.gz" } ], "1.0.0": [], "1.0.0.post2": [ { "comment_text": "", "digests": { "md5": "adb8bc592a26de2ccf6b3a7be1420576", "sha256": "34dc4ce00ae8f2d9674dc8233a6498ffc5698bfd3e8b8dc6edc0a5dc90c057f1" }, "downloads": -1, "filename": "simple_model-1.0.0.post2.tar.gz", "has_sig": false, "md5_digest": "adb8bc592a26de2ccf6b3a7be1420576", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4687, "upload_time": "2016-11-18T01:00:07", "url": "https://files.pythonhosted.org/packages/05/8b/405f9c7911ecbb6185c41514057c92ef17af5dfdf54625566654799ca16b/simple_model-1.0.0.post2.tar.gz" } ], "1.0.0.post3": [ { "comment_text": "", "digests": { "md5": "0bcfa7ccd9e9833f1cbbd92333ae91b1", "sha256": "dcd90ceb8df9dc76b97557bae110f8217dccab8e8c3679bcafad26cadb0ff343" }, "downloads": -1, "filename": "simple_model-1.0.0.post3.tar.gz", "has_sig": false, "md5_digest": "0bcfa7ccd9e9833f1cbbd92333ae91b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4738, "upload_time": "2016-11-27T15:49:28", "url": "https://files.pythonhosted.org/packages/22/fb/73654e4d22646e6c8c210bfedba8841e67ec1f9589231dfb53200a672903/simple_model-1.0.0.post3.tar.gz" } ], "1.0.0.post4": [ { "comment_text": "", "digests": { "md5": "3e30f129d65f3241aea677f071d675d3", "sha256": "2f2484c831deb0b378a8e62a4bafd21770e064c2ef1aee2da527c4188902d8c8" }, "downloads": -1, "filename": "simple_model-1.0.0.post4.tar.gz", "has_sig": false, "md5_digest": "3e30f129d65f3241aea677f071d675d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4745, "upload_time": "2016-11-27T18:30:39", "url": "https://files.pythonhosted.org/packages/f5/b8/975f96b836497bcd8b300aff152a8fe7501d4b613566b3e5868da3f0ad4b/simple_model-1.0.0.post4.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "538f0ba3e114e5d46aa5bc61e1bf2f5c", "sha256": "19c97e24e14db15dd492e310ac124008be46b349416339743768472e30e266d2" }, "downloads": -1, "filename": "simple_model-1.0.1.tar.gz", "has_sig": false, "md5_digest": "538f0ba3e114e5d46aa5bc61e1bf2f5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4848, "upload_time": "2016-11-29T16:16:18", "url": "https://files.pythonhosted.org/packages/83/1d/6a01974756d33549a5b8dafcd21b31c4f3fc7b077c60d8d9617b5ccc12f3/simple_model-1.0.1.tar.gz" } ], "1.0.1.post1": [ { "comment_text": "", "digests": { "md5": "67822b3a54139d11928ca5e0b670331c", "sha256": "3e6c01460e616cda4fa01d16338b69c090d8369f4e794e7535e487ae812e9e7d" }, "downloads": -1, "filename": "simple_model-1.0.1.post1.tar.gz", "has_sig": false, "md5_digest": "67822b3a54139d11928ca5e0b670331c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4892, "upload_time": "2016-12-08T11:41:50", "url": "https://files.pythonhosted.org/packages/63/e6/81b8df30d9730093fc6044d6247e404e13aac50a3bcb48d048dbf21f96d4/simple_model-1.0.1.post1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "ebaf8899a581d87b4c865a4f62ce8be1", "sha256": "c4f3fea0fb1e5ed59b0f34372b0b8f05eb73eb22288de509d651ad400861e24f" }, "downloads": -1, "filename": "simple_model-1.0.2.tar.gz", "has_sig": false, "md5_digest": "ebaf8899a581d87b4c865a4f62ce8be1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5172, "upload_time": "2017-01-26T02:21:23", "url": "https://files.pythonhosted.org/packages/6e/a0/75340ed419e278b428a6794abe69e165262cc269985daba80783d4e10e5c/simple_model-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e29b56192a86178991810a3c61e88713", "sha256": "507e4b8678779305c70af4e7eba70019f8658983fd4946a54381aa318d7c8e52" }, "downloads": -1, "filename": "simple_model-1.1.0.tar.gz", "has_sig": false, "md5_digest": "e29b56192a86178991810a3c61e88713", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5674, "upload_time": "2017-03-30T00:25:54", "url": "https://files.pythonhosted.org/packages/e2/09/de7d0311062591fbb6b600f0d5c3d9320a8d109444bc1cb57805fb07ba47/simple_model-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "d5e7ea2fbf0b27903b857c45455efd1a", "sha256": "a8865420156c6d9e4bcaeb4b850d39814c44c314f07d93601ed37a69b3d9256d" }, "downloads": -1, "filename": "simple_model-1.1.1.tar.gz", "has_sig": false, "md5_digest": "d5e7ea2fbf0b27903b857c45455efd1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5703, "upload_time": "2017-03-30T13:10:46", "url": "https://files.pythonhosted.org/packages/d5/b4/fb7558cb57725bc4b442b78890a57e3a1f10b977f18c41d39e9fe35214a1/simple_model-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "83cb58387c32bdf5c0d006a5a7cd3802", "sha256": "f6aca9524c399bc75ad5e8f1d30af45611fb1ce639a0e976389c48b76beb90bb" }, "downloads": -1, "filename": "simple_model-1.1.2.tar.gz", "has_sig": false, "md5_digest": "83cb58387c32bdf5c0d006a5a7cd3802", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5940, "upload_time": "2017-04-06T22:10:37", "url": "https://files.pythonhosted.org/packages/da/9c/cd5fa92ea3e97d77c2af776f8fdb9aae273177fb13926be163b8e0a17a87/simple_model-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "e8dec9eb02a7669454a51c8f2421ccf5", "sha256": "bd5392eff3dff54580038c377b1767193a876165167da994ba7a1ec653670ce0" }, "downloads": -1, "filename": "simple_model-1.1.3.tar.gz", "has_sig": false, "md5_digest": "e8dec9eb02a7669454a51c8f2421ccf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5981, "upload_time": "2017-05-30T17:14:19", "url": "https://files.pythonhosted.org/packages/29/21/8987e2a2ac7b223becac6c754f8e2898be6c86df4297e5d744713d5d42df/simple_model-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "ede0988556ae8e2d367213df953c456b", "sha256": "40bf281e81af0dc3c6cbd506e3051df874a75d6361c035db86cf5e243f9739b1" }, "downloads": -1, "filename": "simple_model-1.1.4.tar.gz", "has_sig": false, "md5_digest": "ede0988556ae8e2d367213df953c456b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5873, "upload_time": "2017-08-30T13:49:20", "url": "https://files.pythonhosted.org/packages/43/be/ad6974ae8f7fa15084b639e63cb3830a7395f7f08c53cd115fb9d57a45a3/simple_model-1.1.4.tar.gz" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "b1ad7d98cac5f4464efba1d2636e708a", "sha256": "f123f87bbc7810b1b1befa364fcc7c092fe9a23b59a5b5ab636ca28ad3106964" }, "downloads": -1, "filename": "simple_model-1.1.5.tar.gz", "has_sig": false, "md5_digest": "b1ad7d98cac5f4464efba1d2636e708a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5873, "upload_time": "2017-09-07T17:16:04", "url": "https://files.pythonhosted.org/packages/58/8f/e420fafe6869a4cf8d146a70dd8cd0f9bce482a6f9b5789aaa4321add734/simple_model-1.1.5.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "63a305efb28757bf7028d04479aa551f", "sha256": "5f8d1606284b728b6627e90e8becbe317eacc9813b66aac32000176c7fe52941" }, "downloads": -1, "filename": "simple_model-1.2.0.tar.gz", "has_sig": false, "md5_digest": "63a305efb28757bf7028d04479aa551f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8836, "upload_time": "2018-01-20T17:21:48", "url": "https://files.pythonhosted.org/packages/11/18/ab46c6f1b3190644278ca937924ccffdeffbd0e5a90fcecef9a4acfa3d05/simple_model-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "edf0b0933d6992079eff1775b533ac27", "sha256": "8572a06ac12ea8e2c39d251c0f632c225f1e341f4a43caa7a88006b272daaf6c" }, "downloads": -1, "filename": "simple_model-1.2.1.tar.gz", "has_sig": false, "md5_digest": "edf0b0933d6992079eff1775b533ac27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8870, "upload_time": "2018-01-24T14:38:00", "url": "https://files.pythonhosted.org/packages/c0/1e/63a918f17783c5db45077deb44883022c92e58d667ab64f1adff4ae0cf88/simple_model-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "7173b603c9faa99b6a78fec1643a1e7b", "sha256": "e4eb691c545c6c351a4d931eb5c67474ca527f17be1e9ef8d594be2b64dc955d" }, "downloads": -1, "filename": "simple_model-1.2.2.tar.gz", "has_sig": false, "md5_digest": "7173b603c9faa99b6a78fec1643a1e7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8778, "upload_time": "2018-01-27T22:53:07", "url": "https://files.pythonhosted.org/packages/f1/61/528ca331135fae1e15f0c790c419f79b59ef1946b46aca407b03a3f14ad8/simple_model-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "b5b5f6688af5087b32e65a0c27e82536", "sha256": "85a2adb70a0d6a6a1f54c0275235d58aaacb8499768cf6fe426cc65201f42084" }, "downloads": -1, "filename": "simple_model-1.2.3.tar.gz", "has_sig": false, "md5_digest": "b5b5f6688af5087b32e65a0c27e82536", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8808, "upload_time": "2018-03-02T19:59:50", "url": "https://files.pythonhosted.org/packages/61/f7/2e9880c0f58bc18689d4e315c79007d9f1364d1102d11b6a86ba4560a47e/simple_model-1.2.3.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "37da2ae448967e680218204cdc6082b4", "sha256": "67cbfc6d3f558f8ca55204327bff6a3ab8ba1ecb31d88dc05794218335cc5c33" }, "downloads": -1, "filename": "simple_model-1.2.4.tar.gz", "has_sig": false, "md5_digest": "37da2ae448967e680218204cdc6082b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8821, "upload_time": "2018-03-05T14:24:17", "url": "https://files.pythonhosted.org/packages/2a/2e/576821191eff81e2ad47fdbbc51c2c13da1b81ea22127fe4e18d0729ca86/simple_model-1.2.4.tar.gz" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "2f000841b3a9e76cf923de27403bc252", "sha256": "9bdb59b215405b1b2004df9e84ca506f3277f487be2d803c0d589c7c364ddffe" }, "downloads": -1, "filename": "simple_model-1.2.5.tar.gz", "has_sig": false, "md5_digest": "2f000841b3a9e76cf923de27403bc252", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9522, "upload_time": "2018-04-26T10:48:42", "url": "https://files.pythonhosted.org/packages/8f/a5/c5909f2de954522f81a982ee5c8eb7065cd2609f3397f63e6e3b08ba5edf/simple_model-1.2.5.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "391a9ca579c961fa4d973e3546b938c2", "sha256": "e336972a49588aa92613b7d20a4b5435858041dbe4daf9b022650c933eeb239d" }, "downloads": -1, "filename": "simple_model-1.3.0.tar.gz", "has_sig": false, "md5_digest": "391a9ca579c961fa4d973e3546b938c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9724, "upload_time": "2018-06-21T16:59:40", "url": "https://files.pythonhosted.org/packages/2e/9a/e4e804daa275bc47c53f45f112c5950447d29f2749dbfe8eeeea0643499c/simple_model-1.3.0.tar.gz" } ], "1.3.0.post1": [ { "comment_text": "", "digests": { "md5": "a8995330f9c8b101c969fe04fad61e29", "sha256": "a3a9b95bb6998f6f5f020f5b86643a4c44f574ea978370a940c967a6aa204b44" }, "downloads": -1, "filename": "simple_model-1.3.0.post1.tar.gz", "has_sig": false, "md5_digest": "a8995330f9c8b101c969fe04fad61e29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9767, "upload_time": "2018-06-21T17:14:44", "url": "https://files.pythonhosted.org/packages/6b/d4/9ab73d3a14bb3eb75c73337d2b5eafcd03d6cf0192e2915387c932a91c9a/simple_model-1.3.0.post1.tar.gz" } ], "1.3.0.post2": [ { "comment_text": "", "digests": { "md5": "e9764961ac5c72d4b18d19dc5a55a50e", "sha256": "ecb0b945583db7bc5f70f869a9e6b5eeaf9dc8eb3ecf1ee135fb847d88a66548" }, "downloads": -1, "filename": "simple_model-1.3.0.post2.tar.gz", "has_sig": false, "md5_digest": "e9764961ac5c72d4b18d19dc5a55a50e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9918, "upload_time": "2018-06-21T17:32:03", "url": "https://files.pythonhosted.org/packages/b6/d0/0ceed264760572d14ab29f944dad290d6997c4e1c47f29efc8bea4ae1e03/simple_model-1.3.0.post2.tar.gz" } ], "1.3.0.post3": [ { "comment_text": "", "digests": { "md5": "9f89df20b041cad09e25398bd524696c", "sha256": "9bd359015c03575d89cc3790e0c25c705b4078fe39e9bbeace9258007a5c69bc" }, "downloads": -1, "filename": "simple_model-1.3.0.post3-py3-none-any.whl", "has_sig": false, "md5_digest": "9f89df20b041cad09e25398bd524696c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9256, "upload_time": "2018-06-21T17:35:45", "url": "https://files.pythonhosted.org/packages/fa/8e/aa6430f645534c07cf16a2302292fa395f2a325be41eba6944cf10b764a6/simple_model-1.3.0.post3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de4bef4d86833aa4dc003893ea11b0d4", "sha256": "68dbea0428150795719acb4e4c151cfb50c52b41ddeea1366b2cf293b201b8a7" }, "downloads": -1, "filename": "simple_model-1.3.0.post3.tar.gz", "has_sig": false, "md5_digest": "de4bef4d86833aa4dc003893ea11b0d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10048, "upload_time": "2018-06-21T17:35:47", "url": "https://files.pythonhosted.org/packages/3e/ee/4a33e0d7f54408906685e1107f8c1131592c12d702f30b9a954085bb2f3e/simple_model-1.3.0.post3.tar.gz" } ], "1.3.0.post4": [ { "comment_text": "", "digests": { "md5": "56780db073c07c9751b6c9d7ac4b3450", "sha256": "340c613550263df25fa593c6f4d4cb486c4383dd39d73b4f9eb7a6f0bdaf6271" }, "downloads": -1, "filename": "simple_model-1.3.0.post4-py2-none-any.whl", "has_sig": false, "md5_digest": "56780db073c07c9751b6c9d7ac4b3450", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8471, "upload_time": "2018-06-24T11:22:00", "url": "https://files.pythonhosted.org/packages/11/ad/6525f5f550952b02b5cdb07060d0b8cea8c4d2bfe01986caf9798bf066c4/simple_model-1.3.0.post4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "50ed1e1a766d2a132314b1e020bf0693", "sha256": "bd8857caae4e47b147d4989f31de6477c1e4173ca915fa22574aa0c57d2a092b" }, "downloads": -1, "filename": "simple_model-1.3.0.post4.tar.gz", "has_sig": false, "md5_digest": "50ed1e1a766d2a132314b1e020bf0693", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10061, "upload_time": "2018-06-24T11:22:02", "url": "https://files.pythonhosted.org/packages/55/61/c58e85223b8296cbc462f0d2f026f6e4ab99370732cee8d287d6ca3a4955/simple_model-1.3.0.post4.tar.gz" } ], "1.3.0.post5": [ { "comment_text": "", "digests": { "md5": "abb53bf83ea17c76386aa8a9038b9b53", "sha256": "45ec8124a53d0c24619d9a7deff3f65eb2f179ba756450d61598b51e367e9b04" }, "downloads": -1, "filename": "simple_model-1.3.0.post5.tar.gz", "has_sig": false, "md5_digest": "abb53bf83ea17c76386aa8a9038b9b53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9963, "upload_time": "2018-06-24T11:25:24", "url": "https://files.pythonhosted.org/packages/ed/54/cca82e03ae75874499b003485e41a9e315c0bd37c1436328e959c1433ad8/simple_model-1.3.0.post5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "abb53bf83ea17c76386aa8a9038b9b53", "sha256": "45ec8124a53d0c24619d9a7deff3f65eb2f179ba756450d61598b51e367e9b04" }, "downloads": -1, "filename": "simple_model-1.3.0.post5.tar.gz", "has_sig": false, "md5_digest": "abb53bf83ea17c76386aa8a9038b9b53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9963, "upload_time": "2018-06-24T11:25:24", "url": "https://files.pythonhosted.org/packages/ed/54/cca82e03ae75874499b003485e41a9e315c0bd37c1436328e959c1433ad8/simple_model-1.3.0.post5.tar.gz" } ] }