gdnative/scripts/api_json_helper.ipynb

218 lines
5.7 KiB
Plaintext

{
"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
}