{ "info": { "author": "Johan L\u00fcbcke", "author_email": "johan.lubcke@trioptima.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": ".. image:: https://travis-ci.org/TriOptima/tri.named-struct.svg?branch=master\n :target: https://travis-ci.org/TriOptima/tri.named-struct\n.. image:: http://codecov.io/github/TriOptima/tri.named-struct/coverage.svg?branch=master\n :target: http://codecov.io/github/TriOptima/tri.named-struct?branch=master\n\ntri.named_struct\n================\n\ntri.named_struct supplies classes that can be used like dictionaries, but with a predefined set of possible key values.\n\nExample\n-------\n\n.. code:: python\n\n from tri_named_struct import NamedStruct\n\n class MyNamedStruct(NamedStruct):\n foo = NamedStructField()\n bar = NamedStructField()\n\n m = MyNamedStruct(17, 42)\n assert m['foo'] == 17\n assert m.foo == 17\n assert m == dict(foo=17, bar=42)\n\n m.not_foo # Will raise an AttributeError\n\n\nDefault values can be provided:\n\n.. code:: python\n\n from tri_named_struct import NamedStruct\n\n class MyNamedStruct(NamedStruct):\n foo = NamedStructField()\n bar = NamedStructField()\n baz = NamedStructField(default='default')\n\n assert MyNamedStruct(17) == dict(foo=17, bar=None, baz='default')\n\n\nDefault values can alternatively be provided by a factory method:\n\n.. code:: python\n\n from tri_named_struct import NamedStruct\n\n class MyNamedStruct(NamedStruct):\n foo = NamedStructField(default_factory=list)\n\n assert MyNamedStruct().foo == []\n\n\nThere is also a functional way to defined a :code:`NamedStruct` subclass:\n\n.. code:: python\n\n from tri_named_struct import named_struct\n\n MyNamedStruct = named_struct('foo, bar')\n m = MyNamedStruct(17, 42)\n assert m.foo == 17\n assert m.bar == 42\n\n\nRunning tests\n-------------\n\nYou need tox installed then just :code:`make test`.\n\n\nLicense\n-------\n\nBSD\n\n\nDocumentation\n-------------\n\nhttp://trinamed_struct.readthedocs.org.\n\n\nChangelog\n---------\n\n1.1.0 (2019-10-15)\n~~~~~~~~~~~~~~~~~~~\n\n* Upped dependency tri.declarative to 4.x\n\n\n1.0.0 (2019-06-10)\n~~~~~~~~~~~~~~~~~~~\n\n* Renamed package from `tri.named_struct` to `tri_named_struct`\n\n* Dropped python2 support\n\n\n0.12.0 (2016-08-30)\n~~~~~~~~~~~~~~~~~~~\n\n* Fix class level override of named struct fields.\n\n\n0.11.0 (2016-05-06)\n~~~~~~~~~~~~~~~~~~~\n\n* Fix default values shadowing values set explicitly in subclass __init__ method.\n\n\n0.10.0 (2016-01-12)\n~~~~~~~~~~~~~~~~~~~\n\n* Added `default_factory` argument to specify default values via a callback.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/TriOptima/tri.named-struct", "keywords": "tri.named-struct", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "tri.named-struct", "package_url": "https://pypi.org/project/tri.named-struct/", "platform": "", "project_url": "https://pypi.org/project/tri.named-struct/", "project_urls": { "Homepage": "https://github.com/TriOptima/tri.named-struct" }, "release_url": "https://pypi.org/project/tri.named-struct/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "tri.named-struct supplies a class that can be used like dictionaries (or via attribute access), but with a predefined set of possible key values", "version": "1.1.0" }, "last_serial": 5976621, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "3b0ae580910b03045d63e27e28149276", "sha256": "1ddb15f29620836c4298d1d33302b82402de2f3408fdf3e9984a63a14548a35d" }, "downloads": -1, "filename": "tri.named_struct-0.10.0.tar.gz", "has_sig": false, "md5_digest": "3b0ae580910b03045d63e27e28149276", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5376, "upload_time": "2016-01-12T15:04:50", "url": "https://files.pythonhosted.org/packages/a2/12/627fa36f1809873672065e03b6ffcd2a39cb54e07a50dc9a54ed504828ad/tri.named_struct-0.10.0.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "e2b0fe51939fba140a74e11c6b33c75f", "sha256": "f291d27e3b8fc0513c693ddd1a09be05c0b327a3239c595fda556dda7e09e506" }, "downloads": -1, "filename": "tri.named-struct-0.11.0.tar.gz", "has_sig": false, "md5_digest": "e2b0fe51939fba140a74e11c6b33c75f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5525, "upload_time": "2016-10-26T10:33:14", "url": "https://files.pythonhosted.org/packages/ff/0b/0c94004efbea03ee284c282dc9a57573c807f3fb1af1904102d322bfa282/tri.named-struct-0.11.0.tar.gz" } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "03f80691e27caf057d2d01324bdcb015", "sha256": "4c9e5791b287971b9e961a418f9e8ad94919957f677f19a56a3df1b1a4848e5f" }, "downloads": -1, "filename": "tri.named-struct-0.12.0.tar.gz", "has_sig": false, "md5_digest": "03f80691e27caf057d2d01324bdcb015", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5640, "upload_time": "2016-10-26T10:28:57", "url": "https://files.pythonhosted.org/packages/df/c3/190c7c51f75302dfd71614103a43f678f48392cacf037e2326b302a82730/tri.named-struct-0.12.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "d1a32af121c6c72fa576b2977286f1ba", "sha256": "fd20bf6252b0e7d305b5e3e3959f840883b97f5132d1f692e7addcc59ef73900" }, "downloads": -1, "filename": "tri.named_struct-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d1a32af121c6c72fa576b2977286f1ba", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4775, "upload_time": "2015-10-06T09:21:42", "url": "https://files.pythonhosted.org/packages/68/06/6e281135e0afb4e8d97ad88b9d9d880e0963ffea9b78f9b07bc33fd92245/tri.named_struct-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce6a7a19136b2747e38a46a8cedc9a5a", "sha256": "e42d853297789fe17a2b90e723b768d9e9a47e5c692bb3b485e9b69c04ea3827" }, "downloads": -1, "filename": "tri.named_struct-0.3.0.tar.gz", "has_sig": false, "md5_digest": "ce6a7a19136b2747e38a46a8cedc9a5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4857, "upload_time": "2015-10-06T09:21:47", "url": "https://files.pythonhosted.org/packages/67/3f/79919620a755a72dc57d8a707d7445fc07799f1c1be1304942603324c23e/tri.named_struct-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "44112d4405ca0c378bcc0a69b2525853", "sha256": "fcbe1c14eb2ac4b359b4243abfca48ee946e2544ab077fa26d337117cef039d6" }, "downloads": -1, "filename": "tri.named_struct-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "44112d4405ca0c378bcc0a69b2525853", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4778, "upload_time": "2015-10-09T14:50:21", "url": "https://files.pythonhosted.org/packages/d4/51/eea6380ac1bfdd40bcf55c2f2e0848884336eeee55614d9817da79b45427/tri.named_struct-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e64f76fa008992c5bb0837170c05086", "sha256": "f5b60b0607a0f25bc3445accf3f964a8d21a8d4d7dfffcdd82102e8cef8ff1c9" }, "downloads": -1, "filename": "tri.named_struct-0.4.0.tar.gz", "has_sig": false, "md5_digest": "6e64f76fa008992c5bb0837170c05086", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4857, "upload_time": "2015-10-09T14:50:28", "url": "https://files.pythonhosted.org/packages/53/0c/cee8be5e6d028c05ddcc0aa5c6f575d9d3826a8dcd77b6807279d2edfbeb/tri.named_struct-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "240eafa703636c0b158bdae133e8462d", "sha256": "ba1fd7fcd1d951a5b1c7e77d9e097e1fbe6f1bb92ce77baa1c599e3424d52f40" }, "downloads": -1, "filename": "tri.named_struct-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "240eafa703636c0b158bdae133e8462d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4862, "upload_time": "2015-10-14T11:45:29", "url": "https://files.pythonhosted.org/packages/f1/cd/dbbd8b337ed234a732988a9fe359db1cf3b25c66bf4e8abbeb21f823335a/tri.named_struct-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "514731de9b8ae177be96ba12fe163e3a", "sha256": "7b44223474fa4d7bfe7e9ce5ae84ac104ef8d9e14c6d1399665f1cdac38febe9" }, "downloads": -1, "filename": "tri.named_struct-0.5.0.tar.gz", "has_sig": false, "md5_digest": "514731de9b8ae177be96ba12fe163e3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4931, "upload_time": "2015-10-14T11:45:39", "url": "https://files.pythonhosted.org/packages/69/9d/58db6843a75ef8cca049558de35b113eb122401c6b9be1415dfd41b6db78/tri.named_struct-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "2004c0b69426dc5af9db6442425353d7", "sha256": "06ab790cfaf0d519f53bcd9b8102414a8a272bd5606c26104efd524cef94ecb2" }, "downloads": -1, "filename": "tri.named_struct-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2004c0b69426dc5af9db6442425353d7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4870, "upload_time": "2015-12-14T12:48:51", "url": "https://files.pythonhosted.org/packages/55/10/449edb7e41cb392cacae33bf03c1d1692b465434c900de6d3b878a63d192/tri.named_struct-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ed20ef3b71f6894aa38e688fa90aea9", "sha256": "b842f428598a6d505544a696fce64aab6d73b21227f33ab5d3c1205257fcbb3b" }, "downloads": -1, "filename": "tri.named_struct-0.6.0.tar.gz", "has_sig": false, "md5_digest": "1ed20ef3b71f6894aa38e688fa90aea9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4938, "upload_time": "2015-12-14T12:48:55", "url": "https://files.pythonhosted.org/packages/56/bb/2ae8b264e1f40cd9b74cc90ad70c93308176686975937c3734a9158ab6b0/tri.named_struct-0.6.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "57d284bdd2bee56086d8d65c6353f743", "sha256": "4c817f434e99d0a84e03d52352b090083d21cea5123a66dbf9880731b43c1853" }, "downloads": -1, "filename": "tri.named_struct-0.8.0.tar.gz", "has_sig": false, "md5_digest": "57d284bdd2bee56086d8d65c6353f743", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5142, "upload_time": "2015-12-18T12:20:35", "url": "https://files.pythonhosted.org/packages/ab/63/535683212913c4941b38f3da204d889d79db4f2942532915cdf4d64f6458/tri.named_struct-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "54be159542cad95adfdbab702d1c3df3", "sha256": "edeb1f200fa67303efb4e7d020b8c9407d9eb5b4fc79cb3775599136ce0a0ac2" }, "downloads": -1, "filename": "tri.named_struct-0.9.0.tar.gz", "has_sig": false, "md5_digest": "54be159542cad95adfdbab702d1c3df3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5127, "upload_time": "2015-12-18T13:01:46", "url": "https://files.pythonhosted.org/packages/e2/19/3d7cb3e79adeeb7e53e0be267a6f0f724ea1b338b5b3e4e9c04651e70b7d/tri.named_struct-0.9.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "beae4812c79faa8e803197b942e2cf83", "sha256": "79b3401232ce380892d1df80cb205151d14584e66fb5300ec5c31cb39da69cec" }, "downloads": -1, "filename": "tri.named-struct-1.0.0.tar.gz", "has_sig": false, "md5_digest": "beae4812c79faa8e803197b942e2cf83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5587, "upload_time": "2019-06-14T08:45:01", "url": "https://files.pythonhosted.org/packages/a8/6f/9126a80e07a6a0310fd4e75f9765b033d5c6e9657f8785e401fa47ce06f5/tri.named-struct-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "758c2d5e7c267b3ab749b69020a8c850", "sha256": "aa248191c2464c6f9587b32e52c2bbb16cadefbdee56c0809a6b9c6dc95e1e40" }, "downloads": -1, "filename": "tri.named-struct-1.1.0.tar.gz", "has_sig": false, "md5_digest": "758c2d5e7c267b3ab749b69020a8c850", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5621, "upload_time": "2019-10-15T12:19:57", "url": "https://files.pythonhosted.org/packages/54/77/d8d1bc047fa140a82e8727012441fa950be1a40bcc3bfc17e9e9f7aab702/tri.named-struct-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "758c2d5e7c267b3ab749b69020a8c850", "sha256": "aa248191c2464c6f9587b32e52c2bbb16cadefbdee56c0809a6b9c6dc95e1e40" }, "downloads": -1, "filename": "tri.named-struct-1.1.0.tar.gz", "has_sig": false, "md5_digest": "758c2d5e7c267b3ab749b69020a8c850", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5621, "upload_time": "2019-10-15T12:19:57", "url": "https://files.pythonhosted.org/packages/54/77/d8d1bc047fa140a82e8727012441fa950be1a40bcc3bfc17e9e9f7aab702/tri.named-struct-1.1.0.tar.gz" } ] }