KL-Py 0.2.2__tar.gz → 0.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kl_py-0.2.2 → kl_py-0.2.4}/PKG-INFO +1 -1
- {kl_py-0.2.2 → kl_py-0.2.4}/pyproject.toml +1 -1
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/_custom_sqlite.py +2 -2
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/_translate.py +82 -25
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py.egg-info/PKG-INFO +1 -1
- {kl_py-0.2.2 → kl_py-0.2.4}/LICENSE +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/README.md +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/setup.cfg +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/_utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/base.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/button.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/calendar.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/canvas.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/checkbox.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/column.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/combo.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/error.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/frame.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/graph.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/helpers.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/image.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/input.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/list_box.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/menu.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/multiline.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/option_menu.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/pane.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/progress_bar.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/radio.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/separator.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/sizegrip.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/slider.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/spin.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/status_bar.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/stretch.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/tab.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/table.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/text.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/tree.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/themes.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/tray.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/window.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/KL_Py.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/_custom_pandas.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/_custom_turtle.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/_error_classes.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/_klang_builtins.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/automl.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/dnd/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/drag_and_drop/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/__main__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/config.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/dialogs.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/packaging.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/shims.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/ui.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/validation.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/fsgdnd/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/fsgui/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/_utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/base.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/button.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/calendar.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/canvas.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/center.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/checkbox.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/column.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/combo.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/error.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/frame.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/graph.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/helpers.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/image.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/input.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/list_box.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/menu.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/multiline.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/option_menu.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/pane.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/progress_bar.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/radio.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/separator.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/sizegrip.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/slider.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/spin.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/status_bar.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/stretch.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/tab.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/table.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/text.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/tree.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/replace.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/tray.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/window.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/__main__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/config.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/dialogs.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/packaging.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/shims.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/ui.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/validation.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/__main__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/config.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/dialogs.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/packaging.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/shims.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/ui.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/validation.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/__main__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/config.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/dialogs.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/packaging.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/shims.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/ui.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/validation.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/__main__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/config.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/dialogs.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/packaging.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/shims.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/ui.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/validation.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/__main__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/config.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/dialogs.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/packaging.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/shims.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/ui.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/validation.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/__main__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/config.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/dialogs.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/packaging.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/shims.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/ui.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/validation.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/ml.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/np/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pd/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/plt/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/psgui/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/px/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/__main__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/config.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/dialogs.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/packaging.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/shims.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/ui.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/validation.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pysgdnd/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/__version__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/_internal_utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/adapters.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/api.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/auth.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/certifi/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/certifi/__main__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/certifi/core.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/certifi/py.typed +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/certs.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/__main__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/api.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/cd.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/cli/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/cli/__main__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/constant.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/legacy.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/md.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/models.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/py.typed +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/version.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/compat.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/cookies.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/exceptions.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/help.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/hooks.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/codec.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/compat.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/core.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/idnadata.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/intranges.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/package_data.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/py.typed +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/uts46data.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/models.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/packages.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/sessions.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/status_codes.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/structures.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/_base_connection.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/_collections.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/_request_methods.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/_version.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/connection.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/connectionpool.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/emscripten/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/emscripten/connection.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/emscripten/fetch.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/emscripten/request.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/emscripten/response.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/pyopenssl.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/socks.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/exceptions.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/fields.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/filepost.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/http2/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/http2/connection.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/http2/probe.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/poolmanager.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/py.typed +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/response.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/connection.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/proxy.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/request.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/response.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/retry.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/ssl_.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/ssl_match_hostname.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/ssltransport.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/timeout.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/url.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/util.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/wait.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/sb/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/sk/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/sns/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/__init__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/__main__.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/config.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/dialogs.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/packaging.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/shims.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/ui.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/utils.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/validation.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/when.py +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py.egg-info/SOURCES.txt +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py.egg-info/dependency_links.txt +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py.egg-info/requires.txt +0 -0
- {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py.egg-info/top_level.txt +0 -0
|
@@ -36,13 +36,13 @@ class SQL:
|
|
|
36
36
|
except Exception as e:
|
|
37
37
|
print(f"SQL Error on execution: {e}\nAttempted Query: {command}")
|
|
38
38
|
apply = karo = apply_karo = do = run = exec = execute
|
|
39
|
-
DB = SQL
|
|
39
|
+
DB = db_conn = dbconn = db_connect = sql_conn = sqlconn = sql_connect = SQL
|
|
40
40
|
|
|
41
41
|
"""
|
|
42
42
|
def main() -> None:
|
|
43
43
|
print(translate_for_sql("banao table agar na mojud Users jisme mojud id int khas auto+, name jumla"))
|
|
44
44
|
try:
|
|
45
|
-
db =
|
|
45
|
+
db = sqlconn("test2.db")
|
|
46
46
|
query = "BANAO Table agar na mojud Users jisme mojud id int khas auto+, name jumla?"
|
|
47
47
|
db.do(query)
|
|
48
48
|
x = db.do("chuno sab kuch Users mese")
|
|
@@ -3,7 +3,11 @@ from KL_Py import KL_Py
|
|
|
3
3
|
# ^ the import above is a MANDATORY imoort, and so is the following:
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
__all__: list[str] = [
|
|
6
|
+
__all__: list[str] = [
|
|
7
|
+
"translate_for_jupyter",
|
|
8
|
+
"translate_for_klang",
|
|
9
|
+
"translate_for_sql"
|
|
10
|
+
]
|
|
7
11
|
|
|
8
12
|
def translate_for_ai(text: str) -> str:
|
|
9
13
|
if not isinstance(text, str):
|
|
@@ -118,8 +122,9 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
118
122
|
r"kaho": "print",
|
|
119
123
|
# match-case
|
|
120
124
|
r"aga?r[_ ]match(?= [^\n\t\:]+\:)": "match",
|
|
121
|
-
r"(?<=(?<!\w) {2})sath(?! (?:open|khola) ?\()": "case",
|
|
125
|
+
r"(?<=(?<!\w) {2})sath(?! (?:open|khola|[A-Za-z_]\w*\.connect) ?\()": "case",
|
|
122
126
|
# same keyword, different operations
|
|
127
|
+
# keep the sequence untouched
|
|
123
128
|
r"sath(?= [A-Za-z_])": "with",
|
|
124
129
|
# if-else
|
|
125
130
|
# sequence
|
|
@@ -169,7 +174,9 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
169
174
|
# and ISN'T followed by a (
|
|
170
175
|
# no messing around^
|
|
171
176
|
r"baad(?= ?\()": "delay",
|
|
172
|
-
r"(
|
|
177
|
+
r"\b((?:wit|sat)h_(?:i(?:n?de?x)?|numbers))(?= *\()\b": "numbered"\
|
|
178
|
+
if callable(globals().get("numbered"))\
|
|
179
|
+
else "enumerate",
|
|
173
180
|
r"e_auto(?= ?\()": "enum.auto",
|
|
174
181
|
r"kism(?= ?\()": "type",
|
|
175
182
|
r"func": "Callable",
|
|
@@ -265,7 +272,8 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
265
272
|
continue
|
|
266
273
|
strings[i] = replace(strings[i], r"\$(?=\{)", "")
|
|
267
274
|
if not was_l_string_initially:
|
|
268
|
-
strings[i] = replace(strings[i], r"\{\}", r"
|
|
275
|
+
strings[i] = replace(strings[i], r"\\([\{\}])", r"$1" * 2)
|
|
276
|
+
strings[i] = replace(strings[i], r"(?<![\{\\])\{\}", r"{{}}")
|
|
269
277
|
# handle blank templates without throwing an error
|
|
270
278
|
# WARNING: this changes core Python f-string functionality for {}
|
|
271
279
|
# actually, for the sake of commas, and spaces (as the $-based syntax can mess them up), let's allow both
|
|
@@ -322,9 +330,18 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
322
330
|
strings[i] = replace(strings[i], r"\[\.?b(?:ager|ina) (?:last|akhri) (?<stop>\-?\d+(?:[\+\-\*\/]*\d*)+)(?:st|nd|rd|h?l[ae]|th|th?[ae]|s?r[ae]|w[ae])?(?:,? +(?:\d+ )?baad (?<step>\w+(?:[\+\-\*\/]*\d*)+) *[ \/\-] *\w+(?:[\+\-\*\/]*\d*))?\]", "[:-abs($stop):$step]")
|
|
323
331
|
# reversing
|
|
324
332
|
strings[i] = replace(strings[i], r"\[\.?(?:k[aeio]\:?[_ ])?(?:ula?t[ai]?|rev(?:er(?:se)?)?[dt]?)\]", "[::-1]")
|
|
325
|
-
while SEMICOLON_SUBINDEX_ACCESSOR_RE_COMPILED
|
|
326
|
-
|
|
327
|
-
|
|
333
|
+
while SEMICOLON_SUBINDEX_ACCESSOR_RE_COMPILED\
|
|
334
|
+
.search(strings[i]):
|
|
335
|
+
strings[i] = replace(
|
|
336
|
+
strings[i],
|
|
337
|
+
SEMICOLON_SUBINDEX_ACCESSOR_RE,
|
|
338
|
+
"${first_index}][${second_index}${rest}"
|
|
339
|
+
)
|
|
340
|
+
strings[i] = replace(
|
|
341
|
+
strings[i],
|
|
342
|
+
r"(?<=\w) *\:\:(?!\s*\()([^\n]*)",
|
|
343
|
+
"($1)"
|
|
344
|
+
)
|
|
328
345
|
# number-based mid slicing (rather than index-based)
|
|
329
346
|
# comes before
|
|
330
347
|
strings[i] = replace(strings[i], r"\[\.?(?:da?rmya{0,2}n|beech)? *\:? *(?<start>\-?\d+)(?:st|nd|rd|h?l[ae]|th|th?[ae]|s?r[ae]|w[ae])(?:[,:~\-]| *(?:se|aur)?) *(?<stop>\-?\d+)(?:st|nd|rd|h?la|th|th?a|s?ra|wa)?(?:[, ]*(?:akhri )?(?:chor[_ ]?k?e|b(?:ina|a?ge?r))(?: akhri)?)(?:,? +(?:\d+ )?baad (?<step>\w+(?:[\+\-\*\/]*\d*)+) *[ \/\-] *\w+(?:[\+\-\*\/]*\d*))?\]", "[$start-1 if $start > 0 else $start:$stop-1 if $stop > 0 else $stop:$step]")
|
|
@@ -547,7 +564,10 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
547
564
|
# comes at last
|
|
548
565
|
code = replace(code, r"\b(?<varname>[_A-Za-z]\w*) (?:[\^\&][tk]|[\^\&]?(?:za?ba?r(?:da?sti)?|force)) ?\= ?(?<type>[A-Za-z_]\w*)\b", "$varname = get_initial_of('$type') if not('$varname' in globals() or '$varname' in locals()) or not $varname or not isinstance($varname, $type) else $varname")
|
|
549
566
|
# ::%m% -> ($m$)
|
|
550
|
-
code = replace(code,
|
|
567
|
+
code = replace(code,
|
|
568
|
+
r"(?<=\w) *\:\:(?!\s*\()([^\n]*)",
|
|
569
|
+
"($1)"
|
|
570
|
+
)
|
|
551
571
|
# glitchy self-assignment operator
|
|
552
572
|
def __self_assignment_operations_replacer__(match: re.Match) -> str:
|
|
553
573
|
varname: str|list[str] = match.group("varname")
|
|
@@ -671,6 +691,7 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
671
691
|
# the actual support for `x ->` :
|
|
672
692
|
# helps drop the parentheses if the function doesn't allow parameters
|
|
673
693
|
# fc log: -> fc log():
|
|
694
|
+
code = replace(code, r"\basyn *(?:f[cn]|act)\b(?= +[A-Za-z_])", "async def")
|
|
674
695
|
code = replace(code, r"(?<![\=,\(]|(?<=[\=,\(]|(?<=[\=,\(]|(?<=[\=,\(]) ) ) )\b(?:f[cn]|act) (?<funcname_followed_not_by_parens>[A-Za-z_]\w*)(?=(?<could_have_a_return_type>[^\(\)\:]+)?\:\n+(?: {4}|\t{1,}))", "def $funcname_followed_not_by_parens()")
|
|
675
696
|
code = replace(code, r"(?<![\=,\(]|(?<=[\=,\(]|(?<=[\=,\(]|(?<=[\=,\(]) ) ) )\b(?:f[cn]|act) (?<funcname_regular>[A-Za-z_]\w*)\((?<params>.+)?\)(?=(?<could_have_a_return_type>[^\(\)\:]+)?\:(?:\n+(?: {4}|\t{1,}))?)", "def $funcname_regular($params)")
|
|
676
697
|
code = replace(code, r"\b(lambda) lambda\b", "$1") # a bug fix
|
|
@@ -724,15 +745,24 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
724
745
|
# \/ handle (?<=(?:cls|class) )`A [\.>] B` cases
|
|
725
746
|
code = replace(code, r"(?<=\bclass )\(? *(?<A>(?:\w+(?:, *)?)+)\)?(?: (?:produces?|creates?|conceives?|mothers?(?:[_\- ]*of)?|bears?|births?|peda karen?|jana?m den?) | *\. *)(?:cla?ss? +)?(?<B>\w+)\b", "$B($A)")
|
|
726
747
|
code = replace(code, r"\benum (?<enumclassname>\w+)(?= *\:)", "class $enumclassname(Enum)")
|
|
727
|
-
code = replace(code, r"(?<!\.)(?<varname>[\
|
|
748
|
+
code = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?<replacement_method>replace(?:_first)?)\(", "$replacement_method($varname, ")
|
|
728
749
|
# >> custom starts_with, and ends_with, that work with arrays as well
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
750
|
+
if callable(getattr(KL_Py, "copy", None)):
|
|
751
|
+
code = replace(code, r"\b([A-Za-z_]\w*)\.(?:d(?:e{2})?p?)?copy\(\)", "KL_Py.copy($1)") #custom, comes from KL_Py
|
|
752
|
+
if callable(getattr(KL_Py, "startswith", None)):
|
|
753
|
+
code = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:starts_?with)\(", "startswith($varname, ") #custom, comes from KL_Py
|
|
754
|
+
if callable(getattr(KL_Py, "endswith", None)):
|
|
755
|
+
ccode = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:ends_?with)\(", "endswith($varname, ") #custom, comes from KL_Py
|
|
756
|
+
if callable(getattr(KL_Py, "is_sentence_case", None)):
|
|
757
|
+
code = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:is_?(?:sent(?:ence)?_?case|sentn?[cs]s?))\(\)", "is_sentence_case($varname)")
|
|
758
|
+
if callable(getattr(KL_Py, "sentence_case", None)):
|
|
759
|
+
code = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:sent(?:ence)?_?case|sentn?[cs]s?)\(\)", "sentence_case($varname)")
|
|
760
|
+
if callable(getattr(KL_Py, "is_snake_case", None)):
|
|
761
|
+
code = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:is_?(?:snake_?case))\(\)", "is_snake_case($varname)")
|
|
762
|
+
if callable(getattr(KL_Py, "snake_case", None)):
|
|
763
|
+
code = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:snake_?case)\(\)", "snake_case($varname)")
|
|
764
|
+
if callable(getattr(KL_Py, "lambai", None)):
|
|
765
|
+
code = replace(code, r"(?<!\.)\blambai (?<iterable>[\[\{\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\]\}\"\']{1,2}|[A-Za-z_][\w\.]*)", "lambai($iterable)" if "lambai" in {**globals(), **locals()} and isinstance(lambai, Callable) else "len($iterable)")
|
|
736
766
|
# don't touch it
|
|
737
767
|
# doesn't need a work boundary ^
|
|
738
768
|
code = replace(code, r"(?<!\.)(?<varname>[\[\{\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\]\}\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:ki_?)?(?:len(?:gth)?|lambai|size)\b(?! *\()", "lambai($varname)" if "lambai" in {**globals(), **locals()} and isinstance(lambai, Callable) else "len($varname)")
|
|
@@ -898,12 +928,12 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
898
928
|
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:i(?:nstall)?|add|da{1,2}lo) (?<pkgs>[^\n]+)$", "%pip install $pkgs")
|
|
899
929
|
# if above does not work, try:
|
|
900
930
|
# code = replace(code, r"^[%!~]+ *(?:i(?:nstall)?|add|da{1,2}lo) (?<pkgs>[^\n]+)$", r"import os, subprocess; subprocess.run([os.path.join(os.environ.get('BASE_PATH', '..'), 'install.bat'), '$pkgs'], shell=True)")
|
|
901
|
-
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:u(?:ninstall)?|re?mo?ve?|nika{1,2}lo|hata{1,2}o) (?<pkgs>[^\n]+)$", r'import os, subprocess; e=os.environ.copy(); e.pop("PIP_TARGET", None); subprocess.
|
|
902
|
-
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:export|produce|(?:to|2)?[_ ]?exe)$", r"import os, subprocess, ipynbname; subprocess.
|
|
903
|
-
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[!%~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?(?:cmd|cli|term(?:i?na?l)?) *$", "if os.path.exists('klang.exe'): run_process(['start', 'klang.exe'], non_blocking=True, shell=True, max=1)")
|
|
904
|
-
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[!%~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?n(?:o?te?)?b?(?:o{0,}k)? *$", "if os.path.exists('nb.exe'): run_process(['start', 'nb.exe'], non_blocking=True, shell=True, max=1)")
|
|
905
|
-
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?la?b *$", "if os.path.exists('klab.bat'): run_process(['start', 'klab.bat'], non_blocking=True, shell=True, max=1)")
|
|
906
|
-
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?(?:(?:play|start)[_\- ]*)?(?:bg[_\- ]*)?music *$", "if os.path.exists('output/kMusicPlayer.exe'): run_process(['start', 'output/kMusicPlayer.exe', '--autoplay'], non_blocking=True, shell=True, max=1)")
|
|
931
|
+
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:u(?:ninstall)?|re?mo?ve?|nika{1,2}lo|hata{1,2}o) (?<pkgs>[^\n]+)$", r'import os, subprocess; e=os.environ.copy(); e.pop("PIP_TARGET", None); subprocess.Popen([os.path.join(e.get("BASE_PATH", ""), "uninstall.bat"), "$pkgs"], env=e, shell=True)')
|
|
932
|
+
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:export|produce|(?:to|2)?[_ ]?exe)$", r"import os, subprocess, ipynbname; subprocess.Popen([os.path.join(os.environ.get('BASE_PATH', '..'), 'export_ipynb_as_exe.bat'), str(ipynbname.path())], shell=True)")
|
|
933
|
+
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[!%~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?(?:cmd|cli|term(?:i?na?l)?) *$", "if os.path.exists('klang.exe') and not is_running_process('klang.exe'): run_process(['start', 'klang.exe'], non_blocking=True, shell=True, max=1)")
|
|
934
|
+
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[!%~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?n(?:o?te?)?b?(?:o{0,}k)? *$", "if os.path.exists('nb.exe') and not is_running_process('nb.exe'): run_process(['start', 'nb.exe'], non_blocking=True, shell=True, max=1)")
|
|
935
|
+
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?la?b *$", "if os.path.exists('klab.bat') and not is_running_process('klab.bat'): run_process(['start', 'klab.bat'], non_blocking=True, shell=True, max=1)")
|
|
936
|
+
code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?(?:(?:play|start|chalao)[_\- ]*)?(?:bg[_\- ]*)?music *(?:chalao)? *$", "if os.path.exists('output/kMusicPlayer.exe') and not is_running_process('kMusicPlayer.exe'): run_process(['start', 'output/kMusicPlayer.exe', '--autoplay'], non_blocking=True, shell=True, max=1)")
|
|
907
937
|
# Restore strings
|
|
908
938
|
for j, string in old_enumerate(strings):
|
|
909
939
|
code = code.replace(f"__STRING_{j}__", string, 1)
|
|
@@ -936,6 +966,8 @@ def translate_for_sql(text: str) -> str:
|
|
|
936
966
|
dictionary: dict[str, str] = {
|
|
937
967
|
"bana{1,2}o": "create",
|
|
938
968
|
"chuno": "select",
|
|
969
|
+
"da{1,2}lo": "insert",
|
|
970
|
+
"darmya{1,2}n|b(?:i|ee)ch": "into",
|
|
939
971
|
"sab(?:[_ ]?kuch)?": "*",
|
|
940
972
|
"jaha{1,2}n?": "where",
|
|
941
973
|
r"sirf(?= \d)": "limit",
|
|
@@ -950,6 +982,7 @@ def translate_for_sql(text: str) -> str:
|
|
|
950
982
|
"(?:ba?ra{0,2}ba?r )?he": "=",
|
|
951
983
|
# sequence matters
|
|
952
984
|
"gira{1,2}o": "drop",
|
|
985
|
+
"(?:saaf|kha{1,2}li)[_ ]*(?:karo|table)(?:[_ ]*table)?": "truncate table",
|
|
953
986
|
"agar": "if",
|
|
954
987
|
"na(?:hi)?(?= moj(?:u|oo)d)": "not",
|
|
955
988
|
# sequence matters
|
|
@@ -970,7 +1003,7 @@ def translate_for_sql(text: str) -> str:
|
|
|
970
1003
|
strings_and_column_names: list[str] = re.findall("[`\"\'][^`\"\']*[`\"\']", translation)
|
|
971
1004
|
for i, string in enumerate(strings_and_column_names):
|
|
972
1005
|
translation = translation.replace(string, f"__STRING_{i}__", 1)
|
|
973
|
-
translation = replacei(translation, r"\bjis[_ ]?me moj(?:u|oo)d (
|
|
1006
|
+
translation = replacei(translation, r"\bjis[_ ]?me moj(?:u|oo)d \(*([^\(\)]+)\)*", "($1)")
|
|
974
1007
|
for k, v in dictionary.items():
|
|
975
1008
|
translation = replacei(translation, fr"\b{k}\b", v)
|
|
976
1009
|
translation = replacei(translation, r"(?<table_name>(?<!\w)`?[A-Za-z_]\w*`?) me[_ ]?se\b", "from ${table_name}")
|
|
@@ -1442,9 +1475,33 @@ arr[-1;4;-2;5]
|
|
|
1442
1475
|
{
|
|
1443
1476
|
3.14->"pi"
|
|
1444
1477
|
}
|
|
1478
|
+
|
|
1479
|
+
greet::name="Michael"
|
|
1480
|
+
age = 21
|
|
1481
|
+
|
|
1482
|
+
x.copy()
|
|
1483
|
+
sath_numbers(1..3)
|
|
1484
|
+
sath db.connect():
|
|
1485
|
+
|
|
1486
|
+
sath 5:
|
|
1487
|
+
|
|
1445
1488
|
"""))
|
|
1446
|
-
print(
|
|
1447
|
-
|
|
1489
|
+
print(
|
|
1490
|
+
translate_for_jupyter(
|
|
1491
|
+
"5 dafa: kaho \"${'hi' times 3}\""
|
|
1492
|
+
)
|
|
1493
|
+
)
|
|
1494
|
+
print(
|
|
1495
|
+
translate_for_klang(
|
|
1496
|
+
"!cmd"
|
|
1497
|
+
)
|
|
1498
|
+
)
|
|
1499
|
+
print(
|
|
1500
|
+
translate_for_klang(
|
|
1501
|
+
"!music chalao"
|
|
1502
|
+
)
|
|
1503
|
+
)
|
|
1504
|
+
|
|
1448
1505
|
|
|
1449
1506
|
if __name__ == "__main__":
|
|
1450
1507
|
main()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|