mirror of
https://github.com/Relintai/gdnative.git
synced 2024-11-10 00:52:11 +01:00
Added a new api json generator helper script.
This commit is contained in:
parent
7e1f8305a6
commit
ef7a514d7e
217
scripts/api_json_helper.ipynb
Normal file
217
scripts/api_json_helper.ipynb
Normal file
@ -0,0 +1,217 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "858dddfa",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import ipywidgets as widgets"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "94eff880",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"l = widgets.Label(value=\"Input:\")\n",
|
||||
"ta = widgets.Textarea(layout=widgets.Layout(width='80%', height='200px'))\n",
|
||||
"b = widgets.Button(description='Convert',tooltip='Convert',icon='check')\n",
|
||||
"\n",
|
||||
"ol = widgets.Label(value=\"Output:\")\n",
|
||||
"\n",
|
||||
"olh = widgets.Label(value=\"JSON:\")\n",
|
||||
"otah = widgets.Output(layout={'border': '1px solid black'})\n",
|
||||
"\n",
|
||||
"ool = widgets.Label(value=\"Output:\")\n",
|
||||
"out = widgets.Output(layout={'border': '1px solid black'})\n",
|
||||
"\n",
|
||||
"vbi = widgets.VBox([ l, ta, b])\n",
|
||||
"vbo = widgets.VBox([ol, olh, otah, ool, out])\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "74160baa",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"if 'transform_input' in globals():\n",
|
||||
" b.on_click(transform_input, True)\n",
|
||||
"\n",
|
||||
"def transform_input(b):\n",
|
||||
" with out:\n",
|
||||
" out.clear_output()\n",
|
||||
" \n",
|
||||
" with otah:\n",
|
||||
" otah.clear_output()\n",
|
||||
"\n",
|
||||
" lines = ta.value.split('\\n')\n",
|
||||
" \n",
|
||||
" for l in lines:\n",
|
||||
" if l.strip() == '':\n",
|
||||
" #with otah:\n",
|
||||
" # print('')\n",
|
||||
" \n",
|
||||
" continue\n",
|
||||
" \n",
|
||||
" with out:\n",
|
||||
" print('line:')\n",
|
||||
" print(l)\n",
|
||||
" print('')\n",
|
||||
" \n",
|
||||
" if '//' in l:\n",
|
||||
" #with otah:\n",
|
||||
" # print(' ')\n",
|
||||
" continue\n",
|
||||
"\n",
|
||||
" l = l.replace(';', '').strip()\n",
|
||||
" l = l.replace('inline', '').strip()\n",
|
||||
" l = l.replace('_FORCE_INLINE_', '').strip()\n",
|
||||
" l = l.replace('GDAPI', '').strip()\n",
|
||||
" l = l.replace(' ', ' ').strip()\n",
|
||||
" l = l.replace(' ', ' ').strip()\n",
|
||||
" l = l.replace(' ', ' ').strip()\n",
|
||||
" l = l.replace(')', '').strip()\n",
|
||||
" l = l.strip()\n",
|
||||
" \n",
|
||||
" data = {}\n",
|
||||
" \n",
|
||||
" method_def_and_argss = l.split('(')\n",
|
||||
" \n",
|
||||
" if len(method_def_and_argss) < 2:\n",
|
||||
" #with otah:\n",
|
||||
" # print(' ')\n",
|
||||
" continue\n",
|
||||
" \n",
|
||||
" method_ret_and_name = method_def_and_argss[0]\n",
|
||||
" method_ret_and_name_s = method_ret_and_name.split(' ')\n",
|
||||
" \n",
|
||||
" method_return_type = ' '.join(method_ret_and_name_s[:-1]).strip()\n",
|
||||
" method_name = ' '.join(method_ret_and_name_s[len(method_ret_and_name_s) - 1:]).strip()\n",
|
||||
" \n",
|
||||
" if '*' in method_name:\n",
|
||||
" method_name = method_name.replace('*', '')\n",
|
||||
" method_return_type += ' *'\n",
|
||||
" \n",
|
||||
" data['name'] = method_name\n",
|
||||
" data['return_type'] = method_return_type\n",
|
||||
" \n",
|
||||
" \n",
|
||||
" method_all_args = method_def_and_argss[1]\n",
|
||||
" method_all_argss = method_all_args.split(',')\n",
|
||||
" \n",
|
||||
" method_args = []\n",
|
||||
" \n",
|
||||
" for ma in method_all_argss:\n",
|
||||
" mas = ma.split(' ')\n",
|
||||
" \n",
|
||||
" marg_type = ' '.join(mas[:-1]).strip()\n",
|
||||
" marg_name = ' '.join(mas[len(mas) - 1:]).strip()\n",
|
||||
" \n",
|
||||
" sc = marg_name.count('*')\n",
|
||||
" \n",
|
||||
" marg_name = marg_name.replace('*', '')\n",
|
||||
" \n",
|
||||
" if sc > 0:\n",
|
||||
" marg_type += ' ' + '*' * sc\n",
|
||||
" \n",
|
||||
" method_args.append([ marg_type, marg_name ])\n",
|
||||
" \n",
|
||||
" \n",
|
||||
" \n",
|
||||
" data['arguments'] = method_args\n",
|
||||
" \n",
|
||||
" \n",
|
||||
" s = l\n",
|
||||
" \n",
|
||||
" \n",
|
||||
" with otah:\n",
|
||||
" #print(method_return_type)\n",
|
||||
" #print(method_name)\n",
|
||||
" #print(method_args)\n",
|
||||
" \n",
|
||||
" print(str(data).replace(\"'\", '\"') + ',')\n",
|
||||
" \n",
|
||||
" with out:\n",
|
||||
" print(str(l))\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"b.on_click(transform_input)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "730e99a0",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Input"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "a78d6458",
|
||||
"metadata": {
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"display(vbi)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "1662e017",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Output"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "fae586c3",
|
||||
"metadata": {
|
||||
"scrolled": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"display(vbo)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "a84ec551",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
" "
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.10.10"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
Loading…
Reference in New Issue
Block a user