{ "info": { "author": "Jacob Alexander", "author_email": "haata@kiibohd.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# HID-IO layouts Python API\n\nThis is the Python API for the HID-IO [layouts](https://github.com/hid-io/layouts) repository.\nBy default, the API will download the latest version of the layouts git repository to use that as a cache.\n\nThe purpose of this API is to acquire and merge the JSON HID layouts.\nWith some additional helpers to deal with string composition.\n\n[layouts](https://pypi.org/project/layouts/) is also available on PyPi.\n```bash\npip install layouts\n```\n\n[![Travis Status](https://travis-ci.org/hid-io/layouts-python.svg?branch=master)](https://travis-ci.org/hid-io/layouts-python)\n\n[![Visit our IRC channel](https://kiwiirc.com/buttons/irc.freenode.net/hid-io.png)](https://kiwiirc.com/client/irc.freenode.net/#hid-io)\n\n\n## Usage\n\nSome basic usage examples.\n\n\n### List Layouts\n\n**GitHub Cache**\n\n```python\nimport layouts\n\nmgr = layouts.Layouts()\nprint(mgr.list_layouts()\n```\n\n**Local Cache**\n\n```python\nimport layouts\n\nlayout_dir = \"/tmp/mylayouts/layouts\"\nmgr = layouts.Layouts(layout_path=layout_dir)\nprint(mgr.list_layouts()\n```\n\n\n### Retrieve Layout\n\n```python\nimport layouts\n\nmgr = layouts.Layouts()\nlayout = mgr.get_layout('default')\n\nprint(layout.name()) # Name of merged layout\nprint(layout.json()) # Fully merged JSON dict\nprint(layout.locale()) # Tuple (, )\n```\n\n\n### Composition Example\n\n```python\nimport layouts\n\nmgr = layouts.Layouts()\nlayout = mgr.get_layout('default')\n\ninput_str = \"Hello World!\"\nprint(layout.compose(input_str))\n\n# Only use code clears when necessary (blank USB packet)\nprint(layout.compose(input_str, minimal_clears=True))\n```\n\n\n### Codes for C-Style Defines\n\n```python\nimport layouts\nimport layouts.emitter\n\nmgr = layouts.Layouts()\nlayout = mgr.get_layout('default')\n\n# Returns a list of list of tuples\n# Each type of code has a pre-defined (configurable) prefix\n# [, , , ]\n# (, )\n# Useful for:\n# #define KEY_A 0x04\nprint(layouts.emitter.basic_c_defines(layout))\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/hid-io/layouts-python", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "layouts", "package_url": "https://pypi.org/project/layouts/", "platform": "", "project_url": "https://pypi.org/project/layouts/", "project_urls": { "Homepage": "https://github.com/hid-io/layouts-python" }, "release_url": "https://pypi.org/project/layouts/0.4.7/", "requires_dist": [ "requests", "pygithub==1.39" ], "requires_python": ">=3.4", "summary": "Python API for HID-IO HID Layouts Repository", "version": "0.4.7" }, "last_serial": 4278135, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "bcc762ef72d1cb2d42facc09e102496a", "sha256": "fcfb371afc5440e193d3093e2d4e0cbe22760ee2d1eaa0f6764f695f387dc9f5" }, "downloads": -1, "filename": "layouts-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "bcc762ef72d1cb2d42facc09e102496a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 15369, "upload_time": "2018-06-01T00:51:54", "url": "https://files.pythonhosted.org/packages/1f/e6/bfdecc6eeabb853849f7f6a33c9aef6cc9be5932a1be693d5a3abd848283/layouts-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b94012b9f91cab141ffec93072d06c0f", "sha256": "7db966c19d942c893b3741ca58030c56ec36a9ccc4a95e5f142c5dbfafd357b8" }, "downloads": -1, "filename": "layouts-0.1.tar.gz", "has_sig": false, "md5_digest": "b94012b9f91cab141ffec93072d06c0f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 7666, "upload_time": "2018-06-01T00:52:02", "url": "https://files.pythonhosted.org/packages/cb/82/e1af677cbb263a420077941a8cbd5aa1b62d2162b4626963f6c0e9bf48c9/layouts-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "6ec2e4c861088bdf404b7dca36ca097e", "sha256": "0ddd0a92a79447b4ba8383e9f2170e4b0a0a373d147df156668b6377a310e21e" }, "downloads": -1, "filename": "layouts-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6ec2e4c861088bdf404b7dca36ca097e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 19450, "upload_time": "2018-06-01T03:52:41", "url": "https://files.pythonhosted.org/packages/af/ae/96dcff291384740d43bd9931543407453f75051b4a7a3ce998842e615678/layouts-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d788769415804799d182021619960ec9", "sha256": "e802182560484ecf34243b5d32e7c50a5db0eec22a452ff691f0e2299e512ca1" }, "downloads": -1, "filename": "layouts-0.2.tar.gz", "has_sig": false, "md5_digest": "d788769415804799d182021619960ec9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 9271, "upload_time": "2018-06-01T03:52:45", "url": "https://files.pythonhosted.org/packages/ba/88/0445e2ec50f77ac539ee423cc410886049182b7fae5222ebe3ac354cc91e/layouts-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "129d2cfdc76779771d577089835e6acb", "sha256": "d0adda7f3d4681035600ff8b7b395bc5176bd308f7ba376af052354340b4ce5d" }, "downloads": -1, "filename": "layouts-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "129d2cfdc76779771d577089835e6acb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 19839, "upload_time": "2018-06-03T23:32:48", "url": "https://files.pythonhosted.org/packages/2e/35/167a783cb26e28525536869c80200b152563df553bc3f5bd4c49b585e70b/layouts-0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0c967df0addade4cdcdcdcc4bedbd3e5", "sha256": "e737694bcbd45f1d942d384520971865776b671135e425cf254fdd97e98c7694" }, "downloads": -1, "filename": "layouts-0.3.tar.gz", "has_sig": false, "md5_digest": "0c967df0addade4cdcdcdcc4bedbd3e5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 9565, "upload_time": "2018-06-03T23:32:51", "url": "https://files.pythonhosted.org/packages/2d/e8/e586749f9a9ca5ec78d15fe1a40024388919832a8d13664e6ac2b73f73de/layouts-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "6876e2adbbe532cf91b78793029783e8", "sha256": "008955306ca0d09904d182c74b77e6db18d25d179a9e2b26af898aa69bcad3fd" }, "downloads": -1, "filename": "layouts-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "6876e2adbbe532cf91b78793029783e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 21436, "upload_time": "2018-07-17T06:52:16", "url": "https://files.pythonhosted.org/packages/7c/a0/cf3e20de3eeb686a9da7d0c5388e955ab4e95a538c101476151610ccaa3b/layouts-0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5e7956ac7d24d078f27c8e7faf950c4", "sha256": "e916b0c43deaa92c2e6abb7276f359bdb8a5b35dc2ec14ea04d591385046aec2" }, "downloads": -1, "filename": "layouts-0.4.tar.gz", "has_sig": false, "md5_digest": "f5e7956ac7d24d078f27c8e7faf950c4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 10021, "upload_time": "2018-07-17T06:52:21", "url": "https://files.pythonhosted.org/packages/9c/11/e968eb68631328ef78ee3c9cc7ef2f2ecdb38694847b889a790531e8f210/layouts-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "97a38337acb8df8236f8444204661de6", "sha256": "9e71f77355da6f7347b5a7e1a081568602a860cd41d38359b9be0d1bb6d3cc57" }, "downloads": -1, "filename": "layouts-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "97a38337acb8df8236f8444204661de6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 21458, "upload_time": "2018-07-19T05:36:03", "url": "https://files.pythonhosted.org/packages/e2/08/964a329108c6dae8e72ff599df60f70e805bd0227eb00d7e1ae1cfa0e2c1/layouts-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03045049d0bc100b78cf9a138ecfd94c", "sha256": "bbb9b68168d32e3be12c52c6d1415bbbcd93cf2a32361e449fe822cdf79fc7d1" }, "downloads": -1, "filename": "layouts-0.4.1.tar.gz", "has_sig": false, "md5_digest": "03045049d0bc100b78cf9a138ecfd94c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 10053, "upload_time": "2018-07-19T05:36:07", "url": "https://files.pythonhosted.org/packages/fd/1a/e15e75f18cc9f80f7db15f83dfaafdf639c8762f12f0add5f5872143646f/layouts-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "562b3e57b6e06faa9b35e51b427204fb", "sha256": "4fa5995204ce638d1dc46fe08034a3bf3f99647e95a074db6390a8489bdf77dd" }, "downloads": -1, "filename": "layouts-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "562b3e57b6e06faa9b35e51b427204fb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 21465, "upload_time": "2018-07-29T07:27:22", "url": "https://files.pythonhosted.org/packages/64/89/14c02a4029a6d37daa3834d7277d19d38888e8074927445ec6dff83500e9/layouts-0.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d61cd90e634f03eef8381af968d7643", "sha256": "cd776dcfbcc9cb0e7e510b5a2cca51753779d27a6b0a6a1b1f71b0487640eb3d" }, "downloads": -1, "filename": "layouts-0.4.2.tar.gz", "has_sig": false, "md5_digest": "2d61cd90e634f03eef8381af968d7643", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 10426, "upload_time": "2018-07-29T07:27:27", "url": "https://files.pythonhosted.org/packages/d5/d8/5b82a10c741d5081ff41a4abced8913e64894ae7ad2092aa74fec16c768e/layouts-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "15f2af31d0e7d3b56767293990f1281e", "sha256": "24305996a46593029f036b9da56141671445826dce33fda67f2190285963ab4b" }, "downloads": -1, "filename": "layouts-0.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "15f2af31d0e7d3b56767293990f1281e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 21711, "upload_time": "2018-08-04T23:42:57", "url": "https://files.pythonhosted.org/packages/81/78/6c3f3f0260ba02abbea4c3b8782d96ce91e6b00f01b3b77dbbb041bc7149/layouts-0.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98045192422cc2886d9e961c9e80e589", "sha256": "f4ae61749849e30fbbd999b18eeff47af1d6ae6b274b9ab31c9c837b1d8649e0" }, "downloads": -1, "filename": "layouts-0.4.3.tar.gz", "has_sig": false, "md5_digest": "98045192422cc2886d9e961c9e80e589", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 10407, "upload_time": "2018-08-04T23:43:01", "url": "https://files.pythonhosted.org/packages/ae/b4/6521a6a78b95ba3094351574471ef33f470a7962bd68df239c5913b52def/layouts-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "b718ac625ee6a98b377efec12e8d34b0", "sha256": "0b7bedb1aef4b3e2f068003fcccd3b495c4ccd7c3d3dca34d3b4af5659a9386a" }, "downloads": -1, "filename": "layouts-0.4.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b718ac625ee6a98b377efec12e8d34b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 21731, "upload_time": "2018-08-05T00:08:12", "url": "https://files.pythonhosted.org/packages/17/af/8da79e16aefbb891beee85cb46c6379958437b39a3bed1a7be70b13f5331/layouts-0.4.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c0fe69b5ca95c478ca172cda9fe5990", "sha256": "a83eefed89fab9a4ca055612ddf9634dbdec145af0218b28c9456fac605860b1" }, "downloads": -1, "filename": "layouts-0.4.4.tar.gz", "has_sig": false, "md5_digest": "6c0fe69b5ca95c478ca172cda9fe5990", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 10417, "upload_time": "2018-08-05T00:08:16", "url": "https://files.pythonhosted.org/packages/07/5a/6976605b616c5143c3618d5d062da62237579adbceb88a4b23f6ee4e574e/layouts-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "ee31ff7a4ed3ff30e8bb2747c92eeac6", "sha256": "63f5eb1f070f5d8dad995247bb9dc532b2bdc92e567ab9d3427c83c0c8030e16" }, "downloads": -1, "filename": "layouts-0.4.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ee31ff7a4ed3ff30e8bb2747c92eeac6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 21750, "upload_time": "2018-08-05T06:06:51", "url": "https://files.pythonhosted.org/packages/94/d5/41ece790d366b941dcf25f606f2be695e3db1d5f0c9234f9ff23c0798f3f/layouts-0.4.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd082b758649334d6cad76eb032e32ef", "sha256": "44177c7b2acf4d4dbe145c64aceec8ba642ab99033764df8caa33336bfffb6a2" }, "downloads": -1, "filename": "layouts-0.4.5.tar.gz", "has_sig": false, "md5_digest": "dd082b758649334d6cad76eb032e32ef", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 10508, "upload_time": "2018-08-05T06:06:55", "url": "https://files.pythonhosted.org/packages/9d/af/f2d47c0f6070dd68c79303da306361fe7b7cfdcae79db92d94992b1f5d5f/layouts-0.4.5.tar.gz" } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "b84e2e3b1a0625eb2872c1f0d5f4e1d6", "sha256": "c2cd198e60624b5a0034c53b477dd905c78980e613edd82a2d80efbd80f157f5" }, "downloads": -1, "filename": "layouts-0.4.7-py3-none-any.whl", "has_sig": false, "md5_digest": "b84e2e3b1a0625eb2872c1f0d5f4e1d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 22530, "upload_time": "2018-09-17T06:04:14", "url": "https://files.pythonhosted.org/packages/07/ab/e3c81a6d02e2c4c5a6f107ed3fab8e95490fd3a0021e104789d38561e40e/layouts-0.4.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3185b24073ed48fcf6b789da4bc8f303", "sha256": "b0ceae120943416752c3a4a87ca5602ab11656753f5333c44bf2ae093c8dca00" }, "downloads": -1, "filename": "layouts-0.4.7.tar.gz", "has_sig": false, "md5_digest": "3185b24073ed48fcf6b789da4bc8f303", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 10656, "upload_time": "2018-09-17T06:04:18", "url": "https://files.pythonhosted.org/packages/1f/76/9a0989bfa435836712cd9e20508673a2762e0fcff30ae202228f49809765/layouts-0.4.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b84e2e3b1a0625eb2872c1f0d5f4e1d6", "sha256": "c2cd198e60624b5a0034c53b477dd905c78980e613edd82a2d80efbd80f157f5" }, "downloads": -1, "filename": "layouts-0.4.7-py3-none-any.whl", "has_sig": false, "md5_digest": "b84e2e3b1a0625eb2872c1f0d5f4e1d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 22530, "upload_time": "2018-09-17T06:04:14", "url": "https://files.pythonhosted.org/packages/07/ab/e3c81a6d02e2c4c5a6f107ed3fab8e95490fd3a0021e104789d38561e40e/layouts-0.4.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3185b24073ed48fcf6b789da4bc8f303", "sha256": "b0ceae120943416752c3a4a87ca5602ab11656753f5333c44bf2ae093c8dca00" }, "downloads": -1, "filename": "layouts-0.4.7.tar.gz", "has_sig": false, "md5_digest": "3185b24073ed48fcf6b789da4bc8f303", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 10656, "upload_time": "2018-09-17T06:04:18", "url": "https://files.pythonhosted.org/packages/1f/76/9a0989bfa435836712cd9e20508673a2762e0fcff30ae202228f49809765/layouts-0.4.7.tar.gz" } ] }