{ "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": "# Nintendo parameter archive (AAMP) library\n\nEverything should work correctly for BotW parameter archives, though this hasn't been tested a lot.\n\nSome more esoteric parameter types are left unsupported currently.\n\n## Setup\n\nInstall with `pip install aamp` or on Windows `py -m pip install aamp`.\n\n### Converter usage\n\n`aamp_to_yml` will convert an AAMP to a human readable representation.\n`yml_to_aamp` will do the opposite.\n\n### Library usage\n\nTo read a parameter archive, create a Reader and give it the binary archive data,\nthen call `parse()` to get a ParameterIO. This API is purposefully very similar to Nintendo's\nofficial parameter utils to help with reverse engineering and re-implementing parts of the game code.\n\nParameter is a simple value, for example a boolean or an integer.\n\nParameterObject is a key-value mapping where keys are strings and values are always Parameters.\n\nParameterList is also a key-value mapping, but it contains objects and other lists rather than Parameters.\n\nParameterIO is a special ParameterList with some extra attributes, like a version number and a type string (usually `xml`).\n\n```py\n>>> import aamp\n>>> reader = aamp.Reader(open('test_data/DamageReactionTable.bxml', 'rb').read())\n>>> pio = reader.parse()\n>>> pio.list('param_root').list('Basic').object('Edge')\nParameterObject(params={375673178: True, 2982974660: True, 4022901097: True, 2861907126: True, 3947755327: True, 1529444359: False})\n>>> pio.list('param_root').list('Basic').object('Edge').param('Damage')\nTrue\n```\n\nParameterObject:\n* `.param(param_name)` returns a parameter. KeyError is raised if the parameter doesn't exist.\n* `.set_param(param_name, value)`\n\nParameterList:\n* `.list(list_name)` returns a parameter list. KeyError is raised if the list doesn't exist.\n* `.object(object_name)` returns a parameter object. KeyError is raised if the object doesn't exist.\n* `.set_list(list_name, param_list)`\n* `.set_object(object_name, param_object)`\n\nParameterIO:\n* Same as ParameterList, but with extra attributes `version` (usually 0) and `type` (usually `xml`).\n\nFor writing a binary parameter archive, create a Writer and pass it a ParameterIO,\nthen call `write(stream)` with a seekable stream.\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/aamp", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "aamp", "package_url": "https://pypi.org/project/aamp/", "platform": "", "project_url": "https://pypi.org/project/aamp/", "project_urls": { "Homepage": "https://github.com/leoetlino/aamp" }, "release_url": "https://pypi.org/project/aamp/1.4.1/", "requires_dist": [ "PyYAML (~=5.1)", "dataclasses ; python_version == \"3.6\"" ], "requires_python": ">=3.6", "summary": "Nintendo parameter archive (AAMP) library", "version": "1.4.1", "yanked": false, "yanked_reason": null }, "last_serial": 6475017, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "e885bfc9967e524dde4d09da0fcb44d3", "sha256": "04bc7f66baa768148c8ed93c87a813bf9eb6ae9cc61e6108e8f1432760340ed8" }, "downloads": -1, "filename": "aamp-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e885bfc9967e524dde4d09da0fcb44d3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 286590, "upload_time": "2018-08-18T21:00:19", "upload_time_iso_8601": "2018-08-18T21:00:19.540131Z", "url": "https://files.pythonhosted.org/packages/73/11/8b634596f73e817c7b47df246f3e8dd247474cc535a1384e0dfbaf9a6dfc/aamp-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.0.post1": [ { "comment_text": "", "digests": { "md5": "82e7999b4a602b622816fe31866cd65b", "sha256": "b9634d34fc4716bde122e37dc86257692ce5d898c47fb66819aba5d40b2e1d26" }, "downloads": -1, "filename": "aamp-1.0.0.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "82e7999b4a602b622816fe31866cd65b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 287600, "upload_time": "2018-08-19T08:03:32", "upload_time_iso_8601": "2018-08-19T08:03:32.023791Z", "url": "https://files.pythonhosted.org/packages/c5/43/1231d63e3fbf5b92e79e11ea815f5b64dbca464658c78102230bba464868/aamp-1.0.0.post1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "452933a5cb67e84a6d975963cdca6b0e", "sha256": "67b9b18b6cb59856d6fef0096dbfbe2366fed16f69f67e8a57f163964e33611d" }, "downloads": -1, "filename": "aamp-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "452933a5cb67e84a6d975963cdca6b0e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 287527, "upload_time": "2018-08-19T10:23:11", "upload_time_iso_8601": "2018-08-19T10:23:11.995221Z", "url": "https://files.pythonhosted.org/packages/5f/37/e787124100de51ad8ee35d9c59ecb7fb55dac27b888d030efb529947e2bc/aamp-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "57f0e2e810559929fa2b89ffbf503cae", "sha256": "6cbdfd06640a004250bc67b2858f8422f809e289070e9cdf0b11cd3b8ecc4ce9" }, "downloads": -1, "filename": "aamp-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "57f0e2e810559929fa2b89ffbf503cae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 287757, "upload_time": "2018-08-19T18:12:59", "upload_time_iso_8601": "2018-08-19T18:12:59.053257Z", "url": "https://files.pythonhosted.org/packages/78/17/56373db17d29b9278f3fe34a85c5d04ca147e5f96e08319e7eaaafd0e333/aamp-1.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.0.post1": [ { "comment_text": "", "digests": { "md5": "5ada5265018b26d2df4e43acaa5ebbe9", "sha256": "d8612a481108d3fae465675ee1449ecbb14802090b17d09f52fb605f810c7b2e" }, "downloads": -1, "filename": "aamp-1.1.0.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "5ada5265018b26d2df4e43acaa5ebbe9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 319419, "upload_time": "2018-08-20T19:06:20", "upload_time_iso_8601": "2018-08-20T19:06:20.302184Z", "url": "https://files.pythonhosted.org/packages/46/4c/c44354b6a12da597b8f86ddf915d2a25da71eb4598aed4dd60357df40cf9/aamp-1.1.0.post1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "c19b1e7f9d4e4108d0edc50ceec84b12", "sha256": "d5614b6ce2efff504360c3d3ad36a6ac25d119127c3b5af57a6db43ada217cdf" }, "downloads": -1, "filename": "aamp-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c19b1e7f9d4e4108d0edc50ceec84b12", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 328691, "upload_time": "2018-08-20T19:11:49", "upload_time_iso_8601": "2018-08-20T19:11:49.116756Z", "url": "https://files.pythonhosted.org/packages/23/89/2c598edbf78257c7f24ad21e9676699b96cdf747482db8ea1da1ba80300a/aamp-1.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "05739bd241a99fd98ba020a2c8e3357c", "sha256": "cb32b924c8116b85f3956206423eb8c0d089d05b0e415f71db8be27efa82606f" }, "downloads": -1, "filename": "aamp-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "05739bd241a99fd98ba020a2c8e3357c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 328885, "upload_time": "2018-08-20T20:05:26", "upload_time_iso_8601": "2018-08-20T20:05:26.826927Z", "url": "https://files.pythonhosted.org/packages/17/03/26a2bab181200d063b83d9856cc3d562811593d1b621f7b0c6290d90106f/aamp-1.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "0ae0723779af81dd6085f6e9c6185ce2", "sha256": "b229226234c3e8e151a5936ff0ad0bbd90c87004bba02a73ede40311f1ffc0de" }, "downloads": -1, "filename": "aamp-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "0ae0723779af81dd6085f6e9c6185ce2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 328882, "upload_time": "2018-08-21T08:46:44", "upload_time_iso_8601": "2018-08-21T08:46:44.234736Z", "url": "https://files.pythonhosted.org/packages/9c/88/8a66e5b6fc2a71b62038149516d56403189fa49d3b2539f909c252fe0ecf/aamp-1.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "cdcd1a447789e0951ad353615bb71821", "sha256": "1e91f8ef3ae6b99072a19aec157eedb7ccc1053f2cd506b73df9fae7d0c45769" }, "downloads": -1, "filename": "aamp-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cdcd1a447789e0951ad353615bb71821", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 329028, "upload_time": "2018-09-15T09:57:24", "upload_time_iso_8601": "2018-09-15T09:57:24.703302Z", "url": "https://files.pythonhosted.org/packages/39/e3/c5a1251dc41660af8a3718527ab2c2148479ac314d71edcd3c9f24488666/aamp-1.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "da4a7b01c941660775d5257c62a19563", "sha256": "b090b33460383d90114ea3da126dccf87a17d70c9cf7bd192fdf7671d28d8c13" }, "downloads": -1, "filename": "aamp-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "da4a7b01c941660775d5257c62a19563", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 329055, "upload_time": "2018-09-15T14:36:07", "upload_time_iso_8601": "2018-09-15T14:36:07.872106Z", "url": "https://files.pythonhosted.org/packages/16/01/4678d7b2be1843b52c8faa1c4c936ec48aa0d52a4548e8e8c8c4ddad013b/aamp-1.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "8b1525cc0b72d76ab32c2658f8f7b058", "sha256": "d8ce610e89e2bf6f64757fbc375d5cadd35fc49d9d68fe4d0428974d95224834" }, "downloads": -1, "filename": "aamp-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8b1525cc0b72d76ab32c2658f8f7b058", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 329295, "upload_time": "2018-09-15T16:06:34", "upload_time_iso_8601": "2018-09-15T16:06:34.625690Z", "url": "https://files.pythonhosted.org/packages/ee/af/96960d3bc3bd0e12b04b34e988d5bf89986d7cc9fbdba51b210079c2c41e/aamp-1.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.3.post1": [ { "comment_text": "", "digests": { "md5": "c430afa0e36c8326beb4123e7d167b3d", "sha256": "efa4d622b19779759194f24ac91107d1e10f47746eb567af3a0f040b3208169c" }, "downloads": -1, "filename": "aamp-1.2.3.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "c430afa0e36c8326beb4123e7d167b3d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 330051, "upload_time": "2018-10-13T22:09:32", "upload_time_iso_8601": "2018-10-13T22:09:32.095281Z", "url": "https://files.pythonhosted.org/packages/f9/3e/0b04e3442a763d32556e9f800b2a1e7ef72b8434352f7d145e878f8a971a/aamp-1.2.3.post1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "68d4be1eddaf8b77074a63c911fbe558", "sha256": "4a38dffbc014d668751ddccdf3abd6c66e94caafc471e731c5d89cf13616bc72" }, "downloads": -1, "filename": "aamp-1.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "68d4be1eddaf8b77074a63c911fbe558", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 337298, "upload_time": "2018-12-07T19:52:32", "upload_time_iso_8601": "2018-12-07T19:52:32.759582Z", "url": "https://files.pythonhosted.org/packages/4d/6d/2725359bebedeaf592c36c9041d5d7cfffb2a3b45b7d21f90fe05b023599/aamp-1.2.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "5f959b52625f61acaf95ca8b10d86382", "sha256": "82df90f0e32c25873b363a9146b93c72ab4e1669fc37180b32ff988df7ca4b32" }, "downloads": -1, "filename": "aamp-1.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "5f959b52625f61acaf95ca8b10d86382", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 337290, "upload_time": "2018-12-17T20:51:02", "upload_time_iso_8601": "2018-12-17T20:51:02.195294Z", "url": "https://files.pythonhosted.org/packages/29/67/c38940049016a3b6224b692b2614b3f06ce49a6eb428f5d3236e5fa49cfa/aamp-1.2.5-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "549787a467702aaefc22d6ee5b2bdbec", "sha256": "5a026bfa21cc77f1100e538d97b58fecb011f4f8120fc2e5db76f85e0999a935" }, "downloads": -1, "filename": "aamp-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "549787a467702aaefc22d6ee5b2bdbec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 337194, "upload_time": "2019-04-22T22:37:52", "upload_time_iso_8601": "2019-04-22T22:37:52.835023Z", "url": "https://files.pythonhosted.org/packages/ba/be/fd449c741bda082add5f0a2cca13f0afbb77c4a55f099aeb65bd5388ff76/aamp-1.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.0.post1": [ { "comment_text": "", "digests": { "md5": "8ed7e420d13be65d880611fcabd148e4", "sha256": "a2707835cc9e1ac03a8b436cc760226bf141e2cb4c3030f053a9e0e12594df3d" }, "downloads": -1, "filename": "aamp-1.3.0.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "8ed7e420d13be65d880611fcabd148e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 337298, "upload_time": "2019-07-07T20:33:43", "upload_time_iso_8601": "2019-07-07T20:33:43.968792Z", "url": "https://files.pythonhosted.org/packages/4c/91/2554d81a6760bdb7035e2db193ed7046bdff3ab5e131d0f70e8098bae023/aamp-1.3.0.post1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "bb91a04945681bf9278d9e056b002125", "sha256": "e9fe235dc3c7c006713f14e7cb875d2294e8d2d860b1394d710ccdf7f43f247f" }, "downloads": -1, "filename": "aamp-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "bb91a04945681bf9278d9e056b002125", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 337212, "upload_time": "2019-08-23T04:20:48", "upload_time_iso_8601": "2019-08-23T04:20:48.851554Z", "url": "https://files.pythonhosted.org/packages/d8/1a/4a8670cdb67db6dec18edc090d5aa958de6b7f477a67ad4619349118f363/aamp-1.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "5312379d2fc065c88d4b28d12d6cc809", "sha256": "8448d4ee615beaba5e437c6c7eb50aab6f739029148941c6bb9619f40d43533f" }, "downloads": -1, "filename": "aamp-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5312379d2fc065c88d4b28d12d6cc809", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 337113, "upload_time": "2019-10-23T18:13:08", "upload_time_iso_8601": "2019-10-23T18:13:08.774669Z", "url": "https://files.pythonhosted.org/packages/78/c7/1d14e6a33f809fd49b299f3842ebc4dabaa2a87dfac2d0da1cbfa11f74cb/aamp-1.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "578acc4ffed16aecb19066dd20362451", "sha256": "c83c47ebf68585d7ebdafd48a0fc7e6771d9a1dd0d219c3e3f8c92865901e755" }, "downloads": -1, "filename": "aamp-1.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "578acc4ffed16aecb19066dd20362451", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 337246, "upload_time": "2020-01-17T20:37:29", "upload_time_iso_8601": "2020-01-17T20:37:29.433568Z", "url": "https://files.pythonhosted.org/packages/5f/09/57ab692ce88f2ed81578d83d319d1f4a720c2cf6a7e8907c85ada03c830a/aamp-1.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "578acc4ffed16aecb19066dd20362451", "sha256": "c83c47ebf68585d7ebdafd48a0fc7e6771d9a1dd0d219c3e3f8c92865901e755" }, "downloads": -1, "filename": "aamp-1.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "578acc4ffed16aecb19066dd20362451", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 337246, "upload_time": "2020-01-17T20:37:29", "upload_time_iso_8601": "2020-01-17T20:37:29.433568Z", "url": "https://files.pythonhosted.org/packages/5f/09/57ab692ce88f2ed81578d83d319d1f4a720c2cf6a7e8907c85ada03c830a/aamp-1.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }