{ "info": { "author": "Kay Zheng", "author_email": "l04m33@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3" ], "description": "#####\nDumpy\n#####\n\nDumpy is a binary parser with a declarative syntax. All you need to\ndo is telling the framework what your data look like, and let Dumpy\ndo the rest.\n\nDumpy supports python versions >= 3.0.\n\n##########\nInstalling\n##########\n\nJust use pip or tools alike:\n\n.. code-block:: sh\n\n pip install dumpy\n\n#####\nUsage\n#####\n\nTo parse a pre-defined binary structure, you need to define a class\nfor that structure. For example, a class for `pascal strings`_ :\n\n.. code-block:: python3\n\n import dumpy.types as dt\n\n class PString(dict, metaclass=dt.DumpyMeta):\n __field_specs__ = (\n dt.field('len', dt.UInt8, default=dt.count_of('data')),\n dt.field('data', dt.UInt8, count=dt.counted_by('len')),\n )\n\n s = PString()\n s['data'] = b'\\x01\\x02\\x03\\x04'\n\n # The length field is calculated automatically.\n assert s['len'] == 4\n\n assert s.pack() == b'\\x04\\x01\\x02\\x03\\x04'\n\n s2 = s.unpack(s.pack())\n assert s2['len'] == 4\n assert bytes(s2['data']) == b'\\x01\\x02\\x03\\x04'\n\nSee ``demo/png_packer.py`` for a real-world format parser.\n\n.. _pascal strings: http://en.wikipedia.org/wiki/String_(computer_science)#Length-prefixed\n\n############\nKnown Issues\n############\n\n1. The type checking and conversion code in Dumpy is kind of naive,\n It does not check element types in a sequence.\n\n2. Dumpy is **very slow** at current stage. You may not want to use\n it to parse network messages or huge data structures.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/l04m33/dumpy", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "dumpy", "package_url": "https://pypi.org/project/dumpy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/dumpy/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/l04m33/dumpy" }, "release_url": "https://pypi.org/project/dumpy/0.1.2/", "requires_dist": null, "requires_python": null, "summary": "Binary protocol parser", "version": "0.1.2" }, "last_serial": 1676997, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "1edcbb6cc69574ff56f704fff16fd46e", "sha256": "89e1f479200dbf4a29bfb53962c3bc8abd09a465733b8b213d2106e7af97b3dc" }, "downloads": -1, "filename": "dumpy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1edcbb6cc69574ff56f704fff16fd46e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7056, "upload_time": "2015-05-27T03:28:09", "url": "https://files.pythonhosted.org/packages/0c/98/d75d96d2cdd58bbda881ee19ac9ae5dd424479122f93cf70f00b54f0c4f2/dumpy-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "93ac823baac64c08a477a63e84f2adde", "sha256": "598f8dae01b1c49c457fd96941cee315f5dc734a78a86ce048511ecd3a2e89f5" }, "downloads": -1, "filename": "dumpy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "93ac823baac64c08a477a63e84f2adde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7529, "upload_time": "2015-08-14T03:11:02", "url": "https://files.pythonhosted.org/packages/2a/fb/b78893e906a0e67dd2cf7cfd46e04ad8946778ceb426bd3c9583ab34a162/dumpy-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "93ac823baac64c08a477a63e84f2adde", "sha256": "598f8dae01b1c49c457fd96941cee315f5dc734a78a86ce048511ecd3a2e89f5" }, "downloads": -1, "filename": "dumpy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "93ac823baac64c08a477a63e84f2adde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7529, "upload_time": "2015-08-14T03:11:02", "url": "https://files.pythonhosted.org/packages/2a/fb/b78893e906a0e67dd2cf7cfd46e04ad8946778ceb426bd3c9583ab34a162/dumpy-0.1.2.tar.gz" } ] }