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.
Files changed (270) hide show
  1. {kl_py-0.4.2 → kl_py-0.4.4}/PKG-INFO +1 -1
  2. {kl_py-0.4.2 → kl_py-0.4.4}/pyproject.toml +1 -1
  3. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/KL_Py.py +294 -60
  4. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_custom_sqlite.py +3 -1
  5. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_klang_builtins.py +166 -14
  6. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_translate.py +4 -2
  7. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_web_translate.py +1 -0
  8. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py.egg-info/PKG-INFO +1 -1
  9. {kl_py-0.4.2 → kl_py-0.4.4}/LICENSE +0 -0
  10. {kl_py-0.4.2 → kl_py-0.4.4}/README.md +0 -0
  11. {kl_py-0.4.2 → kl_py-0.4.4}/setup.cfg +0 -0
  12. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/__init__.py +0 -0
  13. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/_utils.py +0 -0
  14. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/__init__.py +0 -0
  15. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/base.py +0 -0
  16. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/button.py +0 -0
  17. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/calendar.py +0 -0
  18. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/canvas.py +0 -0
  19. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/checkbox.py +0 -0
  20. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/column.py +0 -0
  21. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/combo.py +0 -0
  22. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/error.py +0 -0
  23. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/frame.py +0 -0
  24. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/graph.py +0 -0
  25. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/helpers.py +0 -0
  26. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/image.py +0 -0
  27. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/input.py +0 -0
  28. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/list_box.py +0 -0
  29. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/menu.py +0 -0
  30. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/multiline.py +0 -0
  31. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/option_menu.py +0 -0
  32. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/pane.py +0 -0
  33. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/progress_bar.py +0 -0
  34. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/radio.py +0 -0
  35. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/separator.py +0 -0
  36. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/sizegrip.py +0 -0
  37. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/slider.py +0 -0
  38. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/spin.py +0 -0
  39. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/status_bar.py +0 -0
  40. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/stretch.py +0 -0
  41. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/tab.py +0 -0
  42. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/table.py +0 -0
  43. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/text.py +0 -0
  44. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/elements/tree.py +0 -0
  45. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/themes.py +0 -0
  46. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/tray.py +0 -0
  47. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/FreeSimpleGUI/window.py +0 -0
  48. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/__init__.py +0 -0
  49. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_custom_pandas.py +0 -0
  50. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_custom_turtle.py +0 -0
  51. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_error_classes.py +0 -0
  52. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/_filepaths.py +0 -0
  53. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/automl.py +0 -0
  54. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/dnd/__init__.py +0 -0
  55. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/drag_and_drop/__init__.py +0 -0
  56. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/__init__.py +0 -0
  57. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/__main__.py +0 -0
  58. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/config.py +0 -0
  59. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/dialogs.py +0 -0
  60. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/packaging.py +0 -0
  61. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/shims.py +0 -0
  62. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/ui.py +0 -0
  63. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/utils.py +0 -0
  64. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/export/validation.py +0 -0
  65. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/fsgdnd/__init__.py +0 -0
  66. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/fsgui/__init__.py +0 -0
  67. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/__init__.py +0 -0
  68. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/_utils.py +0 -0
  69. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/base.py +0 -0
  70. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/button.py +0 -0
  71. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/calendar.py +0 -0
  72. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/canvas.py +0 -0
  73. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/center.py +0 -0
  74. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/checkbox.py +0 -0
  75. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/column.py +0 -0
  76. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/combo.py +0 -0
  77. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/error.py +0 -0
  78. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/frame.py +0 -0
  79. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/graph.py +0 -0
  80. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/helpers.py +0 -0
  81. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/image.py +0 -0
  82. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/input.py +0 -0
  83. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/list_box.py +0 -0
  84. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/menu.py +0 -0
  85. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/multiline.py +0 -0
  86. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/option_menu.py +0 -0
  87. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/pane.py +0 -0
  88. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/progress_bar.py +0 -0
  89. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/radio.py +0 -0
  90. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/separator.py +0 -0
  91. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/sizegrip.py +0 -0
  92. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/slider.py +0 -0
  93. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/spin.py +0 -0
  94. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/status_bar.py +0 -0
  95. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/stretch.py +0 -0
  96. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/tab.py +0 -0
  97. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/table.py +0 -0
  98. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/text.py +0 -0
  99. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/elements/tree.py +0 -0
  100. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/replace.py +0 -0
  101. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/tray.py +0 -0
  102. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/hindGui/window.py +0 -0
  103. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/__init__.py +0 -0
  104. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/__main__.py +0 -0
  105. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/config.py +0 -0
  106. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/dialogs.py +0 -0
  107. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/packaging.py +0 -0
  108. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/shims.py +0 -0
  109. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/ui.py +0 -0
  110. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/utils.py +0 -0
  111. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/k2exe/validation.py +0 -0
  112. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/__init__.py +0 -0
  113. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/__main__.py +0 -0
  114. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/config.py +0 -0
  115. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/dialogs.py +0 -0
  116. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/packaging.py +0 -0
  117. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/shims.py +0 -0
  118. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/ui.py +0 -0
  119. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/utils.py +0 -0
  120. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kexe/validation.py +0 -0
  121. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/__init__.py +0 -0
  122. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/__main__.py +0 -0
  123. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/config.py +0 -0
  124. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/dialogs.py +0 -0
  125. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/packaging.py +0 -0
  126. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/shims.py +0 -0
  127. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/ui.py +0 -0
  128. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/utils.py +0 -0
  129. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/kl2exe/validation.py +0 -0
  130. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/__init__.py +0 -0
  131. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/__main__.py +0 -0
  132. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/config.py +0 -0
  133. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/dialogs.py +0 -0
  134. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/packaging.py +0 -0
  135. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/shims.py +0 -0
  136. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/ui.py +0 -0
  137. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/utils.py +0 -0
  138. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klang2exe/validation.py +0 -0
  139. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/__init__.py +0 -0
  140. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/__main__.py +0 -0
  141. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/config.py +0 -0
  142. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/dialogs.py +0 -0
  143. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/packaging.py +0 -0
  144. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/shims.py +0 -0
  145. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/ui.py +0 -0
  146. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/utils.py +0 -0
  147. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klangexe/validation.py +0 -0
  148. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/__init__.py +0 -0
  149. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/__main__.py +0 -0
  150. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/config.py +0 -0
  151. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/dialogs.py +0 -0
  152. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/packaging.py +0 -0
  153. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/shims.py +0 -0
  154. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/ui.py +0 -0
  155. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/utils.py +0 -0
  156. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/klexe/validation.py +0 -0
  157. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/ml.py +0 -0
  158. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/np/__init__.py +0 -0
  159. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pd/__init__.py +0 -0
  160. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/plt/__init__.py +0 -0
  161. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/psgui/__init__.py +0 -0
  162. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/px/__init__.py +0 -0
  163. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/__init__.py +0 -0
  164. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/__main__.py +0 -0
  165. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/config.py +0 -0
  166. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/dialogs.py +0 -0
  167. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/packaging.py +0 -0
  168. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/shims.py +0 -0
  169. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/ui.py +0 -0
  170. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/utils.py +0 -0
  171. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pyexe/validation.py +0 -0
  172. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/pysgdnd/__init__.py +0 -0
  173. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/__init__.py +0 -0
  174. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/__version__.py +0 -0
  175. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/_internal_utils.py +0 -0
  176. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/adapters.py +0 -0
  177. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/api.py +0 -0
  178. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/auth.py +0 -0
  179. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/certifi/__init__.py +0 -0
  180. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/certifi/__main__.py +0 -0
  181. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/certifi/core.py +0 -0
  182. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/certifi/py.typed +0 -0
  183. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/certs.py +0 -0
  184. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/__init__.py +0 -0
  185. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/__main__.py +0 -0
  186. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/api.py +0 -0
  187. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/cd.py +0 -0
  188. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/cli/__init__.py +0 -0
  189. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/cli/__main__.py +0 -0
  190. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/constant.py +0 -0
  191. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/legacy.py +0 -0
  192. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/md.py +0 -0
  193. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/models.py +0 -0
  194. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/py.typed +0 -0
  195. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/utils.py +0 -0
  196. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/charset_normalizer/version.py +0 -0
  197. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/compat.py +0 -0
  198. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/cookies.py +0 -0
  199. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/exceptions.py +0 -0
  200. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/help.py +0 -0
  201. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/hooks.py +0 -0
  202. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/__init__.py +0 -0
  203. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/codec.py +0 -0
  204. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/compat.py +0 -0
  205. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/core.py +0 -0
  206. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/idnadata.py +0 -0
  207. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/intranges.py +0 -0
  208. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/package_data.py +0 -0
  209. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/py.typed +0 -0
  210. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/idna/uts46data.py +0 -0
  211. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/models.py +0 -0
  212. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/packages.py +0 -0
  213. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/sessions.py +0 -0
  214. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/status_codes.py +0 -0
  215. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/structures.py +0 -0
  216. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/__init__.py +0 -0
  217. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/_base_connection.py +0 -0
  218. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/_collections.py +0 -0
  219. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/_request_methods.py +0 -0
  220. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/_version.py +0 -0
  221. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/connection.py +0 -0
  222. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/connectionpool.py +0 -0
  223. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/__init__.py +0 -0
  224. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/emscripten/__init__.py +0 -0
  225. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/emscripten/connection.py +0 -0
  226. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/emscripten/fetch.py +0 -0
  227. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/emscripten/request.py +0 -0
  228. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/emscripten/response.py +0 -0
  229. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/pyopenssl.py +0 -0
  230. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/contrib/socks.py +0 -0
  231. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/exceptions.py +0 -0
  232. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/fields.py +0 -0
  233. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/filepost.py +0 -0
  234. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/http2/__init__.py +0 -0
  235. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/http2/connection.py +0 -0
  236. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/http2/probe.py +0 -0
  237. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/poolmanager.py +0 -0
  238. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/py.typed +0 -0
  239. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/response.py +0 -0
  240. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/__init__.py +0 -0
  241. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/connection.py +0 -0
  242. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/proxy.py +0 -0
  243. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/request.py +0 -0
  244. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/response.py +0 -0
  245. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/retry.py +0 -0
  246. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/ssl_.py +0 -0
  247. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/ssl_match_hostname.py +0 -0
  248. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/ssltransport.py +0 -0
  249. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/timeout.py +0 -0
  250. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/url.py +0 -0
  251. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/util.py +0 -0
  252. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/urllib3/util/wait.py +0 -0
  253. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/requests/utils.py +0 -0
  254. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/sb/__init__.py +0 -0
  255. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/sk/__init__.py +0 -0
  256. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/sns/__init__.py +0 -0
  257. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/__init__.py +0 -0
  258. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/__main__.py +0 -0
  259. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/config.py +0 -0
  260. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/dialogs.py +0 -0
  261. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/packaging.py +0 -0
  262. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/shims.py +0 -0
  263. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/ui.py +0 -0
  264. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/utils.py +0 -0
  265. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/toexe/validation.py +0 -0
  266. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py/when.py +0 -0
  267. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py.egg-info/SOURCES.txt +0 -0
  268. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py.egg-info/dependency_links.txt +0 -0
  269. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py.egg-info/requires.txt +0 -0
  270. {kl_py-0.4.2 → kl_py-0.4.4}/src/KL_Py.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: KL_Py
