{ "info": { "author": "Scott Percival", "author_email": "code@moral.net.au", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "Wait, what?!\n============\n\nMr. Crowbar is a Django-esque model framework that makes it super easy to work with proprietary binary formats while reverse engineering. \n\nFile formats are described with Python classes that allow ORM-like free modification of structures and properties, which in turn can be validated and converted back to the binary equivalent at any time.\n\nThe eventual goal is to provide a library for storing file format information that retains the readability of a text file, while providing instant read/write support for almost no cost.\n\nGive us an example\n==================\n\nThe `README `_ has a pretty good example, omitted here for brevity.\n\nContributing \n============\n\nIf you've developed models using Mr. Crowbar and want to share them with people, that's pretty great! The main source code tree is a Git repository hosted on `GitHub `_. Pull requests, feature requests and discussion are more than welcome. The framework is still being cooked, so not all of the interfaces are set in stone yet, but we will try to limit breaking API changes to major point releases.\n\nLicensing\n=========\n\nMr. Crowbar is licensed under the BSD 3-Clause license. Any code that implements or otherwise builds upon reverse engineering research produced by other individuals or groups must be attributed and cited in the header of the module.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://moral.net.au/mrcrowbar", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "mrcrowbar", "package_url": "https://pypi.org/project/mrcrowbar/", "platform": "", "project_url": "https://pypi.org/project/mrcrowbar/", "project_urls": { "Homepage": "https://moral.net.au/mrcrowbar" }, "release_url": "https://pypi.org/project/mrcrowbar/0.9.0/", "requires_dist": [ "pyaudio (>=0.2.9) ; extra == 'audio'", "Pillow (>=2.8.1) ; extra == 'images'" ], "requires_python": ">=3", "summary": "A library and model framework for reverse engineering binary file formats", "version": "0.9.0", "yanked": false, "yanked_reason": null }, "last_serial": 9133033, "releases": { "0.4.0": [ { "comment_text": "", "digests": { "md5": "164bc5f232d5116dcc42d63a7dd19b7b", "sha256": "6b10bcc2fd0b3ffbc2448b544ca9f84f2488ee72b040dffef84d3e92209d0c0a" }, "downloads": -1, "filename": "mrcrowbar-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "164bc5f232d5116dcc42d63a7dd19b7b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 46799, "upload_time": "2017-10-12T12:43:18", "upload_time_iso_8601": "2017-10-12T12:43:18.308015Z", "url": "https://files.pythonhosted.org/packages/9c/b5/eb57a91bb5cc82ffc0d557dfd50a711144505f13563632929da77f48b0a7/mrcrowbar-0.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "b352c1d414b05f9f45cb27cb6d045965", "sha256": "5c43983cca3283e04ca0cbed1272c11e7ca7c68d558effa17a75102bb386a889" }, "downloads": -1, "filename": "mrcrowbar-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b352c1d414b05f9f45cb27cb6d045965", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 51851, "upload_time": "2017-11-26T11:02:36", "upload_time_iso_8601": "2017-11-26T11:02:36.327909Z", "url": "https://files.pythonhosted.org/packages/35/85/a4245c9d17bd01eb7f4f529fabc66b83bf07b62e9bc54342b24e41762338/mrcrowbar-0.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "4cd51db746909423b7cf231ddd58535e", "sha256": "c0b5dc5e2090a7fac8ebd982fd0c697c0dabafe6f77c3f0285c17b84aecd031b" }, "downloads": -1, "filename": "mrcrowbar-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4cd51db746909423b7cf231ddd58535e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 56978, "upload_time": "2018-02-05T00:39:14", "upload_time_iso_8601": "2018-02-05T00:39:14.273663Z", "url": "https://files.pythonhosted.org/packages/8f/6b/1cc733d7eee8ee9a8a78459c87e07468064c4de24903704f348194b1b607/mrcrowbar-0.4.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "028edffc851992cddb57187fcca50d25", "sha256": "7ca323ee3c8066c6bac24d0c872038f949386045acdc01602510670611514d34" }, "downloads": -1, "filename": "mrcrowbar-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "028edffc851992cddb57187fcca50d25", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 74316, "upload_time": "2018-06-22T12:42:39", "upload_time_iso_8601": "2018-06-22T12:42:39.324206Z", "url": "https://files.pythonhosted.org/packages/42/b9/4069c76c0427925fb74408c304dfd8250058a88ac4dcc98ebbb03b3ccf96/mrcrowbar-0.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "7884133a601daa1f88606a9e97d78cdd", "sha256": "544a2ab983f44ffc68d8dd632a049376d99596b2f0e1eab00bdd0a038dff96e3" }, "downloads": -1, "filename": "mrcrowbar-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7884133a601daa1f88606a9e97d78cdd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 75199, "upload_time": "2018-07-20T10:03:27", "upload_time_iso_8601": "2018-07-20T10:03:27.038245Z", "url": "https://files.pythonhosted.org/packages/9a/b5/0cb28e0fe206bc546a6fa2ecab5b108b5d174e2cc875dee637b2e29b36b9/mrcrowbar-0.5.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "cb1fd74611f0eea61e2cd91ba0c86ae7", "sha256": "0f3739ab5d7aa645d175b4cea271e8ab5cde515d092b56e2186e29ed89221370" }, "downloads": -1, "filename": "mrcrowbar-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cb1fd74611f0eea61e2cd91ba0c86ae7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 87165, "upload_time": "2019-01-13T09:17:38", "upload_time_iso_8601": "2019-01-13T09:17:38.337014Z", "url": "https://files.pythonhosted.org/packages/c2/9f/e23999cbfe9e7637fc9c1d075944e196278d3cec16d3a690b2873ff3bcf8/mrcrowbar-0.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "a5a3cda00add5d70044776ac689635c7", "sha256": "c5a9144fa71ebd0e0f3c7d8d64f62eed726d64d3fbc14217b8b4a2874893665d" }, "downloads": -1, "filename": "mrcrowbar-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a5a3cda00add5d70044776ac689635c7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 96342, "upload_time": "2019-07-06T05:04:49", "upload_time_iso_8601": "2019-07-06T05:04:49.743919Z", "url": "https://files.pythonhosted.org/packages/15/ef/45cac6a3227027cd2d9d725bcb04a5f58700b620efed7f68d9ff1d14e6be/mrcrowbar-0.6.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "f3fd71ae4e2f063e76ef54569581f109", "sha256": "3e0aafeedf86bdb1e94abef77b1fd53730a50de4399400053c9b93fcde423c5d" }, "downloads": -1, "filename": "mrcrowbar-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f3fd71ae4e2f063e76ef54569581f109", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 101224, "upload_time": "2019-09-26T01:59:55", "upload_time_iso_8601": "2019-09-26T01:59:55.897314Z", "url": "https://files.pythonhosted.org/packages/44/0e/04ab110b21af1a61f989b50ad8974ca18ad8d94fd83448eee763a20ee97b/mrcrowbar-0.7.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "dbc21155063be3967a477c8733bb8de3", "sha256": "1e2802b75eb8cc4b58542fc8290d8bd0de4ece2b735939c18ef452beefb27b70" }, "downloads": -1, "filename": "mrcrowbar-0.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dbc21155063be3967a477c8733bb8de3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 104593, "upload_time": "2019-10-24T18:08:06", "upload_time_iso_8601": "2019-10-24T18:08:06.851704Z", "url": "https://files.pythonhosted.org/packages/8a/20/16a010caba8f8d246e85d33af3564f7ce715176535ab0026fcf2bf70cdb5/mrcrowbar-0.7.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "0ceba029c66b0c0c3fffb430c6db9edc", "sha256": "9d29e1d40ed05535bae9d632d28b269ffca9b6be1ea207fe68c6e4282b514631" }, "downloads": -1, "filename": "mrcrowbar-0.7.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0ceba029c66b0c0c3fffb430c6db9edc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 106628, "upload_time": "2019-11-24T14:17:10", "upload_time_iso_8601": "2019-11-24T14:17:10.169109Z", "url": "https://files.pythonhosted.org/packages/78/d0/8e2d38cffd8e6c4678c14a250b9471cf56b125b12749ab5b1a6c21fcd05f/mrcrowbar-0.7.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "8ea09f9b6e96dd4f65aa4c568998a95b", "sha256": "61b0597f844e0736abe527a2dea00480de3663f2a96593f7ddc158c3712b30b9" }, "downloads": -1, "filename": "mrcrowbar-0.7.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8ea09f9b6e96dd4f65aa4c568998a95b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 106726, "upload_time": "2019-12-07T02:42:26", "upload_time_iso_8601": "2019-12-07T02:42:26.412855Z", "url": "https://files.pythonhosted.org/packages/71/5a/2e40a23c0f0ba39d8e890e7656e6fd1def48bf3ce1b96a467a725bdcaa78/mrcrowbar-0.7.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "81a09584aea5b7bb1d44a2e4cfccfed6", "sha256": "6e439be3ca13a2195dd0ccee363dff374190a8e6e6263b2aa144a04e14f13963" }, "downloads": -1, "filename": "mrcrowbar-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "81a09584aea5b7bb1d44a2e4cfccfed6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 114297, "upload_time": "2020-07-02T16:36:44", "upload_time_iso_8601": "2020-07-02T16:36:44.384758Z", "url": "https://files.pythonhosted.org/packages/4d/a5/75aeea7328cd4e0490044249c10ec5cef1406edd8b1e4cce82be23706552/mrcrowbar-0.8.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "c64f0cc58b2ea5d70eb56130b739f961", "sha256": "111c93de0d3e34996834aca17485a8f94df603e37d4fc77330bd9ef2a5aa05b9" }, "downloads": -1, "filename": "mrcrowbar-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c64f0cc58b2ea5d70eb56130b739f961", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 118948, "upload_time": "2021-01-14T14:18:40", "upload_time_iso_8601": "2021-01-14T14:18:40.826822Z", "url": "https://files.pythonhosted.org/packages/d1/1d/3bbdcb9682c741481c09c8c80a9f1e206a5b1d178ffdb9795f7ae8ae0f16/mrcrowbar-0.9.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c64f0cc58b2ea5d70eb56130b739f961", "sha256": "111c93de0d3e34996834aca17485a8f94df603e37d4fc77330bd9ef2a5aa05b9" }, "downloads": -1, "filename": "mrcrowbar-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c64f0cc58b2ea5d70eb56130b739f961", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 118948, "upload_time": "2021-01-14T14:18:40", "upload_time_iso_8601": "2021-01-14T14:18:40.826822Z", "url": "https://files.pythonhosted.org/packages/d1/1d/3bbdcb9682c741481c09c8c80a9f1e206a5b1d178ffdb9795f7ae8ae0f16/mrcrowbar-0.9.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }