KL-Py 0.4.2__tar.gz → 0.4.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.4.2 → kl_py-0.4.4}/PKG-INFO +1 -1
- {kl_py-0.4.2 → kl_py-0.4.4}/pyproject.toml +1 -1
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/KL_Py.py +294 -60
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_custom_sqlite.py +3 -1
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_klang_builtins.py +166 -14
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_translate.py +4 -2
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_web_translate.py +1 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py.egg-info/PKG-INFO +1 -1
- {kl_py-0.4.2 → kl_py-0.4.4}/LICENSE +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/README.md +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/setup.cfg +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/_utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/base.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/button.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/calendar.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/canvas.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/checkbox.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/column.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/combo.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/error.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/frame.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/graph.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/helpers.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/image.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/input.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/list_box.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/menu.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/multiline.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/option_menu.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/pane.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/progress_bar.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/radio.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/separator.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/sizegrip.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/slider.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/spin.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/status_bar.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/stretch.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/tab.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/table.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/text.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/tree.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/themes.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/tray.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/window.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_custom_pandas.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_custom_turtle.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_error_classes.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_filepaths.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/automl.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/dnd/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/drag_and_drop/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/__main__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/config.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/dialogs.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/packaging.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/shims.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/ui.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/validation.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/fsgdnd/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/fsgui/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/_utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/base.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/button.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/calendar.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/canvas.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/center.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/checkbox.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/column.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/combo.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/error.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/frame.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/graph.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/helpers.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/image.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/input.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/list_box.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/menu.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/multiline.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/option_menu.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/pane.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/progress_bar.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/radio.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/separator.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/sizegrip.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/slider.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/spin.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/status_bar.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/stretch.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/tab.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/table.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/text.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/tree.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/replace.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/tray.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/window.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/__main__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/config.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/dialogs.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/packaging.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/shims.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/ui.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/validation.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/__main__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/config.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/dialogs.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/packaging.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/shims.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/ui.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/validation.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/__main__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/config.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/dialogs.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/packaging.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/shims.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/ui.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/validation.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/__main__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/config.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/dialogs.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/packaging.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/shims.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/ui.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/validation.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/__main__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/config.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/dialogs.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/packaging.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/shims.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/ui.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/validation.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/__main__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/config.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/dialogs.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/packaging.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/shims.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/ui.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/validation.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/ml.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/np/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pd/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/plt/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/psgui/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/px/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/__main__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/config.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/dialogs.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/packaging.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/shims.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/ui.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/validation.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pysgdnd/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/__version__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/_internal_utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/adapters.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/api.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/auth.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/certifi/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/certifi/__main__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/certifi/core.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/certifi/py.typed +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/certs.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/__main__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/api.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/cd.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/cli/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/cli/__main__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/constant.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/legacy.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/md.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/models.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/py.typed +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/version.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/compat.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/cookies.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/exceptions.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/help.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/hooks.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/codec.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/compat.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/core.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/idnadata.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/intranges.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/package_data.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/py.typed +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/uts46data.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/models.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/packages.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/sessions.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/status_codes.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/structures.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/_base_connection.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/_collections.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/_request_methods.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/_version.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/connection.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/connectionpool.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/emscripten/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/emscripten/connection.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/emscripten/fetch.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/emscripten/request.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/emscripten/response.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/pyopenssl.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/socks.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/exceptions.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/fields.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/filepost.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/http2/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/http2/connection.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/http2/probe.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/poolmanager.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/py.typed +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/response.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/connection.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/proxy.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/request.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/response.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/retry.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/ssl_.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/ssl_match_hostname.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/ssltransport.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/timeout.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/url.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/util.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/wait.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/sb/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/sk/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/sns/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/__init__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/__main__.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/config.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/dialogs.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/packaging.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/shims.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/ui.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/utils.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/validation.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/when.py +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py.egg-info/SOURCES.txt +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py.egg-info/dependency_links.txt +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py.egg-info/requires.txt +0 -0
- {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py.egg-info/top_level.txt +0 -0
|
@@ -496,37 +496,135 @@ def rand_range(start: int = 9, stop: int|None = None) -> list[int]:
|
|
|
496
496
|
if start == 0:
|
|
497
497
|
return []
|
|
498
498
|
length = abs(start)
|
|
499
|
-
return [
|
|
499
|
+
return [
|
|
500
|
+
rand_int(
|
|
501
|
+
0,
|
|
502
|
+
start+1\
|
|
503
|
+
if start > 0\
|
|
504
|
+
else start-1
|
|
505
|
+
)\
|
|
506
|
+
for _ in range(
|
|
507
|
+
length
|
|
508
|
+
)
|
|
509
|
+
]
|
|
500
510
|
else:
|
|
501
511
|
if not isinstance(stop, int):
|
|
502
512
|
stop = 9
|
|
503
513
|
if stop < start:
|
|
504
514
|
start, stop = stop, start
|
|
505
|
-
length = abs(
|
|
515
|
+
length = abs(start)
|
|
506
516
|
if start == stop:
|
|
507
517
|
return [start] * length # or handle this case differently
|
|
508
|
-
return [
|
|
518
|
+
return [
|
|
519
|
+
rand_int(start, stop)\
|
|
520
|
+
for _ in range(length)
|
|
521
|
+
]
|
|
509
522
|
randrange = rand_range
|
|
523
|
+
def randphone(cc: str = "92", n=1) -> str:
|
|
524
|
+
if not isinstance(
|
|
525
|
+
n,
|
|
526
|
+
int
|
|
527
|
+
):
|
|
528
|
+
n = 1
|
|
529
|
+
n = abs(
|
|
530
|
+
n
|
|
531
|
+
)
|
|
532
|
+
DEFAULT_CC: Final[str] = "92"
|
|
533
|
+
if isinstance(cc, int):
|
|
534
|
+
cc = str(
|
|
535
|
+
abs(
|
|
536
|
+
cc
|
|
537
|
+
)
|
|
538
|
+
)
|
|
539
|
+
if not isinstance(
|
|
540
|
+
cc,
|
|
541
|
+
str
|
|
542
|
+
):
|
|
543
|
+
cc = DEFAULT_CC
|
|
544
|
+
cc = cc\
|
|
545
|
+
.strip()\
|
|
546
|
+
.strip("+ ")
|
|
547
|
+
if cc == "0":
|
|
548
|
+
cc = DEFAULT_CC
|
|
549
|
+
results: list[
|
|
550
|
+
str
|
|
551
|
+
] = []
|
|
552
|
+
for _ in range(n):
|
|
553
|
+
num: str = f"+{cc}"
|
|
554
|
+
if cc == "92":
|
|
555
|
+
num += "3"
|
|
556
|
+
else:
|
|
557
|
+
num += str(
|
|
558
|
+
random\
|
|
559
|
+
.randint(
|
|
560
|
+
0,
|
|
561
|
+
9
|
|
562
|
+
)
|
|
563
|
+
)
|
|
564
|
+
num += "".join(
|
|
565
|
+
[
|
|
566
|
+
str(n)\
|
|
567
|
+
for n in [
|
|
568
|
+
random.randint(
|
|
569
|
+
0,
|
|
570
|
+
9
|
|
571
|
+
)\
|
|
572
|
+
for _\
|
|
573
|
+
in range(9)
|
|
574
|
+
]
|
|
575
|
+
]
|
|
576
|
+
)
|
|
577
|
+
results.append(
|
|
578
|
+
num
|
|
579
|
+
)
|
|
580
|
+
if len(results) == 1:
|
|
581
|
+
return results[0]
|
|
582
|
+
return results
|
|
583
|
+
random_phone_number =\
|
|
584
|
+
random_phone =\
|
|
585
|
+
randomphone =\
|
|
586
|
+
rand_phone =\
|
|
587
|
+
randphone
|
|
510
588
|
def rand_str(length: int = 16) -> str:
|
|
511
|
-
if not isinstance(
|
|
512
|
-
length
|
|
513
|
-
|
|
514
|
-
|
|
589
|
+
if not isinstance(
|
|
590
|
+
length,
|
|
591
|
+
int
|
|
592
|
+
):
|
|
593
|
+
length = 16
|
|
594
|
+
if length < 1:
|
|
595
|
+
length = 1
|
|
515
596
|
chars: str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+=_"
|
|
516
597
|
return_value: str = ""
|
|
517
|
-
for
|
|
518
|
-
return_value += chars[
|
|
598
|
+
for _ in range(length):
|
|
599
|
+
return_value += chars[
|
|
600
|
+
randint(
|
|
601
|
+
0,
|
|
602
|
+
len(
|
|
603
|
+
chars
|
|
604
|
+
) - 1
|
|
605
|
+
)
|
|
606
|
+
]
|
|
519
607
|
return return_value
|
|
520
608
|
randstr = rand_str
|
|
521
609
|
def rand_hex(length: int = 16) -> str:
|
|
522
|
-
if not isinstance(
|
|
523
|
-
length
|
|
524
|
-
|
|
525
|
-
|
|
610
|
+
if not isinstance(
|
|
611
|
+
length,
|
|
612
|
+
int
|
|
613
|
+
):
|
|
614
|
+
length = 16
|
|
615
|
+
if length < 1:
|
|
616
|
+
length = 1
|
|
526
617
|
chars: str = "0123456789abcdef"
|
|
527
618
|
return_value: str = ""
|
|
528
|
-
|
|
529
|
-
return_value += chars[
|
|
619
|
+
for _ in range(length):
|
|
620
|
+
return_value += chars[
|
|
621
|
+
randint(
|
|
622
|
+
0,
|
|
623
|
+
len(
|
|
624
|
+
chars
|
|
625
|
+
) - 1
|
|
626
|
+
)
|
|
627
|
+
]
|
|
530
628
|
return return_value
|
|
531
629
|
randhex = rand_hex
|
|
532
630
|
def rand_uuid() -> str:
|
|
@@ -4119,7 +4217,12 @@ def Int(
|
|
|
4119
4217
|
x = str(x)\
|
|
4120
4218
|
.lower()\
|
|
4121
4219
|
.strip()
|
|
4122
|
-
x =
|
|
4220
|
+
x = replacei(
|
|
4221
|
+
x,
|
|
4222
|
+
r"(?<=\d) *[Zz] *(?=[\+\-]?\d)",
|
|
4223
|
+
"e"
|
|
4224
|
+
)
|
|
4225
|
+
x = replacei(
|
|
4123
4226
|
x,
|
|
4124
4227
|
r"[^Ee\+\-\.\d]|(?<=[A-Za-z_])[Ee]|[Ee\.](?![\d\+\-])|(?<![^\de\+\-\.])[\.\+\-](?=[^\de\+\-\.])",
|
|
4125
4228
|
""
|
|
@@ -4168,8 +4271,14 @@ def Flt(
|
|
|
4168
4271
|
return 1.0\
|
|
4169
4272
|
if x else 0.0
|
|
4170
4273
|
if isinstance(x, str):
|
|
4274
|
+
x = x.strip()
|
|
4275
|
+
x = replacei(
|
|
4276
|
+
x,
|
|
4277
|
+
r"(?<=\d) *[Zz] *(?=[\+\-]?\d)",
|
|
4278
|
+
"e"
|
|
4279
|
+
)
|
|
4171
4280
|
x = replacei(
|
|
4172
|
-
x
|
|
4281
|
+
x,
|
|
4173
4282
|
r"[^Ee\+\-\.\d]|(?<=[A-Za-z_])[Ee]|[Ee\.](?![\d\+\-])|(?<![^\de\+\-\.])[\.\+\-](?=[^\de\+\-\.])",
|
|
4174
4283
|
""
|
|
4175
4284
|
)
|
|
@@ -4284,21 +4393,59 @@ def th(n: Number) -> str:
|
|
|
4284
4393
|
else:
|
|
4285
4394
|
suffix = {1: "st", 2: "nd", 3: "rd"}.get(n % 10, "th")
|
|
4286
4395
|
return str(n) + suffix
|
|
4287
|
-
def fus(amount: Number) -> str:
|
|
4288
|
-
if amount is None
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
|
|
4396
|
+
def fus(amount: Number, precision: int = 2) -> str:
|
|
4397
|
+
if amount is None\
|
|
4398
|
+
or not isinstance(amount, Number):
|
|
4399
|
+
return ""
|
|
4400
|
+
if not (
|
|
4401
|
+
isinstance(
|
|
4402
|
+
precision,
|
|
4403
|
+
int
|
|
4404
|
+
)\
|
|
4405
|
+
and precision\
|
|
4406
|
+
>= 0
|
|
4407
|
+
):
|
|
4408
|
+
precision = 2
|
|
4409
|
+
amount = round(
|
|
4410
|
+
amount,
|
|
4411
|
+
precision
|
|
4412
|
+
)
|
|
4413
|
+
parts = str(
|
|
4414
|
+
amount
|
|
4415
|
+
)\
|
|
4416
|
+
.split('.')
|
|
4417
|
+
integer_part = '{:,}'.format(
|
|
4418
|
+
int(parts[0])
|
|
4419
|
+
)
|
|
4420
|
+
decimal_part = f".{parts[1]}"\
|
|
4421
|
+
if len(parts) > 1 else ''
|
|
4294
4422
|
result: str = f"{integer_part}{decimal_part}"
|
|
4295
4423
|
result = re.sub(r"\.0+$", "", result)
|
|
4296
4424
|
return result
|
|
4297
|
-
def fpk(amount: Number) -> str:
|
|
4298
|
-
if amount is None
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
4425
|
+
def fpk(amount: Number, precision: int = 2) -> str:
|
|
4426
|
+
if amount is None\
|
|
4427
|
+
or not isinstance(
|
|
4428
|
+
amount,
|
|
4429
|
+
Number
|
|
4430
|
+
):
|
|
4431
|
+
return ""
|
|
4432
|
+
if not (
|
|
4433
|
+
isinstance(
|
|
4434
|
+
precision,
|
|
4435
|
+
int
|
|
4436
|
+
)\
|
|
4437
|
+
and precision\
|
|
4438
|
+
>= 0
|
|
4439
|
+
):
|
|
4440
|
+
precision = 2
|
|
4441
|
+
amount = round(
|
|
4442
|
+
amount,
|
|
4443
|
+
precision
|
|
4444
|
+
)
|
|
4445
|
+
parts = str(
|
|
4446
|
+
amount
|
|
4447
|
+
)\
|
|
4448
|
+
.split('.')
|
|
4302
4449
|
# Indian formatting for integer part
|
|
4303
4450
|
integer_part = parts[0]
|
|
4304
4451
|
if len(integer_part) > 3:
|
|
@@ -4321,13 +4468,41 @@ tin: int = 3
|
|
|
4321
4468
|
chaar: int = 4
|
|
4322
4469
|
ath: int = 8
|
|
4323
4470
|
aath = ath
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4329
|
-
|
|
4330
|
-
|
|
4471
|
+
sola: int = 16
|
|
4472
|
+
batees: int = 32
|
|
4473
|
+
battis = batis = battees = batees
|
|
4474
|
+
def number_list_validator(
|
|
4475
|
+
args: Iterable[Any]
|
|
4476
|
+
) -> list:
|
|
4477
|
+
if not isinstance(
|
|
4478
|
+
args,
|
|
4479
|
+
Iterable
|
|
4480
|
+
):
|
|
4481
|
+
return []
|
|
4482
|
+
if len(args) == 1\
|
|
4483
|
+
and isinstance(
|
|
4484
|
+
args[0],
|
|
4485
|
+
Iterable
|
|
4486
|
+
):
|
|
4487
|
+
args = args[0]
|
|
4488
|
+
if not all(
|
|
4489
|
+
isinstance(
|
|
4490
|
+
arg,
|
|
4491
|
+
(
|
|
4492
|
+
int,
|
|
4493
|
+
float
|
|
4494
|
+
)
|
|
4495
|
+
)\
|
|
4496
|
+
for arg in args
|
|
4497
|
+
):
|
|
4498
|
+
return []
|
|
4499
|
+
return args
|
|
4500
|
+
filter_number_list =\
|
|
4501
|
+
is_number_list =\
|
|
4502
|
+
is_numeric_list =\
|
|
4503
|
+
he_number_list =\
|
|
4504
|
+
is_all_numbers =\
|
|
4505
|
+
number_list_validator
|
|
4331
4506
|
def mean(*args: tuple[int | float]) -> float:
|
|
4332
4507
|
args = number_list_validator(args)
|
|
4333
4508
|
if not args:
|
|
@@ -4359,29 +4534,81 @@ def arithrange(*args: tuple[int | float]) -> float:
|
|
|
4359
4534
|
return 0.0
|
|
4360
4535
|
return float(max(args) - min(args))
|
|
4361
4536
|
math.arith_range = math.arithrange = arith_range = arithrange
|
|
4362
|
-
def
|
|
4537
|
+
def int_input(*args, **kwargs):
|
|
4363
4538
|
try:
|
|
4364
|
-
return Int(
|
|
4365
|
-
|
|
4539
|
+
return Int(
|
|
4540
|
+
input(
|
|
4541
|
+
*args,
|
|
4542
|
+
**kwargs
|
|
4543
|
+
)
|
|
4544
|
+
)
|
|
4545
|
+
except:
|
|
4546
|
+
# keyboard interrupts
|
|
4366
4547
|
return 0
|
|
4367
|
-
def
|
|
4548
|
+
def flt_input(*args, **kwargs):
|
|
4368
4549
|
try:
|
|
4369
|
-
return Flt(
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
|
|
4375
|
-
|
|
4376
|
-
|
|
4377
|
-
|
|
4378
|
-
|
|
4379
|
-
|
|
4380
|
-
|
|
4381
|
-
|
|
4382
|
-
|
|
4550
|
+
return Flt(
|
|
4551
|
+
input(
|
|
4552
|
+
*args,
|
|
4553
|
+
**kwargs
|
|
4554
|
+
)
|
|
4555
|
+
)
|
|
4556
|
+
except:
|
|
4557
|
+
# keyboard interrupts
|
|
4558
|
+
return 0.0
|
|
4559
|
+
integer_input, float_input = int_input, flt_input
|
|
4560
|
+
def flattened(lst: list[Any]) ->\
|
|
4561
|
+
Union[
|
|
4562
|
+
list,
|
|
4563
|
+
tuple,
|
|
4564
|
+
set
|
|
4565
|
+
]:
|
|
4566
|
+
if lst is None\
|
|
4567
|
+
or not isinstance(
|
|
4568
|
+
lst,
|
|
4569
|
+
(
|
|
4570
|
+
list,
|
|
4571
|
+
tuple,
|
|
4572
|
+
set
|
|
4573
|
+
)
|
|
4574
|
+
):
|
|
4575
|
+
return []
|
|
4576
|
+
out: list[Any] = []
|
|
4577
|
+
for item in lst:
|
|
4578
|
+
if isinstance(item, Iterable)\
|
|
4579
|
+
and not isinstance(
|
|
4580
|
+
item,
|
|
4581
|
+
(
|
|
4582
|
+
str,
|
|
4583
|
+
bytes
|
|
4584
|
+
)
|
|
4585
|
+
):
|
|
4586
|
+
out.extend(
|
|
4587
|
+
flattened(
|
|
4588
|
+
item
|
|
4589
|
+
)
|
|
4590
|
+
)
|
|
4591
|
+
else:
|
|
4592
|
+
out.append(
|
|
4593
|
+
item
|
|
4594
|
+
)
|
|
4595
|
+
if isinstance(
|
|
4596
|
+
lst,
|
|
4597
|
+
tuple
|
|
4598
|
+
):
|
|
4599
|
+
return tuple(
|
|
4600
|
+
out
|
|
4601
|
+
)
|
|
4602
|
+
elif isinstance(
|
|
4603
|
+
lst,
|
|
4604
|
+
set
|
|
4605
|
+
):
|
|
4606
|
+
return set(
|
|
4607
|
+
out
|
|
4608
|
+
)
|
|
4609
|
+
return out
|
|
4383
4610
|
flat = flatten = flattened
|
|
4384
|
-
def clone(item:
|
|
4611
|
+
def clone(item: Any) -> Any:
|
|
4385
4612
|
if item is None:
|
|
4386
4613
|
return None
|
|
4387
4614
|
return deepcopy(item)
|
|
@@ -4389,7 +4616,7 @@ def clone(item: list|tuple|dict) -> list|tuple|dict:
|
|
|
4389
4616
|
__KL_Py.deepcopy__
|
|
4390
4617
|
|
|
4391
4618
|
@param item
|
|
4392
|
-
@@type
|
|
4619
|
+
@@type Any
|
|
4393
4620
|
:: object to clone
|
|
4394
4621
|
@return
|
|
4395
4622
|
@@type (list, tuple, dict)
|
|
@@ -4399,12 +4626,16 @@ def clone(item: list|tuple|dict) -> list|tuple|dict:
|
|
|
4399
4626
|
in as the argument
|
|
4400
4627
|
"""
|
|
4401
4628
|
def lambai(x: Iterable) -> int:
|
|
4402
|
-
if not isinstance(
|
|
4629
|
+
if not isinstance(
|
|
4630
|
+
x,
|
|
4631
|
+
Iterable
|
|
4632
|
+
):
|
|
4403
4633
|
return 0
|
|
4404
4634
|
return len(x)
|
|
4405
4635
|
def barabar(x, y) -> haal:
|
|
4406
|
-
if isinstance(x, str)
|
|
4407
|
-
|
|
4636
|
+
if isinstance(x, str)\
|
|
4637
|
+
and isinstance(y, str):
|
|
4638
|
+
return x.lower() == y.lower()
|
|
4408
4639
|
return x == y
|
|
4409
4640
|
def he(x: Any, y: Any = None) -> bool:
|
|
4410
4641
|
"""
|
|
@@ -6969,4 +7200,7 @@ if __name__ == "__main__":
|
|
|
6969
7200
|
print(Flt(True))
|
|
6970
7201
|
print(Flt("hello worl200.4e-2d"))
|
|
6971
7202
|
print(Flt(" 4.3e5 t hee e "))
|
|
6972
|
-
print(countries)
|
|
7203
|
+
print(countries)
|
|
7204
|
+
print(Int("400.5e-1"))
|
|
7205
|
+
|
|
7206
|
+
|
|
@@ -41,7 +41,7 @@ class SQL:
|
|
|
41
41
|
if filename is not None\
|
|
42
42
|
else "test"
|
|
43
43
|
if re.search(
|
|
44
|
-
"\:(?:[Rr]am|[Mm]emory)\:",
|
|
44
|
+
r"\:(?:[Rr]am|[Mm]emory)\:",
|
|
45
45
|
filename,
|
|
46
46
|
flags=re.IGNORECASE
|
|
47
47
|
):
|
|
@@ -107,6 +107,7 @@ class SQL:
|
|
|
107
107
|
max_=None,
|
|
108
108
|
only=None,
|
|
109
109
|
sirf=None,
|
|
110
|
+
bas=None,
|
|
110
111
|
chuno=None,
|
|
111
112
|
limit=None,
|
|
112
113
|
n=None,
|
|
@@ -128,6 +129,7 @@ class SQL:
|
|
|
128
129
|
or max_\
|
|
129
130
|
or only\
|
|
130
131
|
or sirf\
|
|
132
|
+
or bas\
|
|
131
133
|
or chuno\
|
|
132
134
|
or limit\
|
|
133
135
|
or n\
|
|
@@ -68,13 +68,67 @@ def __add_module__(module_name: str, namespace: dict) -> None:
|
|
|
68
68
|
namespace[name] = getattr(module, name)
|
|
69
69
|
is_printing: bool = False
|
|
70
70
|
stable_old_print = old_print = builtins.print
|
|
71
|
-
def cust_print(
|
|
71
|
+
def cust_print(
|
|
72
|
+
*args,
|
|
73
|
+
p=None,
|
|
74
|
+
pr=None,
|
|
75
|
+
prec=None,
|
|
76
|
+
precision=None,
|
|
77
|
+
f=None,
|
|
78
|
+
fmt=None,
|
|
79
|
+
format_=None,
|
|
80
|
+
**kwargs
|
|
81
|
+
):
|
|
72
82
|
"""Data ko string me badalke screen par dikhaata he."""
|
|
73
83
|
global is_printing
|
|
74
84
|
if is_printing:
|
|
75
85
|
old_print(*args, **kwargs)
|
|
76
86
|
return
|
|
77
87
|
# ^ recursion safety
|
|
88
|
+
prec_kwa = [
|
|
89
|
+
x\
|
|
90
|
+
for x in (
|
|
91
|
+
p,
|
|
92
|
+
pr,
|
|
93
|
+
prec
|
|
94
|
+
)\
|
|
95
|
+
if isinstance(
|
|
96
|
+
x,
|
|
97
|
+
int
|
|
98
|
+
)
|
|
99
|
+
]
|
|
100
|
+
if len(prec_kwa):
|
|
101
|
+
precision = prec_kwa[0]
|
|
102
|
+
f_kwa = [
|
|
103
|
+
x\
|
|
104
|
+
for x in (
|
|
105
|
+
f,
|
|
106
|
+
fmt
|
|
107
|
+
)\
|
|
108
|
+
if isinstance(
|
|
109
|
+
x,
|
|
110
|
+
str
|
|
111
|
+
)
|
|
112
|
+
]
|
|
113
|
+
if len(
|
|
114
|
+
f_kwa
|
|
115
|
+
):
|
|
116
|
+
format_ = f_kwa[0]
|
|
117
|
+
if not isinstance(
|
|
118
|
+
format_,
|
|
119
|
+
str
|
|
120
|
+
):
|
|
121
|
+
format_ = ""
|
|
122
|
+
format_ = format_\
|
|
123
|
+
.strip()\
|
|
124
|
+
.lower()
|
|
125
|
+
if not format_:
|
|
126
|
+
format_ = "pk"
|
|
127
|
+
formatter = fpk
|
|
128
|
+
if "u" in format_:
|
|
129
|
+
# use
|
|
130
|
+
# us formatter
|
|
131
|
+
formatter = fus
|
|
78
132
|
try:
|
|
79
133
|
is_printing = True
|
|
80
134
|
args = list(args)
|
|
@@ -83,20 +137,71 @@ def cust_print(*args, **kwargs):
|
|
|
83
137
|
if arg is None:
|
|
84
138
|
args[i] = "koi_na"
|
|
85
139
|
elif is_int(arg):
|
|
86
|
-
if not any(
|
|
87
|
-
|
|
140
|
+
if not any(
|
|
141
|
+
kwargs.pop(
|
|
142
|
+
k,
|
|
143
|
+
False
|
|
144
|
+
)\
|
|
145
|
+
for k in [
|
|
146
|
+
"dont_format",
|
|
147
|
+
"nahi_format",
|
|
148
|
+
"regular_nums",
|
|
149
|
+
"normal_nums",
|
|
150
|
+
"dont_format_nums",
|
|
151
|
+
"nahi_format_nums"
|
|
152
|
+
]
|
|
153
|
+
):
|
|
154
|
+
args[i] = formatter(
|
|
155
|
+
arg,
|
|
156
|
+
precision=precision
|
|
157
|
+
)
|
|
88
158
|
elif is_flt(arg):
|
|
89
|
-
if not any(
|
|
90
|
-
|
|
159
|
+
if not any(
|
|
160
|
+
kwargs.pop(
|
|
161
|
+
k,
|
|
162
|
+
False
|
|
163
|
+
)\
|
|
164
|
+
for k in [
|
|
165
|
+
"dont_format",
|
|
166
|
+
"nahi_format",
|
|
167
|
+
"regular_nums",
|
|
168
|
+
"normal_nums",
|
|
169
|
+
"dont_format_nums",
|
|
170
|
+
"nahi_format_nums"
|
|
171
|
+
]
|
|
172
|
+
):
|
|
173
|
+
args[i] = formatter(
|
|
174
|
+
arg,
|
|
175
|
+
precision=precision
|
|
176
|
+
)
|
|
91
177
|
elif is_bool(arg):
|
|
92
|
-
args[i] = "Han"
|
|
93
|
-
|
|
94
|
-
|
|
178
|
+
args[i] = "Han"\
|
|
179
|
+
if arg == True\
|
|
180
|
+
else "Nahi"
|
|
181
|
+
elif isinstance(
|
|
182
|
+
arg,
|
|
183
|
+
(
|
|
184
|
+
list,
|
|
185
|
+
tuple
|
|
186
|
+
)
|
|
187
|
+
):
|
|
188
|
+
args[i] = __join_into_words_version_2__(
|
|
189
|
+
arg
|
|
190
|
+
)
|
|
95
191
|
else:
|
|
96
192
|
# if it's an object of any other type (list, some custom class, ...)
|
|
97
193
|
# let's stringify, and post-process it, to make it look prettier
|
|
98
194
|
args[i] = str(args[i])
|
|
99
|
-
if not
|
|
195
|
+
if not any(
|
|
196
|
+
kwargs.pop(
|
|
197
|
+
k,
|
|
198
|
+
False
|
|
199
|
+
)\
|
|
200
|
+
for k in [
|
|
201
|
+
"dont_format",
|
|
202
|
+
"nahi_format"
|
|
203
|
+
]
|
|
204
|
+
):
|
|
100
205
|
args[i] = replace(args[i], r", (?=[^,\]]+\])", ", aur ")
|
|
101
206
|
args[i] = replace(args[i], r"(?<=\<)class(?= [\"\'][A-Za-z_][\w\.]*[\"\']\>)", "kism:")
|
|
102
207
|
args[i] = replace(args[i], r"(?<=\<)enum (?<name_of_enum>[\"\'][A-Za-z_][\w\.]*[\"\'])(?=\>)", "kism: Enum[$name_of_enum]")
|
|
@@ -113,11 +218,58 @@ def cust_print(*args, **kwargs):
|
|
|
113
218
|
args[i] = replace(args[i], r"\bNone\b", "koi_na")
|
|
114
219
|
args[i] = replace(args[i], r"\bTrue\b", "Han")
|
|
115
220
|
args[i] = replace(args[i], r"\bFalse\b", "Nahi")
|
|
116
|
-
if not any(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
221
|
+
if not any(
|
|
222
|
+
kwargs.pop(
|
|
223
|
+
k,
|
|
224
|
+
False
|
|
225
|
+
)\
|
|
226
|
+
for k in [
|
|
227
|
+
"dont_format_nums",
|
|
228
|
+
"nahi_format_nums",
|
|
229
|
+
"regular_nums",
|
|
230
|
+
"normal_nums",
|
|
231
|
+
"dont_format_nums_in_strings",
|
|
232
|
+
"nahi_format_nums_darmyan_strings",
|
|
233
|
+
"nahi_format_nums_darmyan_jumle",
|
|
234
|
+
"normal_nums_darmyan_strings",
|
|
235
|
+
"normal_nums_darmyan_jumle",
|
|
236
|
+
"regular_nums_darmyan_strings",
|
|
237
|
+
"regular_nums_darmyan_jumle"
|
|
238
|
+
]
|
|
239
|
+
):
|
|
240
|
+
args[i] = replace(
|
|
241
|
+
args[i],
|
|
242
|
+
r"(?<!\w)(?<!\+|(?<=\+)\-|(?<=n!)!|(?<=n!!)[\+\-])(?<n_to_be_formatted>\-?\d*\.?\d+(?:e[\+\-]?\d+)?)\b",
|
|
243
|
+
lambda m:\
|
|
244
|
+
re.sub(
|
|
245
|
+
r"\.0+$",
|
|
246
|
+
"",
|
|
247
|
+
str(
|
|
248
|
+
formatter(
|
|
249
|
+
float(
|
|
250
|
+
m.group(
|
|
251
|
+
"n_to_be_formatted"
|
|
252
|
+
)
|
|
253
|
+
),
|
|
254
|
+
precision=precision
|
|
255
|
+
)
|
|
256
|
+
)
|
|
257
|
+
)
|
|
258
|
+
)
|
|
259
|
+
args[i] = replace(
|
|
260
|
+
args[i],
|
|
261
|
+
r"n!!(?=\-?\d*\.?\d+)",
|
|
262
|
+
""
|
|
263
|
+
)
|
|
264
|
+
args[i] = replace(
|
|
265
|
+
args[i],
|
|
266
|
+
r"\.0+$",
|
|
267
|
+
""
|
|
268
|
+
)
|
|
269
|
+
old_print(
|
|
270
|
+
*args,
|
|
271
|
+
**kwargs
|
|
272
|
+
)
|
|
121
273
|
finally:
|
|
122
274
|
is_printing = False
|
|
123
275
|
# if args is empty, prints a line break
|