3
- Version: 0.4.2
3
+ Version: 0.4.4
4
4
  Summary: A Python simplification module
5
5
  Author-email: Abbaskhurram255 <abbaskhurram255@gmail.com>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
 
6
6
  [project]
7
7
  name = "KL_Py"
8
- version = "0.4.2"
8
+ version = "0.4.4"
9
9
  authors = [
10
10
  { name = "Abbaskhurram255", email = "abbaskhurram255@gmail.com" }
11
11
  ]
@@ -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 [rand_int(0, start+1 if start > 0 else start-1) for _ in range(length)]
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(stop)
515
+ length = abs(start)
506
516
  if start == stop:
507
517
  return [start] * length # or handle this case differently
508
- return [rand_int(start, stop) for _ in range(length)]
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(length, int) or length < 8:
512
- length = 8
513
- if length > 64:
514
- length = 64
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 i in range(length):
518
- return_value += chars[randint(0, len(chars)-1)]
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(length, int) or length < 8:
523
- length = 8
524
- if length > 64:
525
- length = 64
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
- while length := length - 1:
529
- return_value += chars[randint(0, len(chars)-1)]
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 = replace(
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.strip(),
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 or not isinstance(amount, Number):
4289
- return ""
4290
- amount = round(amount, 1)
4291
- parts = str(amount).split('.')
4292
- integer_part = '{:,}'.format(int(parts[0]))
4293
- decimal_part = f".{parts[1]}" if len(parts) > 1 else ''
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 or not isinstance(amount, Number):
4299
- return ""
4300
- amount = round(amount, 1)
4301
- parts = str(amount).split('.')
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
- def number_list_validator(args: tuple[Any]):
4325
- args = list(args)
4326
- if len(args) == 1 and isinstance(args[0], (list, tuple)):
4327
- args = list(args[0])
4328
- if not all(isinstance(arg, (int, float)) for arg in args):
4329
- return []
4330
- return args
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 IntInput(*args, **kwargs):
4537
+ def int_input(*args, **kwargs):
4363
4538
  try:
4364
- return Int(input(*args, **kwargs))
4365
- except Exception:
4539
+ return Int(
4540
+ input(
4541
+ *args,
4542
+ **kwargs
4543
+ )
4544
+ )
4545
+ except:
4546
+ # keyboard interrupts
4366
4547
  return 0
4367
- def FltInput(*args, **kwargs):
4548
+ def flt_input(*args, **kwargs):
4368
4549
  try:
4369
- return Flt(input(*args, **kwargs))
4370
- except Exception:
4371
- return 0
4372
- intInput, fltInput = IntInput, FltInput
4373
- def flattened(lst: list[Any]) -> list[Any]:
4374
- if lst is None or not isinstance(lst, list):
4375
- return []
4376
- out: list[Any] = []
4377
- for item in lst:
4378
- if isinstance(item, Iterable) and not isinstance(item, (str, bytes)):
4379
- out.extend(flattened(item))
4380
- else:
4381
- out.append(item)
4382
- return out
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: list|tuple|dict) -> list|tuple|dict:
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 (list, tuple, dict)
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(x, Iterable):
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) and isinstance(y, str):
4407
- return x.lower() == y.lower()
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(*args, **kwargs):
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(kwargs.pop(k, False) for k in ["dont_format", "regular_nums", "normal_nums", "dont_format_nums", "nahi_format_nums"]):
87
- args[i] = fpk(arg)
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(kwargs.pop(k, False) for k in ["dont_format", "regular_nums", "normal_nums", "dont_format_nums", "nahi_format_nums"]):
90
- args[i] = fpk(arg)
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" if arg == True else "Nahi"
93
- elif isinstance(arg, (list, tuple)):
94
- args[i] = __join_into_words_version_2__(arg)
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 kwargs.pop("dont_format", False):
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(kwargs.pop(k, False) for k in ["dont_format_nums", "nahi_format_nums", "regular_nums", "normal_nums", "dont_format_nums_in_strings", "nahi_format_nums_darmyan_strings", "nahi_format_nums_darmyan_jumle", "normal_nums_darmyan_strings", "normal_nums_darmyan_jumle", "regular_nums_darmyan_strings", "regular_nums_darmyan_jumle"]):
117
- args[i] = replace(args[i], r"(?<!\w)(?<!\+|(?<=\+)\-|(?<=n!)!|(?<=n!!)[\+\-])(?<n_to_be_formatted>\-?\d*\.?\d+(?:e[\+\-]?\d+)?)\b", lambda m: re.sub(r"\.0+$", "", str(fpk(float(m.group("n_to_be_formatted"))))))
118
- args[i] = replace(args[i], r"n!!(?=\-?\d*\.?\d+)", "")
119
- args[i] = replace(args[i], r"\.0+$", "")
120
- old_print(*args, **kwargs)
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