KL-Py 0.2.2__tar.gz → 0.2.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. {kl_py-0.2.2 → kl_py-0.2.4}/PKG-INFO +1 -1
  2. {kl_py-0.2.2 → kl_py-0.2.4}/pyproject.toml +1 -1
  3. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/_custom_sqlite.py +2 -2
  4. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/_translate.py +82 -25
  5. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py.egg-info/PKG-INFO +1 -1
  6. {kl_py-0.2.2 → kl_py-0.2.4}/LICENSE +0 -0
  7. {kl_py-0.2.2 → kl_py-0.2.4}/README.md +0 -0
  8. {kl_py-0.2.2 → kl_py-0.2.4}/setup.cfg +0 -0
  9. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/__init__.py +0 -0
  10. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/_utils.py +0 -0
  11. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/__init__.py +0 -0
  12. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/base.py +0 -0
  13. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/button.py +0 -0
  14. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/calendar.py +0 -0
  15. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/canvas.py +0 -0
  16. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/checkbox.py +0 -0
  17. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/column.py +0 -0
  18. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/combo.py +0 -0
  19. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/error.py +0 -0
  20. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/frame.py +0 -0
  21. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/graph.py +0 -0
  22. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/helpers.py +0 -0
  23. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/image.py +0 -0
  24. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/input.py +0 -0
  25. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/list_box.py +0 -0
  26. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/menu.py +0 -0
  27. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/multiline.py +0 -0
  28. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/option_menu.py +0 -0
  29. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/pane.py +0 -0
  30. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/progress_bar.py +0 -0
  31. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/radio.py +0 -0
  32. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/separator.py +0 -0
  33. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/sizegrip.py +0 -0
  34. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/slider.py +0 -0
  35. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/spin.py +0 -0
  36. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/status_bar.py +0 -0
  37. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/stretch.py +0 -0
  38. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/tab.py +0 -0
  39. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/table.py +0 -0
  40. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/text.py +0 -0
  41. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/elements/tree.py +0 -0
  42. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/themes.py +0 -0
  43. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/tray.py +0 -0
  44. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/FreeSimpleGUI/window.py +0 -0
  45. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/KL_Py.py +0 -0
  46. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/__init__.py +0 -0
  47. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/_custom_pandas.py +0 -0
  48. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/_custom_turtle.py +0 -0
  49. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/_error_classes.py +0 -0
  50. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/_klang_builtins.py +0 -0
  51. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/automl.py +0 -0
  52. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/dnd/__init__.py +0 -0
  53. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/drag_and_drop/__init__.py +0 -0
  54. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/__init__.py +0 -0
  55. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/__main__.py +0 -0
  56. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/config.py +0 -0
  57. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/dialogs.py +0 -0
  58. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/packaging.py +0 -0
  59. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/shims.py +0 -0
  60. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/ui.py +0 -0
  61. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/utils.py +0 -0
  62. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/export/validation.py +0 -0
  63. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/fsgdnd/__init__.py +0 -0
  64. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/fsgui/__init__.py +0 -0
  65. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/__init__.py +0 -0
  66. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/_utils.py +0 -0
  67. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/base.py +0 -0
  68. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/button.py +0 -0
  69. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/calendar.py +0 -0
  70. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/canvas.py +0 -0
  71. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/center.py +0 -0
  72. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/checkbox.py +0 -0
  73. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/column.py +0 -0
  74. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/combo.py +0 -0
  75. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/error.py +0 -0
  76. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/frame.py +0 -0
  77. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/graph.py +0 -0
  78. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/helpers.py +0 -0
  79. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/image.py +0 -0
  80. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/input.py +0 -0
  81. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/list_box.py +0 -0
  82. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/menu.py +0 -0
  83. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/multiline.py +0 -0
  84. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/option_menu.py +0 -0
  85. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/pane.py +0 -0
  86. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/progress_bar.py +0 -0
  87. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/radio.py +0 -0
  88. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/separator.py +0 -0
  89. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/sizegrip.py +0 -0
  90. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/slider.py +0 -0
  91. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/spin.py +0 -0
  92. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/status_bar.py +0 -0
  93. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/stretch.py +0 -0
  94. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/tab.py +0 -0
  95. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/table.py +0 -0
  96. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/text.py +0 -0
  97. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/elements/tree.py +0 -0
  98. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/replace.py +0 -0
  99. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/tray.py +0 -0
  100. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/hindGui/window.py +0 -0
  101. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/__init__.py +0 -0
  102. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/__main__.py +0 -0
  103. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/config.py +0 -0
  104. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/dialogs.py +0 -0
  105. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/packaging.py +0 -0
  106. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/shims.py +0 -0
  107. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/ui.py +0 -0
  108. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/utils.py +0 -0
  109. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/k2exe/validation.py +0 -0
  110. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/__init__.py +0 -0
  111. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/__main__.py +0 -0
  112. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/config.py +0 -0
  113. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/dialogs.py +0 -0
  114. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/packaging.py +0 -0
  115. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/shims.py +0 -0
  116. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/ui.py +0 -0
  117. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/utils.py +0 -0
  118. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kexe/validation.py +0 -0
  119. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/__init__.py +0 -0
  120. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/__main__.py +0 -0
  121. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/config.py +0 -0
  122. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/dialogs.py +0 -0
  123. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/packaging.py +0 -0
  124. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/shims.py +0 -0
  125. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/ui.py +0 -0
  126. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/utils.py +0 -0
  127. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/kl2exe/validation.py +0 -0
  128. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/__init__.py +0 -0
  129. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/__main__.py +0 -0
  130. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/config.py +0 -0
  131. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/dialogs.py +0 -0
  132. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/packaging.py +0 -0
  133. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/shims.py +0 -0
  134. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/ui.py +0 -0
  135. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/utils.py +0 -0
  136. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klang2exe/validation.py +0 -0
  137. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/__init__.py +0 -0
  138. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/__main__.py +0 -0
  139. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/config.py +0 -0
  140. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/dialogs.py +0 -0
  141. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/packaging.py +0 -0
  142. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/shims.py +0 -0
  143. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/ui.py +0 -0
  144. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/utils.py +0 -0
  145. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klangexe/validation.py +0 -0
  146. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/__init__.py +0 -0
  147. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/__main__.py +0 -0
  148. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/config.py +0 -0
  149. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/dialogs.py +0 -0
  150. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/packaging.py +0 -0
  151. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/shims.py +0 -0
  152. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/ui.py +0 -0
  153. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/utils.py +0 -0
  154. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/klexe/validation.py +0 -0
  155. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/ml.py +0 -0
  156. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/np/__init__.py +0 -0
  157. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pd/__init__.py +0 -0
  158. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/plt/__init__.py +0 -0
  159. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/psgui/__init__.py +0 -0
  160. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/px/__init__.py +0 -0
  161. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/__init__.py +0 -0
  162. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/__main__.py +0 -0
  163. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/config.py +0 -0
  164. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/dialogs.py +0 -0
  165. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/packaging.py +0 -0
  166. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/shims.py +0 -0
  167. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/ui.py +0 -0
  168. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/utils.py +0 -0
  169. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pyexe/validation.py +0 -0
  170. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/pysgdnd/__init__.py +0 -0
  171. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/__init__.py +0 -0
  172. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/__version__.py +0 -0
  173. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/_internal_utils.py +0 -0
  174. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/adapters.py +0 -0
  175. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/api.py +0 -0
  176. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/auth.py +0 -0
  177. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/certifi/__init__.py +0 -0
  178. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/certifi/__main__.py +0 -0
  179. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/certifi/core.py +0 -0
  180. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/certifi/py.typed +0 -0
  181. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/certs.py +0 -0
  182. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/__init__.py +0 -0
  183. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/__main__.py +0 -0
  184. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/api.py +0 -0
  185. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/cd.py +0 -0
  186. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/cli/__init__.py +0 -0
  187. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/cli/__main__.py +0 -0
  188. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/constant.py +0 -0
  189. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/legacy.py +0 -0
  190. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/md.py +0 -0
  191. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/models.py +0 -0
  192. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/py.typed +0 -0
  193. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/utils.py +0 -0
  194. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/charset_normalizer/version.py +0 -0
  195. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/compat.py +0 -0
  196. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/cookies.py +0 -0
  197. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/exceptions.py +0 -0
  198. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/help.py +0 -0
  199. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/hooks.py +0 -0
  200. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/__init__.py +0 -0
  201. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/codec.py +0 -0
  202. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/compat.py +0 -0
  203. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/core.py +0 -0
  204. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/idnadata.py +0 -0
  205. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/intranges.py +0 -0
  206. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/package_data.py +0 -0
  207. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/py.typed +0 -0
  208. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/idna/uts46data.py +0 -0
  209. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/models.py +0 -0
  210. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/packages.py +0 -0
  211. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/sessions.py +0 -0
  212. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/status_codes.py +0 -0
  213. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/structures.py +0 -0
  214. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/__init__.py +0 -0
  215. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/_base_connection.py +0 -0
  216. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/_collections.py +0 -0
  217. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/_request_methods.py +0 -0
  218. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/_version.py +0 -0
  219. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/connection.py +0 -0
  220. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/connectionpool.py +0 -0
  221. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/__init__.py +0 -0
  222. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/emscripten/__init__.py +0 -0
  223. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/emscripten/connection.py +0 -0
  224. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/emscripten/fetch.py +0 -0
  225. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/emscripten/request.py +0 -0
  226. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/emscripten/response.py +0 -0
  227. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/pyopenssl.py +0 -0
  228. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/contrib/socks.py +0 -0
  229. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/exceptions.py +0 -0
  230. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/fields.py +0 -0
  231. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/filepost.py +0 -0
  232. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/http2/__init__.py +0 -0
  233. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/http2/connection.py +0 -0
  234. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/http2/probe.py +0 -0
  235. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/poolmanager.py +0 -0
  236. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/py.typed +0 -0
  237. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/response.py +0 -0
  238. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/__init__.py +0 -0
  239. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/connection.py +0 -0
  240. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/proxy.py +0 -0
  241. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/request.py +0 -0
  242. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/response.py +0 -0
  243. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/retry.py +0 -0
  244. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/ssl_.py +0 -0
  245. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/ssl_match_hostname.py +0 -0
  246. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/ssltransport.py +0 -0
  247. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/timeout.py +0 -0
  248. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/url.py +0 -0
  249. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/util.py +0 -0
  250. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/urllib3/util/wait.py +0 -0
  251. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/requests/utils.py +0 -0
  252. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/sb/__init__.py +0 -0
  253. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/sk/__init__.py +0 -0
  254. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/sns/__init__.py +0 -0
  255. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/__init__.py +0 -0
  256. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/__main__.py +0 -0
  257. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/config.py +0 -0
  258. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/dialogs.py +0 -0
  259. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/packaging.py +0 -0
  260. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/shims.py +0 -0
  261. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/ui.py +0 -0
  262. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/utils.py +0 -0
  263. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/toexe/validation.py +0 -0
  264. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py/when.py +0 -0
  265. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py.egg-info/SOURCES.txt +0 -0
  266. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py.egg-info/dependency_links.txt +0 -0
  267. {kl_py-0.2.2 → kl_py-0.2.4}/src/KL_Py.egg-info/requires.txt +0 -0
  268. {kl_py-0.2.2 → kl_py-0.2.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.2.2
3
+ Version: 0.2.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.2.2"
8
+ version = "0.2.4"
9
9
  authors = [
10
10
  { name = "Abbaskhurram255", email = "abbaskhurram255@gmail.com" }
11
11
  ]
@@ -36,13 +36,13 @@ class SQL:
36
36
  except Exception as e:
37
37
  print(f"SQL Error on execution: {e}\nAttempted Query: {command}")
38
38
  apply = karo = apply_karo = do = run = exec = execute
39
- DB = SQL
39
+ DB = db_conn = dbconn = db_connect = sql_conn = sqlconn = sql_connect = SQL
40
40
 
41
41
  """
42
42
  def main() -> None:
43
43
  print(translate_for_sql("banao table agar na mojud Users jisme mojud id int khas auto+, name jumla"))
44
44
  try:
45
- db = SQL(db="test2.db")
45
+ db = sqlconn("test2.db")
46
46
  query = "BANAO Table agar na mojud Users jisme mojud id int khas auto+, name jumla?"
47
47
  db.do(query)
48
48
  x = db.do("chuno sab kuch Users mese")
@@ -3,7 +3,11 @@ from KL_Py import KL_Py
3
3
  # ^ the import above is a MANDATORY imoort, and so is the following:
4
4
 
5
5
 
6
- __all__: list[str] = ["translate_for_jupyter", "translate_for_klang", "translate_for_sql"]
6
+ __all__: list[str] = [
7
+ "translate_for_jupyter",
8
+ "translate_for_klang",
9
+ "translate_for_sql"
10
+ ]
7
11
 
8
12
  def translate_for_ai(text: str) -> str:
9
13
  if not isinstance(text, str):
@@ -118,8 +122,9 @@ def translate_for_jupyter(code: str) -> None:
118
122
  r"kaho": "print",
119
123
  # match-case
120
124
  r"aga?r[_ ]match(?= [^\n\t\:]+\:)": "match",
121
- r"(?<=(?<!\w) {2})sath(?! (?:open|khola) ?\()": "case",
125
+ r"(?<=(?<!\w) {2})sath(?! (?:open|khola|[A-Za-z_]\w*\.connect) ?\()": "case",
122
126
  # same keyword, different operations
127
+ # keep the sequence untouched
123
128
  r"sath(?= [A-Za-z_])": "with",
124
129
  # if-else
125
130
  # sequence
@@ -169,7 +174,9 @@ def translate_for_jupyter(code: str) -> None:
169
174
  # and ISN'T followed by a (
170
175
  # no messing around^
171
176
  r"baad(?= ?\()": "delay",
172
- r"(with_i(?:ndex)?|numbered)(?= ?\()": "numbered",
177
+ r"\b((?:wit|sat)h_(?:i(?:n?de?x)?|numbers))(?= *\()\b": "numbered"\
178
+ if callable(globals().get("numbered"))\
179
+ else "enumerate",
173
180
  r"e_auto(?= ?\()": "enum.auto",
174
181
  r"kism(?= ?\()": "type",
175
182
  r"func": "Callable",
@@ -265,7 +272,8 @@ def translate_for_jupyter(code: str) -> None:
265
272
  continue
266
273
  strings[i] = replace(strings[i], r"\$(?=\{)", "")
267
274
  if not was_l_string_initially:
268
- strings[i] = replace(strings[i], r"\{\}", r"[]")
275
+ strings[i] = replace(strings[i], r"\\([\{\}])", r"$1" * 2)
276
+ strings[i] = replace(strings[i], r"(?<![\{\\])\{\}", r"{{}}")
269
277
  # handle blank templates without throwing an error
270
278
  # WARNING: this changes core Python f-string functionality for {}
271
279
  # actually, for the sake of commas, and spaces (as the $-based syntax can mess them up), let's allow both
@@ -322,9 +330,18 @@ def translate_for_jupyter(code: str) -> None:
322
330
  strings[i] = replace(strings[i], r"\[\.?b(?:ager|ina) (?:last|akhri) (?<stop>\-?\d+(?:[\+\-\*\/]*\d*)+)(?:st|nd|rd|h?l[ae]|th|th?[ae]|s?r[ae]|w[ae])?(?:,? +(?:\d+ )?baad (?<step>\w+(?:[\+\-\*\/]*\d*)+) *[ \/\-] *\w+(?:[\+\-\*\/]*\d*))?\]", "[:-abs($stop):$step]")
323
331
  # reversing
324
332
  strings[i] = replace(strings[i], r"\[\.?(?:k[aeio]\:?[_ ])?(?:ula?t[ai]?|rev(?:er(?:se)?)?[dt]?)\]", "[::-1]")
325
- while SEMICOLON_SUBINDEX_ACCESSOR_RE_COMPILED.search(strings[i]):
326
- strings[i] = replace(strings[i], SEMICOLON_SUBINDEX_ACCESSOR_RE, "${first_index}][${second_index}${rest}")
327
- strings[i] = replace(strings[i], r"(?<=\w) *\:\:(?!\s*\()([^\|]*)", "($1)")
333
+ while SEMICOLON_SUBINDEX_ACCESSOR_RE_COMPILED\
334
+ .search(strings[i]):
335
+ strings[i] = replace(
336
+ strings[i],
337
+ SEMICOLON_SUBINDEX_ACCESSOR_RE,
338
+ "${first_index}][${second_index}${rest}"
339
+ )
340
+ strings[i] = replace(
341
+ strings[i],
342
+ r"(?<=\w) *\:\:(?!\s*\()([^\n]*)",
343
+ "($1)"
344
+ )
328
345
  # number-based mid slicing (rather than index-based)
329
346
  # comes before
330
347
  strings[i] = replace(strings[i], r"\[\.?(?:da?rmya{0,2}n|beech)? *\:? *(?<start>\-?\d+)(?:st|nd|rd|h?l[ae]|th|th?[ae]|s?r[ae]|w[ae])(?:[,:~\-]| *(?:se|aur)?) *(?<stop>\-?\d+)(?:st|nd|rd|h?la|th|th?a|s?ra|wa)?(?:[, ]*(?:akhri )?(?:chor[_ ]?k?e|b(?:ina|a?ge?r))(?: akhri)?)(?:,? +(?:\d+ )?baad (?<step>\w+(?:[\+\-\*\/]*\d*)+) *[ \/\-] *\w+(?:[\+\-\*\/]*\d*))?\]", "[$start-1 if $start > 0 else $start:$stop-1 if $stop > 0 else $stop:$step]")
@@ -547,7 +564,10 @@ def translate_for_jupyter(code: str) -> None:
547
564
  # comes at last
548
565
  code = replace(code, r"\b(?<varname>[_A-Za-z]\w*) (?:[\^\&][tk]|[\^\&]?(?:za?ba?r(?:da?sti)?|force)) ?\= ?(?<type>[A-Za-z_]\w*)\b", "$varname = get_initial_of('$type') if not('$varname' in globals() or '$varname' in locals()) or not $varname or not isinstance($varname, $type) else $varname")
549
566
  # ::%m% -> ($m$)
550
- code = replace(code, r"(?<=\w) *\:\:(?!\s*\()([^\n]*)", "($1)")
567
+ code = replace(code,
568
+ r"(?<=\w) *\:\:(?!\s*\()([^\n]*)",
569
+ "($1)"
570
+ )
551
571
  # glitchy self-assignment operator
552
572
  def __self_assignment_operations_replacer__(match: re.Match) -> str:
553
573
  varname: str|list[str] = match.group("varname")
@@ -671,6 +691,7 @@ def translate_for_jupyter(code: str) -> None:
671
691
  # the actual support for `x ->` :
672
692
  # helps drop the parentheses if the function doesn't allow parameters
673
693
  # fc log: -> fc log():
694
+ code = replace(code, r"\basyn *(?:f[cn]|act)\b(?= +[A-Za-z_])", "async def")
674
695
  code = replace(code, r"(?<![\=,\(]|(?<=[\=,\(]|(?<=[\=,\(]|(?<=[\=,\(]) ) ) )\b(?:f[cn]|act) (?<funcname_followed_not_by_parens>[A-Za-z_]\w*)(?=(?<could_have_a_return_type>[^\(\)\:]+)?\:\n+(?: {4}|\t{1,}))", "def $funcname_followed_not_by_parens()")
675
696
  code = replace(code, r"(?<![\=,\(]|(?<=[\=,\(]|(?<=[\=,\(]|(?<=[\=,\(]) ) ) )\b(?:f[cn]|act) (?<funcname_regular>[A-Za-z_]\w*)\((?<params>.+)?\)(?=(?<could_have_a_return_type>[^\(\)\:]+)?\:(?:\n+(?: {4}|\t{1,}))?)", "def $funcname_regular($params)")
676
697
  code = replace(code, r"\b(lambda) lambda\b", "$1") # a bug fix
@@ -724,15 +745,24 @@ def translate_for_jupyter(code: str) -> None:
724
745
  # \/ handle (?<=(?:cls|class) )`A [\.>] B` cases
725
746
  code = replace(code, r"(?<=\bclass )\(? *(?<A>(?:\w+(?:, *)?)+)\)?(?: (?:produces?|creates?|conceives?|mothers?(?:[_\- ]*of)?|bears?|births?|peda karen?|jana?m den?) | *\. *)(?:cla?ss? +)?(?<B>\w+)\b", "$B($A)")
726
747
  code = replace(code, r"\benum (?<enumclassname>\w+)(?= *\:)", "class $enumclassname(Enum)")
727
- code = replace(code, r"(?<!\.)(?<varname>[\[\{\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\]\}\"\']{1,2}|[A-Za-z_]\w*)\.\b(?<replacement_method>replace(?:_first)?)\(", "$replacement_method($varname, ")
748
+ code = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?<replacement_method>replace(?:_first)?)\(", "$replacement_method($varname, ")
728
749
  # >> custom starts_with, and ends_with, that work with arrays as well
729
- code = replace(code, r"(?<!\.)(?<varname>[\[\{\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\]\}\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:starts_?with)\(", "startswith($varname, ") #custom, comes from KL_Py
730
- code = replace(code, r"(?<!\.)(?<varname>[\[\{\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\]\}\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:ends_?with)\(", "endswith($varname, ") #custom, comes from KL_Py
731
- code = replace(code, r"(?<!\.)(?<varname>[\[\{\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\]\}\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:is_?(?:sent(?:ence)?_?case|sentn?[cs]s?))\(\)", "is_sentence_case($varname)")
732
- code = replace(code, r"(?<!\.)(?<varname>[\[\{\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\]\}\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:sent(?:ence)?_?case|sentn?[cs]s?)\(\)", "sentence_case($varname)")
733
- code = replace(code, r"(?<!\.)(?<varname>[\[\{\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\]\}\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:is_?(?:snake_?case))\(\)", "is_snake_case($varname)")
734
- code = replace(code, r"(?<!\.)(?<varname>[\[\{\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\]\}\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:snake_?case)\(\)", "snake_case($varname)")
735
- code = replace(code, r"(?<!\.)\blambai (?<iterable>[\[\{\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\]\}\"\']{1,2}|[A-Za-z_][\w\.]*)", "lambai($iterable)" if "lambai" in {**globals(), **locals()} and isinstance(lambai, Callable) else "len($iterable)")
750
+ if callable(getattr(KL_Py, "copy", None)):
751
+ code = replace(code, r"\b([A-Za-z_]\w*)\.(?:d(?:e{2})?p?)?copy\(\)", "KL_Py.copy($1)") #custom, comes from KL_Py
752
+ if callable(getattr(KL_Py, "startswith", None)):
753
+ code = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:starts_?with)\(", "startswith($varname, ") #custom, comes from KL_Py
754
+ if callable(getattr(KL_Py, "endswith", None)):
755
+ ccode = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:ends_?with)\(", "endswith($varname, ") #custom, comes from KL_Py
756
+ if callable(getattr(KL_Py, "is_sentence_case", None)):
757
+ code = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:is_?(?:sent(?:ence)?_?case|sentn?[cs]s?))\(\)", "is_sentence_case($varname)")
758
+ if callable(getattr(KL_Py, "sentence_case", None)):
759
+ code = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:sent(?:ence)?_?case|sentn?[cs]s?)\(\)", "sentence_case($varname)")
760
+ if callable(getattr(KL_Py, "is_snake_case", None)):
761
+ code = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:is_?(?:snake_?case))\(\)", "is_snake_case($varname)")
762
+ if callable(getattr(KL_Py, "snake_case", None)):
763
+ code = replace(code, r"(?<!\.)(?<varname>[\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:snake_?case)\(\)", "snake_case($varname)")
764
+ if callable(getattr(KL_Py, "lambai", None)):
765
+ code = replace(code, r"(?<!\.)\blambai (?<iterable>[\[\{\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\]\}\"\']{1,2}|[A-Za-z_][\w\.]*)", "lambai($iterable)" if "lambai" in {**globals(), **locals()} and isinstance(lambai, Callable) else "len($iterable)")
736
766
  # don't touch it
737
767
  # doesn't need a work boundary ^
738
768
  code = replace(code, r"(?<!\.)(?<varname>[\[\{\"\']{1,2}(?:[\-\.\w\"\' ](?:, *)?)+[\]\}\"\']{1,2}|[A-Za-z_]\w*)\.\b(?:ki_?)?(?:len(?:gth)?|lambai|size)\b(?! *\()", "lambai($varname)" if "lambai" in {**globals(), **locals()} and isinstance(lambai, Callable) else "len($varname)")
@@ -898,12 +928,12 @@ def translate_for_jupyter(code: str) -> None:
898
928
  code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:i(?:nstall)?|add|da{1,2}lo) (?<pkgs>[^\n]+)$", "%pip install $pkgs")
899
929
  # if above does not work, try:
900
930
  # code = replace(code, r"^[%!~]+ *(?:i(?:nstall)?|add|da{1,2}lo) (?<pkgs>[^\n]+)$", r"import os, subprocess; subprocess.run([os.path.join(os.environ.get('BASE_PATH', '..'), 'install.bat'), '$pkgs'], shell=True)")
901
- code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:u(?:ninstall)?|re?mo?ve?|nika{1,2}lo|hata{1,2}o) (?<pkgs>[^\n]+)$", r'import os, subprocess; e=os.environ.copy(); e.pop("PIP_TARGET", None); subprocess.run([os.path.join(e.get("BASE_PATH", ""), "uninstall.bat"), "$pkgs"], env=e, shell=True)')
902
- code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:export|produce|(?:to|2)?[_ ]?exe)$", r"import os, subprocess, ipynbname; subprocess.run([os.path.join(os.environ.get('BASE_PATH', '..'), 'export_ipynb_as_exe.bat'), str(ipynbname.path())], shell=True)")
903
- code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[!%~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?(?:cmd|cli|term(?:i?na?l)?) *$", "if os.path.exists('klang.exe'): run_process(['start', 'klang.exe'], non_blocking=True, shell=True, max=1)")
904
- code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[!%~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?n(?:o?te?)?b?(?:o{0,}k)? *$", "if os.path.exists('nb.exe'): run_process(['start', 'nb.exe'], non_blocking=True, shell=True, max=1)")
905
- code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?la?b *$", "if os.path.exists('klab.bat'): run_process(['start', 'klab.bat'], non_blocking=True, shell=True, max=1)")
906
- code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?(?:(?:play|start)[_\- ]*)?(?:bg[_\- ]*)?music *$", "if os.path.exists('output/kMusicPlayer.exe'): run_process(['start', 'output/kMusicPlayer.exe', '--autoplay'], non_blocking=True, shell=True, max=1)")
931
+ code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:u(?:ninstall)?|re?mo?ve?|nika{1,2}lo|hata{1,2}o) (?<pkgs>[^\n]+)$", r'import os, subprocess; e=os.environ.copy(); e.pop("PIP_TARGET", None); subprocess.Popen([os.path.join(e.get("BASE_PATH", ""), "uninstall.bat"), "$pkgs"], env=e, shell=True)')
932
+ code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:export|produce|(?:to|2)?[_ ]?exe)$", r"import os, subprocess, ipynbname; subprocess.Popen([os.path.join(os.environ.get('BASE_PATH', '..'), 'export_ipynb_as_exe.bat'), str(ipynbname.path())], shell=True)")
933
+ code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[!%~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?(?:cmd|cli|term(?:i?na?l)?) *$", "if os.path.exists('klang.exe') and not is_running_process('klang.exe'): run_process(['start', 'klang.exe'], non_blocking=True, shell=True, max=1)")
934
+ code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[!%~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?n(?:o?te?)?b?(?:o{0,}k)? *$", "if os.path.exists('nb.exe') and not is_running_process('nb.exe'): run_process(['start', 'nb.exe'], non_blocking=True, shell=True, max=1)")
935
+ code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?la?b *$", "if os.path.exists('klab.bat') and not is_running_process('klab.bat'): run_process(['start', 'klab.bat'], non_blocking=True, shell=True, max=1)")
936
+ code = replace(code, r"(?<!\S|(?<=\S|(?<=\S) ) )[%!~]+ *(?:[jk]l?(?:ang)?[_\- ]*)?(?:(?:play|start|chalao)[_\- ]*)?(?:bg[_\- ]*)?music *(?:chalao)? *$", "if os.path.exists('output/kMusicPlayer.exe') and not is_running_process('kMusicPlayer.exe'): run_process(['start', 'output/kMusicPlayer.exe', '--autoplay'], non_blocking=True, shell=True, max=1)")
907
937
  # Restore strings
908
938
  for j, string in old_enumerate(strings):
909
939
  code = code.replace(f"__STRING_{j}__", string, 1)
@@ -936,6 +966,8 @@ def translate_for_sql(text: str) -> str:
936
966
  dictionary: dict[str, str] = {
937
967
  "bana{1,2}o": "create",
938
968
  "chuno": "select",
969
+ "da{1,2}lo": "insert",
970
+ "darmya{1,2}n|b(?:i|ee)ch": "into",
939
971
  "sab(?:[_ ]?kuch)?": "*",
940
972
  "jaha{1,2}n?": "where",
941
973
  r"sirf(?= \d)": "limit",
@@ -950,6 +982,7 @@ def translate_for_sql(text: str) -> str:
950
982
  "(?:ba?ra{0,2}ba?r )?he": "=",
951
983
  # sequence matters
952
984
  "gira{1,2}o": "drop",
985
+ "(?:saaf|kha{1,2}li)[_ ]*(?:karo|table)(?:[_ ]*table)?": "truncate table",
953
986
  "agar": "if",
954
987
  "na(?:hi)?(?= moj(?:u|oo)d)": "not",
955
988
  # sequence matters
@@ -970,7 +1003,7 @@ def translate_for_sql(text: str) -> str:
970
1003
  strings_and_column_names: list[str] = re.findall("[`\"\'][^`\"\']*[`\"\']", translation)
971
1004
  for i, string in enumerate(strings_and_column_names):
972
1005
  translation = translation.replace(string, f"__STRING_{i}__", 1)
973
- translation = replacei(translation, r"\bjis[_ ]?me moj(?:u|oo)d (.+)", "($1)")
1006
+ translation = replacei(translation, r"\bjis[_ ]?me moj(?:u|oo)d \(*([^\(\)]+)\)*", "($1)")
974
1007
  for k, v in dictionary.items():
975
1008
  translation = replacei(translation, fr"\b{k}\b", v)
976
1009
  translation = replacei(translation, r"(?<table_name>(?<!\w)`?[A-Za-z_]\w*`?) me[_ ]?se\b", "from ${table_name}")
@@ -1442,9 +1475,33 @@ arr[-1;4;-2;5]
1442
1475
  {
1443
1476
  3.14->"pi"
1444
1477
  }
1478
+
1479
+ greet::name="Michael"
1480
+ age = 21
1481
+
1482
+ x.copy()
1483
+ sath_numbers(1..3)
1484
+ sath db.connect():
1485
+
1486
+ sath 5:
1487
+
1445
1488
  """))
1446
- print(translate_for_jupyter("5 dafa: kaho \"${'hi' times 3}\""))
1447
- print(translate_for_klang("!cmd"))
1489
+ print(
1490
+ translate_for_jupyter(
1491
+ "5 dafa: kaho \"${'hi' times 3}\""
1492
+ )
1493
+ )
1494
+ print(
1495
+ translate_for_klang(
1496
+ "!cmd"
1497
+ )
1498
+ )
1499
+ print(
1500
+ translate_for_klang(
1501
+ "!music chalao"
1502
+ )
1503
+ )
1504
+
1448
1505
 
1449
1506
  if __name__ == "__main__":
1450
1507
  main()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: KL_Py
3
- Version: 0.2.2
3
+ Version: 0.2.4
4
4
  Summary: A Python simplification module
5
5
  Author-email: Abbaskhurram255 <abbaskhurram255@gmail.com>
6
6
  Classifier: Programming Language :: Python :: 3
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