{ "info": { "author": "Nikita Tsvetkov", "author_email": "nikitanovosibirsk@yandex.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# packed\n\n[![License](https://img.shields.io/github/license/nikitanovosibirsk/packed.svg)](https://github.com/nikitanovosibirsk/packed)\n[![Drone](https://cloud.drone.io/api/badges/nikitanovosibirsk/packed/status.svg)](https://cloud.drone.io/nikitanovosibirsk/packed)\n[![Codecov](https://img.shields.io/codecov/c/github/nikitanovosibirsk/packed/master.svg)](https://codecov.io/gh/nikitanovosibirsk/packed)\n[![PyPI](https://img.shields.io/pypi/v/packed.svg)](https://pypi.python.org/pypi/packed/)\n[![Python Version](https://img.shields.io/pypi/pyversions/packed.svg)](https://pypi.python.org/pypi/packed/)\n\n## Installation\n\n```sh\npip3 install packed\n```\n\n## Usage\n\n```python\nfrom packed import packable\n\n@packable # 1) register class\nclass EqualMatcher:\n def __init__(self, expected):\n self._expected = expected\n\n def match(self, actual):\n return actual == self._expected\n\n def __packed__(self): # 2) pick fields\n return {\"expected\": self._expected}\n```\n\n**client**\n\n```python\nfrom packed import pack\n\nmatcher = EqualMatcher(\"banana\")\npacked = pack(matcher)\n# -> send \u00abpacked\u00bb over network\n```\n\n**server**\n\n```python\nfrom packed import unpack\n\n# <- recieve \u00abpacked\u00bb as binary\nmatcher = unpack(packed)\nassert matcher.match(\"banana\") is True\n```\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/nikitanovosibirsk/packed", "keywords": "", "license": "Apache 2", "maintainer": "", "maintainer_email": "", "name": "packed", "package_url": "https://pypi.org/project/packed/", "platform": "", "project_url": "https://pypi.org/project/packed/", "project_urls": { "Homepage": "https://github.com/nikitanovosibirsk/packed" }, "release_url": "https://pypi.org/project/packed/0.1.1/", "requires_dist": [ "u-msgpack-python (==2.5.1)" ], "requires_python": ">=3.5.3", "summary": "", "version": "0.1.1" }, "last_serial": 5489708, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "38afd658a9fda2bbea67893a46cf9f16", "sha256": "2a8274b313075ab32ebc1e683703ce24727c02ea196dde85ba5bc58db201f51c" }, "downloads": -1, "filename": "packed-0.0.1-py3.6.egg", "has_sig": false, "md5_digest": "38afd658a9fda2bbea67893a46cf9f16", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.6.0", "size": 1444, "upload_time": "2019-05-22T11:14:43", "url": "https://files.pythonhosted.org/packages/0c/42/779d3c3c5f1b45c5110a7ea281f62107725949f8bba739d70044306fdff5/packed-0.0.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "efb707f699b5a8d56d42bf49f2035832", "sha256": "d37593ef48697afb295860cc03304d018636644ce5a63a754b6fc0fd49b4d6b6" }, "downloads": -1, "filename": "packed-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "efb707f699b5a8d56d42bf49f2035832", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 5480, "upload_time": "2019-05-22T11:14:41", "url": "https://files.pythonhosted.org/packages/9e/06/2ce63fe5d768a2049865309ae5503133bc46c235ca4fd38bc80fa1b2a275/packed-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2093e144dec0edb96d39fd5cd1d29c1d", "sha256": "a0e449e5df272b87f4fc9cb0b626e51af8764e08ec90cecf940d54e58e71c82c" }, "downloads": -1, "filename": "packed-0.0.1.tar.gz", "has_sig": false, "md5_digest": "2093e144dec0edb96d39fd5cd1d29c1d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 1115, "upload_time": "2019-05-22T11:14:44", "url": "https://files.pythonhosted.org/packages/2b/47/7dd3c447e8bfd0cb1571cfeba32a6b5c2886820584dd88e8d894e7687106/packed-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "175035bfc069b383234b152ce219976b", "sha256": "082c2a2a248955f8b87d521f6ac9527caafd6fc258ab28227405b7f8d0a7a65b" }, "downloads": -1, "filename": "packed-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "175035bfc069b383234b152ce219976b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 7522, "upload_time": "2019-07-04T09:00:33", "url": "https://files.pythonhosted.org/packages/64/40/31f5b73ca70f573979e390c79a99f1ebfd99dd5c8d1b7333b65053d3c5c2/packed-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "633095c5e83b94adf1e62e625ae52537", "sha256": "8452353d0c77577f8646ff85a4d82387b1d40a152c009bb367bc662f7777dfd5" }, "downloads": -1, "filename": "packed-0.1.0.tar.gz", "has_sig": false, "md5_digest": "633095c5e83b94adf1e62e625ae52537", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 2719, "upload_time": "2019-07-04T09:00:35", "url": "https://files.pythonhosted.org/packages/61/ca/6c55c5fd77c46e276e8ad7298ebee52c6b321d656b5afbf3124144af1b88/packed-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "dfec19e3f67d692c151dc1bd09818638", "sha256": "bcee0422d09fb606faa555b1029e9fee5dbdbd7abc520e1a9f69a59e072747fb" }, "downloads": -1, "filename": "packed-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dfec19e3f67d692c151dc1bd09818638", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 7677, "upload_time": "2019-07-05T06:00:14", "url": "https://files.pythonhosted.org/packages/70/38/0b2bea70eeb7553d4459e98f4e14d4ebd014d66f72cd01306cc9d48a383a/packed-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "423020acd40477cc3c19a8c9bb11067b", "sha256": "7af84b3e9fe6092817b2745218b1e9e70919d1ae3ab08bf90f037a3ec3a59fb3" }, "downloads": -1, "filename": "packed-0.1.1.tar.gz", "has_sig": false, "md5_digest": "423020acd40477cc3c19a8c9bb11067b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 2878, "upload_time": "2019-07-05T06:00:16", "url": "https://files.pythonhosted.org/packages/f0/b7/20c4765ee629c9059b351c12ea4e39f540b39681f6de79d4861843be38f0/packed-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dfec19e3f67d692c151dc1bd09818638", "sha256": "bcee0422d09fb606faa555b1029e9fee5dbdbd7abc520e1a9f69a59e072747fb" }, "downloads": -1, "filename": "packed-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dfec19e3f67d692c151dc1bd09818638", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 7677, "upload_time": "2019-07-05T06:00:14", "url": "https://files.pythonhosted.org/packages/70/38/0b2bea70eeb7553d4459e98f4e14d4ebd014d66f72cd01306cc9d48a383a/packed-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "423020acd40477cc3c19a8c9bb11067b", "sha256": "7af84b3e9fe6092817b2745218b1e9e70919d1ae3ab08bf90f037a3ec3a59fb3" }, "downloads": -1, "filename": "packed-0.1.1.tar.gz", "has_sig": false, "md5_digest": "423020acd40477cc3c19a8c9bb11067b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 2878, "upload_time": "2019-07-05T06:00:16", "url": "https://files.pythonhosted.org/packages/f0/b7/20c4765ee629c9059b351c12ea4e39f540b39681f6de79d4861843be38f0/packed-0.1.1.tar.gz" } ] }