KL-Py 0.5.4__tar.gz → 0.5.5__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.5.4 → kl_py-0.5.5}/PKG-INFO +1 -1
- {kl_py-0.5.4 → kl_py-0.5.5}/pyproject.toml +1 -1
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/KL_Py.py +69 -29
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/_translate.py +129 -52
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py.egg-info/PKG-INFO +1 -1
- {kl_py-0.5.4 → kl_py-0.5.5}/LICENSE +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/README.md +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/setup.cfg +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/_utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/base.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/button.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/calendar.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/canvas.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/checkbox.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/column.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/combo.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/error.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/frame.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/graph.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/helpers.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/image.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/input.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/list_box.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/menu.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/multiline.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/option_menu.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/pane.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/progress_bar.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/radio.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/separator.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/sizegrip.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/slider.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/spin.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/status_bar.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/stretch.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/tab.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/table.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/text.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/elements/tree.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/themes.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/tray.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/FreeSimpleGUI/window.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/_custom_pandas.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/_custom_sqlite.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/_custom_turtle.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/_error_classes.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/_filepaths.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/_klang_builtins.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/_web_translate.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/automl.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/dnd/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/drag_and_drop/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/export/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/export/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/export/config.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/export/dialogs.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/export/packaging.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/export/shims.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/export/ui.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/export/utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/export/validation.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/fsgdnd/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/fsgui/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/_utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/base.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/button.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/calendar.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/canvas.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/center.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/checkbox.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/column.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/combo.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/error.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/frame.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/graph.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/helpers.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/image.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/input.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/list_box.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/menu.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/multiline.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/option_menu.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/pane.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/progress_bar.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/radio.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/separator.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/sizegrip.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/slider.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/spin.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/status_bar.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/stretch.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/tab.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/table.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/text.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/elements/tree.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/replace.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/tray.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/hindGui/window.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/k2exe/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/k2exe/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/k2exe/config.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/k2exe/dialogs.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/k2exe/packaging.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/k2exe/shims.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/k2exe/ui.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/k2exe/utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/k2exe/validation.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kexe/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kexe/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kexe/config.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kexe/dialogs.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kexe/packaging.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kexe/shims.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kexe/ui.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kexe/utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kexe/validation.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kl2exe/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kl2exe/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kl2exe/config.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kl2exe/dialogs.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kl2exe/packaging.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kl2exe/shims.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kl2exe/ui.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kl2exe/utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/kl2exe/validation.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klang2exe/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klang2exe/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klang2exe/config.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klang2exe/dialogs.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klang2exe/packaging.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klang2exe/shims.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klang2exe/ui.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klang2exe/utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klang2exe/validation.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klangexe/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klangexe/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klangexe/config.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klangexe/dialogs.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klangexe/packaging.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klangexe/shims.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klangexe/ui.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klangexe/utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klangexe/validation.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klexe/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klexe/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klexe/config.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klexe/dialogs.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klexe/packaging.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klexe/shims.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klexe/ui.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klexe/utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/klexe/validation.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/ml.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/np/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/pd/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/plt/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/psgui/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/px/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/pyexe/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/pyexe/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/pyexe/config.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/pyexe/dialogs.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/pyexe/packaging.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/pyexe/shims.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/pyexe/ui.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/pyexe/utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/pyexe/validation.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/pysgdnd/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/__version__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/_internal_utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/adapters.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/api.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/auth.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/__init__.pyi +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/_cffi/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/_cffi/_blocks_output_buffer.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/_cffi/_common.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/_cffi/buffer.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/_cffi/compressor.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/_cffi/decompressor.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/_cffi/zstddict.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/_compat.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/_shutil.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/_streams.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/_zstd.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/_zstdfile.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/py.typed +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/tarfile.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/tarfile.pyi +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/zipfile/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/zipfile/__init__.pyi +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/zipfile/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/zipfile/_path/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/zipfile/_path/__init__.pyi +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/zipfile/_path/glob.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/backports/zstd/zipfile/_path/glob.pyi +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/certifi/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/certifi/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/certifi/core.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/certifi/py.typed +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/certs.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/api.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/cd.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/cli/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/cli/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/constant.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/legacy.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/md.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/models.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/py.typed +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/charset_normalizer/version.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/compat.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/cookies.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/exceptions.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/help.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/hooks.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/idna/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/idna/codec.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/idna/compat.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/idna/core.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/idna/idnadata.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/idna/intranges.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/idna/package_data.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/idna/py.typed +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/idna/uts46data.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/models.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/packages.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/sessions.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/compat.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/decoder.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/encoder.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/errors.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/ordered_dict.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/raw_json.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/scanner.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/_cibw_runner.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/_helpers.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_bigint_as_string.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_bitsize_int_as_string.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_check_circular.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_decimal.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_decode.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_default.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_dump.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_encode_basestring_ascii.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_encode_for_html.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_errors.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_fail.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_float.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_for_json.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_free_threading.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_indent.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_item_sort_key.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_iterable.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_namedtuple.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_pass1.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_pass2.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_pass3.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_raw_json.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_recursion.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_scanstring.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_separators.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_speedups.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_str_subclass.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_subclass.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_subinterpreters.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_tool.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_tuple.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tests/test_unicode.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/simplejson/tool.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/status_codes.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/structures.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/_base_connection.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/_collections.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/_request_methods.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/_version.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/connection.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/connectionpool.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/contrib/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/contrib/emscripten/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/contrib/emscripten/connection.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/contrib/emscripten/fetch.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/contrib/emscripten/request.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/contrib/emscripten/response.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/contrib/pyopenssl.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/contrib/socks.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/exceptions.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/fields.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/filepost.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/http2/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/http2/connection.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/http2/probe.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/poolmanager.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/py.typed +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/response.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/connection.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/proxy.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/request.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/response.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/retry.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/ssl_.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/ssl_match_hostname.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/ssltransport.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/timeout.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/url.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/util.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/urllib3/util/wait.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/requests/utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/sb/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/sk/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/sns/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/toexe/__init__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/toexe/__main__.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/toexe/config.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/toexe/dialogs.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/toexe/packaging.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/toexe/shims.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/toexe/ui.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/toexe/utils.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/toexe/validation.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py/when.py +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py.egg-info/SOURCES.txt +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py.egg-info/dependency_links.txt +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py.egg-info/requires.txt +0 -0
- {kl_py-0.5.4 → kl_py-0.5.5}/src/KL_Py.egg-info/top_level.txt +0 -0
|
@@ -6674,12 +6674,23 @@ def joined_words(*args: tuple[Any]) -> str:
|
|
|
6674
6674
|
if arg is None:
|
|
6675
6675
|
continue
|
|
6676
6676
|
if isinstance(arg, (list, tuple)):
|
|
6677
|
-
arg = joined_words(
|
|
6678
|
-
|
|
6677
|
+
arg = joined_words(
|
|
6678
|
+
*arg
|
|
6679
|
+
)
|
|
6680
|
+
arg = re.sub(
|
|
6681
|
+
r"(?<=, )aur (?=.+$)", "",
|
|
6682
|
+
str(
|
|
6683
|
+
arg
|
|
6684
|
+
)
|
|
6685
|
+
)
|
|
6679
6686
|
if isinstance(arg, float):
|
|
6680
|
-
arg = round(
|
|
6687
|
+
arg = round(
|
|
6688
|
+
arg,
|
|
6689
|
+
2
|
|
6690
|
+
)
|
|
6681
6691
|
if isinstance(arg, bool):
|
|
6682
|
-
arg = "Han"
|
|
6692
|
+
arg = "Han"\
|
|
6693
|
+
if arg else "Nahi"
|
|
6683
6694
|
arg = str(arg)
|
|
6684
6695
|
if ", " in arg:
|
|
6685
6696
|
sub_args: list[str] = arg.split(", ")
|
|
@@ -6692,10 +6703,6 @@ def joined_words(*args: tuple[Any]) -> str:
|
|
|
6692
6703
|
last: str = str(result.pop())
|
|
6693
6704
|
return ", ".join(result) + ", aur " + last
|
|
6694
6705
|
jurewe = joined_words
|
|
6695
|
-
def split_into_words(s: str) -> list[str]:
|
|
6696
|
-
if not isinstance(s, str) or not s.strip(): return ""
|
|
6697
|
-
return re.findall(WORD_RE, s)
|
|
6698
|
-
find_words = findwords = to_words = towords = to_word_list = towordlist = pakro_words = pakrowords = pakro_alfaaz = pakroalfaaz = split_into_words
|
|
6699
6706
|
def json_load(filename: str) -> Obj | list:
|
|
6700
6707
|
if not isinstance(filename, str)\
|
|
6701
6708
|
or not filename.strip():
|
|
@@ -6843,74 +6850,99 @@ def find_words(src: Any) -> list[str]:
|
|
|
6843
6850
|
:type list <blankable, if no words are found>
|
|
6844
6851
|
:description a word list containing all the words from the object
|
|
6845
6852
|
"""
|
|
6846
|
-
if
|
|
6853
|
+
if src is None:
|
|
6847
6854
|
return ""
|
|
6848
|
-
src = str(src)
|
|
6849
|
-
|
|
6855
|
+
src = str(src)\
|
|
6856
|
+
.strip()
|
|
6857
|
+
word_list: list[str] = find_matches(
|
|
6858
|
+
src,
|
|
6859
|
+
WORD_RE
|
|
6860
|
+
)
|
|
6850
6861
|
return word_list
|
|
6851
6862
|
dhundo_alfaaz = dhundo_alfaz = words_of = to_words = find_words
|
|
6863
|
+
find_words = findwords = to_words = towords = to_word_list = towordlist = pakro_words = pakrowords = pakro_alfaaz = pakroalfaaz = split_into_words = find_words
|
|
6852
6864
|
def startswith(x: str|list, y: str|list) -> bool:
|
|
6853
|
-
if not isinstance(x, (str, list, tuple)):
|
|
6865
|
+
if not isinstance(x, (str, list, tuple, set)):
|
|
6854
6866
|
return False
|
|
6855
|
-
if
|
|
6867
|
+
if all(isinstance(item, str) for item in (x, y)):
|
|
6856
6868
|
try:
|
|
6857
|
-
return re.search(
|
|
6869
|
+
return re.search(
|
|
6870
|
+
f"^{y}",
|
|
6871
|
+
x
|
|
6872
|
+
) or False
|
|
6858
6873
|
except re.error as e:
|
|
6859
6874
|
print(f"re.warning:\n * Bad regex. Switching to default `str.startswith` mode, now that the regex mode failed. *Reason*: {str(e).capitalize()}.")
|
|
6860
6875
|
return x.startswith(y)
|
|
6861
|
-
elif isinstance(x, (list, tuple)):
|
|
6862
|
-
if isinstance(x, tuple):
|
|
6876
|
+
elif isinstance(x, (list, tuple, set)):
|
|
6877
|
+
if isinstance(x, (tuple, set)):
|
|
6863
6878
|
x = list(x)
|
|
6864
|
-
if not isinstance(y, (list, tuple)):
|
|
6879
|
+
if not isinstance(y, (list, tuple, set)):
|
|
6865
6880
|
y = [y]
|
|
6866
|
-
if isinstance(y, tuple):
|
|
6881
|
+
if isinstance(y, (tuple, set)):
|
|
6867
6882
|
y = list(y)
|
|
6868
6883
|
if len(x) < len(y):
|
|
6869
6884
|
return False
|
|
6870
6885
|
return x[:len(y)] == y
|
|
6871
6886
|
return False
|
|
6872
|
-
starts_with = startswith
|
|
6887
|
+
ki_shurwat = starts_with = startswith
|
|
6873
6888
|
def endswith(x: str|list, y: str|list) -> bool:
|
|
6874
|
-
if not isinstance(x, (str, list, tuple)):
|
|
6889
|
+
if not isinstance(x, (str, list, tuple, set)):
|
|
6875
6890
|
return False
|
|
6876
|
-
if
|
|
6891
|
+
if all(isinstance(item, str) for item in (x, y)):
|
|
6877
6892
|
try:
|
|
6878
|
-
return re.search(
|
|
6893
|
+
return re.search(
|
|
6894
|
+
f"{y}$",
|
|
6895
|
+
x
|
|
6896
|
+
) or False
|
|
6879
6897
|
except re.error as e:
|
|
6880
6898
|
print(f"re.warning:\n * Bad regex. Switching to default `str.endswith` mode, now that the regex mode failed. *Reason*: {str(e).capitalize()}.")
|
|
6881
6899
|
return x.endswith(y)
|
|
6882
|
-
elif isinstance(x, (list, tuple)):
|
|
6883
|
-
if isinstance(x, tuple):
|
|
6900
|
+
elif isinstance(x, (list, tuple, set)):
|
|
6901
|
+
if isinstance(x, (tuple, set)):
|
|
6884
6902
|
x = list(x)
|
|
6885
|
-
if not isinstance(y, (list, tuple)):
|
|
6903
|
+
if not isinstance(y, (list, tuple, set)):
|
|
6886
6904
|
y = [y]
|
|
6887
|
-
if isinstance(y, tuple):
|
|
6905
|
+
if isinstance(y, (tuple, set)):
|
|
6888
6906
|
y = list(y)
|
|
6889
6907
|
if len(x) < len(y):
|
|
6890
6908
|
return False
|
|
6891
6909
|
return x[-len(y):] == y
|
|
6892
6910
|
return False
|
|
6893
|
-
ends_with = endswith
|
|
6911
|
+
ka_khatma = ends_with = endswith
|
|
6894
6912
|
def upper(src: str) -> str:
|
|
6895
6913
|
if not isinstance(src, str):
|
|
6896
6914
|
return ""
|
|
6897
6915
|
result: str = src.upper()
|
|
6898
6916
|
return result
|
|
6917
|
+
bara_case =\
|
|
6918
|
+
banao_bara_case =\
|
|
6919
|
+
banao_upper_case =\
|
|
6920
|
+
upper
|
|
6899
6921
|
def isupper(src: str) -> bool:
|
|
6900
6922
|
if not isinstance(src, str):
|
|
6901
6923
|
return False
|
|
6902
6924
|
return src.isupper()
|
|
6903
6925
|
is_upper = isupper
|
|
6926
|
+
he_bara_case =\
|
|
6927
|
+
he_upper_case =\
|
|
6928
|
+
isupper
|
|
6904
6929
|
def lower(src: str) -> str:
|
|
6905
6930
|
if not isinstance(src, str):
|
|
6906
6931
|
return ""
|
|
6907
6932
|
result: str = src.lower()
|
|
6908
6933
|
return result
|
|
6934
|
+
chota_case =\
|
|
6935
|
+
banao_chota_case =\
|
|
6936
|
+
banao_lower_case =\
|
|
6937
|
+
lower
|
|
6909
6938
|
def islower(src: str) -> bool:
|
|
6910
6939
|
if not isinstance(src, str):
|
|
6911
6940
|
return False
|
|
6912
6941
|
return src.islower()
|
|
6913
6942
|
is_lower = islower
|
|
6943
|
+
he_chota_case =\
|
|
6944
|
+
he_lower_case =\
|
|
6945
|
+
islower
|
|
6914
6946
|
def snake_case(src: str) -> str:
|
|
6915
6947
|
if not isinstance(src, str):
|
|
6916
6948
|
return ""
|
|
@@ -6923,32 +6955,39 @@ def snake_case(src: str) -> str:
|
|
|
6923
6955
|
result = result.upper()
|
|
6924
6956
|
return result
|
|
6925
6957
|
snakecase = snake_case
|
|
6958
|
+
banao_snake_case = snake_case
|
|
6926
6959
|
def is_snake_case(src: str) -> bool:
|
|
6927
6960
|
if not isinstance(src, str):
|
|
6928
6961
|
return False
|
|
6929
6962
|
return src == snake_case(src)
|
|
6930
6963
|
issnakecase = is_snakecase = is_snake_case
|
|
6964
|
+
he_snake_case = is_snake_case
|
|
6931
6965
|
def title_case(src: str) -> str:
|
|
6932
6966
|
if not isinstance(src, str):
|
|
6933
6967
|
return ""
|
|
6934
6968
|
result: str = src.title()
|
|
6935
6969
|
return result
|
|
6970
|
+
titlecase = title_case
|
|
6971
|
+
banao_title_case = title_case
|
|
6936
6972
|
def is_title_case(src: str) -> bool:
|
|
6937
6973
|
if not isinstance(src, str):
|
|
6938
6974
|
return False
|
|
6939
6975
|
return src.istitle()
|
|
6940
6976
|
istitle = is_title = istitlecase = is_titlecase = is_title_case
|
|
6977
|
+
he_title_case = is_title_case
|
|
6941
6978
|
def sentence_case(src: str) -> str:
|
|
6942
6979
|
if not isinstance(src, str):
|
|
6943
6980
|
return ""
|
|
6944
6981
|
result: str = src.capitalize()
|
|
6945
6982
|
return result
|
|
6946
|
-
sentcase = sent_case = sentence_case
|
|
6983
|
+
sentcase = sent_case = sentencecase = sentence_case
|
|
6984
|
+
banao_sentence_case = sentence_case
|
|
6947
6985
|
def is_sentence_case(src: str) -> bool:
|
|
6948
6986
|
if not isinstance(src, str):
|
|
6949
6987
|
return False
|
|
6950
6988
|
return src == sentence_case(src)
|
|
6951
6989
|
issentcase = is_sentcase = is_sent_case = issentencecase = is_sentencecase = is_sentence_case
|
|
6990
|
+
he_sentence_case = is_sentence_case
|
|
6952
6991
|
class Money:
|
|
6953
6992
|
def __init__(self, amount=0, currency="Rs. "):
|
|
6954
6993
|
self.amount = amount if amount >= 0 else 0
|
|
@@ -7818,4 +7857,5 @@ if __name__ == "__main__":
|
|
|
7818
7857
|
print(([5, 2, 5] + arr).append([[15]]))
|
|
7819
7858
|
lst = numlist("", "6.3", None).append(['5.5'])
|
|
7820
7859
|
print("last removed:", lst.nikalo(6.3, 4, 2, [[[[[5.5]]]]]))
|
|
7821
|
-
print(lst)
|
|
7860
|
+
print(lst)
|
|
7861
|
+
print(ki_shurwat(["hello", "world", "over-driven cars"], "hello"))
|
|
@@ -266,7 +266,7 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
266
266
|
# remove multi-line comments
|
|
267
267
|
# single-line comments will be gotten rid of later
|
|
268
268
|
# FOR A BIG REASON (being settings can contains hashes --- # --- too)
|
|
269
|
-
multi_line_comments: list[str] = re.findall(r"(?:\= *[
|
|
269
|
+
multi_line_comments: list[str] = re.findall(r"(?:\= *[kflerbRxim]*)?[\"\']{3}[\s\S]*?[\"\']{3}", code)
|
|
270
270
|
# *? is used for LAZY matching (matching only one match at a time)
|
|
271
271
|
# it's better if you DO NOT TOUCH THE REGEX
|
|
272
272
|
for multi_line_comment in multi_line_comments:
|
|
@@ -282,7 +282,7 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
282
282
|
processed_multi_line_comment = re.sub("[^\n]*\n[^\n]*", "\n", processed_multi_line_comment)
|
|
283
283
|
code = code.replace(unprocessed_multi_line_comment, processed_multi_line_comment, 1)
|
|
284
284
|
# Remove strings (actual strings, now that multi-line comments are GONE)
|
|
285
|
-
strings: list[str] = find_matches(code, r"(?<![\"\\])[
|
|
285
|
+
strings: list[str] = find_matches(code, r"(?<![\"\\])[kflerbRxim]*(?:\"{3}|\"{1})[^\"]*(?:\"{1}|\"{3})(?!\")") + find_matches(code, r"(?<![\'\\])[kflerbRxim]*(?:\'{1}|\'{3})[^\'\"]*(?:\'{1}|\'{3})(?!\')")
|
|
286
286
|
# added partial support for apostrophe strings (strings initiated with an apostrophe, rather than quotes)
|
|
287
287
|
for i, string in old_enumerate(strings):
|
|
288
288
|
# for it to work,
|
|
@@ -294,17 +294,42 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
294
294
|
was_multi_line_string_initially: bool = False
|
|
295
295
|
was_l_string_initially: bool = False
|
|
296
296
|
was_b_string_initially: bool = False
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
297
|
+
was_regex_x_string_initially: bool = False
|
|
298
|
+
was_i_string_initially: bool = False
|
|
299
|
+
was_regex_m_string_initially: bool = False
|
|
300
|
+
def clear_kf_from_front() -> str:
|
|
301
|
+
if re.search(
|
|
302
|
+
"(?:(?<=^[A-Za-z])[kf]+|^[kf]+)(?=[A-Za-z]*[\"\'])",
|
|
303
|
+
strings[i]
|
|
304
|
+
):
|
|
305
|
+
strings[i] = replace(
|
|
306
|
+
strings[i],
|
|
307
|
+
"(?:(?<=^[A-Za-z])[kf]+|^[kf]+)(?=[A-Za-z]*[\"\'])",
|
|
308
|
+
""
|
|
309
|
+
)
|
|
310
|
+
clear_kf_from_front()
|
|
311
|
+
if re.search("(?:(?<=^[A-Za-z])[xR]+|^[xR]+)(?=[A-Za-z]*[\"\'])", strings[i]):
|
|
312
|
+
strings[i] = replace(strings[i], "(?:(?<=^[A-Za-z])[xR]+|^[xR]+)(?=[A-Za-z]*[\"\'])", "")
|
|
313
|
+
was_regex_x_string_initially = True
|
|
314
|
+
was_l_string_initially = True
|
|
315
|
+
if re.search("(?:(?<=^[A-Za-z])i+|^i+)(?=[A-Za-z]*[\"\'])", strings[i]):
|
|
316
|
+
strings[i] = replace(strings[i], "(?:(?<=^[A-Za-z])i+|^i+)(?=[A-Za-z]*[\"\'])", "")
|
|
317
|
+
was_i_string_initially = True
|
|
318
|
+
if re.search("(?:(?<=^[A-Za-z])m+|^m+)(?=[A-Za-z]*[\"\'])", strings[i]):
|
|
319
|
+
strings[i] = replace(strings[i], "(?:(?<=^[A-Za-z])m+|^m+)(?=[A-Za-z]*[\"\'])", "")
|
|
320
|
+
was_regex_m_string_initially = True
|
|
321
|
+
clear_kf_from_front()
|
|
302
322
|
if re.search("(?:(?<=^[A-Za-z])[ler]+|^[ler]+)(?=[A-Za-z]*[\"\'])", strings[i]):
|
|
303
323
|
strings[i] = replace(strings[i], "(?:(?<=^[A-Za-z])[ler]+|^[ler]+)(?=[A-Za-z]*[\"\'])", "")
|
|
304
324
|
was_l_string_initially = True
|
|
305
|
-
if re.search("(?:(?<=^[A-Za-z])b
|
|
306
|
-
strings[i] = replace(strings[i], "(?:(?<=^[A-Za-z])b
|
|
325
|
+
if re.search("(?:(?<=^[A-Za-z])b+|^b+)(?=[A-Za-z]*[\"\'])", strings[i]):
|
|
326
|
+
strings[i] = replace(strings[i], "(?:(?<=^[A-Za-z])b+|^b+)(?=[A-Za-z]*[\"\'])", "")
|
|
307
327
|
was_b_string_initially = True
|
|
328
|
+
if re.search(r"^[\"\']{3}(?=[\s\S]+)", strings[i]):
|
|
329
|
+
# must appear
|
|
330
|
+
# at last
|
|
331
|
+
strings[i] = strings[i][2:-2].replace("\n", "\\n")
|
|
332
|
+
was_multi_line_string_initially = True
|
|
308
333
|
strings[i] = strings[i][1:-1]
|
|
309
334
|
if len(strings[i]) == 1:
|
|
310
335
|
# safety: let single characters pass through
|
|
@@ -359,66 +384,72 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
359
384
|
r"(?<=\w) k[aei] (?=\w)",
|
|
360
385
|
"."
|
|
361
386
|
)
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
# and allows template strings like "${2+3 he}", "${a+b he}"
|
|
371
|
-
strings[i] = replace(strings[i], r"(?<=\S\.)\b_cl(?:as)?s_?name\b", "__class__.__name__")
|
|
372
|
-
strings[i] = replace(strings[i], r"(?<=\S\.)\b_cl(?:as)?s\b", "__class__")
|
|
387
|
+
processed_templt = replace(processed_templt, r"\b(?:this|its?|mer[aie]|khud(?:[_ ]?k[aeio])?(?! *[A-Za-z_]))\b", "self")
|
|
388
|
+
processed_templt = replace(processed_templt, r"\b(?:super|mom|parent)(?! *\()\b", "super()")
|
|
389
|
+
processed_templt = replace(processed_templt, r"(?<=\S )\bplu?s\b(?= *[^\(\:\s])", "+")
|
|
390
|
+
processed_templt = replace(processed_templt, r"(?<=\S )\bmi?nu?s\b(?= *[^\(\:\s])", "-")
|
|
391
|
+
processed_templt = replace(processed_templt, r"(?<=\S )\b(?:guna|dafa|baar|marta?ba)\b(?= *[^\(\:\s])", "*")
|
|
392
|
+
processed_templt = replace(processed_templt, r"(?<=\S )\bdiv\b(?= *[^\(\:\s])", "/")
|
|
393
|
+
processed_templt = replace(processed_templt, r"(?<=\S\.)\b_cl(?:as)?s_?name\b", "__class__.__name__")
|
|
394
|
+
processed_templt = replace(processed_templt, r"(?<=\S\.)\b_cl(?:as)?s\b", "__class__")
|
|
373
395
|
# readable index access
|
|
374
396
|
# sequence MATTERS
|
|
375
397
|
# sequence is the only thing holding it together
|
|
376
|
-
|
|
398
|
+
processed_templt = replace(processed_templt, r"\[\.?(?:ba{1,2}d *\:?|har) *(?<step>\-?\d+(?:[\+\-\*\/]*\d*)+)(?: ?(?:ke[_ ])?ba{1,2}d)?[ _\/\-]\d+\]", "[::$step]")
|
|
377
399
|
# SUPPOSED TO COME FIRST
|
|
378
400
|
# and then the following line:
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
401
|
+
processed_templt = replace(processed_templt, r"\[\.?b(?:a(?:a?d|ger)|ina)(?: (?:pehl[ae]|shurwa{1,2}ti))? (?<start>\d+(?:[\+\-\*\/]*\d*)+)(?:st|nd|rd|h?l[ae]|th|th?[ae]|s?r[ae]|w[ae])?(?:,? +(?:\d+ )?baad (?<step>\w+(?:[\+\-\*\/]*\d*)+) *[ \/\-] *\w+(?:[\+\-\*\/]*\d*))?\]", "[$start::$step]")
|
|
402
|
+
processed_templt = replace(processed_templt, r"\[\.?(?<n>\d+(?:[\+\-\*\/]*\d*)+)(?:st|nd|rd|h?l[ae]|th|th?[ae]|s?r[ae]|w[ae])(?: se)? (?:(?:l(?:e(?:ke|n(?:gth)?)|ambai)|size)(?: a{1,2}kh(?:ir|ri)(?: tak)?)?|a{1,2}kh(?:ir|ri)(?: tak)) *(?<stop>\-\d+)? *(?:tak *)?(?:,? +(?:\d+ )?baad (?<step>\w+(?:[\+\-\*\/]*\d*)+) *[ \/\-] *\w+(?:[\+\-\*\/]*\d*))?\]", "[$n-1:$stop:$step]")
|
|
403
|
+
processed_templt = replace(processed_templt, r"\[\.?b(?:ager|ina) (?:last|akhri)(?:,? +(?:\d+ )?baad (?<step>\w+(?:[\+\-\*\/]*\d*)+) *[ \/\-] *\w+(?:[\+\-\*\/]*\d*))?\]", "[:-1:$step]")
|
|
404
|
+
processed_templt = replace(processed_templt, 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]")
|
|
383
405
|
# reversing
|
|
384
|
-
|
|
406
|
+
processed_templt = replace(processed_templt, r"\[\.?(?:k[aeio]\:?[_ ])?(?:ula?t[ai]?|rev(?:er(?:se)?)?[dt]?)\]", "[::-1]")
|
|
385
407
|
while SEMICOLON_SUBINDEX_ACCESSOR_RE_COMPILED\
|
|
386
|
-
.search(
|
|
387
|
-
|
|
388
|
-
|
|
408
|
+
.search(processed_templt):
|
|
409
|
+
processed_templt = replace(
|
|
410
|
+
processed_templt,
|
|
389
411
|
SEMICOLON_SUBINDEX_ACCESSOR_RE,
|
|
390
412
|
"${first_index}][${second_index}${rest}"
|
|
391
413
|
)
|
|
392
|
-
|
|
393
|
-
|
|
414
|
+
processed_templt = replace(
|
|
415
|
+
processed_templt,
|
|
394
416
|
r"(?<=\w) *\:\:(?!\s*\()([^\n]*)",
|
|
395
417
|
"($1)"
|
|
396
418
|
)
|
|
397
419
|
# number-based mid slicing (rather than index-based)
|
|
398
420
|
# comes before
|
|
399
|
-
|
|
421
|
+
processed_templt = replace(processed_templt, 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]")
|
|
400
422
|
# comes after {similar, but different:}
|
|
401
|
-
|
|
402
|
-
|
|
423
|
+
processed_templt = replace(processed_templt, 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 )?(?:rakhe|sha{1,2}mil|shuma{1,2}r|mila{1,2}k?e|(?:ke[_ ]?)?sath)(?: akhri)?)?(?:,? +(?:\d+ )?baad (?<step>\w+(?:[\+\-\*\/]*\d*)+) *[ \/\-] *\w+(?:[\+\-\*\/]*\d*))?\]", "[$start-1 if $start > 0 else $start:$stop:$step]")
|
|
424
|
+
processed_templt = replace(processed_templt, r"\[\.?(?:(?:se|f(?:ir)?st|pehl(?:e|a))(?:[_ ]ke)?|shuru?(?:[_ ][smk]e|wa{1,2}ti)) *[\: ] *(?<stop>\d+)(?: tak)?(?:,? +(?:\d+ )?baad (?<step>\w+(?:[\+\-\*\/]*\d*)+) *[ \/\-] *\w+(?:[\+\-\*\/]*\d*))?\]", "[:$stop:$step]")
|
|
403
425
|
# ^ e.g. "hello world"[.first4] -> "hell"
|
|
404
|
-
|
|
426
|
+
processed_templt = replace(processed_templt, r"\[\.?(?:ba{1,2}d )?(?:la?st|akhri|akhir)(?:[_ ]?[smk]e)? *[\: ] *(?<right_start>\d+)(?:,? +(?:\d+ )?baad (?<step>\w+(?:[\+\-\*\/]*\d*)+) *[ \/\-] *\w+(?:[\+\-\*\/]*\d*))?\]", "[-$right_start::$step]")
|
|
405
427
|
# ^ e.g. "hello world"[.last:?4] -> "orld"
|
|
406
|
-
|
|
428
|
+
processed_templt = replace(processed_templt, r"\[(?:\.?(?:f(?:ir)?st|pehla)|\.?1(?:st|h?la))\]", "[0]")
|
|
407
429
|
# ^ e.g. "hello world"[.1st] -> "h"
|
|
408
|
-
|
|
430
|
+
processed_templt = replace(processed_templt, r"\[(?:\.?(?:sec(?:o|d|o?nd?)?|d(?:u|oo)sra)|\.?2(?:nd|s?ra))\]", "[1]")
|
|
409
431
|
# ^ e.g. "hello world"[.second] -> "e"
|
|
410
|
-
|
|
432
|
+
processed_templt = replace(processed_templt, r"\[(?:\.?(?:th(?:i|d|i?rd?)|t(?:i|ee)sra)|\.?3(?:rd|s?ra))\]", "[2]")
|
|
411
433
|
# ^ e.g. "hello world"[.third] -> "l"
|
|
412
|
-
|
|
413
|
-
|
|
434
|
+
processed_templt = replace(processed_templt, r"\[\.?(?:(?:f(?:ir)?st|shuru?(?:wat)?(?:[_ ]?(?:i|(?:k|wal)a|me))?|n)\:)?(?<n>\d+)(?:st|nd|rd|h?la|th|th?a|s?ra|wa)\]", "[$n-1]")
|
|
435
|
+
processed_templt = replace(processed_templt, r"\[\.?(?:la?st|a{1,2}kh(?:ir|ri)(?:[_ ]?(?:(?:k|wal)a|[sm]e))?|\-n) *\:? *(?<n>\d+)(?:st|nd|rd|h?la|th|th?a|s?ra|wa)\]", "[-$n]")
|
|
414
436
|
# ^ catches arr[akhri:4tha]
|
|
415
|
-
|
|
437
|
+
processed_templt = replace(processed_templt, r"\[\.?(?<n>\d+)(?:st|nd|rd|h?la|th|th?a|s?ra|wa) (?:la?st|a{1,2}kh(?:ir|ri)(?:[_ ]?(?:(?:k|wal)a|[sm]e))?)\]", "[-$n]")
|
|
416
438
|
# ^ catches arr[4tha akhri], same functionality, too different allowed orders for convenience
|
|
417
|
-
|
|
439
|
+
processed_templt = replace(processed_templt, r"\[(?:(?:(?:\.th(?:i|d|i?rd?))[_ ]?la?st)|\.?[t3](?:i|ee)?(?:s?ra|rd)[_ ]?(?:a{1,2}khri|la?st))\]", "[-3]")
|
|
418
440
|
# ^ e.g. "hello world"[.third] -> "l"
|
|
419
|
-
|
|
441
|
+
processed_templt = replace(processed_templt, r"\[(?:(?:(?:\.sec(?:o|d|o?nd?)?|2nd)[_ ]?la?st)|\.?[d2](?:u|oo)?(?:s?ra|nd)[_ ]?(?:a{1,2}khri|la?st))\]", "[-2]")
|
|
420
442
|
# ^ e.g. "hello world"[.secondlast] -> "s"
|
|
421
|
-
|
|
443
|
+
processed_templt = replace(processed_templt, r"\[\.?(?:(?:f(?:ir)?st|pehla)|1(?:st|h?la))?[_ ]?(?:\.?(?:la?st|a{1,2}khri))\]", "[-1]")
|
|
444
|
+
strings[i] = replace(
|
|
445
|
+
strings[i],
|
|
446
|
+
re.escape(
|
|
447
|
+
templt
|
|
448
|
+
),
|
|
449
|
+
processed_templt
|
|
450
|
+
) # escaping here is mandatory
|
|
451
|
+
# NOTE: the RE.ESCAPE part here, is NECESSARY
|
|
452
|
+
# and allows template strings like "${2+3 he}", "${a+b he}"
|
|
422
453
|
strings[i] = replace(strings[i], r"(?<=\<)class(?= [\"\'][A-Za-z_][\w\.]*[\"\']\>)", "kism:")
|
|
423
454
|
strings[i] = replace(strings[i], r"(?<=\<)enum (?<name_of_enum>[\"\'][A-Za-z_][\w\.]*[\"\'])(?=\>)", "kism: Enum[$name_of_enum]")
|
|
424
455
|
# ^ meaning <class 'int'> SHOULD BE <kism 'int'>
|
|
@@ -433,12 +464,6 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
433
464
|
strings[i] = replace(strings[i], r"\bNone\b", "koi_na")
|
|
434
465
|
strings[i] = replace(strings[i], r"\bTrue\b", "Han")
|
|
435
466
|
strings[i] = replace(strings[i], r"\bFalse\b", "Nahi")
|
|
436
|
-
strings[i] = replace(strings[i], r"\b(?:this|its?|mer[aie]|khud(?:[_ ]?k[aeio])?(?! *[A-Za-z_]))\b", "self")
|
|
437
|
-
strings[i] = replace(strings[i], r"\b(?:super|mom|parent)(?! *\()\b", "super()")
|
|
438
|
-
strings[i] = replace(strings[i], r"(?<=\S )\bplu?s\b(?= *[^\(\:\s])", "+")
|
|
439
|
-
strings[i] = replace(strings[i], r"(?<=\S )\bmi?nu?s\b(?= *[^\(\:\s])", "-")
|
|
440
|
-
strings[i] = replace(strings[i], r"(?<=\S )\b(?:guna|dafa|baar|marta?ba)\b(?= *[^\(\:\s])", "*")
|
|
441
|
-
strings[i] = replace(strings[i], r"(?<=\S )\bdiv\b(?= *[^\(\:\s])", "/")
|
|
442
467
|
# the #### part helps get rid of a bug
|
|
443
468
|
# this replaces previously removed {formatted_var} functionality with new $-based functionality
|
|
444
469
|
# WARNING: r"{$1}####" should be as is
|
|
@@ -453,13 +478,59 @@ def translate_for_jupyter(code: str) -> None:
|
|
|
453
478
|
# if the `l"{{content}}"` handle is used
|
|
454
479
|
strings[i] = old_string
|
|
455
480
|
# ^^mandatory step
|
|
456
|
-
strings[i] = replace(strings[i], "(?:(?<=^[A-Za-z])[
|
|
481
|
+
strings[i] = replace(strings[i], "(?:(?<=^[A-Za-z])[lerRxim]+|^[lerRxim]+)(?=[A-Za-z]*[\"\'])", "")
|
|
457
482
|
strings[i] = replace(strings[i], "(?:(?<=^[A-Za-z])[kf]+|^[kf]+)(?=[A-Za-z]*[\"\'])", "f")
|
|
458
483
|
# now that the string is back to being its original version
|
|
459
484
|
# ^ this replacement has to
|
|
460
485
|
# take place again
|
|
486
|
+
strings[i] = replace(
|
|
487
|
+
strings[i],
|
|
488
|
+
r"^[im]+(?=[A-Za-z]*[\"\'])|(?<=^[kfler])[im]+(?=[A-Za-z]*[\"\'])",
|
|
489
|
+
""
|
|
490
|
+
)
|
|
461
491
|
if was_b_string_initially:
|
|
462
492
|
strings[i] = old_string
|
|
493
|
+
strings[i] = replace(strings[i], "(?:(?<=^[A-Za-z])[lerRxim]+|^[lerRxim]+)(?=[A-Za-z]*[\"\'])", "")
|
|
494
|
+
strings[i] = replace(strings[i], "(?:(?<=^[A-Za-z])[kf]+|^[kf]+)(?=[A-Za-z]*[\"\'])", "")
|
|
495
|
+
strings[i] = replace(
|
|
496
|
+
strings[i],
|
|
497
|
+
r"(?<=^b)[kflerb]+(?=[A-Za-z]*[\"\'])|(?<=^[kflerb]|b)b+(?=[A-Za-z]*[\"\'])",
|
|
498
|
+
""
|
|
499
|
+
)
|
|
500
|
+
elif was_regex_x_string_initially:
|
|
501
|
+
strings[i] = replace(
|
|
502
|
+
strings[i],
|
|
503
|
+
r"^[im]+(?=[A-Za-z]*[\"\'])|(?<=^[kfler])[im]+(?=[A-Za-z]*[\"\'])",
|
|
504
|
+
""
|
|
505
|
+
)
|
|
506
|
+
strings[i] = f"re.compile({strings[i]}"
|
|
507
|
+
if any(f for f in [was_i_string_initially, was_regex_m_string_initially]):
|
|
508
|
+
strings[i] += ", flags="
|
|
509
|
+
if was_i_string_initially:
|
|
510
|
+
# [xR]i""
|
|
511
|
+
# MUST be
|
|
512
|
+
# IN ITS OWN
|
|
513
|
+
# block
|
|
514
|
+
strings[i] += "re.IGNORECASE | "
|
|
515
|
+
if was_regex_m_string_initially:
|
|
516
|
+
# [xR]m""
|
|
517
|
+
# MUST be
|
|
518
|
+
# IN ITS OWN
|
|
519
|
+
# block
|
|
520
|
+
strings[i] += "re.MULTILINE | "
|
|
521
|
+
strings[i] = strings[i].rstrip("| ")
|
|
522
|
+
strings[i] += ")"
|
|
523
|
+
elif was_i_string_initially:
|
|
524
|
+
# should come
|
|
525
|
+
# at the last
|
|
526
|
+
# and stay
|
|
527
|
+
# an elif block
|
|
528
|
+
strings[i] = replace(
|
|
529
|
+
strings[i],
|
|
530
|
+
r"^[im]+(?=[A-Za-z]*[\"\'])|(?<=^[kfler])[im]+(?=[A-Za-z]*[\"\'])",
|
|
531
|
+
""
|
|
532
|
+
)
|
|
533
|
+
strings[i] = strings[i].lower()
|
|
463
534
|
# auto-escape bad escapes (EXCEPT SPECIAL CHARACTERS LIKE newline \n, tabbreak \t, return carriage \r, backspace \b, vertical space \v, ASCII bell \a, form feed \f, escaped backslash \\, escaped quote \", escaped apostrophe \', among others.)
|
|
464
535
|
# kill the need for r-strings
|
|
465
536
|
# completely
|
|
@@ -2408,7 +2479,13 @@ arr kism<tuple[3d]> = [
|
|
|
2408
2479
|
]
|
|
2409
2480
|
kaho x[0;1;2]
|
|
2410
2481
|
|
|
2411
|
-
age &kism =
|
|
2482
|
+
age &kism = haal
|
|
2483
|
+
pygame mese mangao mixer
|
|
2484
|
+
mangao mixer pygame mese
|
|
2485
|
+
|
|
2486
|
+
agar x"hey {'worlD'}".search("hey world"):
|
|
2487
|
+
test = l\"\"\"hello
|
|
2488
|
+
worlD\"\"\"
|
|
2412
2489
|
"""
|
|
2413
2490
|
)
|
|
2414
2491
|
)
|
|
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
|