{ "info": { "author": "Zeyi Fan", "author_email": "i@zr.is", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# typestruct\n\nThis is a Python 3 library amis to make the standard module `struct` easier to use.\n\n## Example\n\n```python\n@dataclass\nclass ICMPPacket(Packet):\n ttype: uint8\n code: uint8\n checksum: uint16\n rest: Slice(4)\n\n\npacket = ICMPPacket(1, 2, 3, b\"abcd\")\nbinary = packet.serialize()\nprint(binary) # => b'\\x01\\x02\\x03\\x00abcd'\n\nrecovered = ICMPPacket.deserialize(binary)\nprint(recovered) # => ICMPPacket(ttype=1, code=2, checksum=3, rest=b'abcd')\n\nprint(packet.serialize(endian=Endian.BIG_ENDIAN)) # => b'\\x01\\x02\\x00\\x03abcd'\n```\n\n**Variable length**\n\n```python\n@dataclass\nclass TLV(Packet):\n tag: uint8\n length: uint8\n value: Varlength(lambda s: s.length)\n\n\ntlv = TLV(tag=1, length=5, value=b\"abcde\")\nbinary = tlv.serialize()\nprint(binary) # => b'\\x01\\x05abcde'\n\nrecovered = TLV.deserialize(binary)\nprint(recovered) # => TLV(tag=1, length=5, value=b'abcde')\n```\n\n## License\n\nMIT\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/fanzeyi/typestruct", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "typestruct", "package_url": "https://pypi.org/project/typestruct/", "platform": "", "project_url": "https://pypi.org/project/typestruct/", "project_urls": { "Homepage": "https://github.com/fanzeyi/typestruct" }, "release_url": "https://pypi.org/project/typestruct/0.1.1/", "requires_dist": null, "requires_python": "", "summary": "struct serialization/deserialization with typing", "version": "0.1.1" }, "last_serial": 4267620, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "152391ebeb8f0ff0ad7a90d093a7a9cd", "sha256": "024ba59401ea118df89eb21c7f9794d0af11e40c05d050041d171cb39317113e" }, "downloads": -1, "filename": "typestruct-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "152391ebeb8f0ff0ad7a90d093a7a9cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3871, "upload_time": "2018-09-13T06:09:33", "url": "https://files.pythonhosted.org/packages/66/9b/31b7e5e822a626f34772f9c6cac50c3d2e83000455993ae29039f26c53e0/typestruct-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bbcb95fc4a13adfee9d9a5826aa1ef08", "sha256": "98c16e87e2e5a5438b503b2ae6d949044c02df6fbb63b8a3e46e6587b85d1629" }, "downloads": -1, "filename": "typestruct-0.1.0.tar.gz", "has_sig": false, "md5_digest": "bbcb95fc4a13adfee9d9a5826aa1ef08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3004, "upload_time": "2018-09-13T06:09:35", "url": "https://files.pythonhosted.org/packages/14/a0/e4fd49230cd8e07eac48554c75f8f267be4d41c9d1af616702c841e5d8db/typestruct-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "9e66af2595a09c72b0df33d9bb5b3adb", "sha256": "215fd5f6b1dcc243b1acd5f7e9bffc9d2653678f3ef6a2c701152d40dc1c9010" }, "downloads": -1, "filename": "typestruct-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9e66af2595a09c72b0df33d9bb5b3adb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3882, "upload_time": "2018-09-13T06:12:31", "url": "https://files.pythonhosted.org/packages/ca/df/a34cf6f9b6208c030695562902a95356f17c2024e0c94a4b1d75fd319239/typestruct-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a85b95be7e72eb6cdca931c48b2c0e0", "sha256": "5dc80eda4f6ec85ff737d5787d98cffc8b6e7d6a7f6da926f8879b14eb21404f" }, "downloads": -1, "filename": "typestruct-0.1.1.tar.gz", "has_sig": false, "md5_digest": "6a85b95be7e72eb6cdca931c48b2c0e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3016, "upload_time": "2018-09-13T06:12:33", "url": "https://files.pythonhosted.org/packages/de/aa/7196e84dfb27c0686eb9ae7e360de75ceddc2dffa01d5f5228ea04a2558b/typestruct-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9e66af2595a09c72b0df33d9bb5b3adb", "sha256": "215fd5f6b1dcc243b1acd5f7e9bffc9d2653678f3ef6a2c701152d40dc1c9010" }, "downloads": -1, "filename": "typestruct-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9e66af2595a09c72b0df33d9bb5b3adb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3882, "upload_time": "2018-09-13T06:12:31", "url": "https://files.pythonhosted.org/packages/ca/df/a34cf6f9b6208c030695562902a95356f17c2024e0c94a4b1d75fd319239/typestruct-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a85b95be7e72eb6cdca931c48b2c0e0", "sha256": "5dc80eda4f6ec85ff737d5787d98cffc8b6e7d6a7f6da926f8879b14eb21404f" }, "downloads": -1, "filename": "typestruct-0.1.1.tar.gz", "has_sig": false, "md5_digest": "6a85b95be7e72eb6cdca931c48b2c0e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3016, "upload_time": "2018-09-13T06:12:33", "url": "https://files.pythonhosted.org/packages/de/aa/7196e84dfb27c0686eb9ae7e360de75ceddc2dffa01d5f5228ea04a2558b/typestruct-0.1.1.tar.gz" } ] }