# ahk-json
This is an extension package intended to be used with the Python [ahk](https://github.com/spyoungtech/ahk) package.
It provides interfaces from [cocobelgica/AutoHotkey-JSON](https://github.com/cocobelgica/AutoHotkey-JSON) for
working with JSON in AutoHotkey. The extensions in this package do not provide any additional methods,
but simply provide a convenient way to include `Jxon.ahk` and/or `JSON.ahk` into other extensions.
This package provides two extensions: `JXON` and `JSON`. It also registers a JSON message type (`ahk_json.message.JsonResponseMessage`)
## Installation
Install this extension using `pip`
```python
pip install ahk-json
```
# Usage
Typically, you use this as a dependency when building your own extensions.
In the following example, a simple extension (`my_extension`) is created. It implements an AHK function `MyTestFunction`
-- the registered to the extension using the Python function `my_test_function`.
```python
from ahk.extensions import Extension
from ahk import AHK
from ahk_json import JXON # importing is necessary for ``extensions='auto'`` to work, even if this is not used
ext_script = '''\
MyTestFunction(ByRef command) {
arg := command[2]
obj := Object("test", arg)
res := Jxon_Dump(obj) ; this is available thanks to the extension
return FormatResponse("ahk_json.message.JsonResponseMessage", res)
}
'''
my_extension = Extension(script_text=ext_script)
@my_extension.register
def my_test_function(ahk: AHK, arg: str):
return ahk.function_call('MyTestFunction', [arg])
def main():
ahk = AHK(extensions='auto') # automatically use all imported/created extensions
# or use the extensions explicitly:
# ahk = AHK(extensions=[JXON, my_extension])
# now ``.my_test_function`` is a method on the `ahk` instance:
assert ahk.my_test_function('foo') == {'test': 'foo'}
```
# License
This work is licensed under the MIT license.
This package includes substantial portions of the [original AutoHotkey-JSON](https://github.com/cocobelgica/AutoHotkey-JSON).
The code included from AutoHotkey-JSON is owned and copyrighted by its original author(s) and is used/redistributed
under the terms of the [WTFPL](http://www.wtfpl.net).
Raw data
{
"_id": null,
"home_page": "https://github.com/spyoungtech/ahk-json",
"name": "ahk-json",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8.0",
"maintainer_email": "",
"keywords": "ahk,autohotkey,jxon,json,python",
"author": "Spencer Young",
"author_email": "spencer.young@spyoung.com",
"download_url": "https://files.pythonhosted.org/packages/eb/1d/6729ab0c4fbdb23f61f30e2cc0330bc36625be0264a10d094f1eea0fef66/ahk-json-0.1.0rc2.tar.gz",
"platform": null,
"description": "# ahk-json\n\nThis is an extension package intended to be used with the Python [ahk](https://github.com/spyoungtech/ahk) package.\n\nIt provides interfaces from [cocobelgica/AutoHotkey-JSON](https://github.com/cocobelgica/AutoHotkey-JSON) for\nworking with JSON in AutoHotkey. The extensions in this package do not provide any additional methods,\nbut simply provide a convenient way to include `Jxon.ahk` and/or `JSON.ahk` into other extensions.\n\nThis package provides two extensions: `JXON` and `JSON`. It also registers a JSON message type (`ahk_json.message.JsonResponseMessage`)\n\n## Installation\n\nInstall this extension using `pip`\n\n```python\npip install ahk-json\n```\n\n# Usage\n\nTypically, you use this as a dependency when building your own extensions.\n\nIn the following example, a simple extension (`my_extension`) is created. It implements an AHK function `MyTestFunction`\n-- the registered to the extension using the Python function `my_test_function`.\n```python\nfrom ahk.extensions import Extension\nfrom ahk import AHK\n\nfrom ahk_json import JXON # importing is necessary for ``extensions='auto'`` to work, even if this is not used\n\next_script = '''\\\nMyTestFunction(ByRef command) {\n arg := command[2]\n obj := Object(\"test\", arg)\n res := Jxon_Dump(obj) ; this is available thanks to the extension\n return FormatResponse(\"ahk_json.message.JsonResponseMessage\", res)\n}\n'''\n\nmy_extension = Extension(script_text=ext_script)\n\n@my_extension.register\ndef my_test_function(ahk: AHK, arg: str):\n return ahk.function_call('MyTestFunction', [arg])\n\n\ndef main():\n ahk = AHK(extensions='auto') # automatically use all imported/created extensions\n # or use the extensions explicitly:\n # ahk = AHK(extensions=[JXON, my_extension])\n\n # now ``.my_test_function`` is a method on the `ahk` instance:\n assert ahk.my_test_function('foo') == {'test': 'foo'}\n```\n\n\n# License\n\nThis work is licensed under the MIT license.\n\nThis package includes substantial portions of the [original AutoHotkey-JSON](https://github.com/cocobelgica/AutoHotkey-JSON).\nThe code included from AutoHotkey-JSON is owned and copyrighted by its original author(s) and is used/redistributed\nunder the terms of the [WTFPL](http://www.wtfpl.net).\n",
"bugtrack_url": null,
"license": "",
"summary": "Auto-Hotkey-JSON for Python",
"version": "0.1.0rc2",
"project_urls": {
"Homepage": "https://github.com/spyoungtech/ahk-json"
},
"split_keywords": [
"ahk",
"autohotkey",
"jxon",
"json",
"python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0882c636789d1e970d1ab682968e4f108901fd11014959b076e8c81460e66838",
"md5": "900ca1ebd3f9f1881dda5394b5688cfc",
"sha256": "64fcf02a98623df3322ed617bb78652d5aa427cff1180674ab7c792a7e688ff9"
},
"downloads": -1,
"filename": "ahk_json-0.1.0rc2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "900ca1ebd3f9f1881dda5394b5688cfc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8.0",
"size": 11500,
"upload_time": "2023-09-24T22:34:52",
"upload_time_iso_8601": "2023-09-24T22:34:52.280112Z",
"url": "https://files.pythonhosted.org/packages/08/82/c636789d1e970d1ab682968e4f108901fd11014959b076e8c81460e66838/ahk_json-0.1.0rc2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eb1d6729ab0c4fbdb23f61f30e2cc0330bc36625be0264a10d094f1eea0fef66",
"md5": "32bc81284257b14f81960b892ded8aed",
"sha256": "97748224e75d4daecef9b6fa661f82d1fe1b0bdaf1e53efde2c41f2f8aa46469"
},
"downloads": -1,
"filename": "ahk-json-0.1.0rc2.tar.gz",
"has_sig": false,
"md5_digest": "32bc81284257b14f81960b892ded8aed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8.0",
"size": 10990,
"upload_time": "2023-09-24T22:34:53",
"upload_time_iso_8601": "2023-09-24T22:34:53.871703Z",
"url": "https://files.pythonhosted.org/packages/eb/1d/6729ab0c4fbdb23f61f30e2cc0330bc36625be0264a10d094f1eea0fef66/ahk-json-0.1.0rc2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-24 22:34:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "spyoungtech",
"github_project": "ahk-json",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "ahk-json"
}