{
"info": {
"author": "Hynek Schlawack",
"author_email": "hs@ox.cx",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.6",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "characteristic: Python attributes without boilerplate.\n======================================================\n\n.. image:: https://pypip.in/version/characteristic/badge.svg\n :target: https://pypi.python.org/pypi/characteristic/\n :alt: Latest Version\n\n.. image:: https://travis-ci.org/hynek/characteristic.svg\n :target: https://travis-ci.org/hynek/characteristic\n :alt: CI status\n\n.. image:: https://coveralls.io/repos/hynek/characteristic/badge.png?branch=master\n :target: https://coveralls.io/r/hynek/characteristic?branch=master\n :alt: Current coverage\n\n.. begin\n\n\n``characteristic`` is an `MIT `_-licensed Python package with class decorators that ease the chores of implementing the most common attribute-related object protocols.\n\nYou just specify the attributes to work with and ``characteristic`` gives you any or all of:\n\n- a nice human-readable ``__repr__``,\n- a complete set of comparison methods,\n- immutability for attributes,\n- and a kwargs-based initializer (that cooperates with your existing one and optionally even checks the types of the arguments)\n\n*without* writing dull boilerplate code again and again.\n\nThis gives you the power to use actual classes with actual types in your code instead of confusing ``tuple``\\ s or confusingly behaving ``namedtuple``\\ s.\n\nSo put down that type-less data structures and welcome some class into your life!\n\n``characteristic``\\ \u2019s documentation lives at `Read the Docs `_, the code on `GitHub `_.\nIt\u2019s rigorously tested on Python 2.6, 2.7, 3.3+, and PyPy.\n\n\nAuthors\n-------\n\n``characteristic`` is written and maintained by `Hynek Schlawack `_.\n\nThe development is kindly supported by `Variomedia AG `_.\n\nIt\u2019s inspired by Twisted\u2019s `FancyEqMixin `_ but is implemented using class decorators because `sub-classing is bad for you `_, m\u2019kay?\n\n\nThe following folks helped forming ``characteristic`` into what it is now:\n\n- `Adam Dangoor `_\n- `Glyph `_\n- `Itamar Turner-Trauring `_\n- `Jean-Paul Calderone `_\n- `Julian Berman `_\n- `Richard Wall `_\n- `Tom Prince `_",
"description_content_type": null,
"docs_url": null,
"download_url": null,
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://characteristic.readthedocs.org/",
"keywords": null,
"license": "MIT",
"maintainer": null,
"maintainer_email": null,
"name": "characteristic",
"package_url": "https://pypi.org/project/characteristic/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/characteristic/",
"project_urls": {
"Homepage": "https://characteristic.readthedocs.org/"
},
"release_url": "https://pypi.org/project/characteristic/14.3.0/",
"requires_dist": null,
"requires_python": null,
"summary": "Python attributes without boilerplate.",
"version": "14.3.0"
},
"last_serial": 1354336,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "fad6f0f065e2f7dcd8b5d75ce88b175f",
"sha256": "e2696404a745092e925a0067bb1223d4ee5a62a7ed917e120481f5dfbee9fbf2"
},
"downloads": -1,
"filename": "characteristic-0.1.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "fad6f0f065e2f7dcd8b5d75ce88b175f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 6816,
"upload_time": "2014-05-11T18:18:03",
"url": "https://files.pythonhosted.org/packages/5a/32/48ea1b67337168ab98825e0ebe618573b29fb5486ddb3cb3e6588e3158fa/characteristic-0.1.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b4eba58e38133e5e90e8c679c116aa62",
"sha256": "d470fac48accbca41038a321abd0c1a7428beef5ce5d80b1d6dfb9771305906a"
},
"downloads": -1,
"filename": "characteristic-0.1.0.tar.gz",
"has_sig": true,
"md5_digest": "b4eba58e38133e5e90e8c679c116aa62",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6546,
"upload_time": "2014-05-11T18:18:05",
"url": "https://files.pythonhosted.org/packages/e2/f2/2cc176a134da80b3484a21467321f2121af0505cf9f49245c9a5bd7715cf/characteristic-0.1.0.tar.gz"
}
],
"14.0.0": [
{
"comment_text": "",
"digests": {
"md5": "bb597987426908cdf3b31bea61c29dbd",
"sha256": "69d25880ba15dc08b0c77edef0d59dd53887d647aad3dd318ccb4e220b6c79a4"
},
"downloads": -1,
"filename": "characteristic-14.0.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "bb597987426908cdf3b31bea61c29dbd",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 12715,
"upload_time": "2014-08-21T14:51:12",
"url": "https://files.pythonhosted.org/packages/8f/49/83a1c0b9c86e08e5684424e8366b8ea196a9c999c1c959b202b956b08f78/characteristic-14.0.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "baea1f28f71c47d88d7d24335f814ee8",
"sha256": "11998d28bf71c7610ecd5393d47cb09e2459e80ee64c4c426a1b5986b6bdf55d"
},
"downloads": -1,
"filename": "characteristic-14.0.0.tar.gz",
"has_sig": true,
"md5_digest": "baea1f28f71c47d88d7d24335f814ee8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 24498,
"upload_time": "2014-08-21T14:51:15",
"url": "https://files.pythonhosted.org/packages/38/63/7cb8eb9c28020938d026d65225e1e980753fa18ada2f32aab447f9ba80cc/characteristic-14.0.0.tar.gz"
}
],
"14.1.0": [
{
"comment_text": "",
"digests": {
"md5": "4a9eb32aab16362fb4ca4e1f5670d11e",
"sha256": "827e86ceee66a03239a0a359c31bd7acd907fc1a0ad26aa5d141df88ab5a4cda"
},
"downloads": -1,
"filename": "characteristic-14.1.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "4a9eb32aab16362fb4ca4e1f5670d11e",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 12864,
"upload_time": "2014-08-22T13:49:54",
"url": "https://files.pythonhosted.org/packages/10/73/e198b9a481ad1bca326a2266b2d8aaac541f2ac1d2c9fd87a9e042878f7c/characteristic-14.1.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "68ea7e28997fc57d3631791ec0567a05",
"sha256": "91e254948180678dd69e6143202b4686f2fa47cce136936079bb4d9a3b82419d"
},
"downloads": -1,
"filename": "characteristic-14.1.0.tar.gz",
"has_sig": true,
"md5_digest": "68ea7e28997fc57d3631791ec0567a05",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 24612,
"upload_time": "2014-08-22T13:50:02",
"url": "https://files.pythonhosted.org/packages/db/c4/20a3f796b718d1dba3b23436a82fa68032d7e0562b038e9f1925b24b1ca0/characteristic-14.1.0.tar.gz"
}
],
"14.2.0": [
{
"comment_text": "",
"digests": {
"md5": "134d8227a945dc7af36ead3c1af47801",
"sha256": "92453489cc5913d4fb1aeb7220cdd646862dbcb7247c9b099cc2bdf6131b7a59"
},
"downloads": -1,
"filename": "characteristic-14.2.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "134d8227a945dc7af36ead3c1af47801",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 14918,
"upload_time": "2014-10-30T11:49:32",
"url": "https://files.pythonhosted.org/packages/cb/5f/c3b7846ba81bd534fb956f2fc02203a6d58e87166f13cb7380edc8fbb0f9/characteristic-14.2.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "810ef988ad81815df3017990c7ff645e",
"sha256": "10b6fbc773a0965d2e5c8f757bfdf1415929792cdf79c1aecc32ffe8b36466b2"
},
"downloads": -1,
"filename": "characteristic-14.2.0.tar.gz",
"has_sig": true,
"md5_digest": "810ef988ad81815df3017990c7ff645e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26670,
"upload_time": "2014-10-30T11:49:35",
"url": "https://files.pythonhosted.org/packages/8e/a0/1577d1f991e39150cea6c834f7eb655ad8859a9a0c1c0cc782cde789d406/characteristic-14.2.0.tar.gz"
}
],
"14.3.0": [
{
"comment_text": "",
"digests": {
"md5": "1145a7ccffa17f78e23b7e23740e2af0",
"sha256": "5324ca333fc9705bf0f1a38d36021baa37888590ccfe8c3738c68adfa609bbbb"
},
"downloads": -1,
"filename": "characteristic-14.3.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "1145a7ccffa17f78e23b7e23740e2af0",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 15045,
"upload_time": "2014-12-19T13:49:04",
"url": "https://files.pythonhosted.org/packages/fa/0d/7fa43a50feaa8896e9acbb91d2256dc1341e8f9a0be629138490ee1f849e/characteristic-14.3.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b249368dd021fde1c06b4802867c0913",
"sha256": "ded68d4e424115ed44e5c83c2a901a0b6157a959079d7591d92106ffd3ada380"
},
"downloads": -1,
"filename": "characteristic-14.3.0.tar.gz",
"has_sig": true,
"md5_digest": "b249368dd021fde1c06b4802867c0913",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26993,
"upload_time": "2014-12-19T13:49:07",
"url": "https://files.pythonhosted.org/packages/dc/66/54b7a4758ea44fbc93895c7745060005272560fb2c356f2a6f7448ef9a80/characteristic-14.3.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "1145a7ccffa17f78e23b7e23740e2af0",
"sha256": "5324ca333fc9705bf0f1a38d36021baa37888590ccfe8c3738c68adfa609bbbb"
},
"downloads": -1,
"filename": "characteristic-14.3.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "1145a7ccffa17f78e23b7e23740e2af0",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 15045,
"upload_time": "2014-12-19T13:49:04",
"url": "https://files.pythonhosted.org/packages/fa/0d/7fa43a50feaa8896e9acbb91d2256dc1341e8f9a0be629138490ee1f849e/characteristic-14.3.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b249368dd021fde1c06b4802867c0913",
"sha256": "ded68d4e424115ed44e5c83c2a901a0b6157a959079d7591d92106ffd3ada380"
},
"downloads": -1,
"filename": "characteristic-14.3.0.tar.gz",
"has_sig": true,
"md5_digest": "b249368dd021fde1c06b4802867c0913",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26993,
"upload_time": "2014-12-19T13:49:07",
"url": "https://files.pythonhosted.org/packages/dc/66/54b7a4758ea44fbc93895c7745060005272560fb2c356f2a6f7448ef9a80/characteristic-14.3.0.tar.gz"
}
]
}