{ "info": { "author": "leoetlino", "author_email": "leo@leolam.fr", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries" ], "description": "## Simple bymlv2 parser + writer + converters\n\nFeatures:\n\n* **Supports v2 and v3 files.** These versions are respectively used by\n*The Legend of Zelda: Breath of the Wild* and *Super Mario Odyssey*.\n* **Supports 64-bit node types** which are used in *Super Mario Odyssey*.\n* **Supports both endianness**. The little-endian format is used on the Switch.\n* **Cross platform**.\n* **Easy to edit and readable output**. No ugly XML. Unobtrusive type information.\n\n### Quick usage\n\nInstall Python 3.6+, then run `pip install byml`.\n\nThe C module for PyYAML is currently a **hard dependency**. If you are on Windows, you don't have to do anything special. If you are on Linux or on macOS, you will need to install libyaml.\n\n### BYML to YAML\n\n```shell\nbyml_to_yml PATH_TO_BYML PATH_TO_YAML\n```\n\n**If the byml is compressed, this tool will automatically decompress them.**\n\nTo reuse the input file name and only change the extension, use `!!.NEW_EXTENSION` as the second argument.\n\nExample: to convert to YAML in the same directory as the BYML, use `byml_to_yml path_to_botw/Actor/ActorInfo.product.sbyml !!.yml`\n\n### YAML to BYML\n\n```shell\nyml_to_byml PATH_TO_YAML PATH_TO_BYML\n```\n\n**Add `-b` at the end if big endian should be used. For the Wii U version of Breath of the Wild,\nyou must pass that flag.**\n\nTo reuse the input file name and only change the extension, use `!!.NEW_EXTENSION` as the second argument.\n\nIf the target file extension starts with `.s`, the tool will **automatically compress**\nthe BYML using yaz0.\n\n### Note about YAML integers/floats\n\n* `!u` before an integer indicates that the value is unsigned. **In general, you should keep\nthe signedness unchanged.**\n\n* `!l` is for signed 64 bit values. (Not used in BotW.)\n* `!ul` is for unsigned 64 bit values. (Not used in BotW.)\n* `!f64` is for binary64 floating point values. (Not used in BotW.)\n\n### Advanced usage\n\nBy default, if the destination argument is not specified, output will be sent to stdout,\nwhich is handy for looking at bymls without creating temporary files.\n\n### Library usage\n\n```python\nimport byml\n\nparser = byml.Byml(raw_bytes)\ndocument = parser.parse()\n\nwriter = byml.Writer(document, be=big_endian_mode, version=byml_version)\nwriter.write(writable_seekable_stream)\n```\n\n### License\n\nThis software is licensed under the terms of the GNU General Public License, version 2 or later.\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/leoetlino/byml-v2", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "byml", "package_url": "https://pypi.org/project/byml/", "platform": "", "project_url": "https://pypi.org/project/byml/", "project_urls": { "Homepage": "https://github.com/leoetlino/byml-v2" }, "release_url": "https://pypi.org/project/byml/2.3.0.post1/", "requires_dist": [ "PyYAML (~=5.1)", "sortedcontainers (~=2.0)", "wszst-yaz0 (~=1.0)" ], "requires_python": ">=3.6", "summary": "A simple Nintendo BYML or BYAML v2/v3 parser and writer", "version": "2.3.0.post1" }, "last_serial": 5497985, "releases": { "2.0.0.post2": [ { "comment_text": "", "digests": { "md5": "2262457199257540a2e46b1d4b36f0a8", "sha256": "0c9ebd70dfa930cec0b11ac5d952d19473c3684a2315e3d6f9cdc7148fd84d8c" }, "downloads": -1, "filename": "byml-2.0.0.post2.tar.gz", "has_sig": false, "md5_digest": "2262457199257540a2e46b1d4b36f0a8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7481, "upload_time": "2018-07-30T09:12:17", "url": "https://files.pythonhosted.org/packages/5d/8a/1fcea2a7b9c217db05b981d0e61c161fbf5da36c14138e1489c2fde04763/byml-2.0.0.post2.tar.gz" } ], "2.0.0.post3": [ { "comment_text": "", "digests": { "md5": "aa5e5b22f083806cf2940713bc4f08b7", "sha256": "4ea1fe97b62754360410a4bb82976de43e7b482fa2da960ee2c9c6b8d2a5730f" }, "downloads": -1, "filename": "byml-2.0.0.post3.tar.gz", "has_sig": false, "md5_digest": "aa5e5b22f083806cf2940713bc4f08b7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6825, "upload_time": "2018-07-30T16:15:14", "url": "https://files.pythonhosted.org/packages/7c/80/574f1ea5f360738097fb908bcbfd1a53fcb91259c6ce9eb8d11097fb5848/byml-2.0.0.post3.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "c9a9454a9d3304e66cdd3573f1c70543", "sha256": "531a02a24c09c718c41d3f4f553c4d214cd1c3eedbee253f5f726b85affb7dc2" }, "downloads": -1, "filename": "byml-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c9a9454a9d3304e66cdd3573f1c70543", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7425, "upload_time": "2018-08-10T12:10:14", "url": "https://files.pythonhosted.org/packages/a1/5d/45b6c19bb08af1cab182c12c58b3aeb3f5ff1dec55eff37c62194d83a9b0/byml-2.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d31c224ca71862e3d7529fb4dfc024f2", "sha256": "e3d83d33bb22d853b929dad203ca84237f967284a443ee60dfdb65e6f5554669" }, "downloads": -1, "filename": "byml-2.0.1.tar.gz", "has_sig": false, "md5_digest": "d31c224ca71862e3d7529fb4dfc024f2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6821, "upload_time": "2018-08-05T10:47:04", "url": "https://files.pythonhosted.org/packages/01/53/71f3d9f1baed0bb6245ac6f6c7cf2dbc4ca11dea456df0a259352c3be691/byml-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "afa0498ce76ed664dba91aaa7543a74b", "sha256": "9242990c072593f3686f6856d0542e82ef2379cb137efe90baec2376eb959c23" }, "downloads": -1, "filename": "byml-2.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "afa0498ce76ed664dba91aaa7543a74b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7443, "upload_time": "2018-08-16T13:32:25", "url": "https://files.pythonhosted.org/packages/3f/24/db7d8f08598de23f8712a3217378bcae9ed3e2df9d91de2c25ea772946ce/byml-2.0.2-py3-none-any.whl" } ], "2.0.2.post1": [ { "comment_text": "", "digests": { "md5": "03625f5a45986d37031c518cddba484e", "sha256": "b0e8cf18d9c448c6d0027bfc094eec018a27937c7adecc31d93aafde9c0d591a" }, "downloads": -1, "filename": "byml-2.0.2.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "03625f5a45986d37031c518cddba484e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7681, "upload_time": "2018-08-30T13:40:58", "url": "https://files.pythonhosted.org/packages/2e/ea/067259ee95fccf04af1aa3292bc68257d978a65474a7020895342cfb98c2/byml-2.0.2.post1-py3-none-any.whl" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "b961b0280975721bb9c977c09e0de336", "sha256": "3c0de8f5bc09525d8d8df362e39a49ba60b6ca3c32ba2d49eb33a8b18e41bc42" }, "downloads": -1, "filename": "byml-2.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b961b0280975721bb9c977c09e0de336", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7619, "upload_time": "2018-09-28T18:53:16", "url": "https://files.pythonhosted.org/packages/d7/f1/4d95b23b9c478e820259b6e3f3c5a7eeb8579dae470ab67f4d7443bee435/byml-2.0.3-py3-none-any.whl" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "a34aeaf9ceaf3852a9cff82ad968e1bc", "sha256": "2ff12b193ae79e59c6584dfc4547f736518926e5263fa6d606ba4cf7d422e9c7" }, "downloads": -1, "filename": "byml-2.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a34aeaf9ceaf3852a9cff82ad968e1bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 8181, "upload_time": "2018-11-22T20:27:01", "url": "https://files.pythonhosted.org/packages/47/91/e6b5eae87b85ae10ec32c727db21ee21c1f70f172ec5f3434a7bb36d06dd/byml-2.1.0-py3-none-any.whl" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "55f03d94efe94eb1bd4ffc8a3fea572f", "sha256": "bd6e9dce37d53db27619b1e4dacb0f69e01991cf07eeab847a6440c3c9a28955" }, "downloads": -1, "filename": "byml-2.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "55f03d94efe94eb1bd4ffc8a3fea572f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 15456, "upload_time": "2018-12-05T21:28:05", "url": "https://files.pythonhosted.org/packages/b8/b0/3af52624390eff1ad566cb35fc81438038f648186183ad9572a74f4d580a/byml-2.1.1-py3-none-any.whl" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "b6550bb36ad2451a327fc788d85f2657", "sha256": "602a59b97ffd4480b70dd9e9f54846ecafe3465d546923159726c2721915a7ed" }, "downloads": -1, "filename": "byml-2.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b6550bb36ad2451a327fc788d85f2657", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 17239, "upload_time": "2019-01-21T20:54:18", "url": "https://files.pythonhosted.org/packages/c7/6a/de7c25aa9d91cdcb820be54484fcdb7794b45abfd4d81b7095e5840d88a5/byml-2.2.0-py3-none-any.whl" } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "181eb7a87372e8abc444d76bda892d72", "sha256": "0d187a706c7d22dae25cc2eb795a1d0639a32d0d5f2b6afb98f5bb11ddc6c824" }, "downloads": -1, "filename": "byml-2.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "181eb7a87372e8abc444d76bda892d72", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 17254, "upload_time": "2019-03-17T15:30:09", "url": "https://files.pythonhosted.org/packages/e3/01/84f62da171ed96b84950f2a43ee20543053a99c96fbff3d308dfa9368a85/byml-2.2.1-py3-none-any.whl" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "d2c54d594b096e15879881f92d7b9924", "sha256": "34cc9681f4498dfc48ee63bda3945a9c975a433e9989eb3f1e3baf1d13a5b242" }, "downloads": -1, "filename": "byml-2.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d2c54d594b096e15879881f92d7b9924", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16193, "upload_time": "2019-07-07T20:30:38", "url": "https://files.pythonhosted.org/packages/86/52/567c3a07563b0ad52b9ced49f0c43b8c955cc6a2736c85c127690d9586b7/byml-2.3.0-py3-none-any.whl" } ], "2.3.0.post1": [ { "comment_text": "", "digests": { "md5": "dbc2f3249784ad9cf7f87468e2ce17e9", "sha256": "2633e2a41c1b8d7abc9489881e85fd40b3159f5e0421ed9569ce0ec9315c40fa" }, "downloads": -1, "filename": "byml-2.3.0.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "dbc2f3249784ad9cf7f87468e2ce17e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16368, "upload_time": "2019-07-07T20:44:38", "url": "https://files.pythonhosted.org/packages/43/c2/13b48058a24fcf77390e293ce34627694f5010e77c1b90c96f51d6d196fc/byml-2.3.0.post1-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dbc2f3249784ad9cf7f87468e2ce17e9", "sha256": "2633e2a41c1b8d7abc9489881e85fd40b3159f5e0421ed9569ce0ec9315c40fa" }, "downloads": -1, "filename": "byml-2.3.0.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "dbc2f3249784ad9cf7f87468e2ce17e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16368, "upload_time": "2019-07-07T20:44:38", "url": "https://files.pythonhosted.org/packages/43/c2/13b48058a24fcf77390e293ce34627694f5010e77c1b90c96f51d6d196fc/byml-2.3.0.post1-py3-none-any.whl" } ] }