je-editor 0.0.57__py3-none-any.whl → 0.0.59__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3194) hide show
  1. je_editor/__init__.py +1 -1
  2. je_editor/pyside_ui/editor_main_ui/main_editor.py +20 -0
  3. je_editor/pyside_ui/menu/set_menu.py +17 -0
  4. je_editor/pyside_ui/ui_setting/ui_setting.py +27 -0
  5. je_editor/start_editor.py +18 -0
  6. je_editor/tkinter_ui/__init__.py +1 -1
  7. je_editor/tkinter_ui/editor_main_ui/__init__.py +1 -1
  8. je_editor/tkinter_ui/editor_main_ui/tkinter_editor.py +1 -4
  9. je_editor/tkinter_ui/editor_main_ui/ui_setting/ui_setting.py +1 -1
  10. je_editor/tkinter_ui/ui_event/__init__.py +1 -1
  11. je_editor/tkinter_ui/ui_event/auto_save/__init__.py +1 -1
  12. je_editor/tkinter_ui/ui_event/auto_save/start_auto_save/start_auto_save.py +17 -17
  13. je_editor/tkinter_ui/ui_event/change_font/__init__.py +1 -1
  14. je_editor/tkinter_ui/ui_event/change_font/change_font.py +38 -38
  15. je_editor/tkinter_ui/ui_event/close/__init__.py +1 -1
  16. je_editor/tkinter_ui/ui_event/close/close_event.py +12 -12
  17. je_editor/tkinter_ui/ui_event/encoding/set_encoding.py +10 -10
  18. je_editor/tkinter_ui/ui_event/execute/__init__.py +1 -1
  19. je_editor/tkinter_ui/ui_event/execute/execute_code/__init__.py +1 -1
  20. je_editor/tkinter_ui/ui_event/execute/execute_code/exec_code.py +22 -22
  21. je_editor/tkinter_ui/ui_event/execute/execute_shell_command/__init__.py +1 -1
  22. je_editor/tkinter_ui/ui_event/execute/execute_shell_command/run_on_shell.py +12 -12
  23. je_editor/tkinter_ui/ui_event/language/__init__.py +1 -1
  24. je_editor/tkinter_ui/ui_event/language/set_language.py +13 -13
  25. je_editor/tkinter_ui/ui_event/open_file/__init__.py +1 -1
  26. je_editor/tkinter_ui/ui_event/open_file/open_file_to_read/__init__.py +1 -1
  27. je_editor/tkinter_ui/ui_event/open_file/open_file_to_read/open_file_to_read.py +20 -20
  28. je_editor/tkinter_ui/ui_event/open_file/open_last_edit_file/__init__.py +1 -1
  29. je_editor/tkinter_ui/ui_event/open_file/open_last_edit_file/open_last_edit_file.py +17 -17
  30. je_editor/tkinter_ui/ui_event/save_file/save_file_to_open/__init__.py +1 -1
  31. je_editor/tkinter_ui/ui_event/save_file/save_file_to_open/save_file_to_open.py +19 -19
  32. je_editor/tkinter_ui/ui_event/tag_keyword/__init__.py +1 -1
  33. je_editor/tkinter_ui/ui_event/tag_keyword/tag_keyword.py +49 -49
  34. je_editor/tkinter_ui/ui_event/text_process/program_exec/__init__.py +1 -1
  35. je_editor/tkinter_ui/ui_event/text_process/program_exec/code_exec_manager.py +169 -169
  36. je_editor/tkinter_ui/ui_event/text_process/program_exec/process_error.py +10 -10
  37. je_editor/tkinter_ui/ui_event/text_process/shell/__init__.py +1 -1
  38. je_editor/utils/__init__.py +1 -1
  39. je_editor/utils/editor_content/__init__.py +1 -1
  40. je_editor/utils/editor_content/content_save.py +66 -66
  41. je_editor/utils/editor_content/editor_content_data.py +19 -19
  42. je_editor/utils/encoding/__init__.py +1 -1
  43. je_editor/utils/encoding/encoding_data_module.py +101 -101
  44. je_editor/utils/exception/__init__.py +1 -1
  45. je_editor/utils/exception/exception_tags.py +33 -33
  46. je_editor/utils/exception/exceptions.py +30 -30
  47. je_editor/utils/file/open/__init__.py +1 -1
  48. je_editor/utils/file/open/open_file.py +52 -52
  49. je_editor/utils/file/save/save_file.py +81 -81
  50. je_editor/utils/font/__init__.py +1 -1
  51. je_editor/utils/font/font.py +20 -20
  52. je_editor/utils/json_format/__init__.py +1 -1
  53. je_editor/utils/json_format/json_process.py +28 -28
  54. je_editor/utils/keyword/__init__.py +1 -1
  55. je_editor/utils/keyword/keyword_list.py +4 -4
  56. je_editor/utils/language/__init__.py +1 -1
  57. je_editor/utils/language/language_data_module.py +9 -9
  58. je_editor/utils/language_data_module/__init__.py +1 -1
  59. je_editor/utils/language_data_module/language_compiler_data_module.py +7 -7
  60. je_editor/utils/language_data_module/language_param_data_module.py +7 -7
  61. je_editor/utils/theme/theme.py +6 -6
  62. {je_editor-0.0.57.dist-info → je_editor-0.0.59.dist-info}/LICENSE +21 -21
  63. {je_editor-0.0.57.dist-info → je_editor-0.0.59.dist-info}/METADATA +2 -1
  64. je_editor-0.0.59.dist-info/RECORD +107 -0
  65. je_editor-0.0.59.dist-info/top_level.txt +1 -0
  66. deprecation_for_old_python/dev_setup.py +0 -30
  67. deprecation_for_old_python/setup.py +0 -30
  68. docs/source/conf.py +0 -54
  69. je_editor-0.0.57.dist-info/RECORD +0 -3228
  70. je_editor-0.0.57.dist-info/top_level.txt +0 -6
  71. start_editor/start_editor.py +0 -3
  72. test/tkinter_ui/unit_test/extend_test/extend_editor.py +0 -11
  73. test/tkinter_ui/unit_test/file/save_and_open/save_and_open.py +0 -5
  74. test/tkinter_ui/unit_test/tkinter_test/editor/editor_with_theme.py +0 -7
  75. test/tkinter_ui/unit_test/tkinter_test/editor/import_tkinter_test.py +0 -3
  76. test/tkinter_ui/unit_test/tkinter_test/font/test_font.py +0 -14
  77. venv/Lib/site-packages/PyInstaller/__init__.py +0 -65
  78. venv/Lib/site-packages/PyInstaller/__main__.py +0 -198
  79. venv/Lib/site-packages/PyInstaller/_recursion_too_deep_message.py +0 -45
  80. venv/Lib/site-packages/PyInstaller/_shared_with_waf.py +0 -86
  81. venv/Lib/site-packages/PyInstaller/archive/__init__.py +0 -1
  82. venv/Lib/site-packages/PyInstaller/archive/pyz_crypto.py +0 -48
  83. venv/Lib/site-packages/PyInstaller/archive/readers.py +0 -242
  84. venv/Lib/site-packages/PyInstaller/archive/writers.py +0 -583
  85. venv/Lib/site-packages/PyInstaller/building/__init__.py +0 -1
  86. venv/Lib/site-packages/PyInstaller/building/api.py +0 -1064
  87. venv/Lib/site-packages/PyInstaller/building/build_main.py +0 -971
  88. venv/Lib/site-packages/PyInstaller/building/datastruct.py +0 -295
  89. venv/Lib/site-packages/PyInstaller/building/icon.py +0 -85
  90. venv/Lib/site-packages/PyInstaller/building/makespec.py +0 -836
  91. venv/Lib/site-packages/PyInstaller/building/osx.py +0 -267
  92. venv/Lib/site-packages/PyInstaller/building/splash.py +0 -486
  93. venv/Lib/site-packages/PyInstaller/building/splash_templates.py +0 -229
  94. venv/Lib/site-packages/PyInstaller/building/templates.py +0 -142
  95. venv/Lib/site-packages/PyInstaller/building/toc_conversion.py +0 -156
  96. venv/Lib/site-packages/PyInstaller/building/utils.py +0 -741
  97. venv/Lib/site-packages/PyInstaller/compat.py +0 -771
  98. venv/Lib/site-packages/PyInstaller/config.py +0 -54
  99. venv/Lib/site-packages/PyInstaller/configure.py +0 -95
  100. venv/Lib/site-packages/PyInstaller/depend/__init__.py +0 -1
  101. venv/Lib/site-packages/PyInstaller/depend/analysis.py +0 -896
  102. venv/Lib/site-packages/PyInstaller/depend/bindepend.py +0 -1043
  103. venv/Lib/site-packages/PyInstaller/depend/bytecode.py +0 -318
  104. venv/Lib/site-packages/PyInstaller/depend/dylib.py +0 -453
  105. venv/Lib/site-packages/PyInstaller/depend/imphook.py +0 -546
  106. venv/Lib/site-packages/PyInstaller/depend/imphookapi.py +0 -468
  107. venv/Lib/site-packages/PyInstaller/depend/utils.py +0 -420
  108. venv/Lib/site-packages/PyInstaller/exceptions.py +0 -30
  109. venv/Lib/site-packages/PyInstaller/fake-modules/pyi_splash.py +0 -223
  110. venv/Lib/site-packages/PyInstaller/hooks/__init__.py +0 -1
  111. venv/Lib/site-packages/PyInstaller/hooks/hook-PIL.Image.py +0 -17
  112. venv/Lib/site-packages/PyInstaller/hooks/hook-PIL.ImageFilter.py +0 -13
  113. venv/Lib/site-packages/PyInstaller/hooks/hook-PIL.SpiderImagePlugin.py +0 -14
  114. venv/Lib/site-packages/PyInstaller/hooks/hook-PIL.py +0 -21
  115. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QAxContainer.py +0 -14
  116. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.Qsci.py +0 -14
  117. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.Qt.py +0 -29
  118. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.Qt3DAnimation.py +0 -14
  119. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.Qt3DCore.py +0 -14
  120. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.Qt3DExtras.py +0 -14
  121. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.Qt3DInput.py +0 -14
  122. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.Qt3DLogic.py +0 -14
  123. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.Qt3DRender.py +0 -14
  124. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtBluetooth.py +0 -14
  125. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtChart.py +0 -14
  126. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtCore.py +0 -14
  127. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtDBus.py +0 -14
  128. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtDataVisualization.py +0 -14
  129. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtDesigner.py +0 -14
  130. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtGui.py +0 -14
  131. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtHelp.py +0 -14
  132. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtLocation.py +0 -14
  133. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtMacExtras.py +0 -14
  134. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtMultimedia.py +0 -14
  135. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtMultimediaWidgets.py +0 -14
  136. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtNetwork.py +0 -15
  137. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtNetworkAuth.py +0 -14
  138. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtNfc.py +0 -14
  139. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtOpenGL.py +0 -14
  140. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtPositioning.py +0 -14
  141. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtPrintSupport.py +0 -14
  142. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtPurchasing.py +0 -14
  143. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtQml.py +0 -17
  144. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtQuick.py +0 -14
  145. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtQuick3D.py +0 -14
  146. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtQuickWidgets.py +0 -14
  147. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtRemoteObjects.py +0 -14
  148. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtScript.py +0 -14
  149. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtSensors.py +0 -14
  150. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtSerialPort.py +0 -14
  151. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtSql.py +0 -14
  152. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtSvg.py +0 -14
  153. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtTest.py +0 -14
  154. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtTextToSpeech.py +0 -14
  155. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtWebChannel.py +0 -14
  156. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtWebEngine.py +0 -14
  157. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtWebEngineCore.py +0 -22
  158. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtWebEngineWidgets.py +0 -14
  159. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtWebKit.py +0 -14
  160. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtWebKitWidgets.py +0 -14
  161. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtWebSockets.py +0 -14
  162. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtWidgets.py +0 -14
  163. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtWinExtras.py +0 -14
  164. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtX11Extras.py +0 -14
  165. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtXml.py +0 -14
  166. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.QtXmlPatterns.py +0 -14
  167. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.py +0 -26
  168. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt5.uic.py +0 -17
  169. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QAxContainer.py +0 -14
  170. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.Qsci.py +0 -14
  171. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.Qt3DAnimation.py +0 -14
  172. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.Qt3DCore.py +0 -14
  173. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.Qt3DExtras.py +0 -14
  174. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.Qt3DInput.py +0 -14
  175. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.Qt3DLogic.py +0 -14
  176. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.Qt3DRender.py +0 -16
  177. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtBluetooth.py +0 -14
  178. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtCharts.py +0 -14
  179. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtCore.py +0 -14
  180. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtDBus.py +0 -14
  181. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtDataVisualization.py +0 -14
  182. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtDesigner.py +0 -14
  183. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtGui.py +0 -14
  184. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtHelp.py +0 -14
  185. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtMultimedia.py +0 -14
  186. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtMultimediaWidgets.py +0 -14
  187. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtNetwork.py +0 -15
  188. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtNetworkAuth.py +0 -14
  189. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtNfc.py +0 -14
  190. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtOpenGL.py +0 -14
  191. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtOpenGLWidgets.py +0 -14
  192. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtPdf.py +0 -14
  193. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtPdfWidgets.py +0 -14
  194. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtPositioning.py +0 -14
  195. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtPrintSupport.py +0 -14
  196. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtQml.py +0 -17
  197. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtQuick.py +0 -14
  198. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtQuick3D.py +0 -14
  199. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtQuickWidgets.py +0 -14
  200. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtRemoteObjects.py +0 -14
  201. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtSensors.py +0 -14
  202. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtSerialPort.py +0 -14
  203. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtSql.py +0 -14
  204. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtSvg.py +0 -14
  205. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtSvgWidgets.py +0 -14
  206. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtTest.py +0 -14
  207. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtWebChannel.py +0 -14
  208. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtWebEngineCore.py +0 -27
  209. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtWebEngineQuick.py +0 -14
  210. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtWebEngineWidgets.py +0 -14
  211. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtWebSockets.py +0 -14
  212. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtWidgets.py +0 -14
  213. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.QtXml.py +0 -14
  214. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.py +0 -23
  215. venv/Lib/site-packages/PyInstaller/hooks/hook-PyQt6.uic.py +0 -17
  216. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.Qt3DAnimation.py +0 -14
  217. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.Qt3DCore.py +0 -14
  218. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.Qt3DExtras.py +0 -14
  219. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.Qt3DInput.py +0 -14
  220. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.Qt3DLogic.py +0 -14
  221. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.Qt3DRender.py +0 -14
  222. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtAxContainer.py +0 -14
  223. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtCharts.py +0 -14
  224. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtConcurrent.py +0 -14
  225. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtCore.py +0 -14
  226. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtDataVisualization.py +0 -14
  227. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtGui.py +0 -14
  228. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtHelp.py +0 -14
  229. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtLocation.py +0 -14
  230. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtMacExtras.py +0 -14
  231. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtMultimedia.py +0 -19
  232. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtMultimediaWidgets.py +0 -14
  233. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtNetwork.py +0 -15
  234. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtOpenGL.py +0 -14
  235. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtOpenGLFunctions.py +0 -14
  236. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtPositioning.py +0 -14
  237. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtPrintSupport.py +0 -14
  238. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtQml.py +0 -19
  239. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtQuick.py +0 -14
  240. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtQuickControls2.py +0 -14
  241. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtQuickWidgets.py +0 -14
  242. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtRemoteObjects.py +0 -14
  243. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtScript.py +0 -14
  244. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtScriptTools.py +0 -14
  245. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtScxml.py +0 -14
  246. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtSensors.py +0 -14
  247. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtSerialPort.py +0 -14
  248. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtSql.py +0 -14
  249. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtSvg.py +0 -14
  250. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtTest.py +0 -14
  251. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtTextToSpeech.py +0 -14
  252. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtUiTools.py +0 -15
  253. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtWebChannel.py +0 -14
  254. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtWebEngine.py +0 -14
  255. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtWebEngineCore.py +0 -22
  256. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtWebEngineWidgets.py +0 -14
  257. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtWebKit.py +0 -14
  258. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtWebKitWidgets.py +0 -14
  259. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtWebSockets.py +0 -14
  260. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtWidgets.py +0 -14
  261. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtWinExtras.py +0 -14
  262. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtX11Extras.py +0 -14
  263. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtXml.py +0 -14
  264. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.QtXmlPatterns.py +0 -14
  265. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.Qwt5.py +0 -31
  266. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide2.py +0 -22
  267. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.Qt3DAnimation.py +0 -14
  268. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.Qt3DCore.py +0 -14
  269. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.Qt3DExtras.py +0 -14
  270. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.Qt3DInput.py +0 -14
  271. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.Qt3DLogic.py +0 -14
  272. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.Qt3DRender.py +0 -14
  273. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtAxContainer.py +0 -14
  274. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtBluetooth.py +0 -14
  275. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtCharts.py +0 -14
  276. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtConcurrent.py +0 -14
  277. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtCore.py +0 -14
  278. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtDBus.py +0 -14
  279. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtDataVisualization.py +0 -14
  280. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtDesigner.py +0 -14
  281. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtGui.py +0 -14
  282. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtHelp.py +0 -14
  283. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtHttpServer.py +0 -14
  284. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtMultimedia.py +0 -19
  285. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtMultimediaWidgets.py +0 -14
  286. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtNetwork.py +0 -15
  287. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtNetworkAuth.py +0 -14
  288. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtNfc.py +0 -14
  289. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtOpenGL.py +0 -14
  290. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtOpenGLWidgets.py +0 -14
  291. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtPdf.py +0 -14
  292. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtPdfWidgets.py +0 -14
  293. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtPositioning.py +0 -14
  294. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtPrintSupport.py +0 -14
  295. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtQml.py +0 -17
  296. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtQuick.py +0 -14
  297. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtQuick3D.py +0 -14
  298. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtQuickControls2.py +0 -16
  299. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtQuickWidgets.py +0 -14
  300. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtRemoteObjects.py +0 -14
  301. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtScxml.py +0 -14
  302. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtSensors.py +0 -14
  303. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtSerialPort.py +0 -14
  304. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtSpatialAudio.py +0 -14
  305. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtSql.py +0 -14
  306. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtStateMachine.py +0 -14
  307. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtSvg.py +0 -14
  308. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtSvgWidgets.py +0 -14
  309. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtTest.py +0 -14
  310. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtUiTools.py +0 -14
  311. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtWebChannel.py +0 -14
  312. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtWebEngineCore.py +0 -29
  313. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtWebEngineQuick.py +0 -14
  314. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtWebEngineWidgets.py +0 -14
  315. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtWebSockets.py +0 -14
  316. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtWidgets.py +0 -14
  317. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.QtXml.py +0 -14
  318. venv/Lib/site-packages/PyInstaller/hooks/hook-PySide6.py +0 -25
  319. venv/Lib/site-packages/PyInstaller/hooks/hook-_tkinter.py +0 -29
  320. venv/Lib/site-packages/PyInstaller/hooks/hook-babel.py +0 -16
  321. venv/Lib/site-packages/PyInstaller/hooks/hook-difflib.py +0 -13
  322. venv/Lib/site-packages/PyInstaller/hooks/hook-distutils.py +0 -33
  323. venv/Lib/site-packages/PyInstaller/hooks/hook-distutils.util.py +0 -13
  324. venv/Lib/site-packages/PyInstaller/hooks/hook-django.contrib.sessions.py +0 -14
  325. venv/Lib/site-packages/PyInstaller/hooks/hook-django.core.cache.py +0 -14
  326. venv/Lib/site-packages/PyInstaller/hooks/hook-django.core.mail.py +0 -25
  327. venv/Lib/site-packages/PyInstaller/hooks/hook-django.core.management.py +0 -19
  328. venv/Lib/site-packages/PyInstaller/hooks/hook-django.db.backends.mysql.base.py +0 -13
  329. venv/Lib/site-packages/PyInstaller/hooks/hook-django.db.backends.oracle.base.py +0 -12
  330. venv/Lib/site-packages/PyInstaller/hooks/hook-django.db.backends.py +0 -25
  331. venv/Lib/site-packages/PyInstaller/hooks/hook-django.py +0 -92
  332. venv/Lib/site-packages/PyInstaller/hooks/hook-django.template.loaders.py +0 -14
  333. venv/Lib/site-packages/PyInstaller/hooks/hook-encodings.py +0 -14
  334. venv/Lib/site-packages/PyInstaller/hooks/hook-gevent.py +0 -24
  335. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.py +0 -12
  336. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.Adw.py +0 -16
  337. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.Atk.py +0 -29
  338. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.Champlain.py +0 -16
  339. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.Clutter.py +0 -16
  340. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GIRepository.py +0 -16
  341. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GLib.py +0 -42
  342. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GModule.py +0 -16
  343. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GObject.py +0 -19
  344. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.Gdk.py +0 -36
  345. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GdkPixbuf.py +0 -141
  346. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.Gio.py +0 -63
  347. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.Graphene.py +0 -16
  348. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.Gsk.py +0 -16
  349. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.Gst.py +0 -93
  350. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstAllocators.py +0 -16
  351. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstApp.py +0 -16
  352. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstAudio.py +0 -16
  353. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstBadAudio.py +0 -16
  354. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstBase.py +0 -16
  355. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstCheck.py +0 -16
  356. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstCodecs.py +0 -16
  357. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstController.py +0 -16
  358. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstGL.py +0 -16
  359. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstGLEGL.py +0 -16
  360. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstGLWayland.py +0 -16
  361. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstGLX11.py +0 -16
  362. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstInsertBin.py +0 -16
  363. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstMpegts.py +0 -16
  364. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstNet.py +0 -16
  365. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstPbutils.py +0 -16
  366. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstPlay.py +0 -16
  367. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstPlayer.py +0 -16
  368. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstRtp.py +0 -16
  369. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstRtsp.py +0 -16
  370. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstRtspServer.py +0 -16
  371. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstSdp.py +0 -16
  372. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstTag.py +0 -16
  373. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstTranscoder.py +0 -16
  374. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstVideo.py +0 -16
  375. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstVulkan.py +0 -16
  376. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstVulkanWayland.py +0 -16
  377. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstVulkanXCB.py +0 -16
  378. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GstWebRTC.py +0 -16
  379. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.Gtk.py +0 -59
  380. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GtkChamplain.py +0 -16
  381. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GtkClutter.py +0 -16
  382. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GtkSource.py +0 -31
  383. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.GtkosxApplication.py +0 -18
  384. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.HarfBuzz.py +0 -16
  385. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.Pango.py +0 -16
  386. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.PangoCairo.py +0 -16
  387. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.cairo.py +0 -16
  388. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.freetype2.py +0 -16
  389. venv/Lib/site-packages/PyInstaller/hooks/hook-gi.repository.xlib.py +0 -16
  390. venv/Lib/site-packages/PyInstaller/hooks/hook-heapq.py +0 -13
  391. venv/Lib/site-packages/PyInstaller/hooks/hook-idlelib.py +0 -14
  392. venv/Lib/site-packages/PyInstaller/hooks/hook-importlib_metadata.py +0 -24
  393. venv/Lib/site-packages/PyInstaller/hooks/hook-importlib_resources.py +0 -22
  394. venv/Lib/site-packages/PyInstaller/hooks/hook-keyring.py +0 -19
  395. venv/Lib/site-packages/PyInstaller/hooks/hook-kivy.py +0 -25
  396. venv/Lib/site-packages/PyInstaller/hooks/hook-lib2to3.py +0 -16
  397. venv/Lib/site-packages/PyInstaller/hooks/hook-matplotlib.backends.py +0 -218
  398. venv/Lib/site-packages/PyInstaller/hooks/hook-matplotlib.numerix.py +0 -21
  399. venv/Lib/site-packages/PyInstaller/hooks/hook-matplotlib.py +0 -23
  400. venv/Lib/site-packages/PyInstaller/hooks/hook-multiprocessing.util.py +0 -16
  401. venv/Lib/site-packages/PyInstaller/hooks/hook-numpy._pytesttester.py +0 -16
  402. venv/Lib/site-packages/PyInstaller/hooks/hook-numpy.py +0 -59
  403. venv/Lib/site-packages/PyInstaller/hooks/hook-packaging.py +0 -13
  404. venv/Lib/site-packages/PyInstaller/hooks/hook-pandas.io.formats.style.py +0 -18
  405. venv/Lib/site-packages/PyInstaller/hooks/hook-pandas.plotting.py +0 -18
  406. venv/Lib/site-packages/PyInstaller/hooks/hook-pandas.py +0 -20
  407. venv/Lib/site-packages/PyInstaller/hooks/hook-pickle.py +0 -13
  408. venv/Lib/site-packages/PyInstaller/hooks/hook-pkg_resources.py +0 -57
  409. venv/Lib/site-packages/PyInstaller/hooks/hook-platform.py +0 -16
  410. venv/Lib/site-packages/PyInstaller/hooks/hook-pygments.py +0 -29
  411. venv/Lib/site-packages/PyInstaller/hooks/hook-pytz.py +0 -16
  412. venv/Lib/site-packages/PyInstaller/hooks/hook-pytzdata.py +0 -14
  413. venv/Lib/site-packages/PyInstaller/hooks/hook-qtawesome.py +0 -19
  414. venv/Lib/site-packages/PyInstaller/hooks/hook-scapy.layers.all.py +0 -19
  415. venv/Lib/site-packages/PyInstaller/hooks/hook-scipy.io.matlab.py +0 -13
  416. venv/Lib/site-packages/PyInstaller/hooks/hook-scipy.linalg.py +0 -13
  417. venv/Lib/site-packages/PyInstaller/hooks/hook-scipy.py +0 -35
  418. venv/Lib/site-packages/PyInstaller/hooks/hook-scipy.sparse.csgraph.py +0 -13
  419. venv/Lib/site-packages/PyInstaller/hooks/hook-scipy.spatial.transform.rotation.py +0 -17
  420. venv/Lib/site-packages/PyInstaller/hooks/hook-scipy.special._ellip_harm_2.py +0 -30
  421. venv/Lib/site-packages/PyInstaller/hooks/hook-scipy.special._ufuncs.py +0 -14
  422. venv/Lib/site-packages/PyInstaller/hooks/hook-scipy.stats._stats.py +0 -15
  423. venv/Lib/site-packages/PyInstaller/hooks/hook-scrapy.py +0 -18
  424. venv/Lib/site-packages/PyInstaller/hooks/hook-setuptools.msvc.py +0 -13
  425. venv/Lib/site-packages/PyInstaller/hooks/hook-setuptools.py +0 -41
  426. venv/Lib/site-packages/PyInstaller/hooks/hook-shelve.py +0 -14
  427. venv/Lib/site-packages/PyInstaller/hooks/hook-sphinx.py +0 -41
  428. venv/Lib/site-packages/PyInstaller/hooks/hook-sqlalchemy.py +0 -77
  429. venv/Lib/site-packages/PyInstaller/hooks/hook-sqlite3.py +0 -19
  430. venv/Lib/site-packages/PyInstaller/hooks/hook-sysconfig.py +0 -29
  431. venv/Lib/site-packages/PyInstaller/hooks/hook-wcwidth.py +0 -14
  432. venv/Lib/site-packages/PyInstaller/hooks/hook-win32ctypes.core.py +0 -21
  433. venv/Lib/site-packages/PyInstaller/hooks/hook-xml.dom.domreg.py +0 -13
  434. venv/Lib/site-packages/PyInstaller/hooks/hook-xml.etree.cElementTree.py +0 -13
  435. venv/Lib/site-packages/PyInstaller/hooks/hook-xml.py +0 -12
  436. venv/Lib/site-packages/PyInstaller/hooks/hook-zope.interface.py +0 -12
  437. venv/Lib/site-packages/PyInstaller/hooks/pre_find_module_path/__init__.py +0 -1
  438. venv/Lib/site-packages/PyInstaller/hooks/pre_find_module_path/hook-PyQt5.uic.port_v2.py +0 -15
  439. venv/Lib/site-packages/PyInstaller/hooks/pre_find_module_path/hook-distutils.py +0 -46
  440. venv/Lib/site-packages/PyInstaller/hooks/pre_find_module_path/hook-pyi_splash.py +0 -36
  441. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/__init__.py +0 -1
  442. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.py +0 -37
  443. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.Adw.py +0 -16
  444. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.Atk.py +0 -16
  445. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.Champlain.py +0 -16
  446. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.Clutter.py +0 -16
  447. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GIRepository.py +0 -16
  448. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GLib.py +0 -16
  449. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GModule.py +0 -16
  450. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GObject.py +0 -16
  451. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.Gdk.py +0 -16
  452. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GdkPixbuf.py +0 -16
  453. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.Gio.py +0 -16
  454. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.Graphene.py +0 -16
  455. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.Gsk.py +0 -16
  456. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.Gst.py +0 -16
  457. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstAllocators.py +0 -16
  458. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstApp.py +0 -16
  459. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstAudio.py +0 -16
  460. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstBadAudio.py +0 -16
  461. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstBase.py +0 -16
  462. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstCheck.py +0 -16
  463. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstCodecs.py +0 -16
  464. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstController.py +0 -16
  465. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstGL.py +0 -16
  466. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstGLEGL.py +0 -16
  467. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstGLWayland.py +0 -16
  468. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstGLX11.py +0 -16
  469. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstInsertBin.py +0 -16
  470. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstMpegts.py +0 -16
  471. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstNet.py +0 -16
  472. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstPbutils.py +0 -16
  473. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstPlay.py +0 -16
  474. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstPlayer.py +0 -16
  475. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstRtp.py +0 -16
  476. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstRtsp.py +0 -16
  477. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstRtspServer.py +0 -16
  478. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstSdp.py +0 -16
  479. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstTag.py +0 -16
  480. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstTranscoder.py +0 -16
  481. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstVideo.py +0 -16
  482. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstVulkan.py +0 -16
  483. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstVulkanWayland.py +0 -16
  484. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstVulkanXCB.py +0 -16
  485. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GstWebRTC.py +0 -16
  486. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.Gtk.py +0 -16
  487. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GtkChamplain.py +0 -16
  488. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GtkClutter.py +0 -16
  489. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GtkSource.py +0 -16
  490. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.GtkosxApplication.py +0 -16
  491. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.HarfBuzz.py +0 -16
  492. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.Pango.py +0 -16
  493. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.PangoCairo.py +0 -16
  494. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.cairo.py +0 -16
  495. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.freetype2.py +0 -16
  496. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-gi.repository.xlib.py +0 -16
  497. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-setuptools.extern.six.moves.py +0 -35
  498. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-six.moves.py +0 -60
  499. venv/Lib/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-urllib3.packages.six.moves.py +0 -30
  500. venv/Lib/site-packages/PyInstaller/hooks/rthooks/__init__.py +0 -1
  501. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth__tkinter.py +0 -30
  502. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_django.py +0 -30
  503. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_gdkpixbuf.py +0 -35
  504. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_gi.py +0 -15
  505. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_gio.py +0 -15
  506. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_glib.py +0 -31
  507. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_gstreamer.py +0 -26
  508. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_gtk.py +0 -21
  509. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py +0 -44
  510. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_kivy.py +0 -18
  511. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_mplconfig.py +0 -38
  512. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_multiprocessing.py +0 -95
  513. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pkgres.py +0 -200
  514. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pkgutil.py +0 -86
  515. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pyqt5.py +0 -28
  516. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pyqt5webengine.py +0 -32
  517. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pyqt6.py +0 -28
  518. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pyqt6webengine.py +0 -35
  519. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pyside2.py +0 -26
  520. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pyside2webengine.py +0 -25
  521. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pyside6.py +0 -26
  522. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pyside6webengine.py +0 -31
  523. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_setuptools.py +0 -35
  524. venv/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_win32comgenpy.py +0 -52
  525. venv/Lib/site-packages/PyInstaller/isolated/__init__.py +0 -31
  526. venv/Lib/site-packages/PyInstaller/isolated/_child.py +0 -95
  527. venv/Lib/site-packages/PyInstaller/isolated/_parent.py +0 -406
  528. venv/Lib/site-packages/PyInstaller/lib/__init__.py +0 -1
  529. venv/Lib/site-packages/PyInstaller/lib/modulegraph/__init__.py +0 -1
  530. venv/Lib/site-packages/PyInstaller/lib/modulegraph/__main__.py +0 -89
  531. venv/Lib/site-packages/PyInstaller/lib/modulegraph/_compat.py +0 -25
  532. venv/Lib/site-packages/PyInstaller/lib/modulegraph/find_modules.py +0 -338
  533. venv/Lib/site-packages/PyInstaller/lib/modulegraph/modulegraph.py +0 -3309
  534. venv/Lib/site-packages/PyInstaller/lib/modulegraph/util.py +0 -149
  535. venv/Lib/site-packages/PyInstaller/lib/modulegraph/zipio.py +0 -418
  536. venv/Lib/site-packages/PyInstaller/loader/__init__.py +0 -1
  537. venv/Lib/site-packages/PyInstaller/loader/pyiboot01_bootstrap.py +0 -92
  538. venv/Lib/site-packages/PyInstaller/loader/pyimod01_archive.py +0 -307
  539. venv/Lib/site-packages/PyInstaller/loader/pyimod02_importers.py +0 -604
  540. venv/Lib/site-packages/PyInstaller/loader/pyimod03_ctypes.py +0 -131
  541. venv/Lib/site-packages/PyInstaller/loader/pyimod04_pywin32.py +0 -48
  542. venv/Lib/site-packages/PyInstaller/log.py +0 -56
  543. venv/Lib/site-packages/PyInstaller/utils/__init__.py +0 -1
  544. venv/Lib/site-packages/PyInstaller/utils/_gitrevision.py +0 -10
  545. venv/Lib/site-packages/PyInstaller/utils/cliutils/__init__.py +0 -1
  546. venv/Lib/site-packages/PyInstaller/utils/cliutils/archive_viewer.py +0 -271
  547. venv/Lib/site-packages/PyInstaller/utils/cliutils/bindepend.py +0 -52
  548. venv/Lib/site-packages/PyInstaller/utils/cliutils/grab_version.py +0 -51
  549. venv/Lib/site-packages/PyInstaller/utils/cliutils/makespec.py +0 -53
  550. venv/Lib/site-packages/PyInstaller/utils/cliutils/set_version.py +0 -42
  551. venv/Lib/site-packages/PyInstaller/utils/conftest.py +0 -576
  552. venv/Lib/site-packages/PyInstaller/utils/git.py +0 -59
  553. venv/Lib/site-packages/PyInstaller/utils/hooks/__init__.py +0 -1397
  554. venv/Lib/site-packages/PyInstaller/utils/hooks/conda.py +0 -400
  555. venv/Lib/site-packages/PyInstaller/utils/hooks/django.py +0 -151
  556. venv/Lib/site-packages/PyInstaller/utils/hooks/gi.py +0 -308
  557. venv/Lib/site-packages/PyInstaller/utils/hooks/qt/__init__.py +0 -845
  558. venv/Lib/site-packages/PyInstaller/utils/hooks/qt/_modules_info.py +0 -439
  559. venv/Lib/site-packages/PyInstaller/utils/hooks/tcl_tk.py +0 -253
  560. venv/Lib/site-packages/PyInstaller/utils/hooks/win32.py +0 -50
  561. venv/Lib/site-packages/PyInstaller/utils/misc.py +0 -223
  562. venv/Lib/site-packages/PyInstaller/utils/osx.py +0 -359
  563. venv/Lib/site-packages/PyInstaller/utils/run_tests.py +0 -69
  564. venv/Lib/site-packages/PyInstaller/utils/tests.py +0 -154
  565. venv/Lib/site-packages/PyInstaller/utils/win32/__init__.py +0 -1
  566. venv/Lib/site-packages/PyInstaller/utils/win32/icon.py +0 -248
  567. venv/Lib/site-packages/PyInstaller/utils/win32/versioninfo.py +0 -585
  568. venv/Lib/site-packages/PyInstaller/utils/win32/winmanifest.py +0 -1083
  569. venv/Lib/site-packages/PyInstaller/utils/win32/winresource.py +0 -245
  570. venv/Lib/site-packages/PyInstaller/utils/win32/winutils.py +0 -358
  571. venv/Lib/site-packages/PySide6/__init__.py +0 -124
  572. venv/Lib/site-packages/PySide6/_config.py +0 -16
  573. venv/Lib/site-packages/PySide6/_git_pyside_version.py +0 -19
  574. venv/Lib/site-packages/PySide6/examples/3d/simple3d/simple3d.py +0 -127
  575. venv/Lib/site-packages/PySide6/examples/axcontainer/axviewer/axviewer.py +0 -47
  576. venv/Lib/site-packages/PySide6/examples/bluetooth/btscanner/device.py +0 -129
  577. venv/Lib/site-packages/PySide6/examples/bluetooth/btscanner/main.py +0 -18
  578. venv/Lib/site-packages/PySide6/examples/bluetooth/btscanner/service.py +0 -48
  579. venv/Lib/site-packages/PySide6/examples/bluetooth/btscanner/ui_device.py +0 -90
  580. venv/Lib/site-packages/PySide6/examples/bluetooth/btscanner/ui_service.py +0 -57
  581. venv/Lib/site-packages/PySide6/examples/bluetooth/heartrate_game/bluetoothbaseclass.py +0 -40
  582. venv/Lib/site-packages/PySide6/examples/bluetooth/heartrate_game/connectionhandler.py +0 -51
  583. venv/Lib/site-packages/PySide6/examples/bluetooth/heartrate_game/devicefinder.py +0 -122
  584. venv/Lib/site-packages/PySide6/examples/bluetooth/heartrate_game/devicehandler.py +0 -307
  585. venv/Lib/site-packages/PySide6/examples/bluetooth/heartrate_game/deviceinfo.py +0 -38
  586. venv/Lib/site-packages/PySide6/examples/bluetooth/heartrate_game/heartrate_global.py +0 -6
  587. venv/Lib/site-packages/PySide6/examples/bluetooth/heartrate_game/main.py +0 -53
  588. venv/Lib/site-packages/PySide6/examples/bluetooth/heartrate_server/heartrate_server.py +0 -94
  589. venv/Lib/site-packages/PySide6/examples/charts/areachart/areachart.py +0 -67
  590. venv/Lib/site-packages/PySide6/examples/charts/audio/audio.py +0 -91
  591. venv/Lib/site-packages/PySide6/examples/charts/barchart/barchart.py +0 -69
  592. venv/Lib/site-packages/PySide6/examples/charts/callout/callout.py +0 -220
  593. venv/Lib/site-packages/PySide6/examples/charts/chartthemes/main.py +0 -369
  594. venv/Lib/site-packages/PySide6/examples/charts/chartthemes/ui_themewidget.py +0 -91
  595. venv/Lib/site-packages/PySide6/examples/charts/donutbreakdown/donutbreakdown.py +0 -148
  596. venv/Lib/site-packages/PySide6/examples/charts/dynamicspline/chart.py +0 -52
  597. venv/Lib/site-packages/PySide6/examples/charts/dynamicspline/main.py +0 -27
  598. venv/Lib/site-packages/PySide6/examples/charts/legend/legend.py +0 -225
  599. venv/Lib/site-packages/PySide6/examples/charts/lineandbar/lineandbar.py +0 -81
  600. venv/Lib/site-packages/PySide6/examples/charts/linechart/linechart.py +0 -47
  601. venv/Lib/site-packages/PySide6/examples/charts/logvalueaxis/logvalueaxis.py +0 -57
  602. venv/Lib/site-packages/PySide6/examples/charts/memoryusage/memoryusage.py +0 -92
  603. venv/Lib/site-packages/PySide6/examples/charts/modeldata/modeldata.py +0 -144
  604. venv/Lib/site-packages/PySide6/examples/charts/nesteddonuts/nesteddonuts.py +0 -100
  605. venv/Lib/site-packages/PySide6/examples/charts/percentbarchart/percentbarchart.py +0 -63
  606. venv/Lib/site-packages/PySide6/examples/charts/piechart/piechart.py +0 -50
  607. venv/Lib/site-packages/PySide6/examples/charts/pointselectionandmarkers/pointselectionandmarkers.py +0 -127
  608. venv/Lib/site-packages/PySide6/examples/charts/pointselectionandmarkers/rc_markers.py +0 -275
  609. venv/Lib/site-packages/PySide6/examples/charts/pointselectionandmarkers/utilities.py +0 -67
  610. venv/Lib/site-packages/PySide6/examples/charts/qmlpolarchart/qmlpolarchart.py +0 -28
  611. venv/Lib/site-packages/PySide6/examples/charts/temperaturerecords/temperaturerecords.py +0 -60
  612. venv/Lib/site-packages/PySide6/examples/corelib/ipc/sharedmemory/dialog.py +0 -93
  613. venv/Lib/site-packages/PySide6/examples/corelib/ipc/sharedmemory/main.py +0 -15
  614. venv/Lib/site-packages/PySide6/examples/corelib/ipc/sharedmemory/ui_dialog.py +0 -57
  615. venv/Lib/site-packages/PySide6/examples/corelib/mimetypesbrowser/mainwindow.py +0 -161
  616. venv/Lib/site-packages/PySide6/examples/corelib/mimetypesbrowser/mimetypemodel.py +0 -136
  617. venv/Lib/site-packages/PySide6/examples/corelib/mimetypesbrowser/mimetypesbrowser.py +0 -24
  618. venv/Lib/site-packages/PySide6/examples/corelib/settingseditor/settingseditor.py +0 -757
  619. venv/Lib/site-packages/PySide6/examples/corelib/threads/mandelbrot.py +0 -352
  620. venv/Lib/site-packages/PySide6/examples/datavisualization/bars3d/bars3d.py +0 -80
  621. venv/Lib/site-packages/PySide6/examples/datavisualization/minimalsurface/main.py +0 -54
  622. venv/Lib/site-packages/PySide6/examples/datavisualization/surface/main.py +0 -189
  623. venv/Lib/site-packages/PySide6/examples/datavisualization/surface/surfacegraph.py +0 -253
  624. venv/Lib/site-packages/PySide6/examples/datavisualization/surface_model_numpy/main.py +0 -189
  625. venv/Lib/site-packages/PySide6/examples/datavisualization/surface_model_numpy/surfacegraph.py +0 -295
  626. venv/Lib/site-packages/PySide6/examples/datavisualization/surface_numpy/main.py +0 -189
  627. venv/Lib/site-packages/PySide6/examples/datavisualization/surface_numpy/surfacegraph.py +0 -253
  628. venv/Lib/site-packages/PySide6/examples/dbus/listnames/listnames.py +0 -54
  629. venv/Lib/site-packages/PySide6/examples/dbus/pingpong/ping.py +0 -39
  630. venv/Lib/site-packages/PySide6/examples/dbus/pingpong/pong.py +0 -44
  631. venv/Lib/site-packages/PySide6/examples/designer/taskmenuextension/main.py +0 -16
  632. venv/Lib/site-packages/PySide6/examples/designer/taskmenuextension/registertictactoe.py +0 -13
  633. venv/Lib/site-packages/PySide6/examples/designer/taskmenuextension/tictactoe.py +0 -133
  634. venv/Lib/site-packages/PySide6/examples/designer/taskmenuextension/tictactoeplugin.py +0 -71
  635. venv/Lib/site-packages/PySide6/examples/designer/taskmenuextension/tictactoetaskmenu.py +0 -68
  636. venv/Lib/site-packages/PySide6/examples/external/matplotlib/widget3d/widget3d.py +0 -207
  637. venv/Lib/site-packages/PySide6/examples/external/matplotlib/widget_gaussian/widget_gaussian.py +0 -75
  638. venv/Lib/site-packages/PySide6/examples/external/networkx/main.py +0 -346
  639. venv/Lib/site-packages/PySide6/examples/external/opencv/webcam_pattern_detection.py +0 -170
  640. venv/Lib/site-packages/PySide6/examples/external/pandas/dataframe_model.py +0 -82
  641. venv/Lib/site-packages/PySide6/examples/external/scikit/staining_colors_separation.py +0 -147
  642. venv/Lib/site-packages/PySide6/examples/gui/analogclock/main.py +0 -77
  643. venv/Lib/site-packages/PySide6/examples/httpserver/afterrequest/main.py +0 -36
  644. venv/Lib/site-packages/PySide6/examples/multimedia/audiooutput/audiooutput.py +0 -272
  645. venv/Lib/site-packages/PySide6/examples/multimedia/audiosource/audiosource.py +0 -204
  646. venv/Lib/site-packages/PySide6/examples/multimedia/camera/camera.py +0 -172
  647. venv/Lib/site-packages/PySide6/examples/multimedia/player/player.py +0 -194
  648. venv/Lib/site-packages/PySide6/examples/network/blockingfortuneclient/blockingfortuneclient.py +0 -186
  649. venv/Lib/site-packages/PySide6/examples/network/downloader/downloader.py +0 -178
  650. venv/Lib/site-packages/PySide6/examples/network/fortuneclient/fortuneclient.py +0 -126
  651. venv/Lib/site-packages/PySide6/examples/network/fortuneserver/fortuneserver.py +0 -82
  652. venv/Lib/site-packages/PySide6/examples/network/googlesuggest/googlesuggest.py +0 -137
  653. venv/Lib/site-packages/PySide6/examples/network/googlesuggest/main.py +0 -14
  654. venv/Lib/site-packages/PySide6/examples/network/googlesuggest/searchbox.py +0 -27
  655. venv/Lib/site-packages/PySide6/examples/network/loopback/dialog.py +0 -151
  656. venv/Lib/site-packages/PySide6/examples/network/loopback/main.py +0 -15
  657. venv/Lib/site-packages/PySide6/examples/network/threadedfortuneserver/threadedfortuneserver.py +0 -116
  658. venv/Lib/site-packages/PySide6/examples/networkauth/redditclient/main.py +0 -28
  659. venv/Lib/site-packages/PySide6/examples/networkauth/redditclient/redditmodel.py +0 -70
  660. venv/Lib/site-packages/PySide6/examples/networkauth/redditclient/redditwrapper.py +0 -91
  661. venv/Lib/site-packages/PySide6/examples/opengl/contextinfo/contextinfo.py +0 -262
  662. venv/Lib/site-packages/PySide6/examples/opengl/hellogl2/hellogl2.py +0 -440
  663. venv/Lib/site-packages/PySide6/examples/opengl/textures/textures.py +0 -211
  664. venv/Lib/site-packages/PySide6/examples/opengl/textures/textures_rc.py +0 -762
  665. venv/Lib/site-packages/PySide6/examples/opengl/threadedqopenglwidget/glwidget.py +0 -79
  666. venv/Lib/site-packages/PySide6/examples/opengl/threadedqopenglwidget/main.py +0 -93
  667. venv/Lib/site-packages/PySide6/examples/opengl/threadedqopenglwidget/mainwindow.py +0 -24
  668. venv/Lib/site-packages/PySide6/examples/opengl/threadedqopenglwidget/renderer.py +0 -326
  669. venv/Lib/site-packages/PySide6/examples/pdf/quickpdfviewer/main.py +0 -49
  670. venv/Lib/site-packages/PySide6/examples/pdf/quickpdfviewer/rc_viewer.py +0 -5505
  671. venv/Lib/site-packages/PySide6/examples/pdfwidgets/pdfviewer/main.py +0 -27
  672. venv/Lib/site-packages/PySide6/examples/pdfwidgets/pdfviewer/mainwindow.py +0 -141
  673. venv/Lib/site-packages/PySide6/examples/pdfwidgets/pdfviewer/resources_rc.py +0 -3468
  674. venv/Lib/site-packages/PySide6/examples/pdfwidgets/pdfviewer/ui_mainwindow.py +0 -259
  675. venv/Lib/site-packages/PySide6/examples/pdfwidgets/pdfviewer/zoomselector.py +0 -59
  676. venv/Lib/site-packages/PySide6/examples/qml/editingmodel/main.py +0 -21
  677. venv/Lib/site-packages/PySide6/examples/qml/editingmodel/model.py +0 -157
  678. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/adding/main.py +0 -30
  679. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/adding/person.py +0 -35
  680. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/attached/birthdayparty.py +0 -63
  681. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/attached/main.py +0 -46
  682. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/attached/person.py +0 -46
  683. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/binding/birthdayparty.py +0 -83
  684. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/binding/happybirthdaysong.py +0 -47
  685. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/binding/main.py +0 -52
  686. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/binding/person.py +0 -53
  687. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/coercion/birthdayparty.py +0 -41
  688. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/coercion/main.py +0 -36
  689. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/coercion/person.py +0 -47
  690. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/default/birthdayparty.py +0 -42
  691. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/default/main.py +0 -36
  692. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/default/person.py +0 -46
  693. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/extended/main.py +0 -95
  694. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/grouped/birthdayparty.py +0 -42
  695. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/grouped/main.py +0 -43
  696. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/grouped/person.py +0 -85
  697. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/methods/birthdayparty.py +0 -47
  698. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/methods/main.py +0 -32
  699. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/methods/person.py +0 -34
  700. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/properties/birthdayparty.py +0 -41
  701. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/properties/main.py +0 -34
  702. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/properties/person.py +0 -35
  703. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/valuesource/birthdayparty.py +0 -76
  704. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/valuesource/happybirthdaysong.py +0 -47
  705. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/valuesource/main.py +0 -51
  706. venv/Lib/site-packages/PySide6/examples/qml/referenceexamples/valuesource/person.py +0 -46
  707. venv/Lib/site-packages/PySide6/examples/qml/signals/pytoqml1/main.py +0 -31
  708. venv/Lib/site-packages/PySide6/examples/qml/signals/pytoqml2/main.py +0 -54
  709. venv/Lib/site-packages/PySide6/examples/qml/signals/qmltopy1/main.py +0 -50
  710. venv/Lib/site-packages/PySide6/examples/qml/signals/qmltopy2/main.py +0 -45
  711. venv/Lib/site-packages/PySide6/examples/qml/signals/qmltopy3/main.py +0 -33
  712. venv/Lib/site-packages/PySide6/examples/qml/signals/qmltopy4/main.py +0 -33
  713. venv/Lib/site-packages/PySide6/examples/qml/textproperties/main.py +0 -76
  714. venv/Lib/site-packages/PySide6/examples/qml/tutorials/extending/chapter1-basics/basics.py +0 -68
  715. venv/Lib/site-packages/PySide6/examples/qml/tutorials/extending/chapter2-methods/methods.py +0 -75
  716. venv/Lib/site-packages/PySide6/examples/qml/tutorials/extending/chapter3-bindings/bindings.py +0 -79
  717. venv/Lib/site-packages/PySide6/examples/qml/tutorials/extending/chapter4-customPropertyTypes/customPropertyTypes.py +0 -82
  718. venv/Lib/site-packages/PySide6/examples/qml/tutorials/extending/chapter5-listproperties/listproperties.py +0 -96
  719. venv/Lib/site-packages/PySide6/examples/qml/tutorials/extending/chapter6-plugins/Charts/piechart.py +0 -40
  720. venv/Lib/site-packages/PySide6/examples/qml/tutorials/extending/chapter6-plugins/Charts/pieslice.py +0 -52
  721. venv/Lib/site-packages/PySide6/examples/qml/usingmodel/usingmodel.py +0 -70
  722. venv/Lib/site-packages/PySide6/examples/quick/models/objectlistmodel/objectlistmodel.py +0 -61
  723. venv/Lib/site-packages/PySide6/examples/quick/models/stringlistmodel/stringlistmodel.py +0 -26
  724. venv/Lib/site-packages/PySide6/examples/quick/painteditem/painteditem.py +0 -75
  725. venv/Lib/site-packages/PySide6/examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.py +0 -186
  726. venv/Lib/site-packages/PySide6/examples/quick/rendercontrol/rendercontrol_opengl/main.py +0 -20
  727. venv/Lib/site-packages/PySide6/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.py +0 -275
  728. venv/Lib/site-packages/PySide6/examples/quick/scenegraph/openglunderqml/main.py +0 -27
  729. venv/Lib/site-packages/PySide6/examples/quick/scenegraph/openglunderqml/squircle.py +0 -79
  730. venv/Lib/site-packages/PySide6/examples/quick/scenegraph/openglunderqml/squirclerenderer.py +0 -99
  731. venv/Lib/site-packages/PySide6/examples/quick/shared/shared_rc.py +0 -1884
  732. venv/Lib/site-packages/PySide6/examples/quick/window/main.py +0 -37
  733. venv/Lib/site-packages/PySide6/examples/quick/window/window_rc.py +0 -328
  734. venv/Lib/site-packages/PySide6/examples/quick3d/customgeometry/examplepoint.py +0 -51
  735. venv/Lib/site-packages/PySide6/examples/quick3d/customgeometry/exampletriangle.py +0 -188
  736. venv/Lib/site-packages/PySide6/examples/quick3d/customgeometry/main.py +0 -29
  737. venv/Lib/site-packages/PySide6/examples/quick3d/customgeometry/resources_rc.py +0 -585
  738. venv/Lib/site-packages/PySide6/examples/quick3d/intro/main.py +0 -24
  739. venv/Lib/site-packages/PySide6/examples/quickcontrols2/gallery/gallery.py +0 -52
  740. venv/Lib/site-packages/PySide6/examples/quickcontrols2/gallery/rc_gallery.py +0 -7855
  741. venv/Lib/site-packages/PySide6/examples/remoteobjects/modelview/modelviewclient.py +0 -24
  742. venv/Lib/site-packages/PySide6/examples/remoteobjects/modelview/modelviewserver.py +0 -103
  743. venv/Lib/site-packages/PySide6/examples/samplebinding/main.py +0 -64
  744. venv/Lib/site-packages/PySide6/examples/serialport/terminal/console.py +0 -49
  745. venv/Lib/site-packages/PySide6/examples/serialport/terminal/main.py +0 -17
  746. venv/Lib/site-packages/PySide6/examples/serialport/terminal/mainwindow.py +0 -108
  747. venv/Lib/site-packages/PySide6/examples/serialport/terminal/rc_terminal.py +0 -4464
  748. venv/Lib/site-packages/PySide6/examples/serialport/terminal/settingsdialog.py +0 -179
  749. venv/Lib/site-packages/PySide6/examples/serialport/terminal/ui_mainwindow.py +0 -149
  750. venv/Lib/site-packages/PySide6/examples/serialport/terminal/ui_settingsdialog.py +0 -181
  751. venv/Lib/site-packages/PySide6/examples/spatialaudio/audiopanning/main.py +0 -193
  752. venv/Lib/site-packages/PySide6/examples/sql/books/bookdelegate.py +0 -94
  753. venv/Lib/site-packages/PySide6/examples/sql/books/bookwindow.py +0 -98
  754. venv/Lib/site-packages/PySide6/examples/sql/books/createdb.py +0 -96
  755. venv/Lib/site-packages/PySide6/examples/sql/books/main.py +0 -16
  756. venv/Lib/site-packages/PySide6/examples/sql/books/rc_books.py +0 -88
  757. venv/Lib/site-packages/PySide6/examples/sql/books/ui_bookwindow.py +0 -135
  758. venv/Lib/site-packages/PySide6/examples/sql/relationaltablemodel/connection.py +0 -18
  759. venv/Lib/site-packages/PySide6/examples/sql/relationaltablemodel/relationaltablemodel.py +0 -77
  760. venv/Lib/site-packages/PySide6/examples/statemachine/eventtrans/eventtrans.py +0 -57
  761. venv/Lib/site-packages/PySide6/examples/statemachine/factstates/factstates.py +0 -89
  762. venv/Lib/site-packages/PySide6/examples/statemachine/ping_pong/ping_pong.py +0 -70
  763. venv/Lib/site-packages/PySide6/examples/statemachine/rogue/rogue.py +0 -179
  764. venv/Lib/site-packages/PySide6/examples/statemachine/trafficlight/trafficlight.py +0 -117
  765. venv/Lib/site-packages/PySide6/examples/statemachine/twowaybutton/twowaybutton.py +0 -33
  766. venv/Lib/site-packages/PySide6/examples/texttospeech/hello_speak/hello_speak.py +0 -73
  767. venv/Lib/site-packages/PySide6/examples/uitools/uiloader/uiloader.py +0 -35
  768. venv/Lib/site-packages/PySide6/examples/utils/pyside_config.py +0 -338
  769. venv/Lib/site-packages/PySide6/examples/webchannel/standalone/core.py +0 -25
  770. venv/Lib/site-packages/PySide6/examples/webchannel/standalone/dialog.py +0 -32
  771. venv/Lib/site-packages/PySide6/examples/webchannel/standalone/main.py +0 -62
  772. venv/Lib/site-packages/PySide6/examples/webchannel/standalone/ui_dialog.py +0 -57
  773. venv/Lib/site-packages/PySide6/examples/webchannel/standalone/websocketclientwrapper.py +0 -35
  774. venv/Lib/site-packages/PySide6/examples/webchannel/standalone/websockettransport.py +0 -51
  775. venv/Lib/site-packages/PySide6/examples/webenginequick/nanobrowser/quicknanobrowser.py +0 -65
  776. venv/Lib/site-packages/PySide6/examples/webenginequick/nanobrowser/rc_resources.py +0 -348
  777. venv/Lib/site-packages/PySide6/examples/webenginewidgets/markdowneditor/document.py +0 -24
  778. venv/Lib/site-packages/PySide6/examples/webenginewidgets/markdowneditor/main.py +0 -20
  779. venv/Lib/site-packages/PySide6/examples/webenginewidgets/markdowneditor/mainwindow.py +0 -136
  780. venv/Lib/site-packages/PySide6/examples/webenginewidgets/markdowneditor/previewpage.py +0 -18
  781. venv/Lib/site-packages/PySide6/examples/webenginewidgets/markdowneditor/rc_markdowneditor.py +0 -852
  782. venv/Lib/site-packages/PySide6/examples/webenginewidgets/markdowneditor/ui_mainwindow.py +0 -115
  783. venv/Lib/site-packages/PySide6/examples/webenginewidgets/notifications/main.py +0 -57
  784. venv/Lib/site-packages/PySide6/examples/webenginewidgets/notifications/notificationpopup.py +0 -68
  785. venv/Lib/site-packages/PySide6/examples/webenginewidgets/simplebrowser/simplebrowser.py +0 -70
  786. venv/Lib/site-packages/PySide6/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py +0 -239
  787. venv/Lib/site-packages/PySide6/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py +0 -212
  788. venv/Lib/site-packages/PySide6/examples/webenginewidgets/tabbedbrowser/downloadwidget.py +0 -111
  789. venv/Lib/site-packages/PySide6/examples/webenginewidgets/tabbedbrowser/findtoolbar.py +0 -62
  790. venv/Lib/site-packages/PySide6/examples/webenginewidgets/tabbedbrowser/historywindow.py +0 -66
  791. venv/Lib/site-packages/PySide6/examples/webenginewidgets/tabbedbrowser/main.py +0 -358
  792. venv/Lib/site-packages/PySide6/examples/webenginewidgets/tabbedbrowser/webengineview.py +0 -56
  793. venv/Lib/site-packages/PySide6/examples/widgetbinding/dialog.py +0 -32
  794. venv/Lib/site-packages/PySide6/examples/widgetbinding/main.py +0 -14
  795. venv/Lib/site-packages/PySide6/examples/widgetbinding/registerwigglywidget.py +0 -31
  796. venv/Lib/site-packages/PySide6/examples/widgetbinding/wigglywidget.py +0 -69
  797. venv/Lib/site-packages/PySide6/examples/widgets/animation/animatedtiles/animatedtiles.py +0 -230
  798. venv/Lib/site-packages/PySide6/examples/widgets/animation/animatedtiles/animatedtiles_rc.py +0 -6108
  799. venv/Lib/site-packages/PySide6/examples/widgets/animation/appchooser/appchooser.py +0 -99
  800. venv/Lib/site-packages/PySide6/examples/widgets/animation/appchooser/appchooser_rc.py +0 -1424
  801. venv/Lib/site-packages/PySide6/examples/widgets/animation/easing/easing.py +0 -221
  802. venv/Lib/site-packages/PySide6/examples/widgets/animation/easing/ui_form.py +0 -178
  803. venv/Lib/site-packages/PySide6/examples/widgets/animation/states/states.py +0 -235
  804. venv/Lib/site-packages/PySide6/examples/widgets/animation/states/states_rc.py +0 -2182
  805. venv/Lib/site-packages/PySide6/examples/widgets/codeeditor/codeeditor.py +0 -104
  806. venv/Lib/site-packages/PySide6/examples/widgets/codeeditor/main.py +0 -15
  807. venv/Lib/site-packages/PySide6/examples/widgets/desktop/screenshot/screenshot.py +0 -156
  808. venv/Lib/site-packages/PySide6/examples/widgets/desktop/systray/main.py +0 -21
  809. venv/Lib/site-packages/PySide6/examples/widgets/desktop/systray/rc_systray.py +0 -2581
  810. venv/Lib/site-packages/PySide6/examples/widgets/desktop/systray/window.py +0 -236
  811. venv/Lib/site-packages/PySide6/examples/widgets/dialogs/classwizard/classwizard.py +0 -380
  812. venv/Lib/site-packages/PySide6/examples/widgets/dialogs/classwizard/classwizard_rc.py +0 -2316
  813. venv/Lib/site-packages/PySide6/examples/widgets/dialogs/classwizard/listchooser.py +0 -173
  814. venv/Lib/site-packages/PySide6/examples/widgets/dialogs/extension/extension.py +0 -77
  815. venv/Lib/site-packages/PySide6/examples/widgets/dialogs/findfiles/findfiles.py +0 -184
  816. venv/Lib/site-packages/PySide6/examples/widgets/dialogs/licensewizard/licensewizard.py +0 -298
  817. venv/Lib/site-packages/PySide6/examples/widgets/dialogs/licensewizard/main.py +0 -15
  818. venv/Lib/site-packages/PySide6/examples/widgets/dialogs/standarddialogs/standarddialogs.py +0 -415
  819. venv/Lib/site-packages/PySide6/examples/widgets/dialogs/tabdialog/tabdialog.py +0 -178
  820. venv/Lib/site-packages/PySide6/examples/widgets/dialogs/trivialwizard/trivialwizard.py +0 -63
  821. venv/Lib/site-packages/PySide6/examples/widgets/draganddrop/draggableicons/draggableicons.py +0 -128
  822. venv/Lib/site-packages/PySide6/examples/widgets/draganddrop/draggabletext/draggabletext.py +0 -118
  823. venv/Lib/site-packages/PySide6/examples/widgets/draganddrop/draggabletext/draggabletext_rc.py +0 -55
  824. venv/Lib/site-packages/PySide6/examples/widgets/draganddrop/dropsite/droparea.py +0 -67
  825. venv/Lib/site-packages/PySide6/examples/widgets/draganddrop/dropsite/dropsitewindow.py +0 -115
  826. venv/Lib/site-packages/PySide6/examples/widgets/draganddrop/dropsite/main.py +0 -15
  827. venv/Lib/site-packages/PySide6/examples/widgets/effects/blurpicker/blureffect.py +0 -33
  828. venv/Lib/site-packages/PySide6/examples/widgets/effects/blurpicker/blurpicker.py +0 -105
  829. venv/Lib/site-packages/PySide6/examples/widgets/effects/blurpicker/main.py +0 -20
  830. venv/Lib/site-packages/PySide6/examples/widgets/effects/lighting/lighting.py +0 -108
  831. venv/Lib/site-packages/PySide6/examples/widgets/gettext/main.py +0 -60
  832. venv/Lib/site-packages/PySide6/examples/widgets/graphicsview/anchorlayout/anchorlayout.py +0 -90
  833. venv/Lib/site-packages/PySide6/examples/widgets/graphicsview/collidingmice/collidingmice.py +0 -180
  834. venv/Lib/site-packages/PySide6/examples/widgets/graphicsview/collidingmice/mice_rc.py +0 -232
  835. venv/Lib/site-packages/PySide6/examples/widgets/graphicsview/diagramscene/diagramscene.py +0 -817
  836. venv/Lib/site-packages/PySide6/examples/widgets/graphicsview/diagramscene/diagramscene_rc.py +0 -417
  837. venv/Lib/site-packages/PySide6/examples/widgets/graphicsview/dragdroprobot/dragdroprobot.py +0 -254
  838. venv/Lib/site-packages/PySide6/examples/widgets/graphicsview/dragdroprobot/dragdroprobot_rc.py +0 -975
  839. venv/Lib/site-packages/PySide6/examples/widgets/graphicsview/elasticnodes/elasticnodes.py +0 -393
  840. venv/Lib/site-packages/PySide6/examples/widgets/imageviewer/imageviewer.py +0 -277
  841. venv/Lib/site-packages/PySide6/examples/widgets/imageviewer/main.py +0 -27
  842. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/address_book/adddialogwidget.py +0 -65
  843. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/address_book/address_book.py +0 -96
  844. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/address_book/addresswidget.py +0 -214
  845. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/address_book/newaddresstab.py +0 -56
  846. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/address_book/tablemodel.py +0 -109
  847. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/basicfiltermodel/basicsortfiltermodel.py +0 -178
  848. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/dirview/dirview.py +0 -60
  849. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/editabletreemodel/main.py +0 -14
  850. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/editabletreemodel/mainwindow.py +0 -163
  851. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/editabletreemodel/treeitem.py +0 -94
  852. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/editabletreemodel/treemodel.py +0 -199
  853. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/fetchmore/fetchmore.py +0 -137
  854. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/jsonmodel/jsonmodel.py +0 -323
  855. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.py +0 -78
  856. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/spreadsheet/main.py +0 -19
  857. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/spreadsheet/spreadsheet.py +0 -544
  858. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/spreadsheet/spreadsheetdelegate.py +0 -67
  859. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/spreadsheet/spreadsheetitem.py +0 -122
  860. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/stardelegate/stardelegate.py +0 -136
  861. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/stardelegate/stareditor.py +0 -63
  862. venv/Lib/site-packages/PySide6/examples/widgets/itemviews/stardelegate/starrating.py +0 -62
  863. venv/Lib/site-packages/PySide6/examples/widgets/layouts/basiclayouts/basiclayouts.py +0 -99
  864. venv/Lib/site-packages/PySide6/examples/widgets/layouts/borderlayout/borderlayout.py +0 -248
  865. venv/Lib/site-packages/PySide6/examples/widgets/layouts/dynamiclayouts/dynamiclayouts.py +0 -132
  866. venv/Lib/site-packages/PySide6/examples/widgets/layouts/flowlayout/flowlayout.py +0 -120
  867. venv/Lib/site-packages/PySide6/examples/widgets/linguist/linguist_rc.py +0 -68
  868. venv/Lib/site-packages/PySide6/examples/widgets/linguist/main.py +0 -55
  869. venv/Lib/site-packages/PySide6/examples/widgets/mainwindows/application/application.py +0 -259
  870. venv/Lib/site-packages/PySide6/examples/widgets/mainwindows/application/application_rc.py +0 -608
  871. venv/Lib/site-packages/PySide6/examples/widgets/mainwindows/dockwidgets/dockwidgets.py +0 -271
  872. venv/Lib/site-packages/PySide6/examples/widgets/mainwindows/dockwidgets/dockwidgets_rc.py +0 -464
  873. venv/Lib/site-packages/PySide6/examples/widgets/mainwindows/mdi/mdi.py +0 -439
  874. venv/Lib/site-packages/PySide6/examples/widgets/mainwindows/mdi/mdi_rc.py +0 -608
  875. venv/Lib/site-packages/PySide6/examples/widgets/painting/basicdrawing/basicdrawing.py +0 -313
  876. venv/Lib/site-packages/PySide6/examples/widgets/painting/basicdrawing/basicdrawing_rc.py +0 -135
  877. venv/Lib/site-packages/PySide6/examples/widgets/painting/concentriccircles/concentriccircles.py +0 -108
  878. venv/Lib/site-packages/PySide6/examples/widgets/painting/painter/painter.py +0 -202
  879. venv/Lib/site-packages/PySide6/examples/widgets/painting/plot/plot.py +0 -66
  880. venv/Lib/site-packages/PySide6/examples/widgets/richtext/orderform/orderform.py +0 -267
  881. venv/Lib/site-packages/PySide6/examples/widgets/richtext/syntaxhighlighter/syntaxhighlighter.py +0 -109
  882. venv/Lib/site-packages/PySide6/examples/widgets/richtext/textedit/main.py +0 -42
  883. venv/Lib/site-packages/PySide6/examples/widgets/richtext/textedit/textedit.py +0 -716
  884. venv/Lib/site-packages/PySide6/examples/widgets/richtext/textedit/textedit_rc.py +0 -6029
  885. venv/Lib/site-packages/PySide6/examples/widgets/richtext/textobject/textobject.py +0 -104
  886. venv/Lib/site-packages/PySide6/examples/widgets/thread_signals/thread_signals.py +0 -62
  887. venv/Lib/site-packages/PySide6/examples/widgets/tools/regularexpression/regularexpression.py +0 -21
  888. venv/Lib/site-packages/PySide6/examples/widgets/tools/regularexpression/regularexpressiondialog.py +0 -457
  889. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/addressbook/part1.py +0 -39
  890. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/addressbook/part2.py +0 -146
  891. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/addressbook/part3.py +0 -215
  892. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/addressbook/part4.py +0 -272
  893. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/addressbook/part5.py +0 -332
  894. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/addressbook/part6.py +0 -396
  895. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/addressbook/part7.py +0 -448
  896. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t1.py +0 -20
  897. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t10.py +0 -152
  898. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t11.py +0 -224
  899. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t12.py +0 -275
  900. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t13.py +0 -356
  901. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t14.py +0 -409
  902. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t2.py +0 -23
  903. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t3.py +0 -25
  904. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t4.py +0 -30
  905. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t5.py +0 -41
  906. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t6.py +0 -51
  907. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t7.py +0 -73
  908. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t8.py +0 -116
  909. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/cannon/t9.py +0 -122
  910. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/modelview/1_readonly.py +0 -38
  911. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/modelview/2_formatting.py +0 -65
  912. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/modelview/3_changingmodel.py +0 -52
  913. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/modelview/4_headers.py +0 -43
  914. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/modelview/5_edit.py +0 -73
  915. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/modelview/6_treeview.py +0 -41
  916. venv/Lib/site-packages/PySide6/examples/widgets/tutorials/modelview/7_selections.py +0 -70
  917. venv/Lib/site-packages/PySide6/examples/widgets/widgets/charactermap/characterwidget.py +0 -133
  918. venv/Lib/site-packages/PySide6/examples/widgets/widgets/charactermap/fontinfodialog.py +0 -47
  919. venv/Lib/site-packages/PySide6/examples/widgets/widgets/charactermap/main.py +0 -17
  920. venv/Lib/site-packages/PySide6/examples/widgets/widgets/charactermap/mainwindow.py +0 -167
  921. venv/Lib/site-packages/PySide6/examples/widgets/widgets/digitalclock/digitalclock.py +0 -41
  922. venv/Lib/site-packages/PySide6/examples/widgets/widgets/tetrix/tetrix.py +0 -471
  923. venv/Lib/site-packages/PySide6/examples/widgets/widgetsgallery/main.py +0 -17
  924. venv/Lib/site-packages/PySide6/examples/widgets/widgetsgallery/widgetgallery.py +0 -402
  925. venv/Lib/site-packages/PySide6/examples/xml/dombookmarks/dombookmarks.py +0 -228
  926. venv/Lib/site-packages/PySide6/scripts/deploy/__init__.py +0 -7
  927. venv/Lib/site-packages/PySide6/scripts/deploy/commands.py +0 -31
  928. venv/Lib/site-packages/PySide6/scripts/deploy/config.py +0 -226
  929. venv/Lib/site-packages/PySide6/scripts/deploy/nuitka_helper.py +0 -51
  930. venv/Lib/site-packages/PySide6/scripts/deploy/python_helper.py +0 -83
  931. venv/Lib/site-packages/PySide6/scripts/deploy.py +0 -190
  932. venv/Lib/site-packages/PySide6/scripts/metaobjectdump.py +0 -406
  933. venv/Lib/site-packages/PySide6/scripts/project/__init__.py +0 -25
  934. venv/Lib/site-packages/PySide6/scripts/project/newproject.py +0 -165
  935. venv/Lib/site-packages/PySide6/scripts/project/project_data.py +0 -215
  936. venv/Lib/site-packages/PySide6/scripts/project/utils.py +0 -105
  937. venv/Lib/site-packages/PySide6/scripts/project.py +0 -240
  938. venv/Lib/site-packages/PySide6/scripts/pyside_tool.py +0 -201
  939. venv/Lib/site-packages/PySide6/scripts/qml.py +0 -246
  940. venv/Lib/site-packages/PySide6/scripts/qtpy2cpp.py +0 -62
  941. venv/Lib/site-packages/PySide6/scripts/qtpy2cpp_lib/astdump.py +0 -111
  942. venv/Lib/site-packages/PySide6/scripts/qtpy2cpp_lib/formatter.py +0 -265
  943. venv/Lib/site-packages/PySide6/scripts/qtpy2cpp_lib/nodedump.py +0 -50
  944. venv/Lib/site-packages/PySide6/scripts/qtpy2cpp_lib/qt.py +0 -56
  945. venv/Lib/site-packages/PySide6/scripts/qtpy2cpp_lib/tokenizer.py +0 -55
  946. venv/Lib/site-packages/PySide6/scripts/qtpy2cpp_lib/visitor.py +0 -443
  947. venv/Lib/site-packages/PySide6/support/__init__.py +0 -6
  948. venv/Lib/site-packages/PySide6/support/deprecated.py +0 -97
  949. venv/Lib/site-packages/PySide6/support/generate_pyi.py +0 -92
  950. venv/Lib/site-packages/_distutils_hack/__init__.py +0 -222
  951. venv/Lib/site-packages/_distutils_hack/override.py +0 -1
  952. venv/Lib/site-packages/_pyinstaller_hooks_contrib/__init__.py +0 -15
  953. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/__init__.py +0 -23
  954. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/pre_find_module_path/__init__.py +0 -11
  955. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/pre_safe_import_module/__init__.py +0 -11
  956. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/pre_safe_import_module/hook-tensorflow.py +0 -23
  957. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/pre_safe_import_module/hook-win32com.py +0 -47
  958. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/rthooks/__init__.py +0 -26
  959. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/rthooks/pyi_rth_enchant.py +0 -22
  960. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/rthooks/pyi_rth_nltk.py +0 -18
  961. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/rthooks/pyi_rth_osgeo.py +0 -32
  962. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/rthooks/pyi_rth_pygraphviz.py +0 -31
  963. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/rthooks/pyi_rth_pyproj.py +0 -26
  964. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/rthooks/pyi_rth_pyqtgraph_multiprocess.py +0 -51
  965. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/rthooks/pyi_rth_pythoncom.py +0 -24
  966. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/rthooks/pyi_rth_pywintypes.py +0 -24
  967. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/rthooks/pyi_rth_traitlets.py +0 -24
  968. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/rthooks/pyi_rth_usb.py +0 -74
  969. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/__init__.py +0 -31
  970. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-BTrees.py +0 -17
  971. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-Crypto.py +0 -63
  972. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-Cryptodome.py +0 -45
  973. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-HtmlTestRunner.py +0 -17
  974. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-IPython.py +0 -34
  975. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-OpenGL.py +0 -70
  976. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-OpenGL_accelerate.py +0 -25
  977. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-Xlib.py +0 -16
  978. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-_mssql.py +0 -13
  979. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-_mysql.py +0 -18
  980. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-accessible_output2.py +0 -19
  981. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-adbutils.py +0 -16
  982. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-adios.py +0 -19
  983. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-afmformats.py +0 -17
  984. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-aliyunsdkcore.py +0 -14
  985. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-altair.py +0 -15
  986. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-amazonproduct.py +0 -29
  987. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-anyio.py +0 -20
  988. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-appdirs.py +0 -23
  989. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-appy.pod.py +0 -17
  990. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-apscheduler.py +0 -28
  991. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-argon2.py +0 -13
  992. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-astor.py +0 -15
  993. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-astroid.py +0 -48
  994. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-astropy.py +0 -42
  995. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-av.py +0 -35
  996. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-avro.py +0 -28
  997. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-azurerm.py +0 -22
  998. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-backports.zoneinfo.py +0 -18
  999. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-bacon.py +0 -49
  1000. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-bcrypt.py +0 -19
  1001. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-bleak.py +0 -19
  1002. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-blspy.py +0 -36
  1003. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-bokeh.py +0 -24
  1004. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-boto.py +0 -25
  1005. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-boto3.py +0 -29
  1006. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-botocore.py +0 -30
  1007. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-branca.py +0 -15
  1008. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cairocffi.py +0 -40
  1009. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cairosvg.py +0 -40
  1010. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cassandra.py +0 -22
  1011. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-certifi.py +0 -21
  1012. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cf_units.py +0 -16
  1013. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cftime.py +0 -21
  1014. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-charset_normalizer.py +0 -16
  1015. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cloudscraper.py +0 -15
  1016. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-clr.py +0 -62
  1017. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-clr_loader.py +0 -24
  1018. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-compliance_checker.py +0 -22
  1019. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-countrycode.py +0 -15
  1020. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-countryinfo.py +0 -15
  1021. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cryptography.py +0 -44
  1022. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cv2.py +0 -74
  1023. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cx_Oracle.py +0 -15
  1024. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cytoolz.itertoolz.py +0 -16
  1025. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-dash.py +0 -15
  1026. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-dash_bootstrap_components.py +0 -15
  1027. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-dash_core_components.py +0 -15
  1028. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-dash_html_components.py +0 -15
  1029. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-dash_renderer.py +0 -15
  1030. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-dash_table.py +0 -15
  1031. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-dash_uploader.py +0 -15
  1032. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-dask.py +0 -18
  1033. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-dateparser.utils.strptime.py +0 -17
  1034. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-dclab.py +0 -17
  1035. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-discid.py +0 -41
  1036. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-distorm3.py +0 -20
  1037. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-dns.rdata.py +0 -17
  1038. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-docutils.py +0 -20
  1039. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-docx.py +0 -17
  1040. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-docx2pdf.py +0 -20
  1041. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-dynaconf.py +0 -15
  1042. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-easyocr.py +0 -18
  1043. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-eel.py +0 -16
  1044. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-enchant.py +0 -64
  1045. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-enzyme.parsers.ebml.core.py +0 -26
  1046. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-eth_abi.py +0 -15
  1047. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-eth_account.py +0 -15
  1048. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-eth_hash.py +0 -16
  1049. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-eth_keyfile.py +0 -15
  1050. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-eth_utils.py +0 -15
  1051. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-exchangelib.py +0 -12
  1052. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-fabric.py +0 -22
  1053. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-faker.py +0 -19
  1054. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-ffpyplayer.py +0 -19
  1055. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-fiona.py +0 -17
  1056. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-flask_compress.py +0 -15
  1057. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-flask_restx.py +0 -13
  1058. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-flex.py +0 -17
  1059. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-flirpy.py +0 -19
  1060. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-fmpy.py +0 -27
  1061. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-folium.py +0 -16
  1062. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-gadfly.py +0 -14
  1063. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-gcloud.py +0 -15
  1064. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-geopandas.py +0 -17
  1065. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-gitlab.py +0 -22
  1066. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-gmplot.py +0 -15
  1067. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-gooey.py +0 -19
  1068. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-google.api.py +0 -14
  1069. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-google.api_core.py +0 -14
  1070. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-google.cloud.bigquery.py +0 -16
  1071. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-google.cloud.kms_v1.py +0 -18
  1072. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-google.cloud.pubsub_v1.py +0 -14
  1073. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-google.cloud.py +0 -14
  1074. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-google.cloud.speech.py +0 -14
  1075. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-google.cloud.storage.py +0 -14
  1076. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-google.cloud.translate.py +0 -14
  1077. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-googleapiclient.model.py +0 -20
  1078. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-great_expectations.py +0 -15
  1079. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-grpc.py +0 -14
  1080. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-gst._gst.py +0 -48
  1081. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-gtk.py +0 -17
  1082. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-h5py.py +0 -19
  1083. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-hdf5plugin.py +0 -17
  1084. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-httplib2.py +0 -17
  1085. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-humanize.py +0 -24
  1086. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-hydra.py +0 -19
  1087. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-ijson.py +0 -14
  1088. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-imageio.py +0 -21
  1089. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-imageio_ffmpeg.py +0 -17
  1090. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-iminuit.py +0 -25
  1091. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-jaraco.text.py +0 -17
  1092. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-jedi.py +0 -17
  1093. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-jinja2.py +0 -14
  1094. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-jinxed.py +0 -15
  1095. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-jira.py +0 -20
  1096. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-jsonpath_rw_ext.py +0 -15
  1097. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-jsonrpcserver.py +0 -17
  1098. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-jsonschema.py +0 -18
  1099. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-jupyterlab.py +0 -15
  1100. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-kaleido.py +0 -15
  1101. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-kinterbasdb.py +0 -20
  1102. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-langcodes.py +0 -15
  1103. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-langdetect.py +0 -15
  1104. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-lark.py +0 -15
  1105. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-ldfparser.py +0 -15
  1106. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-lensfunpy.py +0 -16
  1107. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-libaudioverse.py +0 -19
  1108. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-lightgbm.py +0 -27
  1109. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-limits.py +0 -15
  1110. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-llvmlite.py +0 -21
  1111. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-logilab.py +0 -26
  1112. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-lxml.etree.py +0 -14
  1113. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-lxml.isoschematron.py +0 -17
  1114. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-lxml.objectify.py +0 -14
  1115. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-lxml.py +0 -20
  1116. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-lz4.py +0 -15
  1117. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-magic.py +0 -18
  1118. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-mako.codegen.py +0 -20
  1119. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-mariadb.py +0 -26
  1120. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-markdown.py +0 -28
  1121. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-metpy.py +0 -21
  1122. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-migrate.py +0 -19
  1123. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-mimesis.py +0 -17
  1124. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-mnemonic.py +0 -15
  1125. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-mpl_toolkits.basemap.py +0 -38
  1126. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-msoffcrypto.py +0 -18
  1127. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-nacl.py +0 -33
  1128. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-names.py +0 -18
  1129. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-nanite.py +0 -17
  1130. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-nbconvert.py +0 -18
  1131. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-nbdime.py +0 -15
  1132. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-nbformat.py +0 -15
  1133. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-ncclient.py +0 -27
  1134. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-netCDF4.py +0 -22
  1135. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-nltk.py +0 -28
  1136. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-nnpy.py +0 -19
  1137. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-notebook.py +0 -27
  1138. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-numba.py +0 -20
  1139. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-numcodecs.py +0 -14
  1140. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-office365.py +0 -19
  1141. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-openpyxl.py +0 -18
  1142. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-orjson.py +0 -21
  1143. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-osgeo.py +0 -82
  1144. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pandas_flavor.py +0 -15
  1145. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-panel.py +0 -18
  1146. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-parsedatetime.py +0 -29
  1147. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-parso.py +0 -14
  1148. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-passlib.py +0 -21
  1149. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-paste.exceptions.reporter.py +0 -20
  1150. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-patsy.py +0 -13
  1151. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pdfminer.py +0 -15
  1152. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pendulum.py +0 -20
  1153. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-phonenumbers.py +0 -19
  1154. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pingouin.py +0 -14
  1155. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pint.py +0 -18
  1156. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pinyin.py +0 -20
  1157. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-platformdirs.py +0 -27
  1158. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-plotly.py +0 -17
  1159. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-prettytable.py +0 -14
  1160. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-psychopy.py +0 -16
  1161. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-psycopg2.py +0 -14
  1162. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-publicsuffix2.py +0 -15
  1163. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pubsub.core.py +0 -15
  1164. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-puremagic.py +0 -15
  1165. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-py.py +0 -15
  1166. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyarrow.py +0 -24
  1167. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pycountry.py +0 -18
  1168. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pycparser.py +0 -23
  1169. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pydantic.py +0 -44
  1170. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pydivert.py +0 -15
  1171. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel-io.py +0 -17
  1172. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel-ods.py +0 -17
  1173. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel-ods3.py +0 -17
  1174. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel-odsr.py +0 -17
  1175. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel-xls.py +0 -17
  1176. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel-xlsx.py +0 -17
  1177. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel-xlsxw.py +0 -17
  1178. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel.py +0 -30
  1179. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel_io.py +0 -27
  1180. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel_ods.py +0 -17
  1181. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel_ods3.py +0 -17
  1182. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel_odsr.py +0 -17
  1183. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel_xls.py +0 -17
  1184. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel_xlsx.py +0 -17
  1185. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcel_xlsxw.py +0 -17
  1186. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyexcelerate.Writer.py +0 -14
  1187. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pygraphviz.py +0 -66
  1188. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pylint.py +0 -74
  1189. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pymediainfo.py +0 -43
  1190. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pymssql.py +0 -20
  1191. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pynput.py +0 -14
  1192. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyodbc.py +0 -21
  1193. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyopencl.py +0 -17
  1194. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pypemicro.py +0 -43
  1195. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyphen.py +0 -15
  1196. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyppeteer.py +0 -16
  1197. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyproj.py +0 -63
  1198. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pypsexec.py +0 -18
  1199. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pypylon.py +0 -40
  1200. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyqtgraph.py +0 -40
  1201. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyshark.py +0 -24
  1202. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pysnmp.py +0 -16
  1203. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pystray.py +0 -16
  1204. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pytest.py +0 -19
  1205. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pythoncom.py +0 -31
  1206. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyttsx.py +0 -26
  1207. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyttsx3.py +0 -30
  1208. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyviz_comms.py +0 -15
  1209. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pyvjoy.py +0 -14
  1210. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pywintypes.py +0 -31
  1211. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pywt.py +0 -21
  1212. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-qtmodern.py +0 -15
  1213. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-radicale.py +0 -16
  1214. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-raven.py +0 -14
  1215. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-rawpy.py +0 -16
  1216. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-rdflib.py +0 -16
  1217. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-redmine.py +0 -14
  1218. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-regex.py +0 -14
  1219. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-reportlab.lib.utils.py +0 -17
  1220. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-reportlab.pdfbase._fontdata.py +0 -18
  1221. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-resampy.py +0 -17
  1222. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-rpy2.py +0 -19
  1223. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-rtree.py +0 -18
  1224. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sacremoses.py +0 -15
  1225. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-selenium.py +0 -16
  1226. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sentry_sdk.py +0 -40
  1227. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-shapely.py +0 -106
  1228. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-shotgun_api3.py +0 -23
  1229. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-skimage.feature.py +0 -15
  1230. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-skimage.filters.py +0 -18
  1231. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-skimage.graph.py +0 -15
  1232. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-skimage.io.py +0 -20
  1233. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-skimage.transform.py +0 -21
  1234. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sklearn.cluster.py +0 -18
  1235. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sklearn.linear_model.py +0 -18
  1236. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sklearn.metrics.cluster.py +0 -27
  1237. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sklearn.metrics.pairwise.py +0 -21
  1238. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sklearn.metrics.py +0 -19
  1239. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sklearn.neighbors.py +0 -36
  1240. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sklearn.py +0 -16
  1241. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sklearn.tree.py +0 -13
  1242. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sklearn.utils.py +0 -13
  1243. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sound_lib.py +0 -19
  1244. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sounddevice.py +0 -63
  1245. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-soundfile.py +0 -63
  1246. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-spacy.py +0 -19
  1247. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-speech_recognition.py +0 -18
  1248. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-spiceypy.py +0 -18
  1249. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-spnego.py +0 -15
  1250. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-srsly.msgpack._packer.py +0 -17
  1251. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-statsmodels.tsa.statespace.py +0 -16
  1252. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-stdnum.py +0 -15
  1253. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-storm.database.py +0 -23
  1254. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-sunpy.py +0 -20
  1255. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-swagger_spec_validator.py +0 -15
  1256. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-tableauhyperapi.py +0 -15
  1257. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-tables.py +0 -15
  1258. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-tcod.py +0 -20
  1259. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-tensorflow.py +0 -79
  1260. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-text_unidecode.py +0 -27
  1261. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-textdistance.py +0 -17
  1262. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-thinc.backends.numpy_ops.py +0 -17
  1263. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-thinc.py +0 -18
  1264. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-timezonefinder.py +0 -15
  1265. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-tinycss2.py +0 -23
  1266. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-torch.py +0 -15
  1267. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-torchvision.ops.py +0 -15
  1268. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-trimesh.py +0 -17
  1269. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-ttkthemes.py +0 -57
  1270. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-ttkwidgets.py +0 -39
  1271. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-tzdata.py +0 -22
  1272. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-u1db.py +0 -32
  1273. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-umap.py +0 -16
  1274. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-unidecode.py +0 -21
  1275. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-uniseg.py +0 -16
  1276. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-usb.py +0 -89
  1277. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-uvicorn.py +0 -15
  1278. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-uvloop.py +0 -19
  1279. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-vtkpython.py +0 -18
  1280. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-wavefile.py +0 -19
  1281. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-weasyprint.py +0 -85
  1282. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-web3.py +0 -15
  1283. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-webassets.py +0 -14
  1284. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-webrtcvad.py +0 -15
  1285. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-websockets.py +0 -16
  1286. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-webview.py +0 -20
  1287. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-win32com.py +0 -21
  1288. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-workflow.py +0 -14
  1289. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-wx.lib.activex.py +0 -17
  1290. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-wx.lib.pubsub.py +0 -28
  1291. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-wx.xrc.py +0 -13
  1292. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-xml.dom.html.HTMLDocument.py +0 -68
  1293. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-xml.sax.saxexts.py +0 -26
  1294. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-xmldiff.py +0 -15
  1295. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-xsge_gui.py +0 -17
  1296. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-yt_dlp.py +0 -17
  1297. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-zeep.py +0 -17
  1298. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-zmq.py +0 -65
  1299. venv/Lib/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-zoneinfo.py +0 -18
  1300. venv/Lib/site-packages/_pyinstaller_hooks_contrib/tests/__init__.py +0 -28
  1301. venv/Lib/site-packages/_pyinstaller_hooks_contrib/tests/conftest.py +0 -13
  1302. venv/Lib/site-packages/_pyinstaller_hooks_contrib/tests/scripts/pyi_lib_boto.py +0 -45
  1303. venv/Lib/site-packages/_pyinstaller_hooks_contrib/tests/scripts/pyi_lib_enchant.py +0 -43
  1304. venv/Lib/site-packages/_pyinstaller_hooks_contrib/tests/scripts/pyi_lib_pycparser.py +0 -54
  1305. venv/Lib/site-packages/_pyinstaller_hooks_contrib/tests/scripts/pyi_lib_tensorflow_layer.py +0 -36
  1306. venv/Lib/site-packages/_pyinstaller_hooks_contrib/tests/scripts/pyi_lib_tensorflow_mnist.py +0 -51
  1307. venv/Lib/site-packages/_pyinstaller_hooks_contrib/tests/test_libraries.py +0 -1479
  1308. venv/Lib/site-packages/_virtualenv.py +0 -130
  1309. venv/Lib/site-packages/altgraph/Dot.py +0 -321
  1310. venv/Lib/site-packages/altgraph/Graph.py +0 -682
  1311. venv/Lib/site-packages/altgraph/GraphAlgo.py +0 -171
  1312. venv/Lib/site-packages/altgraph/GraphStat.py +0 -73
  1313. venv/Lib/site-packages/altgraph/GraphUtil.py +0 -139
  1314. venv/Lib/site-packages/altgraph/ObjectGraph.py +0 -212
  1315. venv/Lib/site-packages/altgraph/__init__.py +0 -148
  1316. venv/Lib/site-packages/bleach/__init__.py +0 -125
  1317. venv/Lib/site-packages/bleach/_vendor/html5lib/__init__.py +0 -35
  1318. venv/Lib/site-packages/bleach/_vendor/html5lib/_ihatexml.py +0 -289
  1319. venv/Lib/site-packages/bleach/_vendor/html5lib/_inputstream.py +0 -918
  1320. venv/Lib/site-packages/bleach/_vendor/html5lib/_tokenizer.py +0 -1735
  1321. venv/Lib/site-packages/bleach/_vendor/html5lib/_trie/__init__.py +0 -5
  1322. venv/Lib/site-packages/bleach/_vendor/html5lib/_trie/_base.py +0 -40
  1323. venv/Lib/site-packages/bleach/_vendor/html5lib/_trie/py.py +0 -67
  1324. venv/Lib/site-packages/bleach/_vendor/html5lib/_utils.py +0 -159
  1325. venv/Lib/site-packages/bleach/_vendor/html5lib/constants.py +0 -2946
  1326. venv/Lib/site-packages/bleach/_vendor/html5lib/filters/__init__.py +0 -0
  1327. venv/Lib/site-packages/bleach/_vendor/html5lib/filters/alphabeticalattributes.py +0 -29
  1328. venv/Lib/site-packages/bleach/_vendor/html5lib/filters/base.py +0 -12
  1329. venv/Lib/site-packages/bleach/_vendor/html5lib/filters/inject_meta_charset.py +0 -73
  1330. venv/Lib/site-packages/bleach/_vendor/html5lib/filters/lint.py +0 -93
  1331. venv/Lib/site-packages/bleach/_vendor/html5lib/filters/optionaltags.py +0 -207
  1332. venv/Lib/site-packages/bleach/_vendor/html5lib/filters/sanitizer.py +0 -916
  1333. venv/Lib/site-packages/bleach/_vendor/html5lib/filters/whitespace.py +0 -38
  1334. venv/Lib/site-packages/bleach/_vendor/html5lib/html5parser.py +0 -2795
  1335. venv/Lib/site-packages/bleach/_vendor/html5lib/serializer.py +0 -409
  1336. venv/Lib/site-packages/bleach/_vendor/html5lib/treeadapters/__init__.py +0 -30
  1337. venv/Lib/site-packages/bleach/_vendor/html5lib/treeadapters/genshi.py +0 -54
  1338. venv/Lib/site-packages/bleach/_vendor/html5lib/treeadapters/sax.py +0 -50
  1339. venv/Lib/site-packages/bleach/_vendor/html5lib/treebuilders/__init__.py +0 -88
  1340. venv/Lib/site-packages/bleach/_vendor/html5lib/treebuilders/base.py +0 -417
  1341. venv/Lib/site-packages/bleach/_vendor/html5lib/treebuilders/dom.py +0 -239
  1342. venv/Lib/site-packages/bleach/_vendor/html5lib/treebuilders/etree.py +0 -343
  1343. venv/Lib/site-packages/bleach/_vendor/html5lib/treebuilders/etree_lxml.py +0 -392
  1344. venv/Lib/site-packages/bleach/_vendor/html5lib/treewalkers/__init__.py +0 -154
  1345. venv/Lib/site-packages/bleach/_vendor/html5lib/treewalkers/base.py +0 -252
  1346. venv/Lib/site-packages/bleach/_vendor/html5lib/treewalkers/dom.py +0 -43
  1347. venv/Lib/site-packages/bleach/_vendor/html5lib/treewalkers/etree.py +0 -131
  1348. venv/Lib/site-packages/bleach/_vendor/html5lib/treewalkers/etree_lxml.py +0 -215
  1349. venv/Lib/site-packages/bleach/_vendor/html5lib/treewalkers/genshi.py +0 -69
  1350. venv/Lib/site-packages/bleach/_vendor/parse.py +0 -1078
  1351. venv/Lib/site-packages/bleach/callbacks.py +0 -32
  1352. venv/Lib/site-packages/bleach/css_sanitizer.py +0 -104
  1353. venv/Lib/site-packages/bleach/html5lib_shim.py +0 -741
  1354. venv/Lib/site-packages/bleach/linkifier.py +0 -633
  1355. venv/Lib/site-packages/bleach/parse_shim.py +0 -1
  1356. venv/Lib/site-packages/bleach/sanitizer.py +0 -638
  1357. venv/Lib/site-packages/build/__init__.py +0 -511
  1358. venv/Lib/site-packages/build/__main__.py +0 -399
  1359. venv/Lib/site-packages/build/env.py +0 -343
  1360. venv/Lib/site-packages/build/util.py +0 -61
  1361. venv/Lib/site-packages/certifi/__init__.py +0 -4
  1362. venv/Lib/site-packages/certifi/__main__.py +0 -12
  1363. venv/Lib/site-packages/certifi/core.py +0 -108
  1364. venv/Lib/site-packages/charset_normalizer/__init__.py +0 -45
  1365. venv/Lib/site-packages/charset_normalizer/api.py +0 -553
  1366. venv/Lib/site-packages/charset_normalizer/assets/__init__.py +0 -1440
  1367. venv/Lib/site-packages/charset_normalizer/cd.py +0 -391
  1368. venv/Lib/site-packages/charset_normalizer/cli/__init__.py +0 -0
  1369. venv/Lib/site-packages/charset_normalizer/cli/normalizer.py +0 -298
  1370. venv/Lib/site-packages/charset_normalizer/constant.py +0 -495
  1371. venv/Lib/site-packages/charset_normalizer/legacy.py +0 -43
  1372. venv/Lib/site-packages/charset_normalizer/md.py +0 -571
  1373. venv/Lib/site-packages/charset_normalizer/models.py +0 -337
  1374. venv/Lib/site-packages/charset_normalizer/utils.py +0 -418
  1375. venv/Lib/site-packages/charset_normalizer/version.py +0 -6
  1376. venv/Lib/site-packages/colorama/__init__.py +0 -7
  1377. venv/Lib/site-packages/colorama/ansi.py +0 -102
  1378. venv/Lib/site-packages/colorama/ansitowin32.py +0 -277
  1379. venv/Lib/site-packages/colorama/initialise.py +0 -121
  1380. venv/Lib/site-packages/colorama/tests/__init__.py +0 -1
  1381. venv/Lib/site-packages/colorama/tests/ansi_test.py +0 -76
  1382. venv/Lib/site-packages/colorama/tests/ansitowin32_test.py +0 -294
  1383. venv/Lib/site-packages/colorama/tests/initialise_test.py +0 -189
  1384. venv/Lib/site-packages/colorama/tests/isatty_test.py +0 -57
  1385. venv/Lib/site-packages/colorama/tests/utils.py +0 -49
  1386. venv/Lib/site-packages/colorama/tests/winterm_test.py +0 -131
  1387. venv/Lib/site-packages/colorama/win32.py +0 -180
  1388. venv/Lib/site-packages/colorama/winterm.py +0 -195
  1389. venv/Lib/site-packages/commonmark/__init__.py +0 -8
  1390. venv/Lib/site-packages/commonmark/blocks.py +0 -908
  1391. venv/Lib/site-packages/commonmark/cmark.py +0 -53
  1392. venv/Lib/site-packages/commonmark/common.py +0 -113
  1393. venv/Lib/site-packages/commonmark/dump.py +0 -108
  1394. venv/Lib/site-packages/commonmark/entitytrans.py +0 -2353
  1395. venv/Lib/site-packages/commonmark/inlines.py +0 -882
  1396. venv/Lib/site-packages/commonmark/main.py +0 -41
  1397. venv/Lib/site-packages/commonmark/node.py +0 -179
  1398. venv/Lib/site-packages/commonmark/normalize_reference.py +0 -165
  1399. venv/Lib/site-packages/commonmark/render/__init__.py +0 -0
  1400. venv/Lib/site-packages/commonmark/render/html.py +0 -228
  1401. venv/Lib/site-packages/commonmark/render/renderer.py +0 -43
  1402. venv/Lib/site-packages/commonmark/render/rst.py +0 -159
  1403. venv/Lib/site-packages/commonmark/tests/__init__.py +0 -0
  1404. venv/Lib/site-packages/commonmark/tests/rst_tests.py +0 -172
  1405. venv/Lib/site-packages/commonmark/tests/run_spec_tests.py +0 -242
  1406. venv/Lib/site-packages/commonmark/tests/unit_tests.py +0 -157
  1407. venv/Lib/site-packages/docutils/__init__.py +0 -284
  1408. venv/Lib/site-packages/docutils/__main__.py +0 -96
  1409. venv/Lib/site-packages/docutils/core.py +0 -714
  1410. venv/Lib/site-packages/docutils/examples.py +0 -99
  1411. venv/Lib/site-packages/docutils/frontend.py +0 -951
  1412. venv/Lib/site-packages/docutils/io.py +0 -611
  1413. venv/Lib/site-packages/docutils/languages/__init__.py +0 -83
  1414. venv/Lib/site-packages/docutils/languages/af.py +0 -58
  1415. venv/Lib/site-packages/docutils/languages/ar.py +0 -60
  1416. venv/Lib/site-packages/docutils/languages/ca.py +0 -60
  1417. venv/Lib/site-packages/docutils/languages/cs.py +0 -60
  1418. venv/Lib/site-packages/docutils/languages/da.py +0 -61
  1419. venv/Lib/site-packages/docutils/languages/de.py +0 -58
  1420. venv/Lib/site-packages/docutils/languages/en.py +0 -60
  1421. venv/Lib/site-packages/docutils/languages/eo.py +0 -61
  1422. venv/Lib/site-packages/docutils/languages/es.py +0 -58
  1423. venv/Lib/site-packages/docutils/languages/fa.py +0 -60
  1424. venv/Lib/site-packages/docutils/languages/fi.py +0 -60
  1425. venv/Lib/site-packages/docutils/languages/fr.py +0 -58
  1426. venv/Lib/site-packages/docutils/languages/gl.py +0 -62
  1427. venv/Lib/site-packages/docutils/languages/he.py +0 -61
  1428. venv/Lib/site-packages/docutils/languages/it.py +0 -58
  1429. venv/Lib/site-packages/docutils/languages/ja.py +0 -60
  1430. venv/Lib/site-packages/docutils/languages/ko.py +0 -60
  1431. venv/Lib/site-packages/docutils/languages/lt.py +0 -60
  1432. venv/Lib/site-packages/docutils/languages/lv.py +0 -59
  1433. venv/Lib/site-packages/docutils/languages/nl.py +0 -60
  1434. venv/Lib/site-packages/docutils/languages/pl.py +0 -60
  1435. venv/Lib/site-packages/docutils/languages/pt_br.py +0 -60
  1436. venv/Lib/site-packages/docutils/languages/ru.py +0 -58
  1437. venv/Lib/site-packages/docutils/languages/sk.py +0 -58
  1438. venv/Lib/site-packages/docutils/languages/sv.py +0 -59
  1439. venv/Lib/site-packages/docutils/languages/zh_cn.py +0 -66
  1440. venv/Lib/site-packages/docutils/languages/zh_tw.py +0 -65
  1441. venv/Lib/site-packages/docutils/nodes.py +0 -2314
  1442. venv/Lib/site-packages/docutils/parsers/__init__.py +0 -92
  1443. venv/Lib/site-packages/docutils/parsers/commonmark_wrapper.py +0 -56
  1444. venv/Lib/site-packages/docutils/parsers/null.py +0 -20
  1445. venv/Lib/site-packages/docutils/parsers/recommonmark_wrapper.py +0 -136
  1446. venv/Lib/site-packages/docutils/parsers/rst/__init__.py +0 -414
  1447. venv/Lib/site-packages/docutils/parsers/rst/directives/__init__.py +0 -460
  1448. venv/Lib/site-packages/docutils/parsers/rst/directives/admonitions.py +0 -99
  1449. venv/Lib/site-packages/docutils/parsers/rst/directives/body.py +0 -304
  1450. venv/Lib/site-packages/docutils/parsers/rst/directives/html.py +0 -21
  1451. venv/Lib/site-packages/docutils/parsers/rst/directives/images.py +0 -163
  1452. venv/Lib/site-packages/docutils/parsers/rst/directives/misc.py +0 -635
  1453. venv/Lib/site-packages/docutils/parsers/rst/directives/parts.py +0 -126
  1454. venv/Lib/site-packages/docutils/parsers/rst/directives/references.py +0 -29
  1455. venv/Lib/site-packages/docutils/parsers/rst/directives/tables.py +0 -513
  1456. venv/Lib/site-packages/docutils/parsers/rst/languages/__init__.py +0 -40
  1457. venv/Lib/site-packages/docutils/parsers/rst/languages/af.py +0 -107
  1458. venv/Lib/site-packages/docutils/parsers/rst/languages/ar.py +0 -99
  1459. venv/Lib/site-packages/docutils/parsers/rst/languages/ca.py +0 -126
  1460. venv/Lib/site-packages/docutils/parsers/rst/languages/cs.py +0 -110
  1461. venv/Lib/site-packages/docutils/parsers/rst/languages/da.py +0 -113
  1462. venv/Lib/site-packages/docutils/parsers/rst/languages/de.py +0 -106
  1463. venv/Lib/site-packages/docutils/parsers/rst/languages/en.py +0 -111
  1464. venv/Lib/site-packages/docutils/parsers/rst/languages/eo.py +0 -118
  1465. venv/Lib/site-packages/docutils/parsers/rst/languages/es.py +0 -122
  1466. venv/Lib/site-packages/docutils/parsers/rst/languages/fa.py +0 -102
  1467. venv/Lib/site-packages/docutils/parsers/rst/languages/fi.py +0 -98
  1468. venv/Lib/site-packages/docutils/parsers/rst/languages/fr.py +0 -104
  1469. venv/Lib/site-packages/docutils/parsers/rst/languages/gl.py +0 -111
  1470. venv/Lib/site-packages/docutils/parsers/rst/languages/he.py +0 -109
  1471. venv/Lib/site-packages/docutils/parsers/rst/languages/it.py +0 -98
  1472. venv/Lib/site-packages/docutils/parsers/rst/languages/ja.py +0 -119
  1473. venv/Lib/site-packages/docutils/parsers/rst/languages/ko.py +0 -111
  1474. venv/Lib/site-packages/docutils/parsers/rst/languages/lt.py +0 -109
  1475. venv/Lib/site-packages/docutils/parsers/rst/languages/lv.py +0 -108
  1476. venv/Lib/site-packages/docutils/parsers/rst/languages/nl.py +0 -113
  1477. venv/Lib/site-packages/docutils/parsers/rst/languages/pl.py +0 -100
  1478. venv/Lib/site-packages/docutils/parsers/rst/languages/pt_br.py +0 -109
  1479. venv/Lib/site-packages/docutils/parsers/rst/languages/ru.py +0 -90
  1480. venv/Lib/site-packages/docutils/parsers/rst/languages/sk.py +0 -96
  1481. venv/Lib/site-packages/docutils/parsers/rst/languages/sv.py +0 -96
  1482. venv/Lib/site-packages/docutils/parsers/rst/languages/zh_cn.py +0 -104
  1483. venv/Lib/site-packages/docutils/parsers/rst/languages/zh_tw.py +0 -109
  1484. venv/Lib/site-packages/docutils/parsers/rst/roles.py +0 -439
  1485. venv/Lib/site-packages/docutils/parsers/rst/states.py +0 -3135
  1486. venv/Lib/site-packages/docutils/parsers/rst/tableparser.py +0 -539
  1487. venv/Lib/site-packages/docutils/readers/__init__.py +0 -113
  1488. venv/Lib/site-packages/docutils/readers/doctree.py +0 -46
  1489. venv/Lib/site-packages/docutils/readers/pep.py +0 -48
  1490. venv/Lib/site-packages/docutils/readers/standalone.py +0 -65
  1491. venv/Lib/site-packages/docutils/statemachine.py +0 -1525
  1492. venv/Lib/site-packages/docutils/transforms/__init__.py +0 -174
  1493. venv/Lib/site-packages/docutils/transforms/components.py +0 -54
  1494. venv/Lib/site-packages/docutils/transforms/frontmatter.py +0 -545
  1495. venv/Lib/site-packages/docutils/transforms/misc.py +0 -144
  1496. venv/Lib/site-packages/docutils/transforms/parts.py +0 -176
  1497. venv/Lib/site-packages/docutils/transforms/peps.py +0 -308
  1498. venv/Lib/site-packages/docutils/transforms/references.py +0 -919
  1499. venv/Lib/site-packages/docutils/transforms/universal.py +0 -338
  1500. venv/Lib/site-packages/docutils/transforms/writer_aux.py +0 -99
  1501. venv/Lib/site-packages/docutils/utils/__init__.py +0 -821
  1502. venv/Lib/site-packages/docutils/utils/code_analyzer.py +0 -138
  1503. venv/Lib/site-packages/docutils/utils/error_reporting.py +0 -222
  1504. venv/Lib/site-packages/docutils/utils/math/__init__.py +0 -52
  1505. venv/Lib/site-packages/docutils/utils/math/latex2mathml.py +0 -1430
  1506. venv/Lib/site-packages/docutils/utils/math/math2html.py +0 -3171
  1507. venv/Lib/site-packages/docutils/utils/math/tex2mathml_extern.py +0 -152
  1508. venv/Lib/site-packages/docutils/utils/math/tex2unichar.py +0 -704
  1509. venv/Lib/site-packages/docutils/utils/math/unichar2tex.py +0 -808
  1510. venv/Lib/site-packages/docutils/utils/punctuation_chars.py +0 -122
  1511. venv/Lib/site-packages/docutils/utils/roman.py +0 -86
  1512. venv/Lib/site-packages/docutils/utils/smartquotes.py +0 -991
  1513. venv/Lib/site-packages/docutils/utils/urischemes.py +0 -138
  1514. venv/Lib/site-packages/docutils/writers/__init__.py +0 -151
  1515. venv/Lib/site-packages/docutils/writers/_html_base.py +0 -1781
  1516. venv/Lib/site-packages/docutils/writers/docutils_xml.py +0 -188
  1517. venv/Lib/site-packages/docutils/writers/html4css1/__init__.py +0 -947
  1518. venv/Lib/site-packages/docutils/writers/html5_polyglot/__init__.py +0 -454
  1519. venv/Lib/site-packages/docutils/writers/latex2e/__init__.py +0 -3295
  1520. venv/Lib/site-packages/docutils/writers/manpage.py +0 -1181
  1521. venv/Lib/site-packages/docutils/writers/null.py +0 -21
  1522. venv/Lib/site-packages/docutils/writers/odf_odt/__init__.py +0 -3468
  1523. venv/Lib/site-packages/docutils/writers/odf_odt/pygmentsformatter.py +0 -109
  1524. venv/Lib/site-packages/docutils/writers/pep_html/__init__.py +0 -103
  1525. venv/Lib/site-packages/docutils/writers/pseudoxml.py +0 -40
  1526. venv/Lib/site-packages/docutils/writers/s5_html/__init__.py +0 -352
  1527. venv/Lib/site-packages/docutils/writers/xetex/__init__.py +0 -149
  1528. venv/Lib/site-packages/future/__init__.py +0 -93
  1529. venv/Lib/site-packages/future/backports/__init__.py +0 -26
  1530. venv/Lib/site-packages/future/backports/_markupbase.py +0 -422
  1531. venv/Lib/site-packages/future/backports/datetime.py +0 -2152
  1532. venv/Lib/site-packages/future/backports/email/__init__.py +0 -78
  1533. venv/Lib/site-packages/future/backports/email/_encoded_words.py +0 -232
  1534. venv/Lib/site-packages/future/backports/email/_header_value_parser.py +0 -2965
  1535. venv/Lib/site-packages/future/backports/email/_parseaddr.py +0 -546
  1536. venv/Lib/site-packages/future/backports/email/_policybase.py +0 -365
  1537. venv/Lib/site-packages/future/backports/email/base64mime.py +0 -121
  1538. venv/Lib/site-packages/future/backports/email/charset.py +0 -409
  1539. venv/Lib/site-packages/future/backports/email/encoders.py +0 -90
  1540. venv/Lib/site-packages/future/backports/email/errors.py +0 -111
  1541. venv/Lib/site-packages/future/backports/email/feedparser.py +0 -525
  1542. venv/Lib/site-packages/future/backports/email/generator.py +0 -498
  1543. venv/Lib/site-packages/future/backports/email/header.py +0 -581
  1544. venv/Lib/site-packages/future/backports/email/headerregistry.py +0 -592
  1545. venv/Lib/site-packages/future/backports/email/iterators.py +0 -74
  1546. venv/Lib/site-packages/future/backports/email/message.py +0 -882
  1547. venv/Lib/site-packages/future/backports/email/mime/__init__.py +0 -0
  1548. venv/Lib/site-packages/future/backports/email/mime/application.py +0 -39
  1549. venv/Lib/site-packages/future/backports/email/mime/audio.py +0 -74
  1550. venv/Lib/site-packages/future/backports/email/mime/base.py +0 -25
  1551. venv/Lib/site-packages/future/backports/email/mime/image.py +0 -48
  1552. venv/Lib/site-packages/future/backports/email/mime/message.py +0 -36
  1553. venv/Lib/site-packages/future/backports/email/mime/multipart.py +0 -49
  1554. venv/Lib/site-packages/future/backports/email/mime/nonmultipart.py +0 -24
  1555. venv/Lib/site-packages/future/backports/email/mime/text.py +0 -44
  1556. venv/Lib/site-packages/future/backports/email/parser.py +0 -135
  1557. venv/Lib/site-packages/future/backports/email/policy.py +0 -193
  1558. venv/Lib/site-packages/future/backports/email/quoprimime.py +0 -326
  1559. venv/Lib/site-packages/future/backports/email/utils.py +0 -400
  1560. venv/Lib/site-packages/future/backports/html/__init__.py +0 -27
  1561. venv/Lib/site-packages/future/backports/html/entities.py +0 -2514
  1562. venv/Lib/site-packages/future/backports/html/parser.py +0 -536
  1563. venv/Lib/site-packages/future/backports/http/__init__.py +0 -0
  1564. venv/Lib/site-packages/future/backports/http/client.py +0 -1346
  1565. venv/Lib/site-packages/future/backports/http/cookiejar.py +0 -2116
  1566. venv/Lib/site-packages/future/backports/http/cookies.py +0 -598
  1567. venv/Lib/site-packages/future/backports/http/server.py +0 -1226
  1568. venv/Lib/site-packages/future/backports/misc.py +0 -958
  1569. venv/Lib/site-packages/future/backports/socket.py +0 -454
  1570. venv/Lib/site-packages/future/backports/socketserver.py +0 -747
  1571. venv/Lib/site-packages/future/backports/test/__init__.py +0 -9
  1572. venv/Lib/site-packages/future/backports/test/pystone.py +0 -272
  1573. venv/Lib/site-packages/future/backports/test/ssl_servers.py +0 -207
  1574. venv/Lib/site-packages/future/backports/test/support.py +0 -2048
  1575. venv/Lib/site-packages/future/backports/total_ordering.py +0 -38
  1576. venv/Lib/site-packages/future/backports/urllib/__init__.py +0 -0
  1577. venv/Lib/site-packages/future/backports/urllib/error.py +0 -75
  1578. venv/Lib/site-packages/future/backports/urllib/parse.py +0 -991
  1579. venv/Lib/site-packages/future/backports/urllib/request.py +0 -2647
  1580. venv/Lib/site-packages/future/backports/urllib/response.py +0 -103
  1581. venv/Lib/site-packages/future/backports/urllib/robotparser.py +0 -211
  1582. venv/Lib/site-packages/future/backports/xmlrpc/__init__.py +0 -1
  1583. venv/Lib/site-packages/future/backports/xmlrpc/client.py +0 -1496
  1584. venv/Lib/site-packages/future/backports/xmlrpc/server.py +0 -999
  1585. venv/Lib/site-packages/future/builtins/__init__.py +0 -51
  1586. venv/Lib/site-packages/future/builtins/disabled.py +0 -66
  1587. venv/Lib/site-packages/future/builtins/iterators.py +0 -52
  1588. venv/Lib/site-packages/future/builtins/misc.py +0 -135
  1589. venv/Lib/site-packages/future/builtins/new_min_max.py +0 -59
  1590. venv/Lib/site-packages/future/builtins/newnext.py +0 -70
  1591. venv/Lib/site-packages/future/builtins/newround.py +0 -105
  1592. venv/Lib/site-packages/future/builtins/newsuper.py +0 -113
  1593. venv/Lib/site-packages/future/moves/__init__.py +0 -8
  1594. venv/Lib/site-packages/future/moves/_dummy_thread.py +0 -8
  1595. venv/Lib/site-packages/future/moves/_markupbase.py +0 -8
  1596. venv/Lib/site-packages/future/moves/_thread.py +0 -8
  1597. venv/Lib/site-packages/future/moves/builtins.py +0 -10
  1598. venv/Lib/site-packages/future/moves/collections.py +0 -18
  1599. venv/Lib/site-packages/future/moves/configparser.py +0 -8
  1600. venv/Lib/site-packages/future/moves/copyreg.py +0 -12
  1601. venv/Lib/site-packages/future/moves/dbm/__init__.py +0 -20
  1602. venv/Lib/site-packages/future/moves/dbm/dumb.py +0 -9
  1603. venv/Lib/site-packages/future/moves/dbm/gnu.py +0 -9
  1604. venv/Lib/site-packages/future/moves/dbm/ndbm.py +0 -9
  1605. venv/Lib/site-packages/future/moves/html/__init__.py +0 -31
  1606. venv/Lib/site-packages/future/moves/html/entities.py +0 -8
  1607. venv/Lib/site-packages/future/moves/html/parser.py +0 -8
  1608. venv/Lib/site-packages/future/moves/http/__init__.py +0 -4
  1609. venv/Lib/site-packages/future/moves/http/client.py +0 -8
  1610. venv/Lib/site-packages/future/moves/http/cookiejar.py +0 -8
  1611. venv/Lib/site-packages/future/moves/http/cookies.py +0 -9
  1612. venv/Lib/site-packages/future/moves/http/server.py +0 -20
  1613. venv/Lib/site-packages/future/moves/itertools.py +0 -8
  1614. venv/Lib/site-packages/future/moves/pickle.py +0 -11
  1615. venv/Lib/site-packages/future/moves/queue.py +0 -8
  1616. venv/Lib/site-packages/future/moves/reprlib.py +0 -8
  1617. venv/Lib/site-packages/future/moves/socketserver.py +0 -8
  1618. venv/Lib/site-packages/future/moves/subprocess.py +0 -11
  1619. venv/Lib/site-packages/future/moves/sys.py +0 -8
  1620. venv/Lib/site-packages/future/moves/test/__init__.py +0 -5
  1621. venv/Lib/site-packages/future/moves/test/support.py +0 -10
  1622. venv/Lib/site-packages/future/moves/tkinter/__init__.py +0 -27
  1623. venv/Lib/site-packages/future/moves/tkinter/colorchooser.py +0 -12
  1624. venv/Lib/site-packages/future/moves/tkinter/commondialog.py +0 -12
  1625. venv/Lib/site-packages/future/moves/tkinter/constants.py +0 -12
  1626. venv/Lib/site-packages/future/moves/tkinter/dialog.py +0 -12
  1627. venv/Lib/site-packages/future/moves/tkinter/dnd.py +0 -12
  1628. venv/Lib/site-packages/future/moves/tkinter/filedialog.py +0 -18
  1629. venv/Lib/site-packages/future/moves/tkinter/font.py +0 -12
  1630. venv/Lib/site-packages/future/moves/tkinter/messagebox.py +0 -12
  1631. venv/Lib/site-packages/future/moves/tkinter/scrolledtext.py +0 -12
  1632. venv/Lib/site-packages/future/moves/tkinter/simpledialog.py +0 -12
  1633. venv/Lib/site-packages/future/moves/tkinter/tix.py +0 -12
  1634. venv/Lib/site-packages/future/moves/tkinter/ttk.py +0 -12
  1635. venv/Lib/site-packages/future/moves/urllib/__init__.py +0 -5
  1636. venv/Lib/site-packages/future/moves/urllib/error.py +0 -16
  1637. venv/Lib/site-packages/future/moves/urllib/parse.py +0 -28
  1638. venv/Lib/site-packages/future/moves/urllib/request.py +0 -94
  1639. venv/Lib/site-packages/future/moves/urllib/response.py +0 -12
  1640. venv/Lib/site-packages/future/moves/urllib/robotparser.py +0 -8
  1641. venv/Lib/site-packages/future/moves/winreg.py +0 -8
  1642. venv/Lib/site-packages/future/moves/xmlrpc/__init__.py +0 -0
  1643. venv/Lib/site-packages/future/moves/xmlrpc/client.py +0 -7
  1644. venv/Lib/site-packages/future/moves/xmlrpc/server.py +0 -7
  1645. venv/Lib/site-packages/future/standard_library/__init__.py +0 -815
  1646. venv/Lib/site-packages/future/tests/__init__.py +0 -0
  1647. venv/Lib/site-packages/future/tests/base.py +0 -539
  1648. venv/Lib/site-packages/future/types/__init__.py +0 -257
  1649. venv/Lib/site-packages/future/types/newbytes.py +0 -460
  1650. venv/Lib/site-packages/future/types/newdict.py +0 -76
  1651. venv/Lib/site-packages/future/types/newint.py +0 -384
  1652. venv/Lib/site-packages/future/types/newlist.py +0 -95
  1653. venv/Lib/site-packages/future/types/newmemoryview.py +0 -29
  1654. venv/Lib/site-packages/future/types/newobject.py +0 -117
  1655. venv/Lib/site-packages/future/types/newopen.py +0 -32
  1656. venv/Lib/site-packages/future/types/newrange.py +0 -170
  1657. venv/Lib/site-packages/future/types/newstr.py +0 -426
  1658. venv/Lib/site-packages/future/utils/__init__.py +0 -770
  1659. venv/Lib/site-packages/future/utils/surrogateescape.py +0 -198
  1660. venv/Lib/site-packages/idna/__init__.py +0 -44
  1661. venv/Lib/site-packages/idna/codec.py +0 -112
  1662. venv/Lib/site-packages/idna/compat.py +0 -13
  1663. venv/Lib/site-packages/idna/core.py +0 -400
  1664. venv/Lib/site-packages/idna/idnadata.py +0 -2151
  1665. venv/Lib/site-packages/idna/intranges.py +0 -54
  1666. venv/Lib/site-packages/idna/package_data.py +0 -2
  1667. venv/Lib/site-packages/idna/uts46data.py +0 -8600
  1668. venv/Lib/site-packages/importlib_metadata/__init__.py +0 -1095
  1669. venv/Lib/site-packages/importlib_metadata/_adapters.py +0 -68
  1670. venv/Lib/site-packages/importlib_metadata/_collections.py +0 -30
  1671. venv/Lib/site-packages/importlib_metadata/_compat.py +0 -72
  1672. venv/Lib/site-packages/importlib_metadata/_functools.py +0 -104
  1673. venv/Lib/site-packages/importlib_metadata/_itertools.py +0 -73
  1674. venv/Lib/site-packages/importlib_metadata/_meta.py +0 -48
  1675. venv/Lib/site-packages/importlib_metadata/_text.py +0 -99
  1676. venv/Lib/site-packages/jaraco/classes/__init__.py +0 -0
  1677. venv/Lib/site-packages/jaraco/classes/ancestry.py +0 -68
  1678. venv/Lib/site-packages/jaraco/classes/meta.py +0 -66
  1679. venv/Lib/site-packages/jaraco/classes/properties.py +0 -170
  1680. venv/Lib/site-packages/je_editor/__init__.py +0 -25
  1681. venv/Lib/site-packages/je_editor/__main__.py +0 -18
  1682. venv/Lib/site-packages/je_editor/ui/__init__.py +0 -1
  1683. venv/Lib/site-packages/je_editor/ui/editor_main_ui/__init__.py +0 -1
  1684. venv/Lib/site-packages/je_editor/ui/editor_main_ui/content_init/__init__.py +0 -0
  1685. venv/Lib/site-packages/je_editor/ui/editor_main_ui/content_init/content_init.py +0 -80
  1686. venv/Lib/site-packages/je_editor/ui/editor_main_ui/menu/__init__.py +0 -0
  1687. venv/Lib/site-packages/je_editor/ui/editor_main_ui/menu/build_menu.py +0 -10
  1688. venv/Lib/site-packages/je_editor/ui/editor_main_ui/menu/file_menu/__init__.py +0 -0
  1689. venv/Lib/site-packages/je_editor/ui/editor_main_ui/menu/file_menu/build_file_menu.py +0 -65
  1690. venv/Lib/site-packages/je_editor/ui/editor_main_ui/menu/popup_menu/__init__.py +0 -0
  1691. venv/Lib/site-packages/je_editor/ui/editor_main_ui/menu/popup_menu/build_popup_menu.py +0 -13
  1692. venv/Lib/site-packages/je_editor/ui/editor_main_ui/menu/run_menu/__init__.py +0 -0
  1693. venv/Lib/site-packages/je_editor/ui/editor_main_ui/menu/run_menu/build_run_menu.py +0 -35
  1694. venv/Lib/site-packages/je_editor/ui/editor_main_ui/protocal_setting/__init__.py +0 -0
  1695. venv/Lib/site-packages/je_editor/ui/editor_main_ui/protocal_setting/set_ui_protocol.py +0 -8
  1696. venv/Lib/site-packages/je_editor/ui/editor_main_ui/redirect_output/__init__.py +0 -0
  1697. venv/Lib/site-packages/je_editor/ui/editor_main_ui/redirect_output/redirect_output_to_tkinter_ui.py +0 -26
  1698. venv/Lib/site-packages/je_editor/ui/editor_main_ui/tkinter_editor.py +0 -148
  1699. venv/Lib/site-packages/je_editor/ui/editor_main_ui/ui_event_bind/__init__.py +0 -0
  1700. venv/Lib/site-packages/je_editor/ui/editor_main_ui/ui_event_bind/event_bind.py +0 -26
  1701. venv/Lib/site-packages/je_editor/ui/editor_main_ui/ui_grid/__init__.py +0 -0
  1702. venv/Lib/site-packages/je_editor/ui/editor_main_ui/ui_grid/build_ui_grid.py +0 -24
  1703. venv/Lib/site-packages/je_editor/ui/editor_main_ui/ui_setting/__init__.py +0 -0
  1704. venv/Lib/site-packages/je_editor/ui/editor_main_ui/ui_setting/ui_setting.py +0 -41
  1705. venv/Lib/site-packages/je_editor/ui/ui_event/__init__.py +0 -1
  1706. venv/Lib/site-packages/je_editor/ui/ui_event/auto_save/__init__.py +0 -1
  1707. venv/Lib/site-packages/je_editor/ui/ui_event/auto_save/start_auto_save/__init__.py +0 -0
  1708. venv/Lib/site-packages/je_editor/ui/ui_event/auto_save/start_auto_save/start_auto_save.py +0 -17
  1709. venv/Lib/site-packages/je_editor/ui/ui_event/change_font/__init__.py +0 -1
  1710. venv/Lib/site-packages/je_editor/ui/ui_event/change_font/change_font.py +0 -38
  1711. venv/Lib/site-packages/je_editor/ui/ui_event/clear_result/__init__.py +0 -0
  1712. venv/Lib/site-packages/je_editor/ui/ui_event/clear_result/clear_result.py +0 -8
  1713. venv/Lib/site-packages/je_editor/ui/ui_event/close/__init__.py +0 -1
  1714. venv/Lib/site-packages/je_editor/ui/ui_event/close/close_event.py +0 -12
  1715. venv/Lib/site-packages/je_editor/ui/ui_event/encoding/__init__.py +0 -0
  1716. venv/Lib/site-packages/je_editor/ui/ui_event/encoding/set_encoding.py +0 -10
  1717. venv/Lib/site-packages/je_editor/ui/ui_event/execute/__init__.py +0 -1
  1718. venv/Lib/site-packages/je_editor/ui/ui_event/execute/execute_code/__init__.py +0 -1
  1719. venv/Lib/site-packages/je_editor/ui/ui_event/execute/execute_code/exec_code.py +0 -22
  1720. venv/Lib/site-packages/je_editor/ui/ui_event/execute/execute_shell_command/__init__.py +0 -1
  1721. venv/Lib/site-packages/je_editor/ui/ui_event/execute/execute_shell_command/run_on_shell.py +0 -12
  1722. venv/Lib/site-packages/je_editor/ui/ui_event/language/__init__.py +0 -1
  1723. venv/Lib/site-packages/je_editor/ui/ui_event/language/set_language.py +0 -13
  1724. venv/Lib/site-packages/je_editor/ui/ui_event/open_file/__init__.py +0 -1
  1725. venv/Lib/site-packages/je_editor/ui/ui_event/open_file/open_file_to_read/__init__.py +0 -1
  1726. venv/Lib/site-packages/je_editor/ui/ui_event/open_file/open_file_to_read/open_file_to_read.py +0 -20
  1727. venv/Lib/site-packages/je_editor/ui/ui_event/open_file/open_last_edit_file/__init__.py +0 -1
  1728. venv/Lib/site-packages/je_editor/ui/ui_event/open_file/open_last_edit_file/open_last_edit_file.py +0 -17
  1729. venv/Lib/site-packages/je_editor/ui/ui_event/save_file/__init__.py +0 -0
  1730. venv/Lib/site-packages/je_editor/ui/ui_event/save_file/save_file_to_open/__init__.py +0 -1
  1731. venv/Lib/site-packages/je_editor/ui/ui_event/save_file/save_file_to_open/save_file_to_open.py +0 -19
  1732. venv/Lib/site-packages/je_editor/ui/ui_event/tag_keyword/__init__.py +0 -1
  1733. venv/Lib/site-packages/je_editor/ui/ui_event/tag_keyword/tag_keyword.py +0 -49
  1734. venv/Lib/site-packages/je_editor/ui/ui_event/text_process/__init__.py +0 -0
  1735. venv/Lib/site-packages/je_editor/ui/ui_event/text_process/program_exec/__init__.py +0 -1
  1736. venv/Lib/site-packages/je_editor/ui/ui_event/text_process/program_exec/code_exec_manager.py +0 -169
  1737. venv/Lib/site-packages/je_editor/ui/ui_event/text_process/program_exec/process_error.py +0 -10
  1738. venv/Lib/site-packages/je_editor/ui/ui_event/text_process/shell/__init__.py +0 -1
  1739. venv/Lib/site-packages/je_editor/ui/ui_event/text_process/shell/shell_exec_manager.py +0 -130
  1740. venv/Lib/site-packages/je_editor/utils/__init__.py +0 -1
  1741. venv/Lib/site-packages/je_editor/utils/editor_content/__init__.py +0 -1
  1742. venv/Lib/site-packages/je_editor/utils/editor_content/content_save.py +0 -66
  1743. venv/Lib/site-packages/je_editor/utils/editor_content/editor_content_data.py +0 -19
  1744. venv/Lib/site-packages/je_editor/utils/encoding/__init__.py +0 -1
  1745. venv/Lib/site-packages/je_editor/utils/encoding/encoding_data_module.py +0 -101
  1746. venv/Lib/site-packages/je_editor/utils/exception/__init__.py +0 -1
  1747. venv/Lib/site-packages/je_editor/utils/exception/exception_tags.py +0 -33
  1748. venv/Lib/site-packages/je_editor/utils/exception/exceptions.py +0 -30
  1749. venv/Lib/site-packages/je_editor/utils/file/__init__.py +0 -0
  1750. venv/Lib/site-packages/je_editor/utils/file/open/__init__.py +0 -1
  1751. venv/Lib/site-packages/je_editor/utils/file/open/open_file.py +0 -52
  1752. venv/Lib/site-packages/je_editor/utils/file/save/__init__.py +0 -1
  1753. venv/Lib/site-packages/je_editor/utils/file/save/save_file.py +0 -81
  1754. venv/Lib/site-packages/je_editor/utils/font/__init__.py +0 -1
  1755. venv/Lib/site-packages/je_editor/utils/font/font.py +0 -20
  1756. venv/Lib/site-packages/je_editor/utils/json_format/__init__.py +0 -1
  1757. venv/Lib/site-packages/je_editor/utils/json_format/json_process.py +0 -28
  1758. venv/Lib/site-packages/je_editor/utils/keyword/__init__.py +0 -1
  1759. venv/Lib/site-packages/je_editor/utils/keyword/keyword_list.py +0 -4
  1760. venv/Lib/site-packages/je_editor/utils/language/__init__.py +0 -1
  1761. venv/Lib/site-packages/je_editor/utils/language/language_data_module.py +0 -9
  1762. venv/Lib/site-packages/je_editor/utils/language_data_module/__init__.py +0 -1
  1763. venv/Lib/site-packages/je_editor/utils/language_data_module/language_compiler_data_module.py +0 -7
  1764. venv/Lib/site-packages/je_editor/utils/language_data_module/language_param_data_module.py +0 -7
  1765. venv/Lib/site-packages/je_editor/utils/project/__init__.py +0 -0
  1766. venv/Lib/site-packages/je_editor/utils/project/create_project.py +0 -16
  1767. venv/Lib/site-packages/je_editor/utils/redirect_manager/__init__.py +0 -0
  1768. venv/Lib/site-packages/je_editor/utils/redirect_manager/redirect_manager_class.py +0 -70
  1769. venv/Lib/site-packages/je_editor/utils/string_translate/__init__.py +0 -1
  1770. venv/Lib/site-packages/je_editor/utils/string_translate/used_string.py +0 -4
  1771. venv/Lib/site-packages/je_editor/utils/theme/__init__.py +0 -0
  1772. venv/Lib/site-packages/je_editor/utils/theme/theme.py +0 -6
  1773. venv/Lib/site-packages/keyring/__init__.py +0 -17
  1774. venv/Lib/site-packages/keyring/__main__.py +0 -4
  1775. venv/Lib/site-packages/keyring/_compat.py +0 -7
  1776. venv/Lib/site-packages/keyring/_properties_compat.py +0 -169
  1777. venv/Lib/site-packages/keyring/backend.py +0 -256
  1778. venv/Lib/site-packages/keyring/backends/OS_X.py +0 -13
  1779. venv/Lib/site-packages/keyring/backends/SecretService.py +0 -119
  1780. venv/Lib/site-packages/keyring/backends/Windows.py +0 -170
  1781. venv/Lib/site-packages/keyring/backends/__init__.py +0 -0
  1782. venv/Lib/site-packages/keyring/backends/chainer.py +0 -71
  1783. venv/Lib/site-packages/keyring/backends/fail.py +0 -27
  1784. venv/Lib/site-packages/keyring/backends/kwallet.py +0 -165
  1785. venv/Lib/site-packages/keyring/backends/libsecret.py +0 -152
  1786. venv/Lib/site-packages/keyring/backends/macOS/__init__.py +0 -76
  1787. venv/Lib/site-packages/keyring/backends/macOS/api.py +0 -172
  1788. venv/Lib/site-packages/keyring/backends/null.py +0 -17
  1789. venv/Lib/site-packages/keyring/cli.py +0 -136
  1790. venv/Lib/site-packages/keyring/core.py +0 -186
  1791. venv/Lib/site-packages/keyring/credentials.py +0 -70
  1792. venv/Lib/site-packages/keyring/devpi_client.py +0 -19
  1793. venv/Lib/site-packages/keyring/errors.py +0 -61
  1794. venv/Lib/site-packages/keyring/http.py +0 -39
  1795. venv/Lib/site-packages/keyring/py310compat.py +0 -10
  1796. venv/Lib/site-packages/keyring/testing/__init__.py +0 -0
  1797. venv/Lib/site-packages/keyring/testing/backend.py +0 -172
  1798. venv/Lib/site-packages/keyring/testing/util.py +0 -71
  1799. venv/Lib/site-packages/keyring/util/__init__.py +0 -37
  1800. venv/Lib/site-packages/keyring/util/platform_.py +0 -68
  1801. venv/Lib/site-packages/keyring/util/properties.py +0 -18
  1802. venv/Lib/site-packages/libfuturize/__init__.py +0 -1
  1803. venv/Lib/site-packages/libfuturize/fixer_util.py +0 -520
  1804. venv/Lib/site-packages/libfuturize/fixes/__init__.py +0 -97
  1805. venv/Lib/site-packages/libfuturize/fixes/fix_UserDict.py +0 -102
  1806. venv/Lib/site-packages/libfuturize/fixes/fix_absolute_import.py +0 -91
  1807. venv/Lib/site-packages/libfuturize/fixes/fix_add__future__imports_except_unicode_literals.py +0 -26
  1808. venv/Lib/site-packages/libfuturize/fixes/fix_basestring.py +0 -17
  1809. venv/Lib/site-packages/libfuturize/fixes/fix_bytes.py +0 -24
  1810. venv/Lib/site-packages/libfuturize/fixes/fix_cmp.py +0 -33
  1811. venv/Lib/site-packages/libfuturize/fixes/fix_division.py +0 -12
  1812. venv/Lib/site-packages/libfuturize/fixes/fix_division_safe.py +0 -109
  1813. venv/Lib/site-packages/libfuturize/fixes/fix_execfile.py +0 -37
  1814. venv/Lib/site-packages/libfuturize/fixes/fix_future_builtins.py +0 -59
  1815. venv/Lib/site-packages/libfuturize/fixes/fix_future_standard_library.py +0 -24
  1816. venv/Lib/site-packages/libfuturize/fixes/fix_future_standard_library_urllib.py +0 -28
  1817. venv/Lib/site-packages/libfuturize/fixes/fix_input.py +0 -32
  1818. venv/Lib/site-packages/libfuturize/fixes/fix_metaclass.py +0 -262
  1819. venv/Lib/site-packages/libfuturize/fixes/fix_next_call.py +0 -104
  1820. venv/Lib/site-packages/libfuturize/fixes/fix_object.py +0 -17
  1821. venv/Lib/site-packages/libfuturize/fixes/fix_oldstr_wrap.py +0 -39
  1822. venv/Lib/site-packages/libfuturize/fixes/fix_order___future__imports.py +0 -36
  1823. venv/Lib/site-packages/libfuturize/fixes/fix_print.py +0 -104
  1824. venv/Lib/site-packages/libfuturize/fixes/fix_print_with_import.py +0 -22
  1825. venv/Lib/site-packages/libfuturize/fixes/fix_raise.py +0 -107
  1826. venv/Lib/site-packages/libfuturize/fixes/fix_remove_old__future__imports.py +0 -26
  1827. venv/Lib/site-packages/libfuturize/fixes/fix_unicode_keep_u.py +0 -24
  1828. venv/Lib/site-packages/libfuturize/fixes/fix_unicode_literals_import.py +0 -18
  1829. venv/Lib/site-packages/libfuturize/fixes/fix_xrange_with_import.py +0 -20
  1830. venv/Lib/site-packages/libfuturize/main.py +0 -322
  1831. venv/Lib/site-packages/libpasteurize/__init__.py +0 -1
  1832. venv/Lib/site-packages/libpasteurize/fixes/__init__.py +0 -54
  1833. venv/Lib/site-packages/libpasteurize/fixes/feature_base.py +0 -57
  1834. venv/Lib/site-packages/libpasteurize/fixes/fix_add_all__future__imports.py +0 -24
  1835. venv/Lib/site-packages/libpasteurize/fixes/fix_add_all_future_builtins.py +0 -37
  1836. venv/Lib/site-packages/libpasteurize/fixes/fix_add_future_standard_library_import.py +0 -23
  1837. venv/Lib/site-packages/libpasteurize/fixes/fix_annotations.py +0 -48
  1838. venv/Lib/site-packages/libpasteurize/fixes/fix_division.py +0 -28
  1839. venv/Lib/site-packages/libpasteurize/fixes/fix_features.py +0 -86
  1840. venv/Lib/site-packages/libpasteurize/fixes/fix_fullargspec.py +0 -16
  1841. venv/Lib/site-packages/libpasteurize/fixes/fix_future_builtins.py +0 -46
  1842. venv/Lib/site-packages/libpasteurize/fixes/fix_getcwd.py +0 -26
  1843. venv/Lib/site-packages/libpasteurize/fixes/fix_imports.py +0 -112
  1844. venv/Lib/site-packages/libpasteurize/fixes/fix_imports2.py +0 -174
  1845. venv/Lib/site-packages/libpasteurize/fixes/fix_kwargs.py +0 -147
  1846. venv/Lib/site-packages/libpasteurize/fixes/fix_memoryview.py +0 -21
  1847. venv/Lib/site-packages/libpasteurize/fixes/fix_metaclass.py +0 -78
  1848. venv/Lib/site-packages/libpasteurize/fixes/fix_newstyle.py +0 -33
  1849. venv/Lib/site-packages/libpasteurize/fixes/fix_next.py +0 -43
  1850. venv/Lib/site-packages/libpasteurize/fixes/fix_printfunction.py +0 -17
  1851. venv/Lib/site-packages/libpasteurize/fixes/fix_raise.py +0 -25
  1852. venv/Lib/site-packages/libpasteurize/fixes/fix_raise_.py +0 -35
  1853. venv/Lib/site-packages/libpasteurize/fixes/fix_throw.py +0 -23
  1854. venv/Lib/site-packages/libpasteurize/fixes/fix_unpacking.py +0 -120
  1855. venv/Lib/site-packages/libpasteurize/main.py +0 -204
  1856. venv/Lib/site-packages/more_itertools/__init__.py +0 -6
  1857. venv/Lib/site-packages/more_itertools/more.py +0 -4347
  1858. venv/Lib/site-packages/more_itertools/recipes.py +0 -841
  1859. venv/Lib/site-packages/ordlookup/__init__.py +0 -45
  1860. venv/Lib/site-packages/ordlookup/oleaut32.py +0 -400
  1861. venv/Lib/site-packages/ordlookup/ws2_32.py +0 -119
  1862. venv/Lib/site-packages/packaging/__init__.py +0 -15
  1863. venv/Lib/site-packages/packaging/_elffile.py +0 -108
  1864. venv/Lib/site-packages/packaging/_manylinux.py +0 -238
  1865. venv/Lib/site-packages/packaging/_musllinux.py +0 -80
  1866. venv/Lib/site-packages/packaging/_parser.py +0 -328
  1867. venv/Lib/site-packages/packaging/_structures.py +0 -61
  1868. venv/Lib/site-packages/packaging/_tokenizer.py +0 -188
  1869. venv/Lib/site-packages/packaging/markers.py +0 -245
  1870. venv/Lib/site-packages/packaging/requirements.py +0 -95
  1871. venv/Lib/site-packages/packaging/specifiers.py +0 -1005
  1872. venv/Lib/site-packages/packaging/tags.py +0 -546
  1873. venv/Lib/site-packages/packaging/utils.py +0 -141
  1874. venv/Lib/site-packages/packaging/version.py +0 -563
  1875. venv/Lib/site-packages/past/__init__.py +0 -90
  1876. venv/Lib/site-packages/past/builtins/__init__.py +0 -72
  1877. venv/Lib/site-packages/past/builtins/misc.py +0 -161
  1878. venv/Lib/site-packages/past/builtins/noniterators.py +0 -272
  1879. venv/Lib/site-packages/past/translation/__init__.py +0 -485
  1880. venv/Lib/site-packages/past/types/__init__.py +0 -29
  1881. venv/Lib/site-packages/past/types/basestring.py +0 -38
  1882. venv/Lib/site-packages/past/types/olddict.py +0 -96
  1883. venv/Lib/site-packages/past/types/oldstr.py +0 -135
  1884. venv/Lib/site-packages/past/utils/__init__.py +0 -97
  1885. venv/Lib/site-packages/pefile.py +0 -7437
  1886. venv/Lib/site-packages/peutils.py +0 -592
  1887. venv/Lib/site-packages/pip/__init__.py +0 -13
  1888. venv/Lib/site-packages/pip/__main__.py +0 -31
  1889. venv/Lib/site-packages/pip/__pip-runner__.py +0 -50
  1890. venv/Lib/site-packages/pip/_internal/__init__.py +0 -19
  1891. venv/Lib/site-packages/pip/_internal/build_env.py +0 -310
  1892. venv/Lib/site-packages/pip/_internal/cache.py +0 -293
  1893. venv/Lib/site-packages/pip/_internal/cli/__init__.py +0 -4
  1894. venv/Lib/site-packages/pip/_internal/cli/autocompletion.py +0 -171
  1895. venv/Lib/site-packages/pip/_internal/cli/base_command.py +0 -216
  1896. venv/Lib/site-packages/pip/_internal/cli/cmdoptions.py +0 -1049
  1897. venv/Lib/site-packages/pip/_internal/cli/command_context.py +0 -27
  1898. venv/Lib/site-packages/pip/_internal/cli/main.py +0 -70
  1899. venv/Lib/site-packages/pip/_internal/cli/main_parser.py +0 -134
  1900. venv/Lib/site-packages/pip/_internal/cli/parser.py +0 -294
  1901. venv/Lib/site-packages/pip/_internal/cli/progress_bars.py +0 -68
  1902. venv/Lib/site-packages/pip/_internal/cli/req_command.py +0 -502
  1903. venv/Lib/site-packages/pip/_internal/cli/spinners.py +0 -159
  1904. venv/Lib/site-packages/pip/_internal/cli/status_codes.py +0 -6
  1905. venv/Lib/site-packages/pip/_internal/commands/__init__.py +0 -132
  1906. venv/Lib/site-packages/pip/_internal/commands/cache.py +0 -223
  1907. venv/Lib/site-packages/pip/_internal/commands/check.py +0 -53
  1908. venv/Lib/site-packages/pip/_internal/commands/completion.py +0 -126
  1909. venv/Lib/site-packages/pip/_internal/commands/configuration.py +0 -282
  1910. venv/Lib/site-packages/pip/_internal/commands/debug.py +0 -199
  1911. venv/Lib/site-packages/pip/_internal/commands/download.py +0 -149
  1912. venv/Lib/site-packages/pip/_internal/commands/freeze.py +0 -97
  1913. venv/Lib/site-packages/pip/_internal/commands/hash.py +0 -59
  1914. venv/Lib/site-packages/pip/_internal/commands/help.py +0 -41
  1915. venv/Lib/site-packages/pip/_internal/commands/index.py +0 -138
  1916. venv/Lib/site-packages/pip/_internal/commands/inspect.py +0 -97
  1917. venv/Lib/site-packages/pip/_internal/commands/install.py +0 -860
  1918. venv/Lib/site-packages/pip/_internal/commands/list.py +0 -365
  1919. venv/Lib/site-packages/pip/_internal/commands/search.py +0 -174
  1920. venv/Lib/site-packages/pip/_internal/commands/show.py +0 -183
  1921. venv/Lib/site-packages/pip/_internal/commands/uninstall.py +0 -106
  1922. venv/Lib/site-packages/pip/_internal/commands/wheel.py +0 -203
  1923. venv/Lib/site-packages/pip/_internal/configuration.py +0 -374
  1924. venv/Lib/site-packages/pip/_internal/distributions/__init__.py +0 -21
  1925. venv/Lib/site-packages/pip/_internal/distributions/base.py +0 -39
  1926. venv/Lib/site-packages/pip/_internal/distributions/installed.py +0 -23
  1927. venv/Lib/site-packages/pip/_internal/distributions/sdist.py +0 -150
  1928. venv/Lib/site-packages/pip/_internal/distributions/wheel.py +0 -34
  1929. venv/Lib/site-packages/pip/_internal/exceptions.py +0 -660
  1930. venv/Lib/site-packages/pip/_internal/index/__init__.py +0 -2
  1931. venv/Lib/site-packages/pip/_internal/index/collector.py +0 -505
  1932. venv/Lib/site-packages/pip/_internal/index/package_finder.py +0 -1025
  1933. venv/Lib/site-packages/pip/_internal/index/sources.py +0 -224
  1934. venv/Lib/site-packages/pip/_internal/locations/__init__.py +0 -528
  1935. venv/Lib/site-packages/pip/_internal/locations/_distutils.py +0 -180
  1936. venv/Lib/site-packages/pip/_internal/locations/_sysconfig.py +0 -218
  1937. venv/Lib/site-packages/pip/_internal/locations/base.py +0 -81
  1938. venv/Lib/site-packages/pip/_internal/main.py +0 -12
  1939. venv/Lib/site-packages/pip/_internal/metadata/__init__.py +0 -127
  1940. venv/Lib/site-packages/pip/_internal/metadata/_json.py +0 -84
  1941. venv/Lib/site-packages/pip/_internal/metadata/base.py +0 -688
  1942. venv/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +0 -4
  1943. venv/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +0 -55
  1944. venv/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +0 -224
  1945. venv/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +0 -188
  1946. venv/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +0 -270
  1947. venv/Lib/site-packages/pip/_internal/models/__init__.py +0 -2
  1948. venv/Lib/site-packages/pip/_internal/models/candidate.py +0 -34
  1949. venv/Lib/site-packages/pip/_internal/models/direct_url.py +0 -212
  1950. venv/Lib/site-packages/pip/_internal/models/format_control.py +0 -80
  1951. venv/Lib/site-packages/pip/_internal/models/index.py +0 -28
  1952. venv/Lib/site-packages/pip/_internal/models/installation_report.py +0 -53
  1953. venv/Lib/site-packages/pip/_internal/models/link.py +0 -507
  1954. venv/Lib/site-packages/pip/_internal/models/scheme.py +0 -31
  1955. venv/Lib/site-packages/pip/_internal/models/search_scope.py +0 -133
  1956. venv/Lib/site-packages/pip/_internal/models/selection_prefs.py +0 -51
  1957. venv/Lib/site-packages/pip/_internal/models/target_python.py +0 -110
  1958. venv/Lib/site-packages/pip/_internal/models/wheel.py +0 -92
  1959. venv/Lib/site-packages/pip/_internal/network/__init__.py +0 -2
  1960. venv/Lib/site-packages/pip/_internal/network/auth.py +0 -323
  1961. venv/Lib/site-packages/pip/_internal/network/cache.py +0 -69
  1962. venv/Lib/site-packages/pip/_internal/network/download.py +0 -186
  1963. venv/Lib/site-packages/pip/_internal/network/lazy_wheel.py +0 -210
  1964. venv/Lib/site-packages/pip/_internal/network/session.py +0 -518
  1965. venv/Lib/site-packages/pip/_internal/network/utils.py +0 -96
  1966. venv/Lib/site-packages/pip/_internal/network/xmlrpc.py +0 -60
  1967. venv/Lib/site-packages/pip/_internal/operations/__init__.py +0 -0
  1968. venv/Lib/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  1969. venv/Lib/site-packages/pip/_internal/operations/build/build_tracker.py +0 -124
  1970. venv/Lib/site-packages/pip/_internal/operations/build/metadata.py +0 -39
  1971. venv/Lib/site-packages/pip/_internal/operations/build/metadata_editable.py +0 -41
  1972. venv/Lib/site-packages/pip/_internal/operations/build/metadata_legacy.py +0 -74
  1973. venv/Lib/site-packages/pip/_internal/operations/build/wheel.py +0 -37
  1974. venv/Lib/site-packages/pip/_internal/operations/build/wheel_editable.py +0 -46
  1975. venv/Lib/site-packages/pip/_internal/operations/build/wheel_legacy.py +0 -102
  1976. venv/Lib/site-packages/pip/_internal/operations/check.py +0 -149
  1977. venv/Lib/site-packages/pip/_internal/operations/freeze.py +0 -254
  1978. venv/Lib/site-packages/pip/_internal/operations/install/__init__.py +0 -2
  1979. venv/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +0 -47
  1980. venv/Lib/site-packages/pip/_internal/operations/install/legacy.py +0 -120
  1981. venv/Lib/site-packages/pip/_internal/operations/install/wheel.py +0 -738
  1982. venv/Lib/site-packages/pip/_internal/operations/prepare.py +0 -667
  1983. venv/Lib/site-packages/pip/_internal/pyproject.py +0 -175
  1984. venv/Lib/site-packages/pip/_internal/req/__init__.py +0 -94
  1985. venv/Lib/site-packages/pip/_internal/req/constructors.py +0 -501
  1986. venv/Lib/site-packages/pip/_internal/req/req_file.py +0 -544
  1987. venv/Lib/site-packages/pip/_internal/req/req_install.py +0 -942
  1988. venv/Lib/site-packages/pip/_internal/req/req_set.py +0 -82
  1989. venv/Lib/site-packages/pip/_internal/req/req_uninstall.py +0 -640
  1990. venv/Lib/site-packages/pip/_internal/resolution/__init__.py +0 -0
  1991. venv/Lib/site-packages/pip/_internal/resolution/base.py +0 -20
  1992. venv/Lib/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  1993. venv/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -600
  1994. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  1995. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -141
  1996. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -556
  1997. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -731
  1998. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -155
  1999. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -248
  2000. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -68
  2001. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -166
  2002. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -296
  2003. venv/Lib/site-packages/pip/_internal/self_outdated_check.py +0 -239
  2004. venv/Lib/site-packages/pip/_internal/utils/__init__.py +0 -0
  2005. venv/Lib/site-packages/pip/_internal/utils/_log.py +0 -38
  2006. venv/Lib/site-packages/pip/_internal/utils/appdirs.py +0 -52
  2007. venv/Lib/site-packages/pip/_internal/utils/compat.py +0 -63
  2008. venv/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +0 -165
  2009. venv/Lib/site-packages/pip/_internal/utils/datetime.py +0 -11
  2010. venv/Lib/site-packages/pip/_internal/utils/deprecation.py +0 -188
  2011. venv/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -87
  2012. venv/Lib/site-packages/pip/_internal/utils/distutils_args.py +0 -43
  2013. venv/Lib/site-packages/pip/_internal/utils/egg_link.py +0 -75
  2014. venv/Lib/site-packages/pip/_internal/utils/encoding.py +0 -36
  2015. venv/Lib/site-packages/pip/_internal/utils/entrypoints.py +0 -84
  2016. venv/Lib/site-packages/pip/_internal/utils/filesystem.py +0 -153
  2017. venv/Lib/site-packages/pip/_internal/utils/filetypes.py +0 -27
  2018. venv/Lib/site-packages/pip/_internal/utils/glibc.py +0 -88
  2019. venv/Lib/site-packages/pip/_internal/utils/hashes.py +0 -144
  2020. venv/Lib/site-packages/pip/_internal/utils/inject_securetransport.py +0 -35
  2021. venv/Lib/site-packages/pip/_internal/utils/logging.py +0 -348
  2022. venv/Lib/site-packages/pip/_internal/utils/misc.py +0 -723
  2023. venv/Lib/site-packages/pip/_internal/utils/models.py +0 -39
  2024. venv/Lib/site-packages/pip/_internal/utils/packaging.py +0 -57
  2025. venv/Lib/site-packages/pip/_internal/utils/setuptools_build.py +0 -195
  2026. venv/Lib/site-packages/pip/_internal/utils/subprocess.py +0 -260
  2027. venv/Lib/site-packages/pip/_internal/utils/temp_dir.py +0 -246
  2028. venv/Lib/site-packages/pip/_internal/utils/unpacking.py +0 -257
  2029. venv/Lib/site-packages/pip/_internal/utils/urls.py +0 -62
  2030. venv/Lib/site-packages/pip/_internal/utils/virtualenv.py +0 -104
  2031. venv/Lib/site-packages/pip/_internal/utils/wheel.py +0 -136
  2032. venv/Lib/site-packages/pip/_internal/vcs/__init__.py +0 -15
  2033. venv/Lib/site-packages/pip/_internal/vcs/bazaar.py +0 -112
  2034. venv/Lib/site-packages/pip/_internal/vcs/git.py +0 -526
  2035. venv/Lib/site-packages/pip/_internal/vcs/mercurial.py +0 -163
  2036. venv/Lib/site-packages/pip/_internal/vcs/subversion.py +0 -324
  2037. venv/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +0 -705
  2038. venv/Lib/site-packages/pip/_internal/wheel_builder.py +0 -382
  2039. venv/Lib/site-packages/pip/_vendor/__init__.py +0 -120
  2040. venv/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -18
  2041. venv/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -61
  2042. venv/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -137
  2043. venv/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +0 -65
  2044. venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -9
  2045. venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -188
  2046. venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -39
  2047. venv/Lib/site-packages/pip/_vendor/cachecontrol/compat.py +0 -32
  2048. venv/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +0 -439
  2049. venv/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -111
  2050. venv/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -139
  2051. venv/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -190
  2052. venv/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -33
  2053. venv/Lib/site-packages/pip/_vendor/certifi/__init__.py +0 -4
  2054. venv/Lib/site-packages/pip/_vendor/certifi/__main__.py +0 -12
  2055. venv/Lib/site-packages/pip/_vendor/certifi/core.py +0 -108
  2056. venv/Lib/site-packages/pip/_vendor/chardet/__init__.py +0 -93
  2057. venv/Lib/site-packages/pip/_vendor/chardet/big5freq.py +0 -386
  2058. venv/Lib/site-packages/pip/_vendor/chardet/big5prober.py +0 -47
  2059. venv/Lib/site-packages/pip/_vendor/chardet/chardistribution.py +0 -259
  2060. venv/Lib/site-packages/pip/_vendor/chardet/charsetgroupprober.py +0 -109
  2061. venv/Lib/site-packages/pip/_vendor/chardet/charsetprober.py +0 -138
  2062. venv/Lib/site-packages/pip/_vendor/chardet/cli/__init__.py +0 -0
  2063. venv/Lib/site-packages/pip/_vendor/chardet/cli/chardetect.py +0 -86
  2064. venv/Lib/site-packages/pip/_vendor/chardet/codingstatemachine.py +0 -88
  2065. venv/Lib/site-packages/pip/_vendor/chardet/cp949prober.py +0 -49
  2066. venv/Lib/site-packages/pip/_vendor/chardet/enums.py +0 -82
  2067. venv/Lib/site-packages/pip/_vendor/chardet/escprober.py +0 -102
  2068. venv/Lib/site-packages/pip/_vendor/chardet/escsm.py +0 -260
  2069. venv/Lib/site-packages/pip/_vendor/chardet/eucjpprober.py +0 -95
  2070. venv/Lib/site-packages/pip/_vendor/chardet/euckrfreq.py +0 -196
  2071. venv/Lib/site-packages/pip/_vendor/chardet/euckrprober.py +0 -47
  2072. venv/Lib/site-packages/pip/_vendor/chardet/euctwfreq.py +0 -388
  2073. venv/Lib/site-packages/pip/_vendor/chardet/euctwprober.py +0 -47
  2074. venv/Lib/site-packages/pip/_vendor/chardet/gb2312freq.py +0 -284
  2075. venv/Lib/site-packages/pip/_vendor/chardet/gb2312prober.py +0 -47
  2076. venv/Lib/site-packages/pip/_vendor/chardet/hebrewprober.py +0 -302
  2077. venv/Lib/site-packages/pip/_vendor/chardet/jisfreq.py +0 -325
  2078. venv/Lib/site-packages/pip/_vendor/chardet/johabfreq.py +0 -2382
  2079. venv/Lib/site-packages/pip/_vendor/chardet/johabprober.py +0 -47
  2080. venv/Lib/site-packages/pip/_vendor/chardet/jpcntx.py +0 -237
  2081. venv/Lib/site-packages/pip/_vendor/chardet/langbulgarianmodel.py +0 -4649
  2082. venv/Lib/site-packages/pip/_vendor/chardet/langgreekmodel.py +0 -4397
  2083. venv/Lib/site-packages/pip/_vendor/chardet/langhebrewmodel.py +0 -4380
  2084. venv/Lib/site-packages/pip/_vendor/chardet/langhungarianmodel.py +0 -4649
  2085. venv/Lib/site-packages/pip/_vendor/chardet/langrussianmodel.py +0 -5725
  2086. venv/Lib/site-packages/pip/_vendor/chardet/langthaimodel.py +0 -4380
  2087. venv/Lib/site-packages/pip/_vendor/chardet/langturkishmodel.py +0 -4380
  2088. venv/Lib/site-packages/pip/_vendor/chardet/latin1prober.py +0 -145
  2089. venv/Lib/site-packages/pip/_vendor/chardet/mbcharsetprober.py +0 -95
  2090. venv/Lib/site-packages/pip/_vendor/chardet/mbcsgroupprober.py +0 -56
  2091. venv/Lib/site-packages/pip/_vendor/chardet/mbcssm.py +0 -660
  2092. venv/Lib/site-packages/pip/_vendor/chardet/metadata/__init__.py +0 -0
  2093. venv/Lib/site-packages/pip/_vendor/chardet/metadata/languages.py +0 -351
  2094. venv/Lib/site-packages/pip/_vendor/chardet/sbcharsetprober.py +0 -160
  2095. venv/Lib/site-packages/pip/_vendor/chardet/sbcsgroupprober.py +0 -88
  2096. venv/Lib/site-packages/pip/_vendor/chardet/sjisprober.py +0 -98
  2097. venv/Lib/site-packages/pip/_vendor/chardet/universaldetector.py +0 -328
  2098. venv/Lib/site-packages/pip/_vendor/chardet/utf1632prober.py +0 -223
  2099. venv/Lib/site-packages/pip/_vendor/chardet/utf8prober.py +0 -80
  2100. venv/Lib/site-packages/pip/_vendor/chardet/version.py +0 -9
  2101. venv/Lib/site-packages/pip/_vendor/colorama/__init__.py +0 -6
  2102. venv/Lib/site-packages/pip/_vendor/colorama/ansi.py +0 -102
  2103. venv/Lib/site-packages/pip/_vendor/colorama/ansitowin32.py +0 -266
  2104. venv/Lib/site-packages/pip/_vendor/colorama/initialise.py +0 -80
  2105. venv/Lib/site-packages/pip/_vendor/colorama/win32.py +0 -152
  2106. venv/Lib/site-packages/pip/_vendor/colorama/winterm.py +0 -169
  2107. venv/Lib/site-packages/pip/_vendor/distlib/__init__.py +0 -23
  2108. venv/Lib/site-packages/pip/_vendor/distlib/compat.py +0 -1116
  2109. venv/Lib/site-packages/pip/_vendor/distlib/database.py +0 -1350
  2110. venv/Lib/site-packages/pip/_vendor/distlib/index.py +0 -508
  2111. venv/Lib/site-packages/pip/_vendor/distlib/locators.py +0 -1300
  2112. venv/Lib/site-packages/pip/_vendor/distlib/manifest.py +0 -393
  2113. venv/Lib/site-packages/pip/_vendor/distlib/markers.py +0 -152
  2114. venv/Lib/site-packages/pip/_vendor/distlib/metadata.py +0 -1076
  2115. venv/Lib/site-packages/pip/_vendor/distlib/resources.py +0 -358
  2116. venv/Lib/site-packages/pip/_vendor/distlib/scripts.py +0 -437
  2117. venv/Lib/site-packages/pip/_vendor/distlib/util.py +0 -1932
  2118. venv/Lib/site-packages/pip/_vendor/distlib/version.py +0 -739
  2119. venv/Lib/site-packages/pip/_vendor/distlib/wheel.py +0 -1082
  2120. venv/Lib/site-packages/pip/_vendor/distro/__init__.py +0 -54
  2121. venv/Lib/site-packages/pip/_vendor/distro/__main__.py +0 -4
  2122. venv/Lib/site-packages/pip/_vendor/distro/distro.py +0 -1374
  2123. venv/Lib/site-packages/pip/_vendor/idna/__init__.py +0 -44
  2124. venv/Lib/site-packages/pip/_vendor/idna/codec.py +0 -112
  2125. venv/Lib/site-packages/pip/_vendor/idna/compat.py +0 -13
  2126. venv/Lib/site-packages/pip/_vendor/idna/core.py +0 -400
  2127. venv/Lib/site-packages/pip/_vendor/idna/idnadata.py +0 -2151
  2128. venv/Lib/site-packages/pip/_vendor/idna/intranges.py +0 -54
  2129. venv/Lib/site-packages/pip/_vendor/idna/package_data.py +0 -2
  2130. venv/Lib/site-packages/pip/_vendor/idna/uts46data.py +0 -8600
  2131. venv/Lib/site-packages/pip/_vendor/msgpack/__init__.py +0 -57
  2132. venv/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +0 -48
  2133. venv/Lib/site-packages/pip/_vendor/msgpack/ext.py +0 -193
  2134. venv/Lib/site-packages/pip/_vendor/msgpack/fallback.py +0 -1010
  2135. venv/Lib/site-packages/pip/_vendor/packaging/__about__.py +0 -26
  2136. venv/Lib/site-packages/pip/_vendor/packaging/__init__.py +0 -25
  2137. venv/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +0 -301
  2138. venv/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +0 -136
  2139. venv/Lib/site-packages/pip/_vendor/packaging/_structures.py +0 -61
  2140. venv/Lib/site-packages/pip/_vendor/packaging/markers.py +0 -304
  2141. venv/Lib/site-packages/pip/_vendor/packaging/requirements.py +0 -146
  2142. venv/Lib/site-packages/pip/_vendor/packaging/specifiers.py +0 -802
  2143. venv/Lib/site-packages/pip/_vendor/packaging/tags.py +0 -487
  2144. venv/Lib/site-packages/pip/_vendor/packaging/utils.py +0 -136
  2145. venv/Lib/site-packages/pip/_vendor/packaging/version.py +0 -504
  2146. venv/Lib/site-packages/pip/_vendor/pep517/__init__.py +0 -6
  2147. venv/Lib/site-packages/pip/_vendor/pep517/_compat.py +0 -8
  2148. venv/Lib/site-packages/pip/_vendor/pep517/build.py +0 -126
  2149. venv/Lib/site-packages/pip/_vendor/pep517/check.py +0 -207
  2150. venv/Lib/site-packages/pip/_vendor/pep517/colorlog.py +0 -113
  2151. venv/Lib/site-packages/pip/_vendor/pep517/dirtools.py +0 -19
  2152. venv/Lib/site-packages/pip/_vendor/pep517/envbuild.py +0 -170
  2153. venv/Lib/site-packages/pip/_vendor/pep517/in_process/__init__.py +0 -26
  2154. venv/Lib/site-packages/pip/_vendor/pep517/in_process/_in_process.py +0 -351
  2155. venv/Lib/site-packages/pip/_vendor/pep517/meta.py +0 -93
  2156. venv/Lib/site-packages/pip/_vendor/pep517/wrappers.py +0 -362
  2157. venv/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -3296
  2158. venv/Lib/site-packages/pip/_vendor/pkg_resources/py31compat.py +0 -23
  2159. venv/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +0 -340
  2160. venv/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +0 -46
  2161. venv/Lib/site-packages/pip/_vendor/platformdirs/android.py +0 -120
  2162. venv/Lib/site-packages/pip/_vendor/platformdirs/api.py +0 -156
  2163. venv/Lib/site-packages/pip/_vendor/platformdirs/macos.py +0 -64
  2164. venv/Lib/site-packages/pip/_vendor/platformdirs/unix.py +0 -181
  2165. venv/Lib/site-packages/pip/_vendor/platformdirs/version.py +0 -4
  2166. venv/Lib/site-packages/pip/_vendor/platformdirs/windows.py +0 -182
  2167. venv/Lib/site-packages/pip/_vendor/pygments/__init__.py +0 -82
  2168. venv/Lib/site-packages/pip/_vendor/pygments/__main__.py +0 -17
  2169. venv/Lib/site-packages/pip/_vendor/pygments/cmdline.py +0 -668
  2170. venv/Lib/site-packages/pip/_vendor/pygments/console.py +0 -70
  2171. venv/Lib/site-packages/pip/_vendor/pygments/filter.py +0 -71
  2172. venv/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +0 -940
  2173. venv/Lib/site-packages/pip/_vendor/pygments/formatter.py +0 -94
  2174. venv/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +0 -143
  2175. venv/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +0 -23
  2176. venv/Lib/site-packages/pip/_vendor/pygments/formatters/bbcode.py +0 -108
  2177. venv/Lib/site-packages/pip/_vendor/pygments/formatters/groff.py +0 -170
  2178. venv/Lib/site-packages/pip/_vendor/pygments/formatters/html.py +0 -989
  2179. venv/Lib/site-packages/pip/_vendor/pygments/formatters/img.py +0 -645
  2180. venv/Lib/site-packages/pip/_vendor/pygments/formatters/irc.py +0 -179
  2181. venv/Lib/site-packages/pip/_vendor/pygments/formatters/latex.py +0 -521
  2182. venv/Lib/site-packages/pip/_vendor/pygments/formatters/other.py +0 -161
  2183. venv/Lib/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py +0 -83
  2184. venv/Lib/site-packages/pip/_vendor/pygments/formatters/rtf.py +0 -146
  2185. venv/Lib/site-packages/pip/_vendor/pygments/formatters/svg.py +0 -188
  2186. venv/Lib/site-packages/pip/_vendor/pygments/formatters/terminal.py +0 -127
  2187. venv/Lib/site-packages/pip/_vendor/pygments/formatters/terminal256.py +0 -338
  2188. venv/Lib/site-packages/pip/_vendor/pygments/lexer.py +0 -882
  2189. venv/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +0 -335
  2190. venv/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +0 -541
  2191. venv/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +0 -1204
  2192. venv/Lib/site-packages/pip/_vendor/pygments/modeline.py +0 -43
  2193. venv/Lib/site-packages/pip/_vendor/pygments/plugin.py +0 -88
  2194. venv/Lib/site-packages/pip/_vendor/pygments/regexopt.py +0 -91
  2195. venv/Lib/site-packages/pip/_vendor/pygments/scanner.py +0 -104
  2196. venv/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +0 -155
  2197. venv/Lib/site-packages/pip/_vendor/pygments/style.py +0 -197
  2198. venv/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +0 -97
  2199. venv/Lib/site-packages/pip/_vendor/pygments/token.py +0 -213
  2200. venv/Lib/site-packages/pip/_vendor/pygments/unistring.py +0 -153
  2201. venv/Lib/site-packages/pip/_vendor/pygments/util.py +0 -308
  2202. venv/Lib/site-packages/pip/_vendor/pyparsing/__init__.py +0 -331
  2203. venv/Lib/site-packages/pip/_vendor/pyparsing/actions.py +0 -207
  2204. venv/Lib/site-packages/pip/_vendor/pyparsing/common.py +0 -424
  2205. venv/Lib/site-packages/pip/_vendor/pyparsing/core.py +0 -5814
  2206. venv/Lib/site-packages/pip/_vendor/pyparsing/diagram/__init__.py +0 -642
  2207. venv/Lib/site-packages/pip/_vendor/pyparsing/exceptions.py +0 -267
  2208. venv/Lib/site-packages/pip/_vendor/pyparsing/helpers.py +0 -1088
  2209. venv/Lib/site-packages/pip/_vendor/pyparsing/results.py +0 -760
  2210. venv/Lib/site-packages/pip/_vendor/pyparsing/testing.py +0 -331
  2211. venv/Lib/site-packages/pip/_vendor/pyparsing/unicode.py +0 -352
  2212. venv/Lib/site-packages/pip/_vendor/pyparsing/util.py +0 -235
  2213. venv/Lib/site-packages/pip/_vendor/requests/__init__.py +0 -182
  2214. venv/Lib/site-packages/pip/_vendor/requests/__version__.py +0 -14
  2215. venv/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +0 -48
  2216. venv/Lib/site-packages/pip/_vendor/requests/adapters.py +0 -584
  2217. venv/Lib/site-packages/pip/_vendor/requests/api.py +0 -157
  2218. venv/Lib/site-packages/pip/_vendor/requests/auth.py +0 -315
  2219. venv/Lib/site-packages/pip/_vendor/requests/certs.py +0 -24
  2220. venv/Lib/site-packages/pip/_vendor/requests/compat.py +0 -67
  2221. venv/Lib/site-packages/pip/_vendor/requests/cookies.py +0 -561
  2222. venv/Lib/site-packages/pip/_vendor/requests/exceptions.py +0 -141
  2223. venv/Lib/site-packages/pip/_vendor/requests/help.py +0 -131
  2224. venv/Lib/site-packages/pip/_vendor/requests/hooks.py +0 -33
  2225. venv/Lib/site-packages/pip/_vendor/requests/models.py +0 -1034
  2226. venv/Lib/site-packages/pip/_vendor/requests/packages.py +0 -16
  2227. venv/Lib/site-packages/pip/_vendor/requests/sessions.py +0 -831
  2228. venv/Lib/site-packages/pip/_vendor/requests/status_codes.py +0 -128
  2229. venv/Lib/site-packages/pip/_vendor/requests/structures.py +0 -99
  2230. venv/Lib/site-packages/pip/_vendor/requests/utils.py +0 -1086
  2231. venv/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +0 -26
  2232. venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  2233. venv/Lib/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +0 -6
  2234. venv/Lib/site-packages/pip/_vendor/resolvelib/providers.py +0 -133
  2235. venv/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +0 -43
  2236. venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers.py +0 -482
  2237. venv/Lib/site-packages/pip/_vendor/resolvelib/structs.py +0 -165
  2238. venv/Lib/site-packages/pip/_vendor/rich/__init__.py +0 -176
  2239. venv/Lib/site-packages/pip/_vendor/rich/__main__.py +0 -282
  2240. venv/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +0 -451
  2241. venv/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +0 -3610
  2242. venv/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +0 -32
  2243. venv/Lib/site-packages/pip/_vendor/rich/_export_format.py +0 -78
  2244. venv/Lib/site-packages/pip/_vendor/rich/_extension.py +0 -10
  2245. venv/Lib/site-packages/pip/_vendor/rich/_inspect.py +0 -270
  2246. venv/Lib/site-packages/pip/_vendor/rich/_log_render.py +0 -94
  2247. venv/Lib/site-packages/pip/_vendor/rich/_loop.py +0 -43
  2248. venv/Lib/site-packages/pip/_vendor/rich/_palettes.py +0 -309
  2249. venv/Lib/site-packages/pip/_vendor/rich/_pick.py +0 -17
  2250. venv/Lib/site-packages/pip/_vendor/rich/_ratio.py +0 -160
  2251. venv/Lib/site-packages/pip/_vendor/rich/_spinners.py +0 -482
  2252. venv/Lib/site-packages/pip/_vendor/rich/_stack.py +0 -16
  2253. venv/Lib/site-packages/pip/_vendor/rich/_timer.py +0 -19
  2254. venv/Lib/site-packages/pip/_vendor/rich/_win32_console.py +0 -662
  2255. venv/Lib/site-packages/pip/_vendor/rich/_windows.py +0 -72
  2256. venv/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +0 -56
  2257. venv/Lib/site-packages/pip/_vendor/rich/_wrap.py +0 -56
  2258. venv/Lib/site-packages/pip/_vendor/rich/abc.py +0 -33
  2259. venv/Lib/site-packages/pip/_vendor/rich/align.py +0 -311
  2260. venv/Lib/site-packages/pip/_vendor/rich/ansi.py +0 -237
  2261. venv/Lib/site-packages/pip/_vendor/rich/bar.py +0 -94
  2262. venv/Lib/site-packages/pip/_vendor/rich/box.py +0 -517
  2263. venv/Lib/site-packages/pip/_vendor/rich/cells.py +0 -154
  2264. venv/Lib/site-packages/pip/_vendor/rich/color.py +0 -615
  2265. venv/Lib/site-packages/pip/_vendor/rich/color_triplet.py +0 -38
  2266. venv/Lib/site-packages/pip/_vendor/rich/columns.py +0 -187
  2267. venv/Lib/site-packages/pip/_vendor/rich/console.py +0 -2572
  2268. venv/Lib/site-packages/pip/_vendor/rich/constrain.py +0 -37
  2269. venv/Lib/site-packages/pip/_vendor/rich/containers.py +0 -167
  2270. venv/Lib/site-packages/pip/_vendor/rich/control.py +0 -225
  2271. venv/Lib/site-packages/pip/_vendor/rich/default_styles.py +0 -188
  2272. venv/Lib/site-packages/pip/_vendor/rich/diagnose.py +0 -37
  2273. venv/Lib/site-packages/pip/_vendor/rich/emoji.py +0 -96
  2274. venv/Lib/site-packages/pip/_vendor/rich/errors.py +0 -34
  2275. venv/Lib/site-packages/pip/_vendor/rich/file_proxy.py +0 -54
  2276. venv/Lib/site-packages/pip/_vendor/rich/filesize.py +0 -89
  2277. venv/Lib/site-packages/pip/_vendor/rich/highlighter.py +0 -232
  2278. venv/Lib/site-packages/pip/_vendor/rich/json.py +0 -140
  2279. venv/Lib/site-packages/pip/_vendor/rich/jupyter.py +0 -101
  2280. venv/Lib/site-packages/pip/_vendor/rich/layout.py +0 -445
  2281. venv/Lib/site-packages/pip/_vendor/rich/live.py +0 -373
  2282. venv/Lib/site-packages/pip/_vendor/rich/live_render.py +0 -113
  2283. venv/Lib/site-packages/pip/_vendor/rich/logging.py +0 -280
  2284. venv/Lib/site-packages/pip/_vendor/rich/markup.py +0 -246
  2285. venv/Lib/site-packages/pip/_vendor/rich/measure.py +0 -151
  2286. venv/Lib/site-packages/pip/_vendor/rich/padding.py +0 -141
  2287. venv/Lib/site-packages/pip/_vendor/rich/pager.py +0 -34
  2288. venv/Lib/site-packages/pip/_vendor/rich/palette.py +0 -100
  2289. venv/Lib/site-packages/pip/_vendor/rich/panel.py +0 -251
  2290. venv/Lib/site-packages/pip/_vendor/rich/pretty.py +0 -1010
  2291. venv/Lib/site-packages/pip/_vendor/rich/progress.py +0 -1703
  2292. venv/Lib/site-packages/pip/_vendor/rich/progress_bar.py +0 -224
  2293. venv/Lib/site-packages/pip/_vendor/rich/prompt.py +0 -376
  2294. venv/Lib/site-packages/pip/_vendor/rich/protocol.py +0 -42
  2295. venv/Lib/site-packages/pip/_vendor/rich/region.py +0 -10
  2296. venv/Lib/site-packages/pip/_vendor/rich/repr.py +0 -152
  2297. venv/Lib/site-packages/pip/_vendor/rich/rule.py +0 -134
  2298. venv/Lib/site-packages/pip/_vendor/rich/scope.py +0 -86
  2299. venv/Lib/site-packages/pip/_vendor/rich/screen.py +0 -54
  2300. venv/Lib/site-packages/pip/_vendor/rich/segment.py +0 -739
  2301. venv/Lib/site-packages/pip/_vendor/rich/spinner.py +0 -136
  2302. venv/Lib/site-packages/pip/_vendor/rich/status.py +0 -132
  2303. venv/Lib/site-packages/pip/_vendor/rich/style.py +0 -771
  2304. venv/Lib/site-packages/pip/_vendor/rich/styled.py +0 -42
  2305. venv/Lib/site-packages/pip/_vendor/rich/syntax.py +0 -934
  2306. venv/Lib/site-packages/pip/_vendor/rich/table.py +0 -996
  2307. venv/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +0 -153
  2308. venv/Lib/site-packages/pip/_vendor/rich/text.py +0 -1286
  2309. venv/Lib/site-packages/pip/_vendor/rich/theme.py +0 -112
  2310. venv/Lib/site-packages/pip/_vendor/rich/themes.py +0 -5
  2311. venv/Lib/site-packages/pip/_vendor/rich/traceback.py +0 -679
  2312. venv/Lib/site-packages/pip/_vendor/rich/tree.py +0 -251
  2313. venv/Lib/site-packages/pip/_vendor/six.py +0 -998
  2314. venv/Lib/site-packages/pip/_vendor/tenacity/__init__.py +0 -519
  2315. venv/Lib/site-packages/pip/_vendor/tenacity/_asyncio.py +0 -92
  2316. venv/Lib/site-packages/pip/_vendor/tenacity/_utils.py +0 -68
  2317. venv/Lib/site-packages/pip/_vendor/tenacity/after.py +0 -46
  2318. venv/Lib/site-packages/pip/_vendor/tenacity/before.py +0 -41
  2319. venv/Lib/site-packages/pip/_vendor/tenacity/before_sleep.py +0 -58
  2320. venv/Lib/site-packages/pip/_vendor/tenacity/nap.py +0 -43
  2321. venv/Lib/site-packages/pip/_vendor/tenacity/retry.py +0 -240
  2322. venv/Lib/site-packages/pip/_vendor/tenacity/stop.py +0 -96
  2323. venv/Lib/site-packages/pip/_vendor/tenacity/tornadoweb.py +0 -59
  2324. venv/Lib/site-packages/pip/_vendor/tenacity/wait.py +0 -232
  2325. venv/Lib/site-packages/pip/_vendor/tomli/__init__.py +0 -11
  2326. venv/Lib/site-packages/pip/_vendor/tomli/_parser.py +0 -691
  2327. venv/Lib/site-packages/pip/_vendor/tomli/_re.py +0 -107
  2328. venv/Lib/site-packages/pip/_vendor/tomli/_types.py +0 -10
  2329. venv/Lib/site-packages/pip/_vendor/typing_extensions.py +0 -2209
  2330. venv/Lib/site-packages/pip/_vendor/urllib3/__init__.py +0 -102
  2331. venv/Lib/site-packages/pip/_vendor/urllib3/_collections.py +0 -337
  2332. venv/Lib/site-packages/pip/_vendor/urllib3/_version.py +0 -2
  2333. venv/Lib/site-packages/pip/_vendor/urllib3/connection.py +0 -567
  2334. venv/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -1110
  2335. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  2336. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -36
  2337. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  2338. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -519
  2339. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -397
  2340. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -314
  2341. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -130
  2342. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -519
  2343. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -921
  2344. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -216
  2345. venv/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +0 -323
  2346. venv/Lib/site-packages/pip/_vendor/urllib3/fields.py +0 -274
  2347. venv/Lib/site-packages/pip/_vendor/urllib3/filepost.py +0 -98
  2348. venv/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
  2349. venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  2350. venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -51
  2351. venv/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +0 -1076
  2352. venv/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -537
  2353. venv/Lib/site-packages/pip/_vendor/urllib3/request.py +0 -170
  2354. venv/Lib/site-packages/pip/_vendor/urllib3/response.py +0 -866
  2355. venv/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -49
  2356. venv/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +0 -149
  2357. venv/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -57
  2358. venv/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +0 -22
  2359. venv/Lib/site-packages/pip/_vendor/urllib3/util/request.py +0 -137
  2360. venv/Lib/site-packages/pip/_vendor/urllib3/util/response.py +0 -107
  2361. venv/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +0 -620
  2362. venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -495
  2363. venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +0 -159
  2364. venv/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -221
  2365. venv/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -268
  2366. venv/Lib/site-packages/pip/_vendor/urllib3/util/url.py +0 -435
  2367. venv/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +0 -152
  2368. venv/Lib/site-packages/pip/_vendor/webencodings/__init__.py +0 -342
  2369. venv/Lib/site-packages/pip/_vendor/webencodings/labels.py +0 -231
  2370. venv/Lib/site-packages/pip/_vendor/webencodings/mklabels.py +0 -59
  2371. venv/Lib/site-packages/pip/_vendor/webencodings/tests.py +0 -153
  2372. venv/Lib/site-packages/pip/_vendor/webencodings/x_user_defined.py +0 -325
  2373. venv/Lib/site-packages/pkg_resources/__init__.py +0 -3357
  2374. venv/Lib/site-packages/pkg_resources/_vendor/__init__.py +0 -0
  2375. venv/Lib/site-packages/pkg_resources/_vendor/importlib_resources/__init__.py +0 -36
  2376. venv/Lib/site-packages/pkg_resources/_vendor/importlib_resources/_adapters.py +0 -170
  2377. venv/Lib/site-packages/pkg_resources/_vendor/importlib_resources/_common.py +0 -207
  2378. venv/Lib/site-packages/pkg_resources/_vendor/importlib_resources/_compat.py +0 -108
  2379. venv/Lib/site-packages/pkg_resources/_vendor/importlib_resources/_itertools.py +0 -35
  2380. venv/Lib/site-packages/pkg_resources/_vendor/importlib_resources/_legacy.py +0 -120
  2381. venv/Lib/site-packages/pkg_resources/_vendor/importlib_resources/abc.py +0 -170
  2382. venv/Lib/site-packages/pkg_resources/_vendor/importlib_resources/readers.py +0 -120
  2383. venv/Lib/site-packages/pkg_resources/_vendor/importlib_resources/simple.py +0 -106
  2384. venv/Lib/site-packages/pkg_resources/_vendor/jaraco/__init__.py +0 -0
  2385. venv/Lib/site-packages/pkg_resources/_vendor/jaraco/context.py +0 -288
  2386. venv/Lib/site-packages/pkg_resources/_vendor/jaraco/functools.py +0 -525
  2387. venv/Lib/site-packages/pkg_resources/_vendor/jaraco/text/__init__.py +0 -599
  2388. venv/Lib/site-packages/pkg_resources/_vendor/more_itertools/__init__.py +0 -6
  2389. venv/Lib/site-packages/pkg_resources/_vendor/more_itertools/more.py +0 -4346
  2390. venv/Lib/site-packages/pkg_resources/_vendor/more_itertools/recipes.py +0 -841
  2391. venv/Lib/site-packages/pkg_resources/_vendor/packaging/__init__.py +0 -15
  2392. venv/Lib/site-packages/pkg_resources/_vendor/packaging/_elffile.py +0 -108
  2393. venv/Lib/site-packages/pkg_resources/_vendor/packaging/_manylinux.py +0 -238
  2394. venv/Lib/site-packages/pkg_resources/_vendor/packaging/_musllinux.py +0 -80
  2395. venv/Lib/site-packages/pkg_resources/_vendor/packaging/_parser.py +0 -328
  2396. venv/Lib/site-packages/pkg_resources/_vendor/packaging/_structures.py +0 -61
  2397. venv/Lib/site-packages/pkg_resources/_vendor/packaging/_tokenizer.py +0 -188
  2398. venv/Lib/site-packages/pkg_resources/_vendor/packaging/markers.py +0 -245
  2399. venv/Lib/site-packages/pkg_resources/_vendor/packaging/requirements.py +0 -95
  2400. venv/Lib/site-packages/pkg_resources/_vendor/packaging/specifiers.py +0 -1005
  2401. venv/Lib/site-packages/pkg_resources/_vendor/packaging/tags.py +0 -546
  2402. venv/Lib/site-packages/pkg_resources/_vendor/packaging/utils.py +0 -141
  2403. venv/Lib/site-packages/pkg_resources/_vendor/packaging/version.py +0 -563
  2404. venv/Lib/site-packages/pkg_resources/_vendor/platformdirs/__init__.py +0 -342
  2405. venv/Lib/site-packages/pkg_resources/_vendor/platformdirs/__main__.py +0 -46
  2406. venv/Lib/site-packages/pkg_resources/_vendor/platformdirs/android.py +0 -120
  2407. venv/Lib/site-packages/pkg_resources/_vendor/platformdirs/api.py +0 -156
  2408. venv/Lib/site-packages/pkg_resources/_vendor/platformdirs/macos.py +0 -64
  2409. venv/Lib/site-packages/pkg_resources/_vendor/platformdirs/unix.py +0 -181
  2410. venv/Lib/site-packages/pkg_resources/_vendor/platformdirs/version.py +0 -4
  2411. venv/Lib/site-packages/pkg_resources/_vendor/platformdirs/windows.py +0 -184
  2412. venv/Lib/site-packages/pkg_resources/_vendor/typing_extensions.py +0 -2209
  2413. venv/Lib/site-packages/pkg_resources/_vendor/zipp.py +0 -329
  2414. venv/Lib/site-packages/pkg_resources/extern/__init__.py +0 -80
  2415. venv/Lib/site-packages/pkginfo/__init__.py +0 -9
  2416. venv/Lib/site-packages/pkginfo/bdist.py +0 -39
  2417. venv/Lib/site-packages/pkginfo/commandline.py +0 -229
  2418. venv/Lib/site-packages/pkginfo/develop.py +0 -46
  2419. venv/Lib/site-packages/pkginfo/distribution.py +0 -162
  2420. venv/Lib/site-packages/pkginfo/index.py +0 -15
  2421. venv/Lib/site-packages/pkginfo/installed.py +0 -62
  2422. venv/Lib/site-packages/pkginfo/sdist.py +0 -75
  2423. venv/Lib/site-packages/pkginfo/tests/__init__.py +0 -37
  2424. venv/Lib/site-packages/pkginfo/tests/test_bdist.py +0 -60
  2425. venv/Lib/site-packages/pkginfo/tests/test_commandline.py +0 -345
  2426. venv/Lib/site-packages/pkginfo/tests/test_develop.py +0 -27
  2427. venv/Lib/site-packages/pkginfo/tests/test_distribution.py +0 -477
  2428. venv/Lib/site-packages/pkginfo/tests/test_index.py +0 -76
  2429. venv/Lib/site-packages/pkginfo/tests/test_installed.py +0 -139
  2430. venv/Lib/site-packages/pkginfo/tests/test_sdist.py +0 -156
  2431. venv/Lib/site-packages/pkginfo/tests/test_utils.py +0 -176
  2432. venv/Lib/site-packages/pkginfo/tests/test_wheel.py +0 -117
  2433. venv/Lib/site-packages/pkginfo/utils.py +0 -62
  2434. venv/Lib/site-packages/pkginfo/wheel.py +0 -55
  2435. venv/Lib/site-packages/pygments/__init__.py +0 -82
  2436. venv/Lib/site-packages/pygments/__main__.py +0 -17
  2437. venv/Lib/site-packages/pygments/cmdline.py +0 -668
  2438. venv/Lib/site-packages/pygments/console.py +0 -70
  2439. venv/Lib/site-packages/pygments/filter.py +0 -71
  2440. venv/Lib/site-packages/pygments/filters/__init__.py +0 -940
  2441. venv/Lib/site-packages/pygments/formatter.py +0 -94
  2442. venv/Lib/site-packages/pygments/formatters/__init__.py +0 -142
  2443. venv/Lib/site-packages/pygments/formatters/_mapping.py +0 -23
  2444. venv/Lib/site-packages/pygments/formatters/bbcode.py +0 -108
  2445. venv/Lib/site-packages/pygments/formatters/groff.py +0 -170
  2446. venv/Lib/site-packages/pygments/formatters/html.py +0 -991
  2447. venv/Lib/site-packages/pygments/formatters/img.py +0 -645
  2448. venv/Lib/site-packages/pygments/formatters/irc.py +0 -154
  2449. venv/Lib/site-packages/pygments/formatters/latex.py +0 -521
  2450. venv/Lib/site-packages/pygments/formatters/other.py +0 -161
  2451. venv/Lib/site-packages/pygments/formatters/pangomarkup.py +0 -83
  2452. venv/Lib/site-packages/pygments/formatters/rtf.py +0 -146
  2453. venv/Lib/site-packages/pygments/formatters/svg.py +0 -188
  2454. venv/Lib/site-packages/pygments/formatters/terminal.py +0 -127
  2455. venv/Lib/site-packages/pygments/formatters/terminal256.py +0 -338
  2456. venv/Lib/site-packages/pygments/lexer.py +0 -883
  2457. venv/Lib/site-packages/pygments/lexers/__init__.py +0 -334
  2458. venv/Lib/site-packages/pygments/lexers/_ada_builtins.py +0 -103
  2459. venv/Lib/site-packages/pygments/lexers/_asy_builtins.py +0 -1644
  2460. venv/Lib/site-packages/pygments/lexers/_cl_builtins.py +0 -231
  2461. venv/Lib/site-packages/pygments/lexers/_cocoa_builtins.py +0 -75
  2462. venv/Lib/site-packages/pygments/lexers/_csound_builtins.py +0 -1780
  2463. venv/Lib/site-packages/pygments/lexers/_css_builtins.py +0 -558
  2464. venv/Lib/site-packages/pygments/lexers/_julia_builtins.py +0 -411
  2465. venv/Lib/site-packages/pygments/lexers/_lasso_builtins.py +0 -5326
  2466. venv/Lib/site-packages/pygments/lexers/_lilypond_builtins.py +0 -4886
  2467. venv/Lib/site-packages/pygments/lexers/_lua_builtins.py +0 -285
  2468. venv/Lib/site-packages/pygments/lexers/_mapping.py +0 -553
  2469. venv/Lib/site-packages/pygments/lexers/_mql_builtins.py +0 -1171
  2470. venv/Lib/site-packages/pygments/lexers/_mysql_builtins.py +0 -1335
  2471. venv/Lib/site-packages/pygments/lexers/_openedge_builtins.py +0 -2600
  2472. venv/Lib/site-packages/pygments/lexers/_php_builtins.py +0 -3325
  2473. venv/Lib/site-packages/pygments/lexers/_postgres_builtins.py +0 -684
  2474. venv/Lib/site-packages/pygments/lexers/_qlik_builtins.py +0 -666
  2475. venv/Lib/site-packages/pygments/lexers/_scheme_builtins.py +0 -1609
  2476. venv/Lib/site-packages/pygments/lexers/_scilab_builtins.py +0 -3093
  2477. venv/Lib/site-packages/pygments/lexers/_sourcemod_builtins.py +0 -1151
  2478. venv/Lib/site-packages/pygments/lexers/_stan_builtins.py +0 -648
  2479. venv/Lib/site-packages/pygments/lexers/_stata_builtins.py +0 -457
  2480. venv/Lib/site-packages/pygments/lexers/_tsql_builtins.py +0 -1003
  2481. venv/Lib/site-packages/pygments/lexers/_usd_builtins.py +0 -112
  2482. venv/Lib/site-packages/pygments/lexers/_vbscript_builtins.py +0 -279
  2483. venv/Lib/site-packages/pygments/lexers/_vim_builtins.py +0 -1938
  2484. venv/Lib/site-packages/pygments/lexers/actionscript.py +0 -245
  2485. venv/Lib/site-packages/pygments/lexers/ada.py +0 -144
  2486. venv/Lib/site-packages/pygments/lexers/agile.py +0 -23
  2487. venv/Lib/site-packages/pygments/lexers/algebra.py +0 -302
  2488. venv/Lib/site-packages/pygments/lexers/ambient.py +0 -76
  2489. venv/Lib/site-packages/pygments/lexers/amdgpu.py +0 -53
  2490. venv/Lib/site-packages/pygments/lexers/ampl.py +0 -88
  2491. venv/Lib/site-packages/pygments/lexers/apdlexer.py +0 -447
  2492. venv/Lib/site-packages/pygments/lexers/apl.py +0 -104
  2493. venv/Lib/site-packages/pygments/lexers/archetype.py +0 -319
  2494. venv/Lib/site-packages/pygments/lexers/arrow.py +0 -117
  2495. venv/Lib/site-packages/pygments/lexers/arturo.py +0 -250
  2496. venv/Lib/site-packages/pygments/lexers/asc.py +0 -55
  2497. venv/Lib/site-packages/pygments/lexers/asm.py +0 -1037
  2498. venv/Lib/site-packages/pygments/lexers/automation.py +0 -381
  2499. venv/Lib/site-packages/pygments/lexers/bare.py +0 -102
  2500. venv/Lib/site-packages/pygments/lexers/basic.py +0 -665
  2501. venv/Lib/site-packages/pygments/lexers/bdd.py +0 -58
  2502. venv/Lib/site-packages/pygments/lexers/berry.py +0 -99
  2503. venv/Lib/site-packages/pygments/lexers/bibtex.py +0 -159
  2504. venv/Lib/site-packages/pygments/lexers/boa.py +0 -97
  2505. venv/Lib/site-packages/pygments/lexers/business.py +0 -626
  2506. venv/Lib/site-packages/pygments/lexers/c_cpp.py +0 -409
  2507. venv/Lib/site-packages/pygments/lexers/c_like.py +0 -666
  2508. venv/Lib/site-packages/pygments/lexers/capnproto.py +0 -75
  2509. venv/Lib/site-packages/pygments/lexers/cddl.py +0 -173
  2510. venv/Lib/site-packages/pygments/lexers/chapel.py +0 -136
  2511. venv/Lib/site-packages/pygments/lexers/clean.py +0 -179
  2512. venv/Lib/site-packages/pygments/lexers/comal.py +0 -80
  2513. venv/Lib/site-packages/pygments/lexers/compiled.py +0 -34
  2514. venv/Lib/site-packages/pygments/lexers/configs.py +0 -1174
  2515. venv/Lib/site-packages/pygments/lexers/console.py +0 -114
  2516. venv/Lib/site-packages/pygments/lexers/cplint.py +0 -44
  2517. venv/Lib/site-packages/pygments/lexers/crystal.py +0 -365
  2518. venv/Lib/site-packages/pygments/lexers/csound.py +0 -468
  2519. venv/Lib/site-packages/pygments/lexers/css.py +0 -602
  2520. venv/Lib/site-packages/pygments/lexers/d.py +0 -258
  2521. venv/Lib/site-packages/pygments/lexers/dalvik.py +0 -127
  2522. venv/Lib/site-packages/pygments/lexers/data.py +0 -767
  2523. venv/Lib/site-packages/pygments/lexers/devicetree.py +0 -109
  2524. venv/Lib/site-packages/pygments/lexers/diff.py +0 -165
  2525. venv/Lib/site-packages/pygments/lexers/dotnet.py +0 -729
  2526. venv/Lib/site-packages/pygments/lexers/dsls.py +0 -981
  2527. venv/Lib/site-packages/pygments/lexers/dylan.py +0 -287
  2528. venv/Lib/site-packages/pygments/lexers/ecl.py +0 -145
  2529. venv/Lib/site-packages/pygments/lexers/eiffel.py +0 -69
  2530. venv/Lib/site-packages/pygments/lexers/elm.py +0 -124
  2531. venv/Lib/site-packages/pygments/lexers/elpi.py +0 -165
  2532. venv/Lib/site-packages/pygments/lexers/email.py +0 -132
  2533. venv/Lib/site-packages/pygments/lexers/erlang.py +0 -528
  2534. venv/Lib/site-packages/pygments/lexers/esoteric.py +0 -301
  2535. venv/Lib/site-packages/pygments/lexers/ezhil.py +0 -77
  2536. venv/Lib/site-packages/pygments/lexers/factor.py +0 -364
  2537. venv/Lib/site-packages/pygments/lexers/fantom.py +0 -251
  2538. venv/Lib/site-packages/pygments/lexers/felix.py +0 -276
  2539. venv/Lib/site-packages/pygments/lexers/fift.py +0 -67
  2540. venv/Lib/site-packages/pygments/lexers/floscript.py +0 -82
  2541. venv/Lib/site-packages/pygments/lexers/forth.py +0 -179
  2542. venv/Lib/site-packages/pygments/lexers/fortran.py +0 -213
  2543. venv/Lib/site-packages/pygments/lexers/foxpro.py +0 -427
  2544. venv/Lib/site-packages/pygments/lexers/freefem.py +0 -894
  2545. venv/Lib/site-packages/pygments/lexers/func.py +0 -108
  2546. venv/Lib/site-packages/pygments/lexers/functional.py +0 -20
  2547. venv/Lib/site-packages/pygments/lexers/futhark.py +0 -106
  2548. venv/Lib/site-packages/pygments/lexers/gcodelexer.py +0 -35
  2549. venv/Lib/site-packages/pygments/lexers/gdscript.py +0 -188
  2550. venv/Lib/site-packages/pygments/lexers/go.py +0 -98
  2551. venv/Lib/site-packages/pygments/lexers/grammar_notation.py +0 -265
  2552. venv/Lib/site-packages/pygments/lexers/graph.py +0 -105
  2553. venv/Lib/site-packages/pygments/lexers/graphics.py +0 -797
  2554. venv/Lib/site-packages/pygments/lexers/graphviz.py +0 -59
  2555. venv/Lib/site-packages/pygments/lexers/gsql.py +0 -104
  2556. venv/Lib/site-packages/pygments/lexers/haskell.py +0 -871
  2557. venv/Lib/site-packages/pygments/lexers/haxe.py +0 -937
  2558. venv/Lib/site-packages/pygments/lexers/hdl.py +0 -465
  2559. venv/Lib/site-packages/pygments/lexers/hexdump.py +0 -102
  2560. venv/Lib/site-packages/pygments/lexers/html.py +0 -605
  2561. venv/Lib/site-packages/pygments/lexers/idl.py +0 -285
  2562. venv/Lib/site-packages/pygments/lexers/igor.py +0 -420
  2563. venv/Lib/site-packages/pygments/lexers/inferno.py +0 -96
  2564. venv/Lib/site-packages/pygments/lexers/installers.py +0 -327
  2565. venv/Lib/site-packages/pygments/lexers/int_fiction.py +0 -1382
  2566. venv/Lib/site-packages/pygments/lexers/iolang.py +0 -62
  2567. venv/Lib/site-packages/pygments/lexers/j.py +0 -152
  2568. venv/Lib/site-packages/pygments/lexers/javascript.py +0 -1588
  2569. venv/Lib/site-packages/pygments/lexers/jmespath.py +0 -68
  2570. venv/Lib/site-packages/pygments/lexers/jslt.py +0 -95
  2571. venv/Lib/site-packages/pygments/lexers/jsonnet.py +0 -168
  2572. venv/Lib/site-packages/pygments/lexers/julia.py +0 -294
  2573. venv/Lib/site-packages/pygments/lexers/jvm.py +0 -1820
  2574. venv/Lib/site-packages/pygments/lexers/kuin.py +0 -333
  2575. venv/Lib/site-packages/pygments/lexers/lilypond.py +0 -226
  2576. venv/Lib/site-packages/pygments/lexers/lisp.py +0 -2838
  2577. venv/Lib/site-packages/pygments/lexers/macaulay2.py +0 -1739
  2578. venv/Lib/site-packages/pygments/lexers/make.py +0 -209
  2579. venv/Lib/site-packages/pygments/lexers/markup.py +0 -765
  2580. venv/Lib/site-packages/pygments/lexers/math.py +0 -20
  2581. venv/Lib/site-packages/pygments/lexers/matlab.py +0 -3308
  2582. venv/Lib/site-packages/pygments/lexers/maxima.py +0 -85
  2583. venv/Lib/site-packages/pygments/lexers/meson.py +0 -140
  2584. venv/Lib/site-packages/pygments/lexers/mime.py +0 -210
  2585. venv/Lib/site-packages/pygments/lexers/minecraft.py +0 -394
  2586. venv/Lib/site-packages/pygments/lexers/mips.py +0 -128
  2587. venv/Lib/site-packages/pygments/lexers/ml.py +0 -960
  2588. venv/Lib/site-packages/pygments/lexers/modeling.py +0 -369
  2589. venv/Lib/site-packages/pygments/lexers/modula2.py +0 -1580
  2590. venv/Lib/site-packages/pygments/lexers/monte.py +0 -204
  2591. venv/Lib/site-packages/pygments/lexers/mosel.py +0 -447
  2592. venv/Lib/site-packages/pygments/lexers/ncl.py +0 -893
  2593. venv/Lib/site-packages/pygments/lexers/nimrod.py +0 -200
  2594. venv/Lib/site-packages/pygments/lexers/nit.py +0 -64
  2595. venv/Lib/site-packages/pygments/lexers/nix.py +0 -135
  2596. venv/Lib/site-packages/pygments/lexers/oberon.py +0 -120
  2597. venv/Lib/site-packages/pygments/lexers/objective.py +0 -505
  2598. venv/Lib/site-packages/pygments/lexers/ooc.py +0 -85
  2599. venv/Lib/site-packages/pygments/lexers/other.py +0 -40
  2600. venv/Lib/site-packages/pygments/lexers/parasail.py +0 -79
  2601. venv/Lib/site-packages/pygments/lexers/parsers.py +0 -801
  2602. venv/Lib/site-packages/pygments/lexers/pascal.py +0 -641
  2603. venv/Lib/site-packages/pygments/lexers/pawn.py +0 -202
  2604. venv/Lib/site-packages/pygments/lexers/perl.py +0 -733
  2605. venv/Lib/site-packages/pygments/lexers/phix.py +0 -364
  2606. venv/Lib/site-packages/pygments/lexers/php.py +0 -319
  2607. venv/Lib/site-packages/pygments/lexers/pointless.py +0 -71
  2608. venv/Lib/site-packages/pygments/lexers/pony.py +0 -93
  2609. venv/Lib/site-packages/pygments/lexers/praat.py +0 -304
  2610. venv/Lib/site-packages/pygments/lexers/procfile.py +0 -42
  2611. venv/Lib/site-packages/pygments/lexers/prolog.py +0 -304
  2612. venv/Lib/site-packages/pygments/lexers/promql.py +0 -175
  2613. venv/Lib/site-packages/pygments/lexers/python.py +0 -1204
  2614. venv/Lib/site-packages/pygments/lexers/q.py +0 -188
  2615. venv/Lib/site-packages/pygments/lexers/qlik.py +0 -117
  2616. venv/Lib/site-packages/pygments/lexers/qvt.py +0 -151
  2617. venv/Lib/site-packages/pygments/lexers/r.py +0 -190
  2618. venv/Lib/site-packages/pygments/lexers/rdf.py +0 -462
  2619. venv/Lib/site-packages/pygments/lexers/rebol.py +0 -430
  2620. venv/Lib/site-packages/pygments/lexers/resource.py +0 -84
  2621. venv/Lib/site-packages/pygments/lexers/ride.py +0 -139
  2622. venv/Lib/site-packages/pygments/lexers/rita.py +0 -43
  2623. venv/Lib/site-packages/pygments/lexers/rnc.py +0 -67
  2624. venv/Lib/site-packages/pygments/lexers/roboconf.py +0 -81
  2625. venv/Lib/site-packages/pygments/lexers/robotframework.py +0 -552
  2626. venv/Lib/site-packages/pygments/lexers/ruby.py +0 -523
  2627. venv/Lib/site-packages/pygments/lexers/rust.py +0 -223
  2628. venv/Lib/site-packages/pygments/lexers/sas.py +0 -227
  2629. venv/Lib/site-packages/pygments/lexers/savi.py +0 -170
  2630. venv/Lib/site-packages/pygments/lexers/scdoc.py +0 -79
  2631. venv/Lib/site-packages/pygments/lexers/scripting.py +0 -1286
  2632. venv/Lib/site-packages/pygments/lexers/sgf.py +0 -60
  2633. venv/Lib/site-packages/pygments/lexers/shell.py +0 -918
  2634. venv/Lib/site-packages/pygments/lexers/sieve.py +0 -78
  2635. venv/Lib/site-packages/pygments/lexers/slash.py +0 -184
  2636. venv/Lib/site-packages/pygments/lexers/smalltalk.py +0 -196
  2637. venv/Lib/site-packages/pygments/lexers/smithy.py +0 -78
  2638. venv/Lib/site-packages/pygments/lexers/smv.py +0 -78
  2639. venv/Lib/site-packages/pygments/lexers/snobol.py +0 -82
  2640. venv/Lib/site-packages/pygments/lexers/solidity.py +0 -87
  2641. venv/Lib/site-packages/pygments/lexers/sophia.py +0 -103
  2642. venv/Lib/site-packages/pygments/lexers/special.py +0 -116
  2643. venv/Lib/site-packages/pygments/lexers/spice.py +0 -71
  2644. venv/Lib/site-packages/pygments/lexers/sql.py +0 -838
  2645. venv/Lib/site-packages/pygments/lexers/srcinfo.py +0 -62
  2646. venv/Lib/site-packages/pygments/lexers/stata.py +0 -171
  2647. venv/Lib/site-packages/pygments/lexers/supercollider.py +0 -95
  2648. venv/Lib/site-packages/pygments/lexers/tal.py +0 -74
  2649. venv/Lib/site-packages/pygments/lexers/tcl.py +0 -149
  2650. venv/Lib/site-packages/pygments/lexers/teal.py +0 -89
  2651. venv/Lib/site-packages/pygments/lexers/templates.py +0 -2300
  2652. venv/Lib/site-packages/pygments/lexers/teraterm.py +0 -326
  2653. venv/Lib/site-packages/pygments/lexers/testing.py +0 -210
  2654. venv/Lib/site-packages/pygments/lexers/text.py +0 -26
  2655. venv/Lib/site-packages/pygments/lexers/textedit.py +0 -202
  2656. venv/Lib/site-packages/pygments/lexers/textfmts.py +0 -431
  2657. venv/Lib/site-packages/pygments/lexers/theorem.py +0 -484
  2658. venv/Lib/site-packages/pygments/lexers/thingsdb.py +0 -116
  2659. venv/Lib/site-packages/pygments/lexers/tlb.py +0 -57
  2660. venv/Lib/site-packages/pygments/lexers/tnt.py +0 -271
  2661. venv/Lib/site-packages/pygments/lexers/trafficscript.py +0 -51
  2662. venv/Lib/site-packages/pygments/lexers/typoscript.py +0 -217
  2663. venv/Lib/site-packages/pygments/lexers/ul4.py +0 -267
  2664. venv/Lib/site-packages/pygments/lexers/unicon.py +0 -411
  2665. venv/Lib/site-packages/pygments/lexers/urbi.py +0 -145
  2666. venv/Lib/site-packages/pygments/lexers/usd.py +0 -90
  2667. venv/Lib/site-packages/pygments/lexers/varnish.py +0 -189
  2668. venv/Lib/site-packages/pygments/lexers/verification.py +0 -114
  2669. venv/Lib/site-packages/pygments/lexers/web.py +0 -23
  2670. venv/Lib/site-packages/pygments/lexers/webassembly.py +0 -120
  2671. venv/Lib/site-packages/pygments/lexers/webidl.py +0 -299
  2672. venv/Lib/site-packages/pygments/lexers/webmisc.py +0 -1010
  2673. venv/Lib/site-packages/pygments/lexers/whiley.py +0 -116
  2674. venv/Lib/site-packages/pygments/lexers/wowtoc.py +0 -120
  2675. venv/Lib/site-packages/pygments/lexers/wren.py +0 -99
  2676. venv/Lib/site-packages/pygments/lexers/x10.py +0 -67
  2677. venv/Lib/site-packages/pygments/lexers/xorg.py +0 -37
  2678. venv/Lib/site-packages/pygments/lexers/yang.py +0 -104
  2679. venv/Lib/site-packages/pygments/lexers/zig.py +0 -124
  2680. venv/Lib/site-packages/pygments/modeline.py +0 -43
  2681. venv/Lib/site-packages/pygments/plugin.py +0 -88
  2682. venv/Lib/site-packages/pygments/regexopt.py +0 -91
  2683. venv/Lib/site-packages/pygments/scanner.py +0 -104
  2684. venv/Lib/site-packages/pygments/sphinxext.py +0 -217
  2685. venv/Lib/site-packages/pygments/style.py +0 -197
  2686. venv/Lib/site-packages/pygments/styles/__init__.py +0 -97
  2687. venv/Lib/site-packages/pygments/styles/abap.py +0 -28
  2688. venv/Lib/site-packages/pygments/styles/algol.py +0 -61
  2689. venv/Lib/site-packages/pygments/styles/algol_nu.py +0 -61
  2690. venv/Lib/site-packages/pygments/styles/arduino.py +0 -96
  2691. venv/Lib/site-packages/pygments/styles/autumn.py +0 -62
  2692. venv/Lib/site-packages/pygments/styles/borland.py +0 -48
  2693. venv/Lib/site-packages/pygments/styles/bw.py +0 -47
  2694. venv/Lib/site-packages/pygments/styles/colorful.py +0 -78
  2695. venv/Lib/site-packages/pygments/styles/default.py +0 -71
  2696. venv/Lib/site-packages/pygments/styles/dracula.py +0 -102
  2697. venv/Lib/site-packages/pygments/styles/emacs.py +0 -70
  2698. venv/Lib/site-packages/pygments/styles/friendly.py +0 -71
  2699. venv/Lib/site-packages/pygments/styles/friendly_grayscale.py +0 -75
  2700. venv/Lib/site-packages/pygments/styles/fruity.py +0 -41
  2701. venv/Lib/site-packages/pygments/styles/gh_dark.py +0 -107
  2702. venv/Lib/site-packages/pygments/styles/gruvbox.py +0 -109
  2703. venv/Lib/site-packages/pygments/styles/igor.py +0 -27
  2704. venv/Lib/site-packages/pygments/styles/inkpot.py +0 -67
  2705. venv/Lib/site-packages/pygments/styles/lilypond.py +0 -56
  2706. venv/Lib/site-packages/pygments/styles/lovelace.py +0 -94
  2707. venv/Lib/site-packages/pygments/styles/manni.py +0 -74
  2708. venv/Lib/site-packages/pygments/styles/material.py +0 -117
  2709. venv/Lib/site-packages/pygments/styles/monokai.py +0 -106
  2710. venv/Lib/site-packages/pygments/styles/murphy.py +0 -77
  2711. venv/Lib/site-packages/pygments/styles/native.py +0 -65
  2712. venv/Lib/site-packages/pygments/styles/nord.py +0 -150
  2713. venv/Lib/site-packages/pygments/styles/onedark.py +0 -59
  2714. venv/Lib/site-packages/pygments/styles/paraiso_dark.py +0 -119
  2715. venv/Lib/site-packages/pygments/styles/paraiso_light.py +0 -119
  2716. venv/Lib/site-packages/pygments/styles/pastie.py +0 -72
  2717. venv/Lib/site-packages/pygments/styles/perldoc.py +0 -67
  2718. venv/Lib/site-packages/pygments/styles/rainbow_dash.py +0 -88
  2719. venv/Lib/site-packages/pygments/styles/rrt.py +0 -33
  2720. venv/Lib/site-packages/pygments/styles/sas.py +0 -41
  2721. venv/Lib/site-packages/pygments/styles/solarized.py +0 -136
  2722. venv/Lib/site-packages/pygments/styles/staroffice.py +0 -26
  2723. venv/Lib/site-packages/pygments/styles/stata_dark.py +0 -38
  2724. venv/Lib/site-packages/pygments/styles/stata_light.py +0 -37
  2725. venv/Lib/site-packages/pygments/styles/tango.py +0 -139
  2726. venv/Lib/site-packages/pygments/styles/trac.py +0 -60
  2727. venv/Lib/site-packages/pygments/styles/vim.py +0 -61
  2728. venv/Lib/site-packages/pygments/styles/vs.py +0 -36
  2729. venv/Lib/site-packages/pygments/styles/xcode.py +0 -48
  2730. venv/Lib/site-packages/pygments/styles/zenburn.py +0 -78
  2731. venv/Lib/site-packages/pygments/token.py +0 -213
  2732. venv/Lib/site-packages/pygments/unistring.py +0 -153
  2733. venv/Lib/site-packages/pygments/util.py +0 -308
  2734. venv/Lib/site-packages/pyproject_hooks/__init__.py +0 -23
  2735. venv/Lib/site-packages/pyproject_hooks/_compat.py +0 -8
  2736. venv/Lib/site-packages/pyproject_hooks/_impl.py +0 -330
  2737. venv/Lib/site-packages/pyproject_hooks/_in_process/__init__.py +0 -18
  2738. venv/Lib/site-packages/pyproject_hooks/_in_process/_in_process.py +0 -353
  2739. venv/Lib/site-packages/readme_renderer/__about__.py +0 -38
  2740. venv/Lib/site-packages/readme_renderer/__init__.py +0 -13
  2741. venv/Lib/site-packages/readme_renderer/__main__.py +0 -19
  2742. venv/Lib/site-packages/readme_renderer/clean.py +0 -132
  2743. venv/Lib/site-packages/readme_renderer/markdown.py +0 -123
  2744. venv/Lib/site-packages/readme_renderer/rst.py +0 -135
  2745. venv/Lib/site-packages/readme_renderer/txt.py +0 -24
  2746. venv/Lib/site-packages/requests/__init__.py +0 -180
  2747. venv/Lib/site-packages/requests/__version__.py +0 -14
  2748. venv/Lib/site-packages/requests/_internal_utils.py +0 -48
  2749. venv/Lib/site-packages/requests/adapters.py +0 -584
  2750. venv/Lib/site-packages/requests/api.py +0 -157
  2751. venv/Lib/site-packages/requests/auth.py +0 -315
  2752. venv/Lib/site-packages/requests/certs.py +0 -17
  2753. venv/Lib/site-packages/requests/compat.py +0 -79
  2754. venv/Lib/site-packages/requests/cookies.py +0 -561
  2755. venv/Lib/site-packages/requests/exceptions.py +0 -141
  2756. venv/Lib/site-packages/requests/help.py +0 -134
  2757. venv/Lib/site-packages/requests/hooks.py +0 -33
  2758. venv/Lib/site-packages/requests/models.py +0 -1034
  2759. venv/Lib/site-packages/requests/packages.py +0 -28
  2760. venv/Lib/site-packages/requests/sessions.py +0 -831
  2761. venv/Lib/site-packages/requests/status_codes.py +0 -128
  2762. venv/Lib/site-packages/requests/structures.py +0 -99
  2763. venv/Lib/site-packages/requests/utils.py +0 -1086
  2764. venv/Lib/site-packages/requests_toolbelt/__init__.py +0 -34
  2765. venv/Lib/site-packages/requests_toolbelt/_compat.py +0 -311
  2766. venv/Lib/site-packages/requests_toolbelt/adapters/__init__.py +0 -15
  2767. venv/Lib/site-packages/requests_toolbelt/adapters/appengine.py +0 -206
  2768. venv/Lib/site-packages/requests_toolbelt/adapters/fingerprint.py +0 -48
  2769. venv/Lib/site-packages/requests_toolbelt/adapters/host_header_ssl.py +0 -43
  2770. venv/Lib/site-packages/requests_toolbelt/adapters/socket_options.py +0 -129
  2771. venv/Lib/site-packages/requests_toolbelt/adapters/source.py +0 -67
  2772. venv/Lib/site-packages/requests_toolbelt/adapters/ssl.py +0 -66
  2773. venv/Lib/site-packages/requests_toolbelt/adapters/x509.py +0 -196
  2774. venv/Lib/site-packages/requests_toolbelt/auth/__init__.py +0 -0
  2775. venv/Lib/site-packages/requests_toolbelt/auth/_digest_auth_compat.py +0 -29
  2776. venv/Lib/site-packages/requests_toolbelt/auth/guess.py +0 -146
  2777. venv/Lib/site-packages/requests_toolbelt/auth/handler.py +0 -142
  2778. venv/Lib/site-packages/requests_toolbelt/auth/http_proxy_digest.py +0 -103
  2779. venv/Lib/site-packages/requests_toolbelt/cookies/__init__.py +0 -0
  2780. venv/Lib/site-packages/requests_toolbelt/cookies/forgetful.py +0 -7
  2781. venv/Lib/site-packages/requests_toolbelt/downloadutils/__init__.py +0 -0
  2782. venv/Lib/site-packages/requests_toolbelt/downloadutils/stream.py +0 -176
  2783. venv/Lib/site-packages/requests_toolbelt/downloadutils/tee.py +0 -123
  2784. venv/Lib/site-packages/requests_toolbelt/exceptions.py +0 -37
  2785. venv/Lib/site-packages/requests_toolbelt/multipart/__init__.py +0 -31
  2786. venv/Lib/site-packages/requests_toolbelt/multipart/decoder.py +0 -156
  2787. venv/Lib/site-packages/requests_toolbelt/multipart/encoder.py +0 -655
  2788. venv/Lib/site-packages/requests_toolbelt/sessions.py +0 -89
  2789. venv/Lib/site-packages/requests_toolbelt/streaming_iterator.py +0 -116
  2790. venv/Lib/site-packages/requests_toolbelt/threaded/__init__.py +0 -97
  2791. venv/Lib/site-packages/requests_toolbelt/threaded/pool.py +0 -211
  2792. venv/Lib/site-packages/requests_toolbelt/threaded/thread.py +0 -53
  2793. venv/Lib/site-packages/requests_toolbelt/utils/__init__.py +0 -0
  2794. venv/Lib/site-packages/requests_toolbelt/utils/deprecated.py +0 -91
  2795. venv/Lib/site-packages/requests_toolbelt/utils/dump.py +0 -198
  2796. venv/Lib/site-packages/requests_toolbelt/utils/formdata.py +0 -108
  2797. venv/Lib/site-packages/requests_toolbelt/utils/user_agent.py +0 -143
  2798. venv/Lib/site-packages/rfc3986/__init__.py +0 -53
  2799. venv/Lib/site-packages/rfc3986/_mixin.py +0 -373
  2800. venv/Lib/site-packages/rfc3986/abnf_regexp.py +0 -275
  2801. venv/Lib/site-packages/rfc3986/api.py +0 -104
  2802. venv/Lib/site-packages/rfc3986/builder.py +0 -388
  2803. venv/Lib/site-packages/rfc3986/compat.py +0 -59
  2804. venv/Lib/site-packages/rfc3986/exceptions.py +0 -120
  2805. venv/Lib/site-packages/rfc3986/iri.py +0 -161
  2806. venv/Lib/site-packages/rfc3986/misc.py +0 -131
  2807. venv/Lib/site-packages/rfc3986/normalizers.py +0 -171
  2808. venv/Lib/site-packages/rfc3986/parseresult.py +0 -474
  2809. venv/Lib/site-packages/rfc3986/uri.py +0 -160
  2810. venv/Lib/site-packages/rfc3986/validators.py +0 -440
  2811. venv/Lib/site-packages/rich/__init__.py +0 -176
  2812. venv/Lib/site-packages/rich/__main__.py +0 -282
  2813. venv/Lib/site-packages/rich/_cell_widths.py +0 -451
  2814. venv/Lib/site-packages/rich/_emoji_codes.py +0 -3610
  2815. venv/Lib/site-packages/rich/_emoji_replace.py +0 -32
  2816. venv/Lib/site-packages/rich/_export_format.py +0 -78
  2817. venv/Lib/site-packages/rich/_extension.py +0 -10
  2818. venv/Lib/site-packages/rich/_inspect.py +0 -270
  2819. venv/Lib/site-packages/rich/_log_render.py +0 -94
  2820. venv/Lib/site-packages/rich/_loop.py +0 -43
  2821. venv/Lib/site-packages/rich/_palettes.py +0 -309
  2822. venv/Lib/site-packages/rich/_pick.py +0 -17
  2823. venv/Lib/site-packages/rich/_ratio.py +0 -160
  2824. venv/Lib/site-packages/rich/_spinners.py +0 -482
  2825. venv/Lib/site-packages/rich/_stack.py +0 -16
  2826. venv/Lib/site-packages/rich/_timer.py +0 -19
  2827. venv/Lib/site-packages/rich/_win32_console.py +0 -662
  2828. venv/Lib/site-packages/rich/_windows.py +0 -72
  2829. venv/Lib/site-packages/rich/_windows_renderer.py +0 -56
  2830. venv/Lib/site-packages/rich/_wrap.py +0 -56
  2831. venv/Lib/site-packages/rich/abc.py +0 -33
  2832. venv/Lib/site-packages/rich/align.py +0 -311
  2833. venv/Lib/site-packages/rich/ansi.py +0 -237
  2834. venv/Lib/site-packages/rich/bar.py +0 -94
  2835. venv/Lib/site-packages/rich/box.py +0 -517
  2836. venv/Lib/site-packages/rich/cells.py +0 -154
  2837. venv/Lib/site-packages/rich/color.py +0 -615
  2838. venv/Lib/site-packages/rich/color_triplet.py +0 -38
  2839. venv/Lib/site-packages/rich/columns.py +0 -187
  2840. venv/Lib/site-packages/rich/console.py +0 -2572
  2841. venv/Lib/site-packages/rich/constrain.py +0 -37
  2842. venv/Lib/site-packages/rich/containers.py +0 -167
  2843. venv/Lib/site-packages/rich/control.py +0 -225
  2844. venv/Lib/site-packages/rich/default_styles.py +0 -188
  2845. venv/Lib/site-packages/rich/diagnose.py +0 -37
  2846. venv/Lib/site-packages/rich/emoji.py +0 -96
  2847. venv/Lib/site-packages/rich/errors.py +0 -34
  2848. venv/Lib/site-packages/rich/file_proxy.py +0 -54
  2849. venv/Lib/site-packages/rich/filesize.py +0 -89
  2850. venv/Lib/site-packages/rich/highlighter.py +0 -232
  2851. venv/Lib/site-packages/rich/json.py +0 -140
  2852. venv/Lib/site-packages/rich/jupyter.py +0 -101
  2853. venv/Lib/site-packages/rich/layout.py +0 -445
  2854. venv/Lib/site-packages/rich/live.py +0 -373
  2855. venv/Lib/site-packages/rich/live_render.py +0 -113
  2856. venv/Lib/site-packages/rich/logging.py +0 -280
  2857. venv/Lib/site-packages/rich/markdown.py +0 -625
  2858. venv/Lib/site-packages/rich/markup.py +0 -246
  2859. venv/Lib/site-packages/rich/measure.py +0 -151
  2860. venv/Lib/site-packages/rich/padding.py +0 -141
  2861. venv/Lib/site-packages/rich/pager.py +0 -34
  2862. venv/Lib/site-packages/rich/palette.py +0 -100
  2863. venv/Lib/site-packages/rich/panel.py +0 -251
  2864. venv/Lib/site-packages/rich/pretty.py +0 -1010
  2865. venv/Lib/site-packages/rich/progress.py +0 -1703
  2866. venv/Lib/site-packages/rich/progress_bar.py +0 -224
  2867. venv/Lib/site-packages/rich/prompt.py +0 -376
  2868. venv/Lib/site-packages/rich/protocol.py +0 -42
  2869. venv/Lib/site-packages/rich/region.py +0 -10
  2870. venv/Lib/site-packages/rich/repr.py +0 -152
  2871. venv/Lib/site-packages/rich/rule.py +0 -134
  2872. venv/Lib/site-packages/rich/scope.py +0 -86
  2873. venv/Lib/site-packages/rich/screen.py +0 -54
  2874. venv/Lib/site-packages/rich/segment.py +0 -739
  2875. venv/Lib/site-packages/rich/spinner.py +0 -136
  2876. venv/Lib/site-packages/rich/status.py +0 -132
  2877. venv/Lib/site-packages/rich/style.py +0 -771
  2878. venv/Lib/site-packages/rich/styled.py +0 -42
  2879. venv/Lib/site-packages/rich/syntax.py +0 -934
  2880. venv/Lib/site-packages/rich/table.py +0 -996
  2881. venv/Lib/site-packages/rich/terminal_theme.py +0 -153
  2882. venv/Lib/site-packages/rich/text.py +0 -1286
  2883. venv/Lib/site-packages/rich/theme.py +0 -112
  2884. venv/Lib/site-packages/rich/themes.py +0 -5
  2885. venv/Lib/site-packages/rich/traceback.py +0 -679
  2886. venv/Lib/site-packages/rich/tree.py +0 -251
  2887. venv/Lib/site-packages/setuptools/__init__.py +0 -268
  2888. venv/Lib/site-packages/setuptools/_deprecation_warning.py +0 -7
  2889. venv/Lib/site-packages/setuptools/_distutils/__init__.py +0 -14
  2890. venv/Lib/site-packages/setuptools/_distutils/_collections.py +0 -194
  2891. venv/Lib/site-packages/setuptools/_distutils/_functools.py +0 -20
  2892. venv/Lib/site-packages/setuptools/_distutils/_log.py +0 -4
  2893. venv/Lib/site-packages/setuptools/_distutils/_macos_compat.py +0 -12
  2894. venv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +0 -568
  2895. venv/Lib/site-packages/setuptools/_distutils/archive_util.py +0 -280
  2896. venv/Lib/site-packages/setuptools/_distutils/bcppcompiler.py +0 -401
  2897. venv/Lib/site-packages/setuptools/_distutils/ccompiler.py +0 -1254
  2898. venv/Lib/site-packages/setuptools/_distutils/cmd.py +0 -435
  2899. venv/Lib/site-packages/setuptools/_distutils/command/__init__.py +0 -25
  2900. venv/Lib/site-packages/setuptools/_distutils/command/_framework_compat.py +0 -55
  2901. venv/Lib/site-packages/setuptools/_distutils/command/bdist.py +0 -156
  2902. venv/Lib/site-packages/setuptools/_distutils/command/bdist_dumb.py +0 -143
  2903. venv/Lib/site-packages/setuptools/_distutils/command/bdist_rpm.py +0 -614
  2904. venv/Lib/site-packages/setuptools/_distutils/command/build.py +0 -152
  2905. venv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +0 -207
  2906. venv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +0 -788
  2907. venv/Lib/site-packages/setuptools/_distutils/command/build_py.py +0 -406
  2908. venv/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +0 -172
  2909. venv/Lib/site-packages/setuptools/_distutils/command/check.py +0 -151
  2910. venv/Lib/site-packages/setuptools/_distutils/command/clean.py +0 -75
  2911. venv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -376
  2912. venv/Lib/site-packages/setuptools/_distutils/command/install.py +0 -813
  2913. venv/Lib/site-packages/setuptools/_distutils/command/install_data.py +0 -83
  2914. venv/Lib/site-packages/setuptools/_distutils/command/install_egg_info.py +0 -92
  2915. venv/Lib/site-packages/setuptools/_distutils/command/install_headers.py +0 -44
  2916. venv/Lib/site-packages/setuptools/_distutils/command/install_lib.py +0 -237
  2917. venv/Lib/site-packages/setuptools/_distutils/command/install_scripts.py +0 -60
  2918. venv/Lib/site-packages/setuptools/_distutils/command/py37compat.py +0 -31
  2919. venv/Lib/site-packages/setuptools/_distutils/command/register.py +0 -320
  2920. venv/Lib/site-packages/setuptools/_distutils/command/sdist.py +0 -530
  2921. venv/Lib/site-packages/setuptools/_distutils/command/upload.py +0 -206
  2922. venv/Lib/site-packages/setuptools/_distutils/config.py +0 -139
  2923. venv/Lib/site-packages/setuptools/_distutils/core.py +0 -291
  2924. venv/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py +0 -356
  2925. venv/Lib/site-packages/setuptools/_distutils/debug.py +0 -5
  2926. venv/Lib/site-packages/setuptools/_distutils/dep_util.py +0 -96
  2927. venv/Lib/site-packages/setuptools/_distutils/dir_util.py +0 -243
  2928. venv/Lib/site-packages/setuptools/_distutils/dist.py +0 -1287
  2929. venv/Lib/site-packages/setuptools/_distutils/errors.py +0 -127
  2930. venv/Lib/site-packages/setuptools/_distutils/extension.py +0 -248
  2931. venv/Lib/site-packages/setuptools/_distutils/fancy_getopt.py +0 -470
  2932. venv/Lib/site-packages/setuptools/_distutils/file_util.py +0 -248
  2933. venv/Lib/site-packages/setuptools/_distutils/filelist.py +0 -371
  2934. venv/Lib/site-packages/setuptools/_distutils/log.py +0 -57
  2935. venv/Lib/site-packages/setuptools/_distutils/msvc9compiler.py +0 -829
  2936. venv/Lib/site-packages/setuptools/_distutils/msvccompiler.py +0 -692
  2937. venv/Lib/site-packages/setuptools/_distutils/py38compat.py +0 -8
  2938. venv/Lib/site-packages/setuptools/_distutils/py39compat.py +0 -22
  2939. venv/Lib/site-packages/setuptools/_distutils/spawn.py +0 -109
  2940. venv/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -559
  2941. venv/Lib/site-packages/setuptools/_distutils/text_file.py +0 -286
  2942. venv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +0 -400
  2943. venv/Lib/site-packages/setuptools/_distutils/util.py +0 -513
  2944. venv/Lib/site-packages/setuptools/_distutils/version.py +0 -357
  2945. venv/Lib/site-packages/setuptools/_distutils/versionpredicate.py +0 -175
  2946. venv/Lib/site-packages/setuptools/_entry_points.py +0 -94
  2947. venv/Lib/site-packages/setuptools/_imp.py +0 -82
  2948. venv/Lib/site-packages/setuptools/_importlib.py +0 -47
  2949. venv/Lib/site-packages/setuptools/_itertools.py +0 -23
  2950. venv/Lib/site-packages/setuptools/_normalization.py +0 -117
  2951. venv/Lib/site-packages/setuptools/_path.py +0 -37
  2952. venv/Lib/site-packages/setuptools/_reqs.py +0 -33
  2953. venv/Lib/site-packages/setuptools/_vendor/__init__.py +0 -0
  2954. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/__init__.py +0 -904
  2955. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py +0 -90
  2956. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_collections.py +0 -30
  2957. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_compat.py +0 -72
  2958. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_functools.py +0 -104
  2959. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py +0 -73
  2960. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_meta.py +0 -49
  2961. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_py39compat.py +0 -35
  2962. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_text.py +0 -99
  2963. venv/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
  2964. venv/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -170
  2965. venv/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -207
  2966. venv/Lib/site-packages/setuptools/_vendor/importlib_resources/_compat.py +0 -108
  2967. venv/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -35
  2968. venv/Lib/site-packages/setuptools/_vendor/importlib_resources/_legacy.py +0 -120
  2969. venv/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -170
  2970. venv/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -120
  2971. venv/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
  2972. venv/Lib/site-packages/setuptools/_vendor/jaraco/__init__.py +0 -0
  2973. venv/Lib/site-packages/setuptools/_vendor/jaraco/context.py +0 -288
  2974. venv/Lib/site-packages/setuptools/_vendor/jaraco/functools.py +0 -525
  2975. venv/Lib/site-packages/setuptools/_vendor/jaraco/text/__init__.py +0 -599
  2976. venv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.py +0 -4
  2977. venv/Lib/site-packages/setuptools/_vendor/more_itertools/more.py +0 -3824
  2978. venv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.py +0 -620
  2979. venv/Lib/site-packages/setuptools/_vendor/ordered_set.py +0 -488
  2980. venv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +0 -15
  2981. venv/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +0 -108
  2982. venv/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +0 -238
  2983. venv/Lib/site-packages/setuptools/_vendor/packaging/_musllinux.py +0 -80
  2984. venv/Lib/site-packages/setuptools/_vendor/packaging/_parser.py +0 -328
  2985. venv/Lib/site-packages/setuptools/_vendor/packaging/_structures.py +0 -61
  2986. venv/Lib/site-packages/setuptools/_vendor/packaging/_tokenizer.py +0 -188
  2987. venv/Lib/site-packages/setuptools/_vendor/packaging/markers.py +0 -245
  2988. venv/Lib/site-packages/setuptools/_vendor/packaging/requirements.py +0 -95
  2989. venv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +0 -1005
  2990. venv/Lib/site-packages/setuptools/_vendor/packaging/tags.py +0 -546
  2991. venv/Lib/site-packages/setuptools/_vendor/packaging/utils.py +0 -141
  2992. venv/Lib/site-packages/setuptools/_vendor/packaging/version.py +0 -563
  2993. venv/Lib/site-packages/setuptools/_vendor/tomli/__init__.py +0 -11
  2994. venv/Lib/site-packages/setuptools/_vendor/tomli/_parser.py +0 -691
  2995. venv/Lib/site-packages/setuptools/_vendor/tomli/_re.py +0 -107
  2996. venv/Lib/site-packages/setuptools/_vendor/tomli/_types.py +0 -10
  2997. venv/Lib/site-packages/setuptools/_vendor/typing_extensions.py +0 -2296
  2998. venv/Lib/site-packages/setuptools/_vendor/zipp.py +0 -329
  2999. venv/Lib/site-packages/setuptools/archive_util.py +0 -213
  3000. venv/Lib/site-packages/setuptools/build_meta.py +0 -512
  3001. venv/Lib/site-packages/setuptools/command/__init__.py +0 -12
  3002. venv/Lib/site-packages/setuptools/command/alias.py +0 -78
  3003. venv/Lib/site-packages/setuptools/command/bdist_egg.py +0 -456
  3004. venv/Lib/site-packages/setuptools/command/bdist_rpm.py +0 -40
  3005. venv/Lib/site-packages/setuptools/command/build.py +0 -146
  3006. venv/Lib/site-packages/setuptools/command/build_clib.py +0 -101
  3007. venv/Lib/site-packages/setuptools/command/build_ext.py +0 -383
  3008. venv/Lib/site-packages/setuptools/command/build_py.py +0 -368
  3009. venv/Lib/site-packages/setuptools/command/develop.py +0 -194
  3010. venv/Lib/site-packages/setuptools/command/dist_info.py +0 -118
  3011. venv/Lib/site-packages/setuptools/command/easy_install.py +0 -2312
  3012. venv/Lib/site-packages/setuptools/command/editable_wheel.py +0 -856
  3013. venv/Lib/site-packages/setuptools/command/egg_info.py +0 -791
  3014. venv/Lib/site-packages/setuptools/command/install.py +0 -139
  3015. venv/Lib/site-packages/setuptools/command/install_egg_info.py +0 -60
  3016. venv/Lib/site-packages/setuptools/command/install_lib.py +0 -122
  3017. venv/Lib/site-packages/setuptools/command/install_scripts.py +0 -73
  3018. venv/Lib/site-packages/setuptools/command/py36compat.py +0 -134
  3019. venv/Lib/site-packages/setuptools/command/register.py +0 -18
  3020. venv/Lib/site-packages/setuptools/command/rotate.py +0 -64
  3021. venv/Lib/site-packages/setuptools/command/saveopts.py +0 -22
  3022. venv/Lib/site-packages/setuptools/command/sdist.py +0 -210
  3023. venv/Lib/site-packages/setuptools/command/setopt.py +0 -149
  3024. venv/Lib/site-packages/setuptools/command/test.py +0 -251
  3025. venv/Lib/site-packages/setuptools/command/upload.py +0 -17
  3026. venv/Lib/site-packages/setuptools/command/upload_docs.py +0 -212
  3027. venv/Lib/site-packages/setuptools/config/__init__.py +0 -35
  3028. venv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +0 -384
  3029. venv/Lib/site-packages/setuptools/config/_validate_pyproject/__init__.py +0 -34
  3030. venv/Lib/site-packages/setuptools/config/_validate_pyproject/error_reporting.py +0 -318
  3031. venv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +0 -36
  3032. venv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py +0 -51
  3033. venv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +0 -1053
  3034. venv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +0 -275
  3035. venv/Lib/site-packages/setuptools/config/expand.py +0 -462
  3036. venv/Lib/site-packages/setuptools/config/pyprojecttoml.py +0 -498
  3037. venv/Lib/site-packages/setuptools/config/setupcfg.py +0 -768
  3038. venv/Lib/site-packages/setuptools/dep_util.py +0 -25
  3039. venv/Lib/site-packages/setuptools/depends.py +0 -176
  3040. venv/Lib/site-packages/setuptools/discovery.py +0 -611
  3041. venv/Lib/site-packages/setuptools/dist.py +0 -1226
  3042. venv/Lib/site-packages/setuptools/errors.py +0 -58
  3043. venv/Lib/site-packages/setuptools/extension.py +0 -148
  3044. venv/Lib/site-packages/setuptools/extern/__init__.py +0 -83
  3045. venv/Lib/site-packages/setuptools/glob.py +0 -167
  3046. venv/Lib/site-packages/setuptools/installer.py +0 -142
  3047. venv/Lib/site-packages/setuptools/launch.py +0 -36
  3048. venv/Lib/site-packages/setuptools/logging.py +0 -37
  3049. venv/Lib/site-packages/setuptools/monkey.py +0 -159
  3050. venv/Lib/site-packages/setuptools/msvc.py +0 -1686
  3051. venv/Lib/site-packages/setuptools/namespaces.py +0 -107
  3052. venv/Lib/site-packages/setuptools/package_index.py +0 -1162
  3053. venv/Lib/site-packages/setuptools/py34compat.py +0 -13
  3054. venv/Lib/site-packages/setuptools/sandbox.py +0 -530
  3055. venv/Lib/site-packages/setuptools/unicode_utils.py +0 -42
  3056. venv/Lib/site-packages/setuptools/version.py +0 -6
  3057. venv/Lib/site-packages/setuptools/wheel.py +0 -231
  3058. venv/Lib/site-packages/setuptools/windows_support.py +0 -29
  3059. venv/Lib/site-packages/shiboken6/__init__.py +0 -27
  3060. venv/Lib/site-packages/shiboken6/_config.py +0 -11
  3061. venv/Lib/site-packages/shiboken6/_git_shiboken_module_version.py +0 -19
  3062. venv/Lib/site-packages/six.py +0 -998
  3063. venv/Lib/site-packages/tomli/__init__.py +0 -11
  3064. venv/Lib/site-packages/tomli/_parser.py +0 -691
  3065. venv/Lib/site-packages/tomli/_re.py +0 -107
  3066. venv/Lib/site-packages/tomli/_types.py +0 -10
  3067. venv/Lib/site-packages/twine/__init__.py +0 -43
  3068. venv/Lib/site-packages/twine/__main__.py +0 -51
  3069. venv/Lib/site-packages/twine/auth.py +0 -101
  3070. venv/Lib/site-packages/twine/cli.py +0 -123
  3071. venv/Lib/site-packages/twine/commands/__init__.py +0 -53
  3072. venv/Lib/site-packages/twine/commands/check.py +0 -183
  3073. venv/Lib/site-packages/twine/commands/register.py +0 -86
  3074. venv/Lib/site-packages/twine/commands/upload.py +0 -198
  3075. venv/Lib/site-packages/twine/exceptions.py +0 -124
  3076. venv/Lib/site-packages/twine/package.py +0 -316
  3077. venv/Lib/site-packages/twine/repository.py +0 -250
  3078. venv/Lib/site-packages/twine/settings.py +0 -335
  3079. venv/Lib/site-packages/twine/utils.py +0 -324
  3080. venv/Lib/site-packages/twine/wheel.py +0 -91
  3081. venv/Lib/site-packages/twine/wininst.py +0 -61
  3082. venv/Lib/site-packages/typing_extensions.py +0 -2209
  3083. venv/Lib/site-packages/urllib3/__init__.py +0 -102
  3084. venv/Lib/site-packages/urllib3/_collections.py +0 -337
  3085. venv/Lib/site-packages/urllib3/_version.py +0 -2
  3086. venv/Lib/site-packages/urllib3/connection.py +0 -567
  3087. venv/Lib/site-packages/urllib3/connectionpool.py +0 -1110
  3088. venv/Lib/site-packages/urllib3/contrib/__init__.py +0 -0
  3089. venv/Lib/site-packages/urllib3/contrib/_appengine_environ.py +0 -36
  3090. venv/Lib/site-packages/urllib3/contrib/_securetransport/__init__.py +0 -0
  3091. venv/Lib/site-packages/urllib3/contrib/_securetransport/bindings.py +0 -519
  3092. venv/Lib/site-packages/urllib3/contrib/_securetransport/low_level.py +0 -397
  3093. venv/Lib/site-packages/urllib3/contrib/appengine.py +0 -314
  3094. venv/Lib/site-packages/urllib3/contrib/ntlmpool.py +0 -130
  3095. venv/Lib/site-packages/urllib3/contrib/pyopenssl.py +0 -518
  3096. venv/Lib/site-packages/urllib3/contrib/securetransport.py +0 -921
  3097. venv/Lib/site-packages/urllib3/contrib/socks.py +0 -216
  3098. venv/Lib/site-packages/urllib3/exceptions.py +0 -323
  3099. venv/Lib/site-packages/urllib3/fields.py +0 -274
  3100. venv/Lib/site-packages/urllib3/filepost.py +0 -98
  3101. venv/Lib/site-packages/urllib3/packages/__init__.py +0 -0
  3102. venv/Lib/site-packages/urllib3/packages/backports/__init__.py +0 -0
  3103. venv/Lib/site-packages/urllib3/packages/backports/makefile.py +0 -51
  3104. venv/Lib/site-packages/urllib3/packages/six.py +0 -1076
  3105. venv/Lib/site-packages/urllib3/poolmanager.py +0 -537
  3106. venv/Lib/site-packages/urllib3/request.py +0 -170
  3107. venv/Lib/site-packages/urllib3/response.py +0 -885
  3108. venv/Lib/site-packages/urllib3/util/__init__.py +0 -49
  3109. venv/Lib/site-packages/urllib3/util/connection.py +0 -149
  3110. venv/Lib/site-packages/urllib3/util/proxy.py +0 -57
  3111. venv/Lib/site-packages/urllib3/util/queue.py +0 -22
  3112. venv/Lib/site-packages/urllib3/util/request.py +0 -146
  3113. venv/Lib/site-packages/urllib3/util/response.py +0 -107
  3114. venv/Lib/site-packages/urllib3/util/retry.py +0 -620
  3115. venv/Lib/site-packages/urllib3/util/ssl_.py +0 -495
  3116. venv/Lib/site-packages/urllib3/util/ssl_match_hostname.py +0 -159
  3117. venv/Lib/site-packages/urllib3/util/ssltransport.py +0 -221
  3118. venv/Lib/site-packages/urllib3/util/timeout.py +0 -268
  3119. venv/Lib/site-packages/urllib3/util/url.py +0 -435
  3120. venv/Lib/site-packages/urllib3/util/wait.py +0 -152
  3121. venv/Lib/site-packages/webencodings/__init__.py +0 -342
  3122. venv/Lib/site-packages/webencodings/labels.py +0 -231
  3123. venv/Lib/site-packages/webencodings/mklabels.py +0 -59
  3124. venv/Lib/site-packages/webencodings/tests.py +0 -153
  3125. venv/Lib/site-packages/webencodings/x_user_defined.py +0 -325
  3126. venv/Lib/site-packages/wheel/__init__.py +0 -3
  3127. venv/Lib/site-packages/wheel/__main__.py +0 -23
  3128. venv/Lib/site-packages/wheel/_setuptools_logging.py +0 -26
  3129. venv/Lib/site-packages/wheel/bdist_wheel.py +0 -550
  3130. venv/Lib/site-packages/wheel/cli/__init__.py +0 -96
  3131. venv/Lib/site-packages/wheel/cli/convert.py +0 -273
  3132. venv/Lib/site-packages/wheel/cli/pack.py +0 -90
  3133. venv/Lib/site-packages/wheel/cli/unpack.py +0 -23
  3134. venv/Lib/site-packages/wheel/macosx_libfile.py +0 -471
  3135. venv/Lib/site-packages/wheel/metadata.py +0 -109
  3136. venv/Lib/site-packages/wheel/util.py +0 -26
  3137. venv/Lib/site-packages/wheel/vendored/__init__.py +0 -0
  3138. venv/Lib/site-packages/wheel/vendored/packaging/__init__.py +0 -0
  3139. venv/Lib/site-packages/wheel/vendored/packaging/_manylinux.py +0 -303
  3140. venv/Lib/site-packages/wheel/vendored/packaging/_musllinux.py +0 -138
  3141. venv/Lib/site-packages/wheel/vendored/packaging/tags.py +0 -478
  3142. venv/Lib/site-packages/wheel/wheelfile.py +0 -191
  3143. venv/Lib/site-packages/win32ctypes/__init__.py +0 -8
  3144. venv/Lib/site-packages/win32ctypes/core/__init__.py +0 -67
  3145. venv/Lib/site-packages/win32ctypes/core/_winerrors.py +0 -9
  3146. venv/Lib/site-packages/win32ctypes/core/cffi/__init__.py +0 -0
  3147. venv/Lib/site-packages/win32ctypes/core/cffi/_authentication.py +0 -162
  3148. venv/Lib/site-packages/win32ctypes/core/cffi/_common.py +0 -27
  3149. venv/Lib/site-packages/win32ctypes/core/cffi/_dll.py +0 -33
  3150. venv/Lib/site-packages/win32ctypes/core/cffi/_nl_support.py +0 -20
  3151. venv/Lib/site-packages/win32ctypes/core/cffi/_resource.py +0 -134
  3152. venv/Lib/site-packages/win32ctypes/core/cffi/_system_information.py +0 -34
  3153. venv/Lib/site-packages/win32ctypes/core/cffi/_time.py +0 -20
  3154. venv/Lib/site-packages/win32ctypes/core/cffi/_util.py +0 -108
  3155. venv/Lib/site-packages/win32ctypes/core/compat.py +0 -31
  3156. venv/Lib/site-packages/win32ctypes/core/ctypes/__init__.py +0 -0
  3157. venv/Lib/site-packages/win32ctypes/core/ctypes/_authentication.py +0 -116
  3158. venv/Lib/site-packages/win32ctypes/core/ctypes/_common.py +0 -62
  3159. venv/Lib/site-packages/win32ctypes/core/ctypes/_dll.py +0 -23
  3160. venv/Lib/site-packages/win32ctypes/core/ctypes/_nl_support.py +0 -14
  3161. venv/Lib/site-packages/win32ctypes/core/ctypes/_resource.py +0 -148
  3162. venv/Lib/site-packages/win32ctypes/core/ctypes/_system_information.py +0 -38
  3163. venv/Lib/site-packages/win32ctypes/core/ctypes/_time.py +0 -17
  3164. venv/Lib/site-packages/win32ctypes/core/ctypes/_util.py +0 -81
  3165. venv/Lib/site-packages/win32ctypes/pywin32/__init__.py +0 -14
  3166. venv/Lib/site-packages/win32ctypes/pywin32/pywintypes.py +0 -37
  3167. venv/Lib/site-packages/win32ctypes/pywin32/win32api.py +0 -297
  3168. venv/Lib/site-packages/win32ctypes/pywin32/win32cred.py +0 -94
  3169. venv/Lib/site-packages/win32ctypes/pywintypes.py +0 -13
  3170. venv/Lib/site-packages/win32ctypes/tests/__init__.py +0 -20
  3171. venv/Lib/site-packages/win32ctypes/tests/compat.py +0 -84
  3172. venv/Lib/site-packages/win32ctypes/tests/test_win32api.py +0 -284
  3173. venv/Lib/site-packages/win32ctypes/tests/test_win32cred.py +0 -159
  3174. venv/Lib/site-packages/win32ctypes/version.py +0 -1
  3175. venv/Lib/site-packages/win32ctypes/win32api.py +0 -13
  3176. venv/Lib/site-packages/win32ctypes/win32cred.py +0 -13
  3177. venv/Lib/site-packages/zipp/__init__.py +0 -386
  3178. venv/Lib/site-packages/zipp/py310compat.py +0 -12
  3179. venv/Scripts/activate_this.py +0 -32
  3180. venv/Scripts/rst2html.py +0 -23
  3181. venv/Scripts/rst2html4.py +0 -26
  3182. venv/Scripts/rst2html5.py +0 -34
  3183. venv/Scripts/rst2latex.py +0 -27
  3184. venv/Scripts/rst2man.py +0 -28
  3185. venv/Scripts/rst2odt.py +0 -27
  3186. venv/Scripts/rst2odt_prepstyles.py +0 -65
  3187. venv/Scripts/rst2pseudoxml.py +0 -23
  3188. venv/Scripts/rst2s5.py +0 -24
  3189. venv/Scripts/rst2xetex.py +0 -28
  3190. venv/Scripts/rst2xml.py +0 -23
  3191. venv/Scripts/rstpep2html.py +0 -25
  3192. {venv/Lib/site-packages/PySide6/scripts → je_editor/pyside_ui/menu}/__init__.py +0 -0
  3193. {venv/Lib/site-packages/bleach/_vendor → je_editor/pyside_ui/ui_setting}/__init__.py +0 -0
  3194. {je_editor-0.0.57.dist-info → je_editor-0.0.59.dist-info}/WHEEL +0 -0
@@ -1,4347 +0,0 @@
1
- import warnings
2
-
3
- from collections import Counter, defaultdict, deque, abc
4
- from collections.abc import Sequence
5
- from functools import partial, reduce, wraps
6
- from heapq import heapify, heapreplace, heappop
7
- from itertools import (
8
- chain,
9
- compress,
10
- count,
11
- cycle,
12
- dropwhile,
13
- groupby,
14
- islice,
15
- repeat,
16
- starmap,
17
- takewhile,
18
- tee,
19
- zip_longest,
20
- )
21
- from math import exp, factorial, floor, log
22
- from queue import Empty, Queue
23
- from random import random, randrange, uniform
24
- from operator import itemgetter, mul, sub, gt, lt, ge, le
25
- from sys import hexversion, maxsize
26
- from time import monotonic
27
-
28
- from .recipes import (
29
- _marker,
30
- _zip_equal,
31
- UnequalIterablesError,
32
- consume,
33
- flatten,
34
- pairwise,
35
- powerset,
36
- take,
37
- unique_everseen,
38
- all_equal,
39
- )
40
-
41
- __all__ = [
42
- 'AbortThread',
43
- 'SequenceView',
44
- 'UnequalIterablesError',
45
- 'adjacent',
46
- 'all_unique',
47
- 'always_iterable',
48
- 'always_reversible',
49
- 'bucket',
50
- 'callback_iter',
51
- 'chunked',
52
- 'chunked_even',
53
- 'circular_shifts',
54
- 'collapse',
55
- 'combination_index',
56
- 'consecutive_groups',
57
- 'constrained_batches',
58
- 'consumer',
59
- 'count_cycle',
60
- 'countable',
61
- 'difference',
62
- 'distinct_combinations',
63
- 'distinct_permutations',
64
- 'distribute',
65
- 'divide',
66
- 'duplicates_everseen',
67
- 'duplicates_justseen',
68
- 'exactly_n',
69
- 'filter_except',
70
- 'first',
71
- 'groupby_transform',
72
- 'ichunked',
73
- 'iequals',
74
- 'ilen',
75
- 'interleave',
76
- 'interleave_evenly',
77
- 'interleave_longest',
78
- 'intersperse',
79
- 'is_sorted',
80
- 'islice_extended',
81
- 'iterate',
82
- 'last',
83
- 'locate',
84
- 'longest_common_prefix',
85
- 'lstrip',
86
- 'make_decorator',
87
- 'map_except',
88
- 'map_if',
89
- 'map_reduce',
90
- 'mark_ends',
91
- 'minmax',
92
- 'nth_or_last',
93
- 'nth_permutation',
94
- 'nth_product',
95
- 'numeric_range',
96
- 'one',
97
- 'only',
98
- 'padded',
99
- 'partitions',
100
- 'peekable',
101
- 'permutation_index',
102
- 'product_index',
103
- 'raise_',
104
- 'repeat_each',
105
- 'repeat_last',
106
- 'replace',
107
- 'rlocate',
108
- 'rstrip',
109
- 'run_length',
110
- 'sample',
111
- 'seekable',
112
- 'set_partitions',
113
- 'side_effect',
114
- 'sliced',
115
- 'sort_together',
116
- 'split_after',
117
- 'split_at',
118
- 'split_before',
119
- 'split_into',
120
- 'split_when',
121
- 'spy',
122
- 'stagger',
123
- 'strip',
124
- 'strictly_n',
125
- 'substrings',
126
- 'substrings_indexes',
127
- 'time_limited',
128
- 'unique_in_window',
129
- 'unique_to_each',
130
- 'unzip',
131
- 'value_chain',
132
- 'windowed',
133
- 'windowed_complete',
134
- 'with_iter',
135
- 'zip_broadcast',
136
- 'zip_equal',
137
- 'zip_offset',
138
- ]
139
-
140
-
141
- def chunked(iterable, n, strict=False):
142
- """Break *iterable* into lists of length *n*:
143
-
144
- >>> list(chunked([1, 2, 3, 4, 5, 6], 3))
145
- [[1, 2, 3], [4, 5, 6]]
146
-
147
- By the default, the last yielded list will have fewer than *n* elements
148
- if the length of *iterable* is not divisible by *n*:
149
-
150
- >>> list(chunked([1, 2, 3, 4, 5, 6, 7, 8], 3))
151
- [[1, 2, 3], [4, 5, 6], [7, 8]]
152
-
153
- To use a fill-in value instead, see the :func:`grouper` recipe.
154
-
155
- If the length of *iterable* is not divisible by *n* and *strict* is
156
- ``True``, then ``ValueError`` will be raised before the last
157
- list is yielded.
158
-
159
- """
160
- iterator = iter(partial(take, n, iter(iterable)), [])
161
- if strict:
162
- if n is None:
163
- raise ValueError('n must not be None when using strict mode.')
164
-
165
- def ret():
166
- for chunk in iterator:
167
- if len(chunk) != n:
168
- raise ValueError('iterable is not divisible by n.')
169
- yield chunk
170
-
171
- return iter(ret())
172
- else:
173
- return iterator
174
-
175
-
176
- def first(iterable, default=_marker):
177
- """Return the first item of *iterable*, or *default* if *iterable* is
178
- empty.
179
-
180
- >>> first([0, 1, 2, 3])
181
- 0
182
- >>> first([], 'some default')
183
- 'some default'
184
-
185
- If *default* is not provided and there are no items in the iterable,
186
- raise ``ValueError``.
187
-
188
- :func:`first` is useful when you have a generator of expensive-to-retrieve
189
- values and want any arbitrary one. It is marginally shorter than
190
- ``next(iter(iterable), default)``.
191
-
192
- """
193
- try:
194
- return next(iter(iterable))
195
- except StopIteration as e:
196
- if default is _marker:
197
- raise ValueError(
198
- 'first() was called on an empty iterable, and no '
199
- 'default value was provided.'
200
- ) from e
201
- return default
202
-
203
-
204
- def last(iterable, default=_marker):
205
- """Return the last item of *iterable*, or *default* if *iterable* is
206
- empty.
207
-
208
- >>> last([0, 1, 2, 3])
209
- 3
210
- >>> last([], 'some default')
211
- 'some default'
212
-
213
- If *default* is not provided and there are no items in the iterable,
214
- raise ``ValueError``.
215
- """
216
- try:
217
- if isinstance(iterable, Sequence):
218
- return iterable[-1]
219
- # Work around https://bugs.python.org/issue38525
220
- elif hasattr(iterable, '__reversed__') and (hexversion != 0x030800F0):
221
- return next(reversed(iterable))
222
- else:
223
- return deque(iterable, maxlen=1)[-1]
224
- except (IndexError, TypeError, StopIteration):
225
- if default is _marker:
226
- raise ValueError(
227
- 'last() was called on an empty iterable, and no default was '
228
- 'provided.'
229
- )
230
- return default
231
-
232
-
233
- def nth_or_last(iterable, n, default=_marker):
234
- """Return the nth or the last item of *iterable*,
235
- or *default* if *iterable* is empty.
236
-
237
- >>> nth_or_last([0, 1, 2, 3], 2)
238
- 2
239
- >>> nth_or_last([0, 1], 2)
240
- 1
241
- >>> nth_or_last([], 0, 'some default')
242
- 'some default'
243
-
244
- If *default* is not provided and there are no items in the iterable,
245
- raise ``ValueError``.
246
- """
247
- return last(islice(iterable, n + 1), default=default)
248
-
249
-
250
- class peekable:
251
- """Wrap an iterator to allow lookahead and prepending elements.
252
-
253
- Call :meth:`peek` on the result to get the value that will be returned
254
- by :func:`next`. This won't advance the iterator:
255
-
256
- >>> p = peekable(['a', 'b'])
257
- >>> p.peek()
258
- 'a'
259
- >>> next(p)
260
- 'a'
261
-
262
- Pass :meth:`peek` a default value to return that instead of raising
263
- ``StopIteration`` when the iterator is exhausted.
264
-
265
- >>> p = peekable([])
266
- >>> p.peek('hi')
267
- 'hi'
268
-
269
- peekables also offer a :meth:`prepend` method, which "inserts" items
270
- at the head of the iterable:
271
-
272
- >>> p = peekable([1, 2, 3])
273
- >>> p.prepend(10, 11, 12)
274
- >>> next(p)
275
- 10
276
- >>> p.peek()
277
- 11
278
- >>> list(p)
279
- [11, 12, 1, 2, 3]
280
-
281
- peekables can be indexed. Index 0 is the item that will be returned by
282
- :func:`next`, index 1 is the item after that, and so on:
283
- The values up to the given index will be cached.
284
-
285
- >>> p = peekable(['a', 'b', 'c', 'd'])
286
- >>> p[0]
287
- 'a'
288
- >>> p[1]
289
- 'b'
290
- >>> next(p)
291
- 'a'
292
-
293
- Negative indexes are supported, but be aware that they will cache the
294
- remaining items in the source iterator, which may require significant
295
- storage.
296
-
297
- To check whether a peekable is exhausted, check its truth value:
298
-
299
- >>> p = peekable(['a', 'b'])
300
- >>> if p: # peekable has items
301
- ... list(p)
302
- ['a', 'b']
303
- >>> if not p: # peekable is exhausted
304
- ... list(p)
305
- []
306
-
307
- """
308
-
309
- def __init__(self, iterable):
310
- self._it = iter(iterable)
311
- self._cache = deque()
312
-
313
- def __iter__(self):
314
- return self
315
-
316
- def __bool__(self):
317
- try:
318
- self.peek()
319
- except StopIteration:
320
- return False
321
- return True
322
-
323
- def peek(self, default=_marker):
324
- """Return the item that will be next returned from ``next()``.
325
-
326
- Return ``default`` if there are no items left. If ``default`` is not
327
- provided, raise ``StopIteration``.
328
-
329
- """
330
- if not self._cache:
331
- try:
332
- self._cache.append(next(self._it))
333
- except StopIteration:
334
- if default is _marker:
335
- raise
336
- return default
337
- return self._cache[0]
338
-
339
- def prepend(self, *items):
340
- """Stack up items to be the next ones returned from ``next()`` or
341
- ``self.peek()``. The items will be returned in
342
- first in, first out order::
343
-
344
- >>> p = peekable([1, 2, 3])
345
- >>> p.prepend(10, 11, 12)
346
- >>> next(p)
347
- 10
348
- >>> list(p)
349
- [11, 12, 1, 2, 3]
350
-
351
- It is possible, by prepending items, to "resurrect" a peekable that
352
- previously raised ``StopIteration``.
353
-
354
- >>> p = peekable([])
355
- >>> next(p)
356
- Traceback (most recent call last):
357
- ...
358
- StopIteration
359
- >>> p.prepend(1)
360
- >>> next(p)
361
- 1
362
- >>> next(p)
363
- Traceback (most recent call last):
364
- ...
365
- StopIteration
366
-
367
- """
368
- self._cache.extendleft(reversed(items))
369
-
370
- def __next__(self):
371
- if self._cache:
372
- return self._cache.popleft()
373
-
374
- return next(self._it)
375
-
376
- def _get_slice(self, index):
377
- # Normalize the slice's arguments
378
- step = 1 if (index.step is None) else index.step
379
- if step > 0:
380
- start = 0 if (index.start is None) else index.start
381
- stop = maxsize if (index.stop is None) else index.stop
382
- elif step < 0:
383
- start = -1 if (index.start is None) else index.start
384
- stop = (-maxsize - 1) if (index.stop is None) else index.stop
385
- else:
386
- raise ValueError('slice step cannot be zero')
387
-
388
- # If either the start or stop index is negative, we'll need to cache
389
- # the rest of the iterable in order to slice from the right side.
390
- if (start < 0) or (stop < 0):
391
- self._cache.extend(self._it)
392
- # Otherwise we'll need to find the rightmost index and cache to that
393
- # point.
394
- else:
395
- n = min(max(start, stop) + 1, maxsize)
396
- cache_len = len(self._cache)
397
- if n >= cache_len:
398
- self._cache.extend(islice(self._it, n - cache_len))
399
-
400
- return list(self._cache)[index]
401
-
402
- def __getitem__(self, index):
403
- if isinstance(index, slice):
404
- return self._get_slice(index)
405
-
406
- cache_len = len(self._cache)
407
- if index < 0:
408
- self._cache.extend(self._it)
409
- elif index >= cache_len:
410
- self._cache.extend(islice(self._it, index + 1 - cache_len))
411
-
412
- return self._cache[index]
413
-
414
-
415
- def consumer(func):
416
- """Decorator that automatically advances a PEP-342-style "reverse iterator"
417
- to its first yield point so you don't have to call ``next()`` on it
418
- manually.
419
-
420
- >>> @consumer
421
- ... def tally():
422
- ... i = 0
423
- ... while True:
424
- ... print('Thing number %s is %s.' % (i, (yield)))
425
- ... i += 1
426
- ...
427
- >>> t = tally()
428
- >>> t.send('red')
429
- Thing number 0 is red.
430
- >>> t.send('fish')
431
- Thing number 1 is fish.
432
-
433
- Without the decorator, you would have to call ``next(t)`` before
434
- ``t.send()`` could be used.
435
-
436
- """
437
-
438
- @wraps(func)
439
- def wrapper(*args, **kwargs):
440
- gen = func(*args, **kwargs)
441
- next(gen)
442
- return gen
443
-
444
- return wrapper
445
-
446
-
447
- def ilen(iterable):
448
- """Return the number of items in *iterable*.
449
-
450
- >>> ilen(x for x in range(1000000) if x % 3 == 0)
451
- 333334
452
-
453
- This consumes the iterable, so handle with care.
454
-
455
- """
456
- # This approach was selected because benchmarks showed it's likely the
457
- # fastest of the known implementations at the time of writing.
458
- # See GitHub tracker: #236, #230.
459
- counter = count()
460
- deque(zip(iterable, counter), maxlen=0)
461
- return next(counter)
462
-
463
-
464
- def iterate(func, start):
465
- """Return ``start``, ``func(start)``, ``func(func(start))``, ...
466
-
467
- >>> from itertools import islice
468
- >>> list(islice(iterate(lambda x: 2*x, 1), 10))
469
- [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
470
-
471
- """
472
- while True:
473
- yield start
474
- start = func(start)
475
-
476
-
477
- def with_iter(context_manager):
478
- """Wrap an iterable in a ``with`` statement, so it closes once exhausted.
479
-
480
- For example, this will close the file when the iterator is exhausted::
481
-
482
- upper_lines = (line.upper() for line in with_iter(open('foo')))
483
-
484
- Any context manager which returns an iterable is a candidate for
485
- ``with_iter``.
486
-
487
- """
488
- with context_manager as iterable:
489
- yield from iterable
490
-
491
-
492
- def one(iterable, too_short=None, too_long=None):
493
- """Return the first item from *iterable*, which is expected to contain only
494
- that item. Raise an exception if *iterable* is empty or has more than one
495
- item.
496
-
497
- :func:`one` is useful for ensuring that an iterable contains only one item.
498
- For example, it can be used to retrieve the result of a database query
499
- that is expected to return a single row.
500
-
501
- If *iterable* is empty, ``ValueError`` will be raised. You may specify a
502
- different exception with the *too_short* keyword:
503
-
504
- >>> it = []
505
- >>> one(it) # doctest: +IGNORE_EXCEPTION_DETAIL
506
- Traceback (most recent call last):
507
- ...
508
- ValueError: too many items in iterable (expected 1)'
509
- >>> too_short = IndexError('too few items')
510
- >>> one(it, too_short=too_short) # doctest: +IGNORE_EXCEPTION_DETAIL
511
- Traceback (most recent call last):
512
- ...
513
- IndexError: too few items
514
-
515
- Similarly, if *iterable* contains more than one item, ``ValueError`` will
516
- be raised. You may specify a different exception with the *too_long*
517
- keyword:
518
-
519
- >>> it = ['too', 'many']
520
- >>> one(it) # doctest: +IGNORE_EXCEPTION_DETAIL
521
- Traceback (most recent call last):
522
- ...
523
- ValueError: Expected exactly one item in iterable, but got 'too',
524
- 'many', and perhaps more.
525
- >>> too_long = RuntimeError
526
- >>> one(it, too_long=too_long) # doctest: +IGNORE_EXCEPTION_DETAIL
527
- Traceback (most recent call last):
528
- ...
529
- RuntimeError
530
-
531
- Note that :func:`one` attempts to advance *iterable* twice to ensure there
532
- is only one item. See :func:`spy` or :func:`peekable` to check iterable
533
- contents less destructively.
534
-
535
- """
536
- it = iter(iterable)
537
-
538
- try:
539
- first_value = next(it)
540
- except StopIteration as e:
541
- raise (
542
- too_short or ValueError('too few items in iterable (expected 1)')
543
- ) from e
544
-
545
- try:
546
- second_value = next(it)
547
- except StopIteration:
548
- pass
549
- else:
550
- msg = (
551
- 'Expected exactly one item in iterable, but got {!r}, {!r}, '
552
- 'and perhaps more.'.format(first_value, second_value)
553
- )
554
- raise too_long or ValueError(msg)
555
-
556
- return first_value
557
-
558
-
559
- def raise_(exception, *args):
560
- raise exception(*args)
561
-
562
-
563
- def strictly_n(iterable, n, too_short=None, too_long=None):
564
- """Validate that *iterable* has exactly *n* items and return them if
565
- it does. If it has fewer than *n* items, call function *too_short*
566
- with those items. If it has more than *n* items, call function
567
- *too_long* with the first ``n + 1`` items.
568
-
569
- >>> iterable = ['a', 'b', 'c', 'd']
570
- >>> n = 4
571
- >>> list(strictly_n(iterable, n))
572
- ['a', 'b', 'c', 'd']
573
-
574
- By default, *too_short* and *too_long* are functions that raise
575
- ``ValueError``.
576
-
577
- >>> list(strictly_n('ab', 3)) # doctest: +IGNORE_EXCEPTION_DETAIL
578
- Traceback (most recent call last):
579
- ...
580
- ValueError: too few items in iterable (got 2)
581
-
582
- >>> list(strictly_n('abc', 2)) # doctest: +IGNORE_EXCEPTION_DETAIL
583
- Traceback (most recent call last):
584
- ...
585
- ValueError: too many items in iterable (got at least 3)
586
-
587
- You can instead supply functions that do something else.
588
- *too_short* will be called with the number of items in *iterable*.
589
- *too_long* will be called with `n + 1`.
590
-
591
- >>> def too_short(item_count):
592
- ... raise RuntimeError
593
- >>> it = strictly_n('abcd', 6, too_short=too_short)
594
- >>> list(it) # doctest: +IGNORE_EXCEPTION_DETAIL
595
- Traceback (most recent call last):
596
- ...
597
- RuntimeError
598
-
599
- >>> def too_long(item_count):
600
- ... print('The boss is going to hear about this')
601
- >>> it = strictly_n('abcdef', 4, too_long=too_long)
602
- >>> list(it)
603
- The boss is going to hear about this
604
- ['a', 'b', 'c', 'd']
605
-
606
- """
607
- if too_short is None:
608
- too_short = lambda item_count: raise_(
609
- ValueError,
610
- 'Too few items in iterable (got {})'.format(item_count),
611
- )
612
-
613
- if too_long is None:
614
- too_long = lambda item_count: raise_(
615
- ValueError,
616
- 'Too many items in iterable (got at least {})'.format(item_count),
617
- )
618
-
619
- it = iter(iterable)
620
- for i in range(n):
621
- try:
622
- item = next(it)
623
- except StopIteration:
624
- too_short(i)
625
- return
626
- else:
627
- yield item
628
-
629
- try:
630
- next(it)
631
- except StopIteration:
632
- pass
633
- else:
634
- too_long(n + 1)
635
-
636
-
637
- def distinct_permutations(iterable, r=None):
638
- """Yield successive distinct permutations of the elements in *iterable*.
639
-
640
- >>> sorted(distinct_permutations([1, 0, 1]))
641
- [(0, 1, 1), (1, 0, 1), (1, 1, 0)]
642
-
643
- Equivalent to ``set(permutations(iterable))``, except duplicates are not
644
- generated and thrown away. For larger input sequences this is much more
645
- efficient.
646
-
647
- Duplicate permutations arise when there are duplicated elements in the
648
- input iterable. The number of items returned is
649
- `n! / (x_1! * x_2! * ... * x_n!)`, where `n` is the total number of
650
- items input, and each `x_i` is the count of a distinct item in the input
651
- sequence.
652
-
653
- If *r* is given, only the *r*-length permutations are yielded.
654
-
655
- >>> sorted(distinct_permutations([1, 0, 1], r=2))
656
- [(0, 1), (1, 0), (1, 1)]
657
- >>> sorted(distinct_permutations(range(3), r=2))
658
- [(0, 1), (0, 2), (1, 0), (1, 2), (2, 0), (2, 1)]
659
-
660
- """
661
- # Algorithm: https://w.wiki/Qai
662
- def _full(A):
663
- while True:
664
- # Yield the permutation we have
665
- yield tuple(A)
666
-
667
- # Find the largest index i such that A[i] < A[i + 1]
668
- for i in range(size - 2, -1, -1):
669
- if A[i] < A[i + 1]:
670
- break
671
- # If no such index exists, this permutation is the last one
672
- else:
673
- return
674
-
675
- # Find the largest index j greater than j such that A[i] < A[j]
676
- for j in range(size - 1, i, -1):
677
- if A[i] < A[j]:
678
- break
679
-
680
- # Swap the value of A[i] with that of A[j], then reverse the
681
- # sequence from A[i + 1] to form the new permutation
682
- A[i], A[j] = A[j], A[i]
683
- A[i + 1 :] = A[: i - size : -1] # A[i + 1:][::-1]
684
-
685
- # Algorithm: modified from the above
686
- def _partial(A, r):
687
- # Split A into the first r items and the last r items
688
- head, tail = A[:r], A[r:]
689
- right_head_indexes = range(r - 1, -1, -1)
690
- left_tail_indexes = range(len(tail))
691
-
692
- while True:
693
- # Yield the permutation we have
694
- yield tuple(head)
695
-
696
- # Starting from the right, find the first index of the head with
697
- # value smaller than the maximum value of the tail - call it i.
698
- pivot = tail[-1]
699
- for i in right_head_indexes:
700
- if head[i] < pivot:
701
- break
702
- pivot = head[i]
703
- else:
704
- return
705
-
706
- # Starting from the left, find the first value of the tail
707
- # with a value greater than head[i] and swap.
708
- for j in left_tail_indexes:
709
- if tail[j] > head[i]:
710
- head[i], tail[j] = tail[j], head[i]
711
- break
712
- # If we didn't find one, start from the right and find the first
713
- # index of the head with a value greater than head[i] and swap.
714
- else:
715
- for j in right_head_indexes:
716
- if head[j] > head[i]:
717
- head[i], head[j] = head[j], head[i]
718
- break
719
-
720
- # Reverse head[i + 1:] and swap it with tail[:r - (i + 1)]
721
- tail += head[: i - r : -1] # head[i + 1:][::-1]
722
- i += 1
723
- head[i:], tail[:] = tail[: r - i], tail[r - i :]
724
-
725
- items = sorted(iterable)
726
-
727
- size = len(items)
728
- if r is None:
729
- r = size
730
-
731
- if 0 < r <= size:
732
- return _full(items) if (r == size) else _partial(items, r)
733
-
734
- return iter(() if r else ((),))
735
-
736
-
737
- def intersperse(e, iterable, n=1):
738
- """Intersperse filler element *e* among the items in *iterable*, leaving
739
- *n* items between each filler element.
740
-
741
- >>> list(intersperse('!', [1, 2, 3, 4, 5]))
742
- [1, '!', 2, '!', 3, '!', 4, '!', 5]
743
-
744
- >>> list(intersperse(None, [1, 2, 3, 4, 5], n=2))
745
- [1, 2, None, 3, 4, None, 5]
746
-
747
- """
748
- if n == 0:
749
- raise ValueError('n must be > 0')
750
- elif n == 1:
751
- # interleave(repeat(e), iterable) -> e, x_0, e, x_1, e, x_2...
752
- # islice(..., 1, None) -> x_0, e, x_1, e, x_2...
753
- return islice(interleave(repeat(e), iterable), 1, None)
754
- else:
755
- # interleave(filler, chunks) -> [e], [x_0, x_1], [e], [x_2, x_3]...
756
- # islice(..., 1, None) -> [x_0, x_1], [e], [x_2, x_3]...
757
- # flatten(...) -> x_0, x_1, e, x_2, x_3...
758
- filler = repeat([e])
759
- chunks = chunked(iterable, n)
760
- return flatten(islice(interleave(filler, chunks), 1, None))
761
-
762
-
763
- def unique_to_each(*iterables):
764
- """Return the elements from each of the input iterables that aren't in the
765
- other input iterables.
766
-
767
- For example, suppose you have a set of packages, each with a set of
768
- dependencies::
769
-
770
- {'pkg_1': {'A', 'B'}, 'pkg_2': {'B', 'C'}, 'pkg_3': {'B', 'D'}}
771
-
772
- If you remove one package, which dependencies can also be removed?
773
-
774
- If ``pkg_1`` is removed, then ``A`` is no longer necessary - it is not
775
- associated with ``pkg_2`` or ``pkg_3``. Similarly, ``C`` is only needed for
776
- ``pkg_2``, and ``D`` is only needed for ``pkg_3``::
777
-
778
- >>> unique_to_each({'A', 'B'}, {'B', 'C'}, {'B', 'D'})
779
- [['A'], ['C'], ['D']]
780
-
781
- If there are duplicates in one input iterable that aren't in the others
782
- they will be duplicated in the output. Input order is preserved::
783
-
784
- >>> unique_to_each("mississippi", "missouri")
785
- [['p', 'p'], ['o', 'u', 'r']]
786
-
787
- It is assumed that the elements of each iterable are hashable.
788
-
789
- """
790
- pool = [list(it) for it in iterables]
791
- counts = Counter(chain.from_iterable(map(set, pool)))
792
- uniques = {element for element in counts if counts[element] == 1}
793
- return [list(filter(uniques.__contains__, it)) for it in pool]
794
-
795
-
796
- def windowed(seq, n, fillvalue=None, step=1):
797
- """Return a sliding window of width *n* over the given iterable.
798
-
799
- >>> all_windows = windowed([1, 2, 3, 4, 5], 3)
800
- >>> list(all_windows)
801
- [(1, 2, 3), (2, 3, 4), (3, 4, 5)]
802
-
803
- When the window is larger than the iterable, *fillvalue* is used in place
804
- of missing values:
805
-
806
- >>> list(windowed([1, 2, 3], 4))
807
- [(1, 2, 3, None)]
808
-
809
- Each window will advance in increments of *step*:
810
-
811
- >>> list(windowed([1, 2, 3, 4, 5, 6], 3, fillvalue='!', step=2))
812
- [(1, 2, 3), (3, 4, 5), (5, 6, '!')]
813
-
814
- To slide into the iterable's items, use :func:`chain` to add filler items
815
- to the left:
816
-
817
- >>> iterable = [1, 2, 3, 4]
818
- >>> n = 3
819
- >>> padding = [None] * (n - 1)
820
- >>> list(windowed(chain(padding, iterable), 3))
821
- [(None, None, 1), (None, 1, 2), (1, 2, 3), (2, 3, 4)]
822
- """
823
- if n < 0:
824
- raise ValueError('n must be >= 0')
825
- if n == 0:
826
- yield tuple()
827
- return
828
- if step < 1:
829
- raise ValueError('step must be >= 1')
830
-
831
- window = deque(maxlen=n)
832
- i = n
833
- for _ in map(window.append, seq):
834
- i -= 1
835
- if not i:
836
- i = step
837
- yield tuple(window)
838
-
839
- size = len(window)
840
- if size == 0:
841
- return
842
- elif size < n:
843
- yield tuple(chain(window, repeat(fillvalue, n - size)))
844
- elif 0 < i < min(step, n):
845
- window += (fillvalue,) * i
846
- yield tuple(window)
847
-
848
-
849
- def substrings(iterable):
850
- """Yield all of the substrings of *iterable*.
851
-
852
- >>> [''.join(s) for s in substrings('more')]
853
- ['m', 'o', 'r', 'e', 'mo', 'or', 're', 'mor', 'ore', 'more']
854
-
855
- Note that non-string iterables can also be subdivided.
856
-
857
- >>> list(substrings([0, 1, 2]))
858
- [(0,), (1,), (2,), (0, 1), (1, 2), (0, 1, 2)]
859
-
860
- """
861
- # The length-1 substrings
862
- seq = []
863
- for item in iter(iterable):
864
- seq.append(item)
865
- yield (item,)
866
- seq = tuple(seq)
867
- item_count = len(seq)
868
-
869
- # And the rest
870
- for n in range(2, item_count + 1):
871
- for i in range(item_count - n + 1):
872
- yield seq[i : i + n]
873
-
874
-
875
- def substrings_indexes(seq, reverse=False):
876
- """Yield all substrings and their positions in *seq*
877
-
878
- The items yielded will be a tuple of the form ``(substr, i, j)``, where
879
- ``substr == seq[i:j]``.
880
-
881
- This function only works for iterables that support slicing, such as
882
- ``str`` objects.
883
-
884
- >>> for item in substrings_indexes('more'):
885
- ... print(item)
886
- ('m', 0, 1)
887
- ('o', 1, 2)
888
- ('r', 2, 3)
889
- ('e', 3, 4)
890
- ('mo', 0, 2)
891
- ('or', 1, 3)
892
- ('re', 2, 4)
893
- ('mor', 0, 3)
894
- ('ore', 1, 4)
895
- ('more', 0, 4)
896
-
897
- Set *reverse* to ``True`` to yield the same items in the opposite order.
898
-
899
-
900
- """
901
- r = range(1, len(seq) + 1)
902
- if reverse:
903
- r = reversed(r)
904
- return (
905
- (seq[i : i + L], i, i + L) for L in r for i in range(len(seq) - L + 1)
906
- )
907
-
908
-
909
- class bucket:
910
- """Wrap *iterable* and return an object that buckets it iterable into
911
- child iterables based on a *key* function.
912
-
913
- >>> iterable = ['a1', 'b1', 'c1', 'a2', 'b2', 'c2', 'b3']
914
- >>> s = bucket(iterable, key=lambda x: x[0]) # Bucket by 1st character
915
- >>> sorted(list(s)) # Get the keys
916
- ['a', 'b', 'c']
917
- >>> a_iterable = s['a']
918
- >>> next(a_iterable)
919
- 'a1'
920
- >>> next(a_iterable)
921
- 'a2'
922
- >>> list(s['b'])
923
- ['b1', 'b2', 'b3']
924
-
925
- The original iterable will be advanced and its items will be cached until
926
- they are used by the child iterables. This may require significant storage.
927
-
928
- By default, attempting to select a bucket to which no items belong will
929
- exhaust the iterable and cache all values.
930
- If you specify a *validator* function, selected buckets will instead be
931
- checked against it.
932
-
933
- >>> from itertools import count
934
- >>> it = count(1, 2) # Infinite sequence of odd numbers
935
- >>> key = lambda x: x % 10 # Bucket by last digit
936
- >>> validator = lambda x: x in {1, 3, 5, 7, 9} # Odd digits only
937
- >>> s = bucket(it, key=key, validator=validator)
938
- >>> 2 in s
939
- False
940
- >>> list(s[2])
941
- []
942
-
943
- """
944
-
945
- def __init__(self, iterable, key, validator=None):
946
- self._it = iter(iterable)
947
- self._key = key
948
- self._cache = defaultdict(deque)
949
- self._validator = validator or (lambda x: True)
950
-
951
- def __contains__(self, value):
952
- if not self._validator(value):
953
- return False
954
-
955
- try:
956
- item = next(self[value])
957
- except StopIteration:
958
- return False
959
- else:
960
- self._cache[value].appendleft(item)
961
-
962
- return True
963
-
964
- def _get_values(self, value):
965
- """
966
- Helper to yield items from the parent iterator that match *value*.
967
- Items that don't match are stored in the local cache as they
968
- are encountered.
969
- """
970
- while True:
971
- # If we've cached some items that match the target value, emit
972
- # the first one and evict it from the cache.
973
- if self._cache[value]:
974
- yield self._cache[value].popleft()
975
- # Otherwise we need to advance the parent iterator to search for
976
- # a matching item, caching the rest.
977
- else:
978
- while True:
979
- try:
980
- item = next(self._it)
981
- except StopIteration:
982
- return
983
- item_value = self._key(item)
984
- if item_value == value:
985
- yield item
986
- break
987
- elif self._validator(item_value):
988
- self._cache[item_value].append(item)
989
-
990
- def __iter__(self):
991
- for item in self._it:
992
- item_value = self._key(item)
993
- if self._validator(item_value):
994
- self._cache[item_value].append(item)
995
-
996
- yield from self._cache.keys()
997
-
998
- def __getitem__(self, value):
999
- if not self._validator(value):
1000
- return iter(())
1001
-
1002
- return self._get_values(value)
1003
-
1004
-
1005
- def spy(iterable, n=1):
1006
- """Return a 2-tuple with a list containing the first *n* elements of
1007
- *iterable*, and an iterator with the same items as *iterable*.
1008
- This allows you to "look ahead" at the items in the iterable without
1009
- advancing it.
1010
-
1011
- There is one item in the list by default:
1012
-
1013
- >>> iterable = 'abcdefg'
1014
- >>> head, iterable = spy(iterable)
1015
- >>> head
1016
- ['a']
1017
- >>> list(iterable)
1018
- ['a', 'b', 'c', 'd', 'e', 'f', 'g']
1019
-
1020
- You may use unpacking to retrieve items instead of lists:
1021
-
1022
- >>> (head,), iterable = spy('abcdefg')
1023
- >>> head
1024
- 'a'
1025
- >>> (first, second), iterable = spy('abcdefg', 2)
1026
- >>> first
1027
- 'a'
1028
- >>> second
1029
- 'b'
1030
-
1031
- The number of items requested can be larger than the number of items in
1032
- the iterable:
1033
-
1034
- >>> iterable = [1, 2, 3, 4, 5]
1035
- >>> head, iterable = spy(iterable, 10)
1036
- >>> head
1037
- [1, 2, 3, 4, 5]
1038
- >>> list(iterable)
1039
- [1, 2, 3, 4, 5]
1040
-
1041
- """
1042
- it = iter(iterable)
1043
- head = take(n, it)
1044
-
1045
- return head.copy(), chain(head, it)
1046
-
1047
-
1048
- def interleave(*iterables):
1049
- """Return a new iterable yielding from each iterable in turn,
1050
- until the shortest is exhausted.
1051
-
1052
- >>> list(interleave([1, 2, 3], [4, 5], [6, 7, 8]))
1053
- [1, 4, 6, 2, 5, 7]
1054
-
1055
- For a version that doesn't terminate after the shortest iterable is
1056
- exhausted, see :func:`interleave_longest`.
1057
-
1058
- """
1059
- return chain.from_iterable(zip(*iterables))
1060
-
1061
-
1062
- def interleave_longest(*iterables):
1063
- """Return a new iterable yielding from each iterable in turn,
1064
- skipping any that are exhausted.
1065
-
1066
- >>> list(interleave_longest([1, 2, 3], [4, 5], [6, 7, 8]))
1067
- [1, 4, 6, 2, 5, 7, 3, 8]
1068
-
1069
- This function produces the same output as :func:`roundrobin`, but may
1070
- perform better for some inputs (in particular when the number of iterables
1071
- is large).
1072
-
1073
- """
1074
- i = chain.from_iterable(zip_longest(*iterables, fillvalue=_marker))
1075
- return (x for x in i if x is not _marker)
1076
-
1077
-
1078
- def interleave_evenly(iterables, lengths=None):
1079
- """
1080
- Interleave multiple iterables so that their elements are evenly distributed
1081
- throughout the output sequence.
1082
-
1083
- >>> iterables = [1, 2, 3, 4, 5], ['a', 'b']
1084
- >>> list(interleave_evenly(iterables))
1085
- [1, 2, 'a', 3, 4, 'b', 5]
1086
-
1087
- >>> iterables = [[1, 2, 3], [4, 5], [6, 7, 8]]
1088
- >>> list(interleave_evenly(iterables))
1089
- [1, 6, 4, 2, 7, 3, 8, 5]
1090
-
1091
- This function requires iterables of known length. Iterables without
1092
- ``__len__()`` can be used by manually specifying lengths with *lengths*:
1093
-
1094
- >>> from itertools import combinations, repeat
1095
- >>> iterables = [combinations(range(4), 2), ['a', 'b', 'c']]
1096
- >>> lengths = [4 * (4 - 1) // 2, 3]
1097
- >>> list(interleave_evenly(iterables, lengths=lengths))
1098
- [(0, 1), (0, 2), 'a', (0, 3), (1, 2), 'b', (1, 3), (2, 3), 'c']
1099
-
1100
- Based on Bresenham's algorithm.
1101
- """
1102
- if lengths is None:
1103
- try:
1104
- lengths = [len(it) for it in iterables]
1105
- except TypeError:
1106
- raise ValueError(
1107
- 'Iterable lengths could not be determined automatically. '
1108
- 'Specify them with the lengths keyword.'
1109
- )
1110
- elif len(iterables) != len(lengths):
1111
- raise ValueError('Mismatching number of iterables and lengths.')
1112
-
1113
- dims = len(lengths)
1114
-
1115
- # sort iterables by length, descending
1116
- lengths_permute = sorted(
1117
- range(dims), key=lambda i: lengths[i], reverse=True
1118
- )
1119
- lengths_desc = [lengths[i] for i in lengths_permute]
1120
- iters_desc = [iter(iterables[i]) for i in lengths_permute]
1121
-
1122
- # the longest iterable is the primary one (Bresenham: the longest
1123
- # distance along an axis)
1124
- delta_primary, deltas_secondary = lengths_desc[0], lengths_desc[1:]
1125
- iter_primary, iters_secondary = iters_desc[0], iters_desc[1:]
1126
- errors = [delta_primary // dims] * len(deltas_secondary)
1127
-
1128
- to_yield = sum(lengths)
1129
- while to_yield:
1130
- yield next(iter_primary)
1131
- to_yield -= 1
1132
- # update errors for each secondary iterable
1133
- errors = [e - delta for e, delta in zip(errors, deltas_secondary)]
1134
-
1135
- # those iterables for which the error is negative are yielded
1136
- # ("diagonal step" in Bresenham)
1137
- for i, e in enumerate(errors):
1138
- if e < 0:
1139
- yield next(iters_secondary[i])
1140
- to_yield -= 1
1141
- errors[i] += delta_primary
1142
-
1143
-
1144
- def collapse(iterable, base_type=None, levels=None):
1145
- """Flatten an iterable with multiple levels of nesting (e.g., a list of
1146
- lists of tuples) into non-iterable types.
1147
-
1148
- >>> iterable = [(1, 2), ([3, 4], [[5], [6]])]
1149
- >>> list(collapse(iterable))
1150
- [1, 2, 3, 4, 5, 6]
1151
-
1152
- Binary and text strings are not considered iterable and
1153
- will not be collapsed.
1154
-
1155
- To avoid collapsing other types, specify *base_type*:
1156
-
1157
- >>> iterable = ['ab', ('cd', 'ef'), ['gh', 'ij']]
1158
- >>> list(collapse(iterable, base_type=tuple))
1159
- ['ab', ('cd', 'ef'), 'gh', 'ij']
1160
-
1161
- Specify *levels* to stop flattening after a certain level:
1162
-
1163
- >>> iterable = [('a', ['b']), ('c', ['d'])]
1164
- >>> list(collapse(iterable)) # Fully flattened
1165
- ['a', 'b', 'c', 'd']
1166
- >>> list(collapse(iterable, levels=1)) # Only one level flattened
1167
- ['a', ['b'], 'c', ['d']]
1168
-
1169
- """
1170
-
1171
- def walk(node, level):
1172
- if (
1173
- ((levels is not None) and (level > levels))
1174
- or isinstance(node, (str, bytes))
1175
- or ((base_type is not None) and isinstance(node, base_type))
1176
- ):
1177
- yield node
1178
- return
1179
-
1180
- try:
1181
- tree = iter(node)
1182
- except TypeError:
1183
- yield node
1184
- return
1185
- else:
1186
- for child in tree:
1187
- yield from walk(child, level + 1)
1188
-
1189
- yield from walk(iterable, 0)
1190
-
1191
-
1192
- def side_effect(func, iterable, chunk_size=None, before=None, after=None):
1193
- """Invoke *func* on each item in *iterable* (or on each *chunk_size* group
1194
- of items) before yielding the item.
1195
-
1196
- `func` must be a function that takes a single argument. Its return value
1197
- will be discarded.
1198
-
1199
- *before* and *after* are optional functions that take no arguments. They
1200
- will be executed before iteration starts and after it ends, respectively.
1201
-
1202
- `side_effect` can be used for logging, updating progress bars, or anything
1203
- that is not functionally "pure."
1204
-
1205
- Emitting a status message:
1206
-
1207
- >>> from more_itertools import consume
1208
- >>> func = lambda item: print('Received {}'.format(item))
1209
- >>> consume(side_effect(func, range(2)))
1210
- Received 0
1211
- Received 1
1212
-
1213
- Operating on chunks of items:
1214
-
1215
- >>> pair_sums = []
1216
- >>> func = lambda chunk: pair_sums.append(sum(chunk))
1217
- >>> list(side_effect(func, [0, 1, 2, 3, 4, 5], 2))
1218
- [0, 1, 2, 3, 4, 5]
1219
- >>> list(pair_sums)
1220
- [1, 5, 9]
1221
-
1222
- Writing to a file-like object:
1223
-
1224
- >>> from io import StringIO
1225
- >>> from more_itertools import consume
1226
- >>> f = StringIO()
1227
- >>> func = lambda x: print(x, file=f)
1228
- >>> before = lambda: print(u'HEADER', file=f)
1229
- >>> after = f.close
1230
- >>> it = [u'a', u'b', u'c']
1231
- >>> consume(side_effect(func, it, before=before, after=after))
1232
- >>> f.closed
1233
- True
1234
-
1235
- """
1236
- try:
1237
- if before is not None:
1238
- before()
1239
-
1240
- if chunk_size is None:
1241
- for item in iterable:
1242
- func(item)
1243
- yield item
1244
- else:
1245
- for chunk in chunked(iterable, chunk_size):
1246
- func(chunk)
1247
- yield from chunk
1248
- finally:
1249
- if after is not None:
1250
- after()
1251
-
1252
-
1253
- def sliced(seq, n, strict=False):
1254
- """Yield slices of length *n* from the sequence *seq*.
1255
-
1256
- >>> list(sliced((1, 2, 3, 4, 5, 6), 3))
1257
- [(1, 2, 3), (4, 5, 6)]
1258
-
1259
- By the default, the last yielded slice will have fewer than *n* elements
1260
- if the length of *seq* is not divisible by *n*:
1261
-
1262
- >>> list(sliced((1, 2, 3, 4, 5, 6, 7, 8), 3))
1263
- [(1, 2, 3), (4, 5, 6), (7, 8)]
1264
-
1265
- If the length of *seq* is not divisible by *n* and *strict* is
1266
- ``True``, then ``ValueError`` will be raised before the last
1267
- slice is yielded.
1268
-
1269
- This function will only work for iterables that support slicing.
1270
- For non-sliceable iterables, see :func:`chunked`.
1271
-
1272
- """
1273
- iterator = takewhile(len, (seq[i : i + n] for i in count(0, n)))
1274
- if strict:
1275
-
1276
- def ret():
1277
- for _slice in iterator:
1278
- if len(_slice) != n:
1279
- raise ValueError("seq is not divisible by n.")
1280
- yield _slice
1281
-
1282
- return iter(ret())
1283
- else:
1284
- return iterator
1285
-
1286
-
1287
- def split_at(iterable, pred, maxsplit=-1, keep_separator=False):
1288
- """Yield lists of items from *iterable*, where each list is delimited by
1289
- an item where callable *pred* returns ``True``.
1290
-
1291
- >>> list(split_at('abcdcba', lambda x: x == 'b'))
1292
- [['a'], ['c', 'd', 'c'], ['a']]
1293
-
1294
- >>> list(split_at(range(10), lambda n: n % 2 == 1))
1295
- [[0], [2], [4], [6], [8], []]
1296
-
1297
- At most *maxsplit* splits are done. If *maxsplit* is not specified or -1,
1298
- then there is no limit on the number of splits:
1299
-
1300
- >>> list(split_at(range(10), lambda n: n % 2 == 1, maxsplit=2))
1301
- [[0], [2], [4, 5, 6, 7, 8, 9]]
1302
-
1303
- By default, the delimiting items are not included in the output.
1304
- The include them, set *keep_separator* to ``True``.
1305
-
1306
- >>> list(split_at('abcdcba', lambda x: x == 'b', keep_separator=True))
1307
- [['a'], ['b'], ['c', 'd', 'c'], ['b'], ['a']]
1308
-
1309
- """
1310
- if maxsplit == 0:
1311
- yield list(iterable)
1312
- return
1313
-
1314
- buf = []
1315
- it = iter(iterable)
1316
- for item in it:
1317
- if pred(item):
1318
- yield buf
1319
- if keep_separator:
1320
- yield [item]
1321
- if maxsplit == 1:
1322
- yield list(it)
1323
- return
1324
- buf = []
1325
- maxsplit -= 1
1326
- else:
1327
- buf.append(item)
1328
- yield buf
1329
-
1330
-
1331
- def split_before(iterable, pred, maxsplit=-1):
1332
- """Yield lists of items from *iterable*, where each list ends just before
1333
- an item for which callable *pred* returns ``True``:
1334
-
1335
- >>> list(split_before('OneTwo', lambda s: s.isupper()))
1336
- [['O', 'n', 'e'], ['T', 'w', 'o']]
1337
-
1338
- >>> list(split_before(range(10), lambda n: n % 3 == 0))
1339
- [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]
1340
-
1341
- At most *maxsplit* splits are done. If *maxsplit* is not specified or -1,
1342
- then there is no limit on the number of splits:
1343
-
1344
- >>> list(split_before(range(10), lambda n: n % 3 == 0, maxsplit=2))
1345
- [[0, 1, 2], [3, 4, 5], [6, 7, 8, 9]]
1346
- """
1347
- if maxsplit == 0:
1348
- yield list(iterable)
1349
- return
1350
-
1351
- buf = []
1352
- it = iter(iterable)
1353
- for item in it:
1354
- if pred(item) and buf:
1355
- yield buf
1356
- if maxsplit == 1:
1357
- yield [item] + list(it)
1358
- return
1359
- buf = []
1360
- maxsplit -= 1
1361
- buf.append(item)
1362
- if buf:
1363
- yield buf
1364
-
1365
-
1366
- def split_after(iterable, pred, maxsplit=-1):
1367
- """Yield lists of items from *iterable*, where each list ends with an
1368
- item where callable *pred* returns ``True``:
1369
-
1370
- >>> list(split_after('one1two2', lambda s: s.isdigit()))
1371
- [['o', 'n', 'e', '1'], ['t', 'w', 'o', '2']]
1372
-
1373
- >>> list(split_after(range(10), lambda n: n % 3 == 0))
1374
- [[0], [1, 2, 3], [4, 5, 6], [7, 8, 9]]
1375
-
1376
- At most *maxsplit* splits are done. If *maxsplit* is not specified or -1,
1377
- then there is no limit on the number of splits:
1378
-
1379
- >>> list(split_after(range(10), lambda n: n % 3 == 0, maxsplit=2))
1380
- [[0], [1, 2, 3], [4, 5, 6, 7, 8, 9]]
1381
-
1382
- """
1383
- if maxsplit == 0:
1384
- yield list(iterable)
1385
- return
1386
-
1387
- buf = []
1388
- it = iter(iterable)
1389
- for item in it:
1390
- buf.append(item)
1391
- if pred(item) and buf:
1392
- yield buf
1393
- if maxsplit == 1:
1394
- yield list(it)
1395
- return
1396
- buf = []
1397
- maxsplit -= 1
1398
- if buf:
1399
- yield buf
1400
-
1401
-
1402
- def split_when(iterable, pred, maxsplit=-1):
1403
- """Split *iterable* into pieces based on the output of *pred*.
1404
- *pred* should be a function that takes successive pairs of items and
1405
- returns ``True`` if the iterable should be split in between them.
1406
-
1407
- For example, to find runs of increasing numbers, split the iterable when
1408
- element ``i`` is larger than element ``i + 1``:
1409
-
1410
- >>> list(split_when([1, 2, 3, 3, 2, 5, 2, 4, 2], lambda x, y: x > y))
1411
- [[1, 2, 3, 3], [2, 5], [2, 4], [2]]
1412
-
1413
- At most *maxsplit* splits are done. If *maxsplit* is not specified or -1,
1414
- then there is no limit on the number of splits:
1415
-
1416
- >>> list(split_when([1, 2, 3, 3, 2, 5, 2, 4, 2],
1417
- ... lambda x, y: x > y, maxsplit=2))
1418
- [[1, 2, 3, 3], [2, 5], [2, 4, 2]]
1419
-
1420
- """
1421
- if maxsplit == 0:
1422
- yield list(iterable)
1423
- return
1424
-
1425
- it = iter(iterable)
1426
- try:
1427
- cur_item = next(it)
1428
- except StopIteration:
1429
- return
1430
-
1431
- buf = [cur_item]
1432
- for next_item in it:
1433
- if pred(cur_item, next_item):
1434
- yield buf
1435
- if maxsplit == 1:
1436
- yield [next_item] + list(it)
1437
- return
1438
- buf = []
1439
- maxsplit -= 1
1440
-
1441
- buf.append(next_item)
1442
- cur_item = next_item
1443
-
1444
- yield buf
1445
-
1446
-
1447
- def split_into(iterable, sizes):
1448
- """Yield a list of sequential items from *iterable* of length 'n' for each
1449
- integer 'n' in *sizes*.
1450
-
1451
- >>> list(split_into([1,2,3,4,5,6], [1,2,3]))
1452
- [[1], [2, 3], [4, 5, 6]]
1453
-
1454
- If the sum of *sizes* is smaller than the length of *iterable*, then the
1455
- remaining items of *iterable* will not be returned.
1456
-
1457
- >>> list(split_into([1,2,3,4,5,6], [2,3]))
1458
- [[1, 2], [3, 4, 5]]
1459
-
1460
- If the sum of *sizes* is larger than the length of *iterable*, fewer items
1461
- will be returned in the iteration that overruns *iterable* and further
1462
- lists will be empty:
1463
-
1464
- >>> list(split_into([1,2,3,4], [1,2,3,4]))
1465
- [[1], [2, 3], [4], []]
1466
-
1467
- When a ``None`` object is encountered in *sizes*, the returned list will
1468
- contain items up to the end of *iterable* the same way that itertools.slice
1469
- does:
1470
-
1471
- >>> list(split_into([1,2,3,4,5,6,7,8,9,0], [2,3,None]))
1472
- [[1, 2], [3, 4, 5], [6, 7, 8, 9, 0]]
1473
-
1474
- :func:`split_into` can be useful for grouping a series of items where the
1475
- sizes of the groups are not uniform. An example would be where in a row
1476
- from a table, multiple columns represent elements of the same feature
1477
- (e.g. a point represented by x,y,z) but, the format is not the same for
1478
- all columns.
1479
- """
1480
- # convert the iterable argument into an iterator so its contents can
1481
- # be consumed by islice in case it is a generator
1482
- it = iter(iterable)
1483
-
1484
- for size in sizes:
1485
- if size is None:
1486
- yield list(it)
1487
- return
1488
- else:
1489
- yield list(islice(it, size))
1490
-
1491
-
1492
- def padded(iterable, fillvalue=None, n=None, next_multiple=False):
1493
- """Yield the elements from *iterable*, followed by *fillvalue*, such that
1494
- at least *n* items are emitted.
1495
-
1496
- >>> list(padded([1, 2, 3], '?', 5))
1497
- [1, 2, 3, '?', '?']
1498
-
1499
- If *next_multiple* is ``True``, *fillvalue* will be emitted until the
1500
- number of items emitted is a multiple of *n*::
1501
-
1502
- >>> list(padded([1, 2, 3, 4], n=3, next_multiple=True))
1503
- [1, 2, 3, 4, None, None]
1504
-
1505
- If *n* is ``None``, *fillvalue* will be emitted indefinitely.
1506
-
1507
- """
1508
- it = iter(iterable)
1509
- if n is None:
1510
- yield from chain(it, repeat(fillvalue))
1511
- elif n < 1:
1512
- raise ValueError('n must be at least 1')
1513
- else:
1514
- item_count = 0
1515
- for item in it:
1516
- yield item
1517
- item_count += 1
1518
-
1519
- remaining = (n - item_count) % n if next_multiple else n - item_count
1520
- for _ in range(remaining):
1521
- yield fillvalue
1522
-
1523
-
1524
- def repeat_each(iterable, n=2):
1525
- """Repeat each element in *iterable* *n* times.
1526
-
1527
- >>> list(repeat_each('ABC', 3))
1528
- ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C']
1529
- """
1530
- return chain.from_iterable(map(repeat, iterable, repeat(n)))
1531
-
1532
-
1533
- def repeat_last(iterable, default=None):
1534
- """After the *iterable* is exhausted, keep yielding its last element.
1535
-
1536
- >>> list(islice(repeat_last(range(3)), 5))
1537
- [0, 1, 2, 2, 2]
1538
-
1539
- If the iterable is empty, yield *default* forever::
1540
-
1541
- >>> list(islice(repeat_last(range(0), 42), 5))
1542
- [42, 42, 42, 42, 42]
1543
-
1544
- """
1545
- item = _marker
1546
- for item in iterable:
1547
- yield item
1548
- final = default if item is _marker else item
1549
- yield from repeat(final)
1550
-
1551
-
1552
- def distribute(n, iterable):
1553
- """Distribute the items from *iterable* among *n* smaller iterables.
1554
-
1555
- >>> group_1, group_2 = distribute(2, [1, 2, 3, 4, 5, 6])
1556
- >>> list(group_1)
1557
- [1, 3, 5]
1558
- >>> list(group_2)
1559
- [2, 4, 6]
1560
-
1561
- If the length of *iterable* is not evenly divisible by *n*, then the
1562
- length of the returned iterables will not be identical:
1563
-
1564
- >>> children = distribute(3, [1, 2, 3, 4, 5, 6, 7])
1565
- >>> [list(c) for c in children]
1566
- [[1, 4, 7], [2, 5], [3, 6]]
1567
-
1568
- If the length of *iterable* is smaller than *n*, then the last returned
1569
- iterables will be empty:
1570
-
1571
- >>> children = distribute(5, [1, 2, 3])
1572
- >>> [list(c) for c in children]
1573
- [[1], [2], [3], [], []]
1574
-
1575
- This function uses :func:`itertools.tee` and may require significant
1576
- storage. If you need the order items in the smaller iterables to match the
1577
- original iterable, see :func:`divide`.
1578
-
1579
- """
1580
- if n < 1:
1581
- raise ValueError('n must be at least 1')
1582
-
1583
- children = tee(iterable, n)
1584
- return [islice(it, index, None, n) for index, it in enumerate(children)]
1585
-
1586
-
1587
- def stagger(iterable, offsets=(-1, 0, 1), longest=False, fillvalue=None):
1588
- """Yield tuples whose elements are offset from *iterable*.
1589
- The amount by which the `i`-th item in each tuple is offset is given by
1590
- the `i`-th item in *offsets*.
1591
-
1592
- >>> list(stagger([0, 1, 2, 3]))
1593
- [(None, 0, 1), (0, 1, 2), (1, 2, 3)]
1594
- >>> list(stagger(range(8), offsets=(0, 2, 4)))
1595
- [(0, 2, 4), (1, 3, 5), (2, 4, 6), (3, 5, 7)]
1596
-
1597
- By default, the sequence will end when the final element of a tuple is the
1598
- last item in the iterable. To continue until the first element of a tuple
1599
- is the last item in the iterable, set *longest* to ``True``::
1600
-
1601
- >>> list(stagger([0, 1, 2, 3], longest=True))
1602
- [(None, 0, 1), (0, 1, 2), (1, 2, 3), (2, 3, None), (3, None, None)]
1603
-
1604
- By default, ``None`` will be used to replace offsets beyond the end of the
1605
- sequence. Specify *fillvalue* to use some other value.
1606
-
1607
- """
1608
- children = tee(iterable, len(offsets))
1609
-
1610
- return zip_offset(
1611
- *children, offsets=offsets, longest=longest, fillvalue=fillvalue
1612
- )
1613
-
1614
-
1615
- def zip_equal(*iterables):
1616
- """``zip`` the input *iterables* together, but raise
1617
- ``UnequalIterablesError`` if they aren't all the same length.
1618
-
1619
- >>> it_1 = range(3)
1620
- >>> it_2 = iter('abc')
1621
- >>> list(zip_equal(it_1, it_2))
1622
- [(0, 'a'), (1, 'b'), (2, 'c')]
1623
-
1624
- >>> it_1 = range(3)
1625
- >>> it_2 = iter('abcd')
1626
- >>> list(zip_equal(it_1, it_2)) # doctest: +IGNORE_EXCEPTION_DETAIL
1627
- Traceback (most recent call last):
1628
- ...
1629
- more_itertools.more.UnequalIterablesError: Iterables have different
1630
- lengths
1631
-
1632
- """
1633
- if hexversion >= 0x30A00A6:
1634
- warnings.warn(
1635
- (
1636
- 'zip_equal will be removed in a future version of '
1637
- 'more-itertools. Use the builtin zip function with '
1638
- 'strict=True instead.'
1639
- ),
1640
- DeprecationWarning,
1641
- )
1642
-
1643
- return _zip_equal(*iterables)
1644
-
1645
-
1646
- def zip_offset(*iterables, offsets, longest=False, fillvalue=None):
1647
- """``zip`` the input *iterables* together, but offset the `i`-th iterable
1648
- by the `i`-th item in *offsets*.
1649
-
1650
- >>> list(zip_offset('0123', 'abcdef', offsets=(0, 1)))
1651
- [('0', 'b'), ('1', 'c'), ('2', 'd'), ('3', 'e')]
1652
-
1653
- This can be used as a lightweight alternative to SciPy or pandas to analyze
1654
- data sets in which some series have a lead or lag relationship.
1655
-
1656
- By default, the sequence will end when the shortest iterable is exhausted.
1657
- To continue until the longest iterable is exhausted, set *longest* to
1658
- ``True``.
1659
-
1660
- >>> list(zip_offset('0123', 'abcdef', offsets=(0, 1), longest=True))
1661
- [('0', 'b'), ('1', 'c'), ('2', 'd'), ('3', 'e'), (None, 'f')]
1662
-
1663
- By default, ``None`` will be used to replace offsets beyond the end of the
1664
- sequence. Specify *fillvalue* to use some other value.
1665
-
1666
- """
1667
- if len(iterables) != len(offsets):
1668
- raise ValueError("Number of iterables and offsets didn't match")
1669
-
1670
- staggered = []
1671
- for it, n in zip(iterables, offsets):
1672
- if n < 0:
1673
- staggered.append(chain(repeat(fillvalue, -n), it))
1674
- elif n > 0:
1675
- staggered.append(islice(it, n, None))
1676
- else:
1677
- staggered.append(it)
1678
-
1679
- if longest:
1680
- return zip_longest(*staggered, fillvalue=fillvalue)
1681
-
1682
- return zip(*staggered)
1683
-
1684
-
1685
- def sort_together(iterables, key_list=(0,), key=None, reverse=False):
1686
- """Return the input iterables sorted together, with *key_list* as the
1687
- priority for sorting. All iterables are trimmed to the length of the
1688
- shortest one.
1689
-
1690
- This can be used like the sorting function in a spreadsheet. If each
1691
- iterable represents a column of data, the key list determines which
1692
- columns are used for sorting.
1693
-
1694
- By default, all iterables are sorted using the ``0``-th iterable::
1695
-
1696
- >>> iterables = [(4, 3, 2, 1), ('a', 'b', 'c', 'd')]
1697
- >>> sort_together(iterables)
1698
- [(1, 2, 3, 4), ('d', 'c', 'b', 'a')]
1699
-
1700
- Set a different key list to sort according to another iterable.
1701
- Specifying multiple keys dictates how ties are broken::
1702
-
1703
- >>> iterables = [(3, 1, 2), (0, 1, 0), ('c', 'b', 'a')]
1704
- >>> sort_together(iterables, key_list=(1, 2))
1705
- [(2, 3, 1), (0, 0, 1), ('a', 'c', 'b')]
1706
-
1707
- To sort by a function of the elements of the iterable, pass a *key*
1708
- function. Its arguments are the elements of the iterables corresponding to
1709
- the key list::
1710
-
1711
- >>> names = ('a', 'b', 'c')
1712
- >>> lengths = (1, 2, 3)
1713
- >>> widths = (5, 2, 1)
1714
- >>> def area(length, width):
1715
- ... return length * width
1716
- >>> sort_together([names, lengths, widths], key_list=(1, 2), key=area)
1717
- [('c', 'b', 'a'), (3, 2, 1), (1, 2, 5)]
1718
-
1719
- Set *reverse* to ``True`` to sort in descending order.
1720
-
1721
- >>> sort_together([(1, 2, 3), ('c', 'b', 'a')], reverse=True)
1722
- [(3, 2, 1), ('a', 'b', 'c')]
1723
-
1724
- """
1725
- if key is None:
1726
- # if there is no key function, the key argument to sorted is an
1727
- # itemgetter
1728
- key_argument = itemgetter(*key_list)
1729
- else:
1730
- # if there is a key function, call it with the items at the offsets
1731
- # specified by the key function as arguments
1732
- key_list = list(key_list)
1733
- if len(key_list) == 1:
1734
- # if key_list contains a single item, pass the item at that offset
1735
- # as the only argument to the key function
1736
- key_offset = key_list[0]
1737
- key_argument = lambda zipped_items: key(zipped_items[key_offset])
1738
- else:
1739
- # if key_list contains multiple items, use itemgetter to return a
1740
- # tuple of items, which we pass as *args to the key function
1741
- get_key_items = itemgetter(*key_list)
1742
- key_argument = lambda zipped_items: key(
1743
- *get_key_items(zipped_items)
1744
- )
1745
-
1746
- return list(
1747
- zip(*sorted(zip(*iterables), key=key_argument, reverse=reverse))
1748
- )
1749
-
1750
-
1751
- def unzip(iterable):
1752
- """The inverse of :func:`zip`, this function disaggregates the elements
1753
- of the zipped *iterable*.
1754
-
1755
- The ``i``-th iterable contains the ``i``-th element from each element
1756
- of the zipped iterable. The first element is used to determine the
1757
- length of the remaining elements.
1758
-
1759
- >>> iterable = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
1760
- >>> letters, numbers = unzip(iterable)
1761
- >>> list(letters)
1762
- ['a', 'b', 'c', 'd']
1763
- >>> list(numbers)
1764
- [1, 2, 3, 4]
1765
-
1766
- This is similar to using ``zip(*iterable)``, but it avoids reading
1767
- *iterable* into memory. Note, however, that this function uses
1768
- :func:`itertools.tee` and thus may require significant storage.
1769
-
1770
- """
1771
- head, iterable = spy(iter(iterable))
1772
- if not head:
1773
- # empty iterable, e.g. zip([], [], [])
1774
- return ()
1775
- # spy returns a one-length iterable as head
1776
- head = head[0]
1777
- iterables = tee(iterable, len(head))
1778
-
1779
- def itemgetter(i):
1780
- def getter(obj):
1781
- try:
1782
- return obj[i]
1783
- except IndexError:
1784
- # basically if we have an iterable like
1785
- # iter([(1, 2, 3), (4, 5), (6,)])
1786
- # the second unzipped iterable would fail at the third tuple
1787
- # since it would try to access tup[1]
1788
- # same with the third unzipped iterable and the second tuple
1789
- # to support these "improperly zipped" iterables,
1790
- # we create a custom itemgetter
1791
- # which just stops the unzipped iterables
1792
- # at first length mismatch
1793
- raise StopIteration
1794
-
1795
- return getter
1796
-
1797
- return tuple(map(itemgetter(i), it) for i, it in enumerate(iterables))
1798
-
1799
-
1800
- def divide(n, iterable):
1801
- """Divide the elements from *iterable* into *n* parts, maintaining
1802
- order.
1803
-
1804
- >>> group_1, group_2 = divide(2, [1, 2, 3, 4, 5, 6])
1805
- >>> list(group_1)
1806
- [1, 2, 3]
1807
- >>> list(group_2)
1808
- [4, 5, 6]
1809
-
1810
- If the length of *iterable* is not evenly divisible by *n*, then the
1811
- length of the returned iterables will not be identical:
1812
-
1813
- >>> children = divide(3, [1, 2, 3, 4, 5, 6, 7])
1814
- >>> [list(c) for c in children]
1815
- [[1, 2, 3], [4, 5], [6, 7]]
1816
-
1817
- If the length of the iterable is smaller than n, then the last returned
1818
- iterables will be empty:
1819
-
1820
- >>> children = divide(5, [1, 2, 3])
1821
- >>> [list(c) for c in children]
1822
- [[1], [2], [3], [], []]
1823
-
1824
- This function will exhaust the iterable before returning and may require
1825
- significant storage. If order is not important, see :func:`distribute`,
1826
- which does not first pull the iterable into memory.
1827
-
1828
- """
1829
- if n < 1:
1830
- raise ValueError('n must be at least 1')
1831
-
1832
- try:
1833
- iterable[:0]
1834
- except TypeError:
1835
- seq = tuple(iterable)
1836
- else:
1837
- seq = iterable
1838
-
1839
- q, r = divmod(len(seq), n)
1840
-
1841
- ret = []
1842
- stop = 0
1843
- for i in range(1, n + 1):
1844
- start = stop
1845
- stop += q + 1 if i <= r else q
1846
- ret.append(iter(seq[start:stop]))
1847
-
1848
- return ret
1849
-
1850
-
1851
- def always_iterable(obj, base_type=(str, bytes)):
1852
- """If *obj* is iterable, return an iterator over its items::
1853
-
1854
- >>> obj = (1, 2, 3)
1855
- >>> list(always_iterable(obj))
1856
- [1, 2, 3]
1857
-
1858
- If *obj* is not iterable, return a one-item iterable containing *obj*::
1859
-
1860
- >>> obj = 1
1861
- >>> list(always_iterable(obj))
1862
- [1]
1863
-
1864
- If *obj* is ``None``, return an empty iterable:
1865
-
1866
- >>> obj = None
1867
- >>> list(always_iterable(None))
1868
- []
1869
-
1870
- By default, binary and text strings are not considered iterable::
1871
-
1872
- >>> obj = 'foo'
1873
- >>> list(always_iterable(obj))
1874
- ['foo']
1875
-
1876
- If *base_type* is set, objects for which ``isinstance(obj, base_type)``
1877
- returns ``True`` won't be considered iterable.
1878
-
1879
- >>> obj = {'a': 1}
1880
- >>> list(always_iterable(obj)) # Iterate over the dict's keys
1881
- ['a']
1882
- >>> list(always_iterable(obj, base_type=dict)) # Treat dicts as a unit
1883
- [{'a': 1}]
1884
-
1885
- Set *base_type* to ``None`` to avoid any special handling and treat objects
1886
- Python considers iterable as iterable:
1887
-
1888
- >>> obj = 'foo'
1889
- >>> list(always_iterable(obj, base_type=None))
1890
- ['f', 'o', 'o']
1891
- """
1892
- if obj is None:
1893
- return iter(())
1894
-
1895
- if (base_type is not None) and isinstance(obj, base_type):
1896
- return iter((obj,))
1897
-
1898
- try:
1899
- return iter(obj)
1900
- except TypeError:
1901
- return iter((obj,))
1902
-
1903
-
1904
- def adjacent(predicate, iterable, distance=1):
1905
- """Return an iterable over `(bool, item)` tuples where the `item` is
1906
- drawn from *iterable* and the `bool` indicates whether
1907
- that item satisfies the *predicate* or is adjacent to an item that does.
1908
-
1909
- For example, to find whether items are adjacent to a ``3``::
1910
-
1911
- >>> list(adjacent(lambda x: x == 3, range(6)))
1912
- [(False, 0), (False, 1), (True, 2), (True, 3), (True, 4), (False, 5)]
1913
-
1914
- Set *distance* to change what counts as adjacent. For example, to find
1915
- whether items are two places away from a ``3``:
1916
-
1917
- >>> list(adjacent(lambda x: x == 3, range(6), distance=2))
1918
- [(False, 0), (True, 1), (True, 2), (True, 3), (True, 4), (True, 5)]
1919
-
1920
- This is useful for contextualizing the results of a search function.
1921
- For example, a code comparison tool might want to identify lines that
1922
- have changed, but also surrounding lines to give the viewer of the diff
1923
- context.
1924
-
1925
- The predicate function will only be called once for each item in the
1926
- iterable.
1927
-
1928
- See also :func:`groupby_transform`, which can be used with this function
1929
- to group ranges of items with the same `bool` value.
1930
-
1931
- """
1932
- # Allow distance=0 mainly for testing that it reproduces results with map()
1933
- if distance < 0:
1934
- raise ValueError('distance must be at least 0')
1935
-
1936
- i1, i2 = tee(iterable)
1937
- padding = [False] * distance
1938
- selected = chain(padding, map(predicate, i1), padding)
1939
- adjacent_to_selected = map(any, windowed(selected, 2 * distance + 1))
1940
- return zip(adjacent_to_selected, i2)
1941
-
1942
-
1943
- def groupby_transform(iterable, keyfunc=None, valuefunc=None, reducefunc=None):
1944
- """An extension of :func:`itertools.groupby` that can apply transformations
1945
- to the grouped data.
1946
-
1947
- * *keyfunc* is a function computing a key value for each item in *iterable*
1948
- * *valuefunc* is a function that transforms the individual items from
1949
- *iterable* after grouping
1950
- * *reducefunc* is a function that transforms each group of items
1951
-
1952
- >>> iterable = 'aAAbBBcCC'
1953
- >>> keyfunc = lambda k: k.upper()
1954
- >>> valuefunc = lambda v: v.lower()
1955
- >>> reducefunc = lambda g: ''.join(g)
1956
- >>> list(groupby_transform(iterable, keyfunc, valuefunc, reducefunc))
1957
- [('A', 'aaa'), ('B', 'bbb'), ('C', 'ccc')]
1958
-
1959
- Each optional argument defaults to an identity function if not specified.
1960
-
1961
- :func:`groupby_transform` is useful when grouping elements of an iterable
1962
- using a separate iterable as the key. To do this, :func:`zip` the iterables
1963
- and pass a *keyfunc* that extracts the first element and a *valuefunc*
1964
- that extracts the second element::
1965
-
1966
- >>> from operator import itemgetter
1967
- >>> keys = [0, 0, 1, 1, 1, 2, 2, 2, 3]
1968
- >>> values = 'abcdefghi'
1969
- >>> iterable = zip(keys, values)
1970
- >>> grouper = groupby_transform(iterable, itemgetter(0), itemgetter(1))
1971
- >>> [(k, ''.join(g)) for k, g in grouper]
1972
- [(0, 'ab'), (1, 'cde'), (2, 'fgh'), (3, 'i')]
1973
-
1974
- Note that the order of items in the iterable is significant.
1975
- Only adjacent items are grouped together, so if you don't want any
1976
- duplicate groups, you should sort the iterable by the key function.
1977
-
1978
- """
1979
- ret = groupby(iterable, keyfunc)
1980
- if valuefunc:
1981
- ret = ((k, map(valuefunc, g)) for k, g in ret)
1982
- if reducefunc:
1983
- ret = ((k, reducefunc(g)) for k, g in ret)
1984
-
1985
- return ret
1986
-
1987
-
1988
- class numeric_range(abc.Sequence, abc.Hashable):
1989
- """An extension of the built-in ``range()`` function whose arguments can
1990
- be any orderable numeric type.
1991
-
1992
- With only *stop* specified, *start* defaults to ``0`` and *step*
1993
- defaults to ``1``. The output items will match the type of *stop*:
1994
-
1995
- >>> list(numeric_range(3.5))
1996
- [0.0, 1.0, 2.0, 3.0]
1997
-
1998
- With only *start* and *stop* specified, *step* defaults to ``1``. The
1999
- output items will match the type of *start*:
2000
-
2001
- >>> from decimal import Decimal
2002
- >>> start = Decimal('2.1')
2003
- >>> stop = Decimal('5.1')
2004
- >>> list(numeric_range(start, stop))
2005
- [Decimal('2.1'), Decimal('3.1'), Decimal('4.1')]
2006
-
2007
- With *start*, *stop*, and *step* specified the output items will match
2008
- the type of ``start + step``:
2009
-
2010
- >>> from fractions import Fraction
2011
- >>> start = Fraction(1, 2) # Start at 1/2
2012
- >>> stop = Fraction(5, 2) # End at 5/2
2013
- >>> step = Fraction(1, 2) # Count by 1/2
2014
- >>> list(numeric_range(start, stop, step))
2015
- [Fraction(1, 2), Fraction(1, 1), Fraction(3, 2), Fraction(2, 1)]
2016
-
2017
- If *step* is zero, ``ValueError`` is raised. Negative steps are supported:
2018
-
2019
- >>> list(numeric_range(3, -1, -1.0))
2020
- [3.0, 2.0, 1.0, 0.0]
2021
-
2022
- Be aware of the limitations of floating point numbers; the representation
2023
- of the yielded numbers may be surprising.
2024
-
2025
- ``datetime.datetime`` objects can be used for *start* and *stop*, if *step*
2026
- is a ``datetime.timedelta`` object:
2027
-
2028
- >>> import datetime
2029
- >>> start = datetime.datetime(2019, 1, 1)
2030
- >>> stop = datetime.datetime(2019, 1, 3)
2031
- >>> step = datetime.timedelta(days=1)
2032
- >>> items = iter(numeric_range(start, stop, step))
2033
- >>> next(items)
2034
- datetime.datetime(2019, 1, 1, 0, 0)
2035
- >>> next(items)
2036
- datetime.datetime(2019, 1, 2, 0, 0)
2037
-
2038
- """
2039
-
2040
- _EMPTY_HASH = hash(range(0, 0))
2041
-
2042
- def __init__(self, *args):
2043
- argc = len(args)
2044
- if argc == 1:
2045
- (self._stop,) = args
2046
- self._start = type(self._stop)(0)
2047
- self._step = type(self._stop - self._start)(1)
2048
- elif argc == 2:
2049
- self._start, self._stop = args
2050
- self._step = type(self._stop - self._start)(1)
2051
- elif argc == 3:
2052
- self._start, self._stop, self._step = args
2053
- elif argc == 0:
2054
- raise TypeError(
2055
- 'numeric_range expected at least '
2056
- '1 argument, got {}'.format(argc)
2057
- )
2058
- else:
2059
- raise TypeError(
2060
- 'numeric_range expected at most '
2061
- '3 arguments, got {}'.format(argc)
2062
- )
2063
-
2064
- self._zero = type(self._step)(0)
2065
- if self._step == self._zero:
2066
- raise ValueError('numeric_range() arg 3 must not be zero')
2067
- self._growing = self._step > self._zero
2068
- self._init_len()
2069
-
2070
- def __bool__(self):
2071
- if self._growing:
2072
- return self._start < self._stop
2073
- else:
2074
- return self._start > self._stop
2075
-
2076
- def __contains__(self, elem):
2077
- if self._growing:
2078
- if self._start <= elem < self._stop:
2079
- return (elem - self._start) % self._step == self._zero
2080
- else:
2081
- if self._start >= elem > self._stop:
2082
- return (self._start - elem) % (-self._step) == self._zero
2083
-
2084
- return False
2085
-
2086
- def __eq__(self, other):
2087
- if isinstance(other, numeric_range):
2088
- empty_self = not bool(self)
2089
- empty_other = not bool(other)
2090
- if empty_self or empty_other:
2091
- return empty_self and empty_other # True if both empty
2092
- else:
2093
- return (
2094
- self._start == other._start
2095
- and self._step == other._step
2096
- and self._get_by_index(-1) == other._get_by_index(-1)
2097
- )
2098
- else:
2099
- return False
2100
-
2101
- def __getitem__(self, key):
2102
- if isinstance(key, int):
2103
- return self._get_by_index(key)
2104
- elif isinstance(key, slice):
2105
- step = self._step if key.step is None else key.step * self._step
2106
-
2107
- if key.start is None or key.start <= -self._len:
2108
- start = self._start
2109
- elif key.start >= self._len:
2110
- start = self._stop
2111
- else: # -self._len < key.start < self._len
2112
- start = self._get_by_index(key.start)
2113
-
2114
- if key.stop is None or key.stop >= self._len:
2115
- stop = self._stop
2116
- elif key.stop <= -self._len:
2117
- stop = self._start
2118
- else: # -self._len < key.stop < self._len
2119
- stop = self._get_by_index(key.stop)
2120
-
2121
- return numeric_range(start, stop, step)
2122
- else:
2123
- raise TypeError(
2124
- 'numeric range indices must be '
2125
- 'integers or slices, not {}'.format(type(key).__name__)
2126
- )
2127
-
2128
- def __hash__(self):
2129
- if self:
2130
- return hash((self._start, self._get_by_index(-1), self._step))
2131
- else:
2132
- return self._EMPTY_HASH
2133
-
2134
- def __iter__(self):
2135
- values = (self._start + (n * self._step) for n in count())
2136
- if self._growing:
2137
- return takewhile(partial(gt, self._stop), values)
2138
- else:
2139
- return takewhile(partial(lt, self._stop), values)
2140
-
2141
- def __len__(self):
2142
- return self._len
2143
-
2144
- def _init_len(self):
2145
- if self._growing:
2146
- start = self._start
2147
- stop = self._stop
2148
- step = self._step
2149
- else:
2150
- start = self._stop
2151
- stop = self._start
2152
- step = -self._step
2153
- distance = stop - start
2154
- if distance <= self._zero:
2155
- self._len = 0
2156
- else: # distance > 0 and step > 0: regular euclidean division
2157
- q, r = divmod(distance, step)
2158
- self._len = int(q) + int(r != self._zero)
2159
-
2160
- def __reduce__(self):
2161
- return numeric_range, (self._start, self._stop, self._step)
2162
-
2163
- def __repr__(self):
2164
- if self._step == 1:
2165
- return "numeric_range({}, {})".format(
2166
- repr(self._start), repr(self._stop)
2167
- )
2168
- else:
2169
- return "numeric_range({}, {}, {})".format(
2170
- repr(self._start), repr(self._stop), repr(self._step)
2171
- )
2172
-
2173
- def __reversed__(self):
2174
- return iter(
2175
- numeric_range(
2176
- self._get_by_index(-1), self._start - self._step, -self._step
2177
- )
2178
- )
2179
-
2180
- def count(self, value):
2181
- return int(value in self)
2182
-
2183
- def index(self, value):
2184
- if self._growing:
2185
- if self._start <= value < self._stop:
2186
- q, r = divmod(value - self._start, self._step)
2187
- if r == self._zero:
2188
- return int(q)
2189
- else:
2190
- if self._start >= value > self._stop:
2191
- q, r = divmod(self._start - value, -self._step)
2192
- if r == self._zero:
2193
- return int(q)
2194
-
2195
- raise ValueError("{} is not in numeric range".format(value))
2196
-
2197
- def _get_by_index(self, i):
2198
- if i < 0:
2199
- i += self._len
2200
- if i < 0 or i >= self._len:
2201
- raise IndexError("numeric range object index out of range")
2202
- return self._start + i * self._step
2203
-
2204
-
2205
- def count_cycle(iterable, n=None):
2206
- """Cycle through the items from *iterable* up to *n* times, yielding
2207
- the number of completed cycles along with each item. If *n* is omitted the
2208
- process repeats indefinitely.
2209
-
2210
- >>> list(count_cycle('AB', 3))
2211
- [(0, 'A'), (0, 'B'), (1, 'A'), (1, 'B'), (2, 'A'), (2, 'B')]
2212
-
2213
- """
2214
- iterable = tuple(iterable)
2215
- if not iterable:
2216
- return iter(())
2217
- counter = count() if n is None else range(n)
2218
- return ((i, item) for i in counter for item in iterable)
2219
-
2220
-
2221
- def mark_ends(iterable):
2222
- """Yield 3-tuples of the form ``(is_first, is_last, item)``.
2223
-
2224
- >>> list(mark_ends('ABC'))
2225
- [(True, False, 'A'), (False, False, 'B'), (False, True, 'C')]
2226
-
2227
- Use this when looping over an iterable to take special action on its first
2228
- and/or last items:
2229
-
2230
- >>> iterable = ['Header', 100, 200, 'Footer']
2231
- >>> total = 0
2232
- >>> for is_first, is_last, item in mark_ends(iterable):
2233
- ... if is_first:
2234
- ... continue # Skip the header
2235
- ... if is_last:
2236
- ... continue # Skip the footer
2237
- ... total += item
2238
- >>> print(total)
2239
- 300
2240
- """
2241
- it = iter(iterable)
2242
-
2243
- try:
2244
- b = next(it)
2245
- except StopIteration:
2246
- return
2247
-
2248
- try:
2249
- for i in count():
2250
- a = b
2251
- b = next(it)
2252
- yield i == 0, False, a
2253
-
2254
- except StopIteration:
2255
- yield i == 0, True, a
2256
-
2257
-
2258
- def locate(iterable, pred=bool, window_size=None):
2259
- """Yield the index of each item in *iterable* for which *pred* returns
2260
- ``True``.
2261
-
2262
- *pred* defaults to :func:`bool`, which will select truthy items:
2263
-
2264
- >>> list(locate([0, 1, 1, 0, 1, 0, 0]))
2265
- [1, 2, 4]
2266
-
2267
- Set *pred* to a custom function to, e.g., find the indexes for a particular
2268
- item.
2269
-
2270
- >>> list(locate(['a', 'b', 'c', 'b'], lambda x: x == 'b'))
2271
- [1, 3]
2272
-
2273
- If *window_size* is given, then the *pred* function will be called with
2274
- that many items. This enables searching for sub-sequences:
2275
-
2276
- >>> iterable = [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]
2277
- >>> pred = lambda *args: args == (1, 2, 3)
2278
- >>> list(locate(iterable, pred=pred, window_size=3))
2279
- [1, 5, 9]
2280
-
2281
- Use with :func:`seekable` to find indexes and then retrieve the associated
2282
- items:
2283
-
2284
- >>> from itertools import count
2285
- >>> from more_itertools import seekable
2286
- >>> source = (3 * n + 1 if (n % 2) else n // 2 for n in count())
2287
- >>> it = seekable(source)
2288
- >>> pred = lambda x: x > 100
2289
- >>> indexes = locate(it, pred=pred)
2290
- >>> i = next(indexes)
2291
- >>> it.seek(i)
2292
- >>> next(it)
2293
- 106
2294
-
2295
- """
2296
- if window_size is None:
2297
- return compress(count(), map(pred, iterable))
2298
-
2299
- if window_size < 1:
2300
- raise ValueError('window size must be at least 1')
2301
-
2302
- it = windowed(iterable, window_size, fillvalue=_marker)
2303
- return compress(count(), starmap(pred, it))
2304
-
2305
-
2306
- def longest_common_prefix(iterables):
2307
- """Yield elements of the longest common prefix amongst given *iterables*.
2308
-
2309
- >>> ''.join(longest_common_prefix(['abcd', 'abc', 'abf']))
2310
- 'ab'
2311
-
2312
- """
2313
- return (c[0] for c in takewhile(all_equal, zip(*iterables)))
2314
-
2315
-
2316
- def lstrip(iterable, pred):
2317
- """Yield the items from *iterable*, but strip any from the beginning
2318
- for which *pred* returns ``True``.
2319
-
2320
- For example, to remove a set of items from the start of an iterable:
2321
-
2322
- >>> iterable = (None, False, None, 1, 2, None, 3, False, None)
2323
- >>> pred = lambda x: x in {None, False, ''}
2324
- >>> list(lstrip(iterable, pred))
2325
- [1, 2, None, 3, False, None]
2326
-
2327
- This function is analogous to to :func:`str.lstrip`, and is essentially
2328
- an wrapper for :func:`itertools.dropwhile`.
2329
-
2330
- """
2331
- return dropwhile(pred, iterable)
2332
-
2333
-
2334
- def rstrip(iterable, pred):
2335
- """Yield the items from *iterable*, but strip any from the end
2336
- for which *pred* returns ``True``.
2337
-
2338
- For example, to remove a set of items from the end of an iterable:
2339
-
2340
- >>> iterable = (None, False, None, 1, 2, None, 3, False, None)
2341
- >>> pred = lambda x: x in {None, False, ''}
2342
- >>> list(rstrip(iterable, pred))
2343
- [None, False, None, 1, 2, None, 3]
2344
-
2345
- This function is analogous to :func:`str.rstrip`.
2346
-
2347
- """
2348
- cache = []
2349
- cache_append = cache.append
2350
- cache_clear = cache.clear
2351
- for x in iterable:
2352
- if pred(x):
2353
- cache_append(x)
2354
- else:
2355
- yield from cache
2356
- cache_clear()
2357
- yield x
2358
-
2359
-
2360
- def strip(iterable, pred):
2361
- """Yield the items from *iterable*, but strip any from the
2362
- beginning and end for which *pred* returns ``True``.
2363
-
2364
- For example, to remove a set of items from both ends of an iterable:
2365
-
2366
- >>> iterable = (None, False, None, 1, 2, None, 3, False, None)
2367
- >>> pred = lambda x: x in {None, False, ''}
2368
- >>> list(strip(iterable, pred))
2369
- [1, 2, None, 3]
2370
-
2371
- This function is analogous to :func:`str.strip`.
2372
-
2373
- """
2374
- return rstrip(lstrip(iterable, pred), pred)
2375
-
2376
-
2377
- class islice_extended:
2378
- """An extension of :func:`itertools.islice` that supports negative values
2379
- for *stop*, *start*, and *step*.
2380
-
2381
- >>> iterable = iter('abcdefgh')
2382
- >>> list(islice_extended(iterable, -4, -1))
2383
- ['e', 'f', 'g']
2384
-
2385
- Slices with negative values require some caching of *iterable*, but this
2386
- function takes care to minimize the amount of memory required.
2387
-
2388
- For example, you can use a negative step with an infinite iterator:
2389
-
2390
- >>> from itertools import count
2391
- >>> list(islice_extended(count(), 110, 99, -2))
2392
- [110, 108, 106, 104, 102, 100]
2393
-
2394
- You can also use slice notation directly:
2395
-
2396
- >>> iterable = map(str, count())
2397
- >>> it = islice_extended(iterable)[10:20:2]
2398
- >>> list(it)
2399
- ['10', '12', '14', '16', '18']
2400
-
2401
- """
2402
-
2403
- def __init__(self, iterable, *args):
2404
- it = iter(iterable)
2405
- if args:
2406
- self._iterable = _islice_helper(it, slice(*args))
2407
- else:
2408
- self._iterable = it
2409
-
2410
- def __iter__(self):
2411
- return self
2412
-
2413
- def __next__(self):
2414
- return next(self._iterable)
2415
-
2416
- def __getitem__(self, key):
2417
- if isinstance(key, slice):
2418
- return islice_extended(_islice_helper(self._iterable, key))
2419
-
2420
- raise TypeError('islice_extended.__getitem__ argument must be a slice')
2421
-
2422
-
2423
- def _islice_helper(it, s):
2424
- start = s.start
2425
- stop = s.stop
2426
- if s.step == 0:
2427
- raise ValueError('step argument must be a non-zero integer or None.')
2428
- step = s.step or 1
2429
-
2430
- if step > 0:
2431
- start = 0 if (start is None) else start
2432
-
2433
- if start < 0:
2434
- # Consume all but the last -start items
2435
- cache = deque(enumerate(it, 1), maxlen=-start)
2436
- len_iter = cache[-1][0] if cache else 0
2437
-
2438
- # Adjust start to be positive
2439
- i = max(len_iter + start, 0)
2440
-
2441
- # Adjust stop to be positive
2442
- if stop is None:
2443
- j = len_iter
2444
- elif stop >= 0:
2445
- j = min(stop, len_iter)
2446
- else:
2447
- j = max(len_iter + stop, 0)
2448
-
2449
- # Slice the cache
2450
- n = j - i
2451
- if n <= 0:
2452
- return
2453
-
2454
- for index, item in islice(cache, 0, n, step):
2455
- yield item
2456
- elif (stop is not None) and (stop < 0):
2457
- # Advance to the start position
2458
- next(islice(it, start, start), None)
2459
-
2460
- # When stop is negative, we have to carry -stop items while
2461
- # iterating
2462
- cache = deque(islice(it, -stop), maxlen=-stop)
2463
-
2464
- for index, item in enumerate(it):
2465
- cached_item = cache.popleft()
2466
- if index % step == 0:
2467
- yield cached_item
2468
- cache.append(item)
2469
- else:
2470
- # When both start and stop are positive we have the normal case
2471
- yield from islice(it, start, stop, step)
2472
- else:
2473
- start = -1 if (start is None) else start
2474
-
2475
- if (stop is not None) and (stop < 0):
2476
- # Consume all but the last items
2477
- n = -stop - 1
2478
- cache = deque(enumerate(it, 1), maxlen=n)
2479
- len_iter = cache[-1][0] if cache else 0
2480
-
2481
- # If start and stop are both negative they are comparable and
2482
- # we can just slice. Otherwise we can adjust start to be negative
2483
- # and then slice.
2484
- if start < 0:
2485
- i, j = start, stop
2486
- else:
2487
- i, j = min(start - len_iter, -1), None
2488
-
2489
- for index, item in list(cache)[i:j:step]:
2490
- yield item
2491
- else:
2492
- # Advance to the stop position
2493
- if stop is not None:
2494
- m = stop + 1
2495
- next(islice(it, m, m), None)
2496
-
2497
- # stop is positive, so if start is negative they are not comparable
2498
- # and we need the rest of the items.
2499
- if start < 0:
2500
- i = start
2501
- n = None
2502
- # stop is None and start is positive, so we just need items up to
2503
- # the start index.
2504
- elif stop is None:
2505
- i = None
2506
- n = start + 1
2507
- # Both stop and start are positive, so they are comparable.
2508
- else:
2509
- i = None
2510
- n = start - stop
2511
- if n <= 0:
2512
- return
2513
-
2514
- cache = list(islice(it, n))
2515
-
2516
- yield from cache[i::step]
2517
-
2518
-
2519
- def always_reversible(iterable):
2520
- """An extension of :func:`reversed` that supports all iterables, not
2521
- just those which implement the ``Reversible`` or ``Sequence`` protocols.
2522
-
2523
- >>> print(*always_reversible(x for x in range(3)))
2524
- 2 1 0
2525
-
2526
- If the iterable is already reversible, this function returns the
2527
- result of :func:`reversed()`. If the iterable is not reversible,
2528
- this function will cache the remaining items in the iterable and
2529
- yield them in reverse order, which may require significant storage.
2530
- """
2531
- try:
2532
- return reversed(iterable)
2533
- except TypeError:
2534
- return reversed(list(iterable))
2535
-
2536
-
2537
- def consecutive_groups(iterable, ordering=lambda x: x):
2538
- """Yield groups of consecutive items using :func:`itertools.groupby`.
2539
- The *ordering* function determines whether two items are adjacent by
2540
- returning their position.
2541
-
2542
- By default, the ordering function is the identity function. This is
2543
- suitable for finding runs of numbers:
2544
-
2545
- >>> iterable = [1, 10, 11, 12, 20, 30, 31, 32, 33, 40]
2546
- >>> for group in consecutive_groups(iterable):
2547
- ... print(list(group))
2548
- [1]
2549
- [10, 11, 12]
2550
- [20]
2551
- [30, 31, 32, 33]
2552
- [40]
2553
-
2554
- For finding runs of adjacent letters, try using the :meth:`index` method
2555
- of a string of letters:
2556
-
2557
- >>> from string import ascii_lowercase
2558
- >>> iterable = 'abcdfgilmnop'
2559
- >>> ordering = ascii_lowercase.index
2560
- >>> for group in consecutive_groups(iterable, ordering):
2561
- ... print(list(group))
2562
- ['a', 'b', 'c', 'd']
2563
- ['f', 'g']
2564
- ['i']
2565
- ['l', 'm', 'n', 'o', 'p']
2566
-
2567
- Each group of consecutive items is an iterator that shares it source with
2568
- *iterable*. When an an output group is advanced, the previous group is
2569
- no longer available unless its elements are copied (e.g., into a ``list``).
2570
-
2571
- >>> iterable = [1, 2, 11, 12, 21, 22]
2572
- >>> saved_groups = []
2573
- >>> for group in consecutive_groups(iterable):
2574
- ... saved_groups.append(list(group)) # Copy group elements
2575
- >>> saved_groups
2576
- [[1, 2], [11, 12], [21, 22]]
2577
-
2578
- """
2579
- for k, g in groupby(
2580
- enumerate(iterable), key=lambda x: x[0] - ordering(x[1])
2581
- ):
2582
- yield map(itemgetter(1), g)
2583
-
2584
-
2585
- def difference(iterable, func=sub, *, initial=None):
2586
- """This function is the inverse of :func:`itertools.accumulate`. By default
2587
- it will compute the first difference of *iterable* using
2588
- :func:`operator.sub`:
2589
-
2590
- >>> from itertools import accumulate
2591
- >>> iterable = accumulate([0, 1, 2, 3, 4]) # produces 0, 1, 3, 6, 10
2592
- >>> list(difference(iterable))
2593
- [0, 1, 2, 3, 4]
2594
-
2595
- *func* defaults to :func:`operator.sub`, but other functions can be
2596
- specified. They will be applied as follows::
2597
-
2598
- A, B, C, D, ... --> A, func(B, A), func(C, B), func(D, C), ...
2599
-
2600
- For example, to do progressive division:
2601
-
2602
- >>> iterable = [1, 2, 6, 24, 120]
2603
- >>> func = lambda x, y: x // y
2604
- >>> list(difference(iterable, func))
2605
- [1, 2, 3, 4, 5]
2606
-
2607
- If the *initial* keyword is set, the first element will be skipped when
2608
- computing successive differences.
2609
-
2610
- >>> it = [10, 11, 13, 16] # from accumulate([1, 2, 3], initial=10)
2611
- >>> list(difference(it, initial=10))
2612
- [1, 2, 3]
2613
-
2614
- """
2615
- a, b = tee(iterable)
2616
- try:
2617
- first = [next(b)]
2618
- except StopIteration:
2619
- return iter([])
2620
-
2621
- if initial is not None:
2622
- first = []
2623
-
2624
- return chain(first, map(func, b, a))
2625
-
2626
-
2627
- class SequenceView(Sequence):
2628
- """Return a read-only view of the sequence object *target*.
2629
-
2630
- :class:`SequenceView` objects are analogous to Python's built-in
2631
- "dictionary view" types. They provide a dynamic view of a sequence's items,
2632
- meaning that when the sequence updates, so does the view.
2633
-
2634
- >>> seq = ['0', '1', '2']
2635
- >>> view = SequenceView(seq)
2636
- >>> view
2637
- SequenceView(['0', '1', '2'])
2638
- >>> seq.append('3')
2639
- >>> view
2640
- SequenceView(['0', '1', '2', '3'])
2641
-
2642
- Sequence views support indexing, slicing, and length queries. They act
2643
- like the underlying sequence, except they don't allow assignment:
2644
-
2645
- >>> view[1]
2646
- '1'
2647
- >>> view[1:-1]
2648
- ['1', '2']
2649
- >>> len(view)
2650
- 4
2651
-
2652
- Sequence views are useful as an alternative to copying, as they don't
2653
- require (much) extra storage.
2654
-
2655
- """
2656
-
2657
- def __init__(self, target):
2658
- if not isinstance(target, Sequence):
2659
- raise TypeError
2660
- self._target = target
2661
-
2662
- def __getitem__(self, index):
2663
- return self._target[index]
2664
-
2665
- def __len__(self):
2666
- return len(self._target)
2667
-
2668
- def __repr__(self):
2669
- return '{}({})'.format(self.__class__.__name__, repr(self._target))
2670
-
2671
-
2672
- class seekable:
2673
- """Wrap an iterator to allow for seeking backward and forward. This
2674
- progressively caches the items in the source iterable so they can be
2675
- re-visited.
2676
-
2677
- Call :meth:`seek` with an index to seek to that position in the source
2678
- iterable.
2679
-
2680
- To "reset" an iterator, seek to ``0``:
2681
-
2682
- >>> from itertools import count
2683
- >>> it = seekable((str(n) for n in count()))
2684
- >>> next(it), next(it), next(it)
2685
- ('0', '1', '2')
2686
- >>> it.seek(0)
2687
- >>> next(it), next(it), next(it)
2688
- ('0', '1', '2')
2689
- >>> next(it)
2690
- '3'
2691
-
2692
- You can also seek forward:
2693
-
2694
- >>> it = seekable((str(n) for n in range(20)))
2695
- >>> it.seek(10)
2696
- >>> next(it)
2697
- '10'
2698
- >>> it.seek(20) # Seeking past the end of the source isn't a problem
2699
- >>> list(it)
2700
- []
2701
- >>> it.seek(0) # Resetting works even after hitting the end
2702
- >>> next(it), next(it), next(it)
2703
- ('0', '1', '2')
2704
-
2705
- Call :meth:`peek` to look ahead one item without advancing the iterator:
2706
-
2707
- >>> it = seekable('1234')
2708
- >>> it.peek()
2709
- '1'
2710
- >>> list(it)
2711
- ['1', '2', '3', '4']
2712
- >>> it.peek(default='empty')
2713
- 'empty'
2714
-
2715
- Before the iterator is at its end, calling :func:`bool` on it will return
2716
- ``True``. After it will return ``False``:
2717
-
2718
- >>> it = seekable('5678')
2719
- >>> bool(it)
2720
- True
2721
- >>> list(it)
2722
- ['5', '6', '7', '8']
2723
- >>> bool(it)
2724
- False
2725
-
2726
- You may view the contents of the cache with the :meth:`elements` method.
2727
- That returns a :class:`SequenceView`, a view that updates automatically:
2728
-
2729
- >>> it = seekable((str(n) for n in range(10)))
2730
- >>> next(it), next(it), next(it)
2731
- ('0', '1', '2')
2732
- >>> elements = it.elements()
2733
- >>> elements
2734
- SequenceView(['0', '1', '2'])
2735
- >>> next(it)
2736
- '3'
2737
- >>> elements
2738
- SequenceView(['0', '1', '2', '3'])
2739
-
2740
- By default, the cache grows as the source iterable progresses, so beware of
2741
- wrapping very large or infinite iterables. Supply *maxlen* to limit the
2742
- size of the cache (this of course limits how far back you can seek).
2743
-
2744
- >>> from itertools import count
2745
- >>> it = seekable((str(n) for n in count()), maxlen=2)
2746
- >>> next(it), next(it), next(it), next(it)
2747
- ('0', '1', '2', '3')
2748
- >>> list(it.elements())
2749
- ['2', '3']
2750
- >>> it.seek(0)
2751
- >>> next(it), next(it), next(it), next(it)
2752
- ('2', '3', '4', '5')
2753
- >>> next(it)
2754
- '6'
2755
-
2756
- """
2757
-
2758
- def __init__(self, iterable, maxlen=None):
2759
- self._source = iter(iterable)
2760
- if maxlen is None:
2761
- self._cache = []
2762
- else:
2763
- self._cache = deque([], maxlen)
2764
- self._index = None
2765
-
2766
- def __iter__(self):
2767
- return self
2768
-
2769
- def __next__(self):
2770
- if self._index is not None:
2771
- try:
2772
- item = self._cache[self._index]
2773
- except IndexError:
2774
- self._index = None
2775
- else:
2776
- self._index += 1
2777
- return item
2778
-
2779
- item = next(self._source)
2780
- self._cache.append(item)
2781
- return item
2782
-
2783
- def __bool__(self):
2784
- try:
2785
- self.peek()
2786
- except StopIteration:
2787
- return False
2788
- return True
2789
-
2790
- def peek(self, default=_marker):
2791
- try:
2792
- peeked = next(self)
2793
- except StopIteration:
2794
- if default is _marker:
2795
- raise
2796
- return default
2797
- if self._index is None:
2798
- self._index = len(self._cache)
2799
- self._index -= 1
2800
- return peeked
2801
-
2802
- def elements(self):
2803
- return SequenceView(self._cache)
2804
-
2805
- def seek(self, index):
2806
- self._index = index
2807
- remainder = index - len(self._cache)
2808
- if remainder > 0:
2809
- consume(self, remainder)
2810
-
2811
-
2812
- class run_length:
2813
- """
2814
- :func:`run_length.encode` compresses an iterable with run-length encoding.
2815
- It yields groups of repeated items with the count of how many times they
2816
- were repeated:
2817
-
2818
- >>> uncompressed = 'abbcccdddd'
2819
- >>> list(run_length.encode(uncompressed))
2820
- [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
2821
-
2822
- :func:`run_length.decode` decompresses an iterable that was previously
2823
- compressed with run-length encoding. It yields the items of the
2824
- decompressed iterable:
2825
-
2826
- >>> compressed = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
2827
- >>> list(run_length.decode(compressed))
2828
- ['a', 'b', 'b', 'c', 'c', 'c', 'd', 'd', 'd', 'd']
2829
-
2830
- """
2831
-
2832
- @staticmethod
2833
- def encode(iterable):
2834
- return ((k, ilen(g)) for k, g in groupby(iterable))
2835
-
2836
- @staticmethod
2837
- def decode(iterable):
2838
- return chain.from_iterable(repeat(k, n) for k, n in iterable)
2839
-
2840
-
2841
- def exactly_n(iterable, n, predicate=bool):
2842
- """Return ``True`` if exactly ``n`` items in the iterable are ``True``
2843
- according to the *predicate* function.
2844
-
2845
- >>> exactly_n([True, True, False], 2)
2846
- True
2847
- >>> exactly_n([True, True, False], 1)
2848
- False
2849
- >>> exactly_n([0, 1, 2, 3, 4, 5], 3, lambda x: x < 3)
2850
- True
2851
-
2852
- The iterable will be advanced until ``n + 1`` truthy items are encountered,
2853
- so avoid calling it on infinite iterables.
2854
-
2855
- """
2856
- return len(take(n + 1, filter(predicate, iterable))) == n
2857
-
2858
-
2859
- def circular_shifts(iterable):
2860
- """Return a list of circular shifts of *iterable*.
2861
-
2862
- >>> circular_shifts(range(4))
2863
- [(0, 1, 2, 3), (1, 2, 3, 0), (2, 3, 0, 1), (3, 0, 1, 2)]
2864
- """
2865
- lst = list(iterable)
2866
- return take(len(lst), windowed(cycle(lst), len(lst)))
2867
-
2868
-
2869
- def make_decorator(wrapping_func, result_index=0):
2870
- """Return a decorator version of *wrapping_func*, which is a function that
2871
- modifies an iterable. *result_index* is the position in that function's
2872
- signature where the iterable goes.
2873
-
2874
- This lets you use itertools on the "production end," i.e. at function
2875
- definition. This can augment what the function returns without changing the
2876
- function's code.
2877
-
2878
- For example, to produce a decorator version of :func:`chunked`:
2879
-
2880
- >>> from more_itertools import chunked
2881
- >>> chunker = make_decorator(chunked, result_index=0)
2882
- >>> @chunker(3)
2883
- ... def iter_range(n):
2884
- ... return iter(range(n))
2885
- ...
2886
- >>> list(iter_range(9))
2887
- [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
2888
-
2889
- To only allow truthy items to be returned:
2890
-
2891
- >>> truth_serum = make_decorator(filter, result_index=1)
2892
- >>> @truth_serum(bool)
2893
- ... def boolean_test():
2894
- ... return [0, 1, '', ' ', False, True]
2895
- ...
2896
- >>> list(boolean_test())
2897
- [1, ' ', True]
2898
-
2899
- The :func:`peekable` and :func:`seekable` wrappers make for practical
2900
- decorators:
2901
-
2902
- >>> from more_itertools import peekable
2903
- >>> peekable_function = make_decorator(peekable)
2904
- >>> @peekable_function()
2905
- ... def str_range(*args):
2906
- ... return (str(x) for x in range(*args))
2907
- ...
2908
- >>> it = str_range(1, 20, 2)
2909
- >>> next(it), next(it), next(it)
2910
- ('1', '3', '5')
2911
- >>> it.peek()
2912
- '7'
2913
- >>> next(it)
2914
- '7'
2915
-
2916
- """
2917
- # See https://sites.google.com/site/bbayles/index/decorator_factory for
2918
- # notes on how this works.
2919
- def decorator(*wrapping_args, **wrapping_kwargs):
2920
- def outer_wrapper(f):
2921
- def inner_wrapper(*args, **kwargs):
2922
- result = f(*args, **kwargs)
2923
- wrapping_args_ = list(wrapping_args)
2924
- wrapping_args_.insert(result_index, result)
2925
- return wrapping_func(*wrapping_args_, **wrapping_kwargs)
2926
-
2927
- return inner_wrapper
2928
-
2929
- return outer_wrapper
2930
-
2931
- return decorator
2932
-
2933
-
2934
- def map_reduce(iterable, keyfunc, valuefunc=None, reducefunc=None):
2935
- """Return a dictionary that maps the items in *iterable* to categories
2936
- defined by *keyfunc*, transforms them with *valuefunc*, and
2937
- then summarizes them by category with *reducefunc*.
2938
-
2939
- *valuefunc* defaults to the identity function if it is unspecified.
2940
- If *reducefunc* is unspecified, no summarization takes place:
2941
-
2942
- >>> keyfunc = lambda x: x.upper()
2943
- >>> result = map_reduce('abbccc', keyfunc)
2944
- >>> sorted(result.items())
2945
- [('A', ['a']), ('B', ['b', 'b']), ('C', ['c', 'c', 'c'])]
2946
-
2947
- Specifying *valuefunc* transforms the categorized items:
2948
-
2949
- >>> keyfunc = lambda x: x.upper()
2950
- >>> valuefunc = lambda x: 1
2951
- >>> result = map_reduce('abbccc', keyfunc, valuefunc)
2952
- >>> sorted(result.items())
2953
- [('A', [1]), ('B', [1, 1]), ('C', [1, 1, 1])]
2954
-
2955
- Specifying *reducefunc* summarizes the categorized items:
2956
-
2957
- >>> keyfunc = lambda x: x.upper()
2958
- >>> valuefunc = lambda x: 1
2959
- >>> reducefunc = sum
2960
- >>> result = map_reduce('abbccc', keyfunc, valuefunc, reducefunc)
2961
- >>> sorted(result.items())
2962
- [('A', 1), ('B', 2), ('C', 3)]
2963
-
2964
- You may want to filter the input iterable before applying the map/reduce
2965
- procedure:
2966
-
2967
- >>> all_items = range(30)
2968
- >>> items = [x for x in all_items if 10 <= x <= 20] # Filter
2969
- >>> keyfunc = lambda x: x % 2 # Evens map to 0; odds to 1
2970
- >>> categories = map_reduce(items, keyfunc=keyfunc)
2971
- >>> sorted(categories.items())
2972
- [(0, [10, 12, 14, 16, 18, 20]), (1, [11, 13, 15, 17, 19])]
2973
- >>> summaries = map_reduce(items, keyfunc=keyfunc, reducefunc=sum)
2974
- >>> sorted(summaries.items())
2975
- [(0, 90), (1, 75)]
2976
-
2977
- Note that all items in the iterable are gathered into a list before the
2978
- summarization step, which may require significant storage.
2979
-
2980
- The returned object is a :obj:`collections.defaultdict` with the
2981
- ``default_factory`` set to ``None``, such that it behaves like a normal
2982
- dictionary.
2983
-
2984
- """
2985
- valuefunc = (lambda x: x) if (valuefunc is None) else valuefunc
2986
-
2987
- ret = defaultdict(list)
2988
- for item in iterable:
2989
- key = keyfunc(item)
2990
- value = valuefunc(item)
2991
- ret[key].append(value)
2992
-
2993
- if reducefunc is not None:
2994
- for key, value_list in ret.items():
2995
- ret[key] = reducefunc(value_list)
2996
-
2997
- ret.default_factory = None
2998
- return ret
2999
-
3000
-
3001
- def rlocate(iterable, pred=bool, window_size=None):
3002
- """Yield the index of each item in *iterable* for which *pred* returns
3003
- ``True``, starting from the right and moving left.
3004
-
3005
- *pred* defaults to :func:`bool`, which will select truthy items:
3006
-
3007
- >>> list(rlocate([0, 1, 1, 0, 1, 0, 0])) # Truthy at 1, 2, and 4
3008
- [4, 2, 1]
3009
-
3010
- Set *pred* to a custom function to, e.g., find the indexes for a particular
3011
- item:
3012
-
3013
- >>> iterable = iter('abcb')
3014
- >>> pred = lambda x: x == 'b'
3015
- >>> list(rlocate(iterable, pred))
3016
- [3, 1]
3017
-
3018
- If *window_size* is given, then the *pred* function will be called with
3019
- that many items. This enables searching for sub-sequences:
3020
-
3021
- >>> iterable = [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]
3022
- >>> pred = lambda *args: args == (1, 2, 3)
3023
- >>> list(rlocate(iterable, pred=pred, window_size=3))
3024
- [9, 5, 1]
3025
-
3026
- Beware, this function won't return anything for infinite iterables.
3027
- If *iterable* is reversible, ``rlocate`` will reverse it and search from
3028
- the right. Otherwise, it will search from the left and return the results
3029
- in reverse order.
3030
-
3031
- See :func:`locate` to for other example applications.
3032
-
3033
- """
3034
- if window_size is None:
3035
- try:
3036
- len_iter = len(iterable)
3037
- return (len_iter - i - 1 for i in locate(reversed(iterable), pred))
3038
- except TypeError:
3039
- pass
3040
-
3041
- return reversed(list(locate(iterable, pred, window_size)))
3042
-
3043
-
3044
- def replace(iterable, pred, substitutes, count=None, window_size=1):
3045
- """Yield the items from *iterable*, replacing the items for which *pred*
3046
- returns ``True`` with the items from the iterable *substitutes*.
3047
-
3048
- >>> iterable = [1, 1, 0, 1, 1, 0, 1, 1]
3049
- >>> pred = lambda x: x == 0
3050
- >>> substitutes = (2, 3)
3051
- >>> list(replace(iterable, pred, substitutes))
3052
- [1, 1, 2, 3, 1, 1, 2, 3, 1, 1]
3053
-
3054
- If *count* is given, the number of replacements will be limited:
3055
-
3056
- >>> iterable = [1, 1, 0, 1, 1, 0, 1, 1, 0]
3057
- >>> pred = lambda x: x == 0
3058
- >>> substitutes = [None]
3059
- >>> list(replace(iterable, pred, substitutes, count=2))
3060
- [1, 1, None, 1, 1, None, 1, 1, 0]
3061
-
3062
- Use *window_size* to control the number of items passed as arguments to
3063
- *pred*. This allows for locating and replacing subsequences.
3064
-
3065
- >>> iterable = [0, 1, 2, 5, 0, 1, 2, 5]
3066
- >>> window_size = 3
3067
- >>> pred = lambda *args: args == (0, 1, 2) # 3 items passed to pred
3068
- >>> substitutes = [3, 4] # Splice in these items
3069
- >>> list(replace(iterable, pred, substitutes, window_size=window_size))
3070
- [3, 4, 5, 3, 4, 5]
3071
-
3072
- """
3073
- if window_size < 1:
3074
- raise ValueError('window_size must be at least 1')
3075
-
3076
- # Save the substitutes iterable, since it's used more than once
3077
- substitutes = tuple(substitutes)
3078
-
3079
- # Add padding such that the number of windows matches the length of the
3080
- # iterable
3081
- it = chain(iterable, [_marker] * (window_size - 1))
3082
- windows = windowed(it, window_size)
3083
-
3084
- n = 0
3085
- for w in windows:
3086
- # If the current window matches our predicate (and we haven't hit
3087
- # our maximum number of replacements), splice in the substitutes
3088
- # and then consume the following windows that overlap with this one.
3089
- # For example, if the iterable is (0, 1, 2, 3, 4...)
3090
- # and the window size is 2, we have (0, 1), (1, 2), (2, 3)...
3091
- # If the predicate matches on (0, 1), we need to zap (0, 1) and (1, 2)
3092
- if pred(*w):
3093
- if (count is None) or (n < count):
3094
- n += 1
3095
- yield from substitutes
3096
- consume(windows, window_size - 1)
3097
- continue
3098
-
3099
- # If there was no match (or we've reached the replacement limit),
3100
- # yield the first item from the window.
3101
- if w and (w[0] is not _marker):
3102
- yield w[0]
3103
-
3104
-
3105
- def partitions(iterable):
3106
- """Yield all possible order-preserving partitions of *iterable*.
3107
-
3108
- >>> iterable = 'abc'
3109
- >>> for part in partitions(iterable):
3110
- ... print([''.join(p) for p in part])
3111
- ['abc']
3112
- ['a', 'bc']
3113
- ['ab', 'c']
3114
- ['a', 'b', 'c']
3115
-
3116
- This is unrelated to :func:`partition`.
3117
-
3118
- """
3119
- sequence = list(iterable)
3120
- n = len(sequence)
3121
- for i in powerset(range(1, n)):
3122
- yield [sequence[i:j] for i, j in zip((0,) + i, i + (n,))]
3123
-
3124
-
3125
- def set_partitions(iterable, k=None):
3126
- """
3127
- Yield the set partitions of *iterable* into *k* parts. Set partitions are
3128
- not order-preserving.
3129
-
3130
- >>> iterable = 'abc'
3131
- >>> for part in set_partitions(iterable, 2):
3132
- ... print([''.join(p) for p in part])
3133
- ['a', 'bc']
3134
- ['ab', 'c']
3135
- ['b', 'ac']
3136
-
3137
-
3138
- If *k* is not given, every set partition is generated.
3139
-
3140
- >>> iterable = 'abc'
3141
- >>> for part in set_partitions(iterable):
3142
- ... print([''.join(p) for p in part])
3143
- ['abc']
3144
- ['a', 'bc']
3145
- ['ab', 'c']
3146
- ['b', 'ac']
3147
- ['a', 'b', 'c']
3148
-
3149
- """
3150
- L = list(iterable)
3151
- n = len(L)
3152
- if k is not None:
3153
- if k < 1:
3154
- raise ValueError(
3155
- "Can't partition in a negative or zero number of groups"
3156
- )
3157
- elif k > n:
3158
- return
3159
-
3160
- def set_partitions_helper(L, k):
3161
- n = len(L)
3162
- if k == 1:
3163
- yield [L]
3164
- elif n == k:
3165
- yield [[s] for s in L]
3166
- else:
3167
- e, *M = L
3168
- for p in set_partitions_helper(M, k - 1):
3169
- yield [[e], *p]
3170
- for p in set_partitions_helper(M, k):
3171
- for i in range(len(p)):
3172
- yield p[:i] + [[e] + p[i]] + p[i + 1 :]
3173
-
3174
- if k is None:
3175
- for k in range(1, n + 1):
3176
- yield from set_partitions_helper(L, k)
3177
- else:
3178
- yield from set_partitions_helper(L, k)
3179
-
3180
-
3181
- class time_limited:
3182
- """
3183
- Yield items from *iterable* until *limit_seconds* have passed.
3184
- If the time limit expires before all items have been yielded, the
3185
- ``timed_out`` parameter will be set to ``True``.
3186
-
3187
- >>> from time import sleep
3188
- >>> def generator():
3189
- ... yield 1
3190
- ... yield 2
3191
- ... sleep(0.2)
3192
- ... yield 3
3193
- >>> iterable = time_limited(0.1, generator())
3194
- >>> list(iterable)
3195
- [1, 2]
3196
- >>> iterable.timed_out
3197
- True
3198
-
3199
- Note that the time is checked before each item is yielded, and iteration
3200
- stops if the time elapsed is greater than *limit_seconds*. If your time
3201
- limit is 1 second, but it takes 2 seconds to generate the first item from
3202
- the iterable, the function will run for 2 seconds and not yield anything.
3203
-
3204
- """
3205
-
3206
- def __init__(self, limit_seconds, iterable):
3207
- if limit_seconds < 0:
3208
- raise ValueError('limit_seconds must be positive')
3209
- self.limit_seconds = limit_seconds
3210
- self._iterable = iter(iterable)
3211
- self._start_time = monotonic()
3212
- self.timed_out = False
3213
-
3214
- def __iter__(self):
3215
- return self
3216
-
3217
- def __next__(self):
3218
- item = next(self._iterable)
3219
- if monotonic() - self._start_time > self.limit_seconds:
3220
- self.timed_out = True
3221
- raise StopIteration
3222
-
3223
- return item
3224
-
3225
-
3226
- def only(iterable, default=None, too_long=None):
3227
- """If *iterable* has only one item, return it.
3228
- If it has zero items, return *default*.
3229
- If it has more than one item, raise the exception given by *too_long*,
3230
- which is ``ValueError`` by default.
3231
-
3232
- >>> only([], default='missing')
3233
- 'missing'
3234
- >>> only([1])
3235
- 1
3236
- >>> only([1, 2]) # doctest: +IGNORE_EXCEPTION_DETAIL
3237
- Traceback (most recent call last):
3238
- ...
3239
- ValueError: Expected exactly one item in iterable, but got 1, 2,
3240
- and perhaps more.'
3241
- >>> only([1, 2], too_long=TypeError) # doctest: +IGNORE_EXCEPTION_DETAIL
3242
- Traceback (most recent call last):
3243
- ...
3244
- TypeError
3245
-
3246
- Note that :func:`only` attempts to advance *iterable* twice to ensure there
3247
- is only one item. See :func:`spy` or :func:`peekable` to check
3248
- iterable contents less destructively.
3249
- """
3250
- it = iter(iterable)
3251
- first_value = next(it, default)
3252
-
3253
- try:
3254
- second_value = next(it)
3255
- except StopIteration:
3256
- pass
3257
- else:
3258
- msg = (
3259
- 'Expected exactly one item in iterable, but got {!r}, {!r}, '
3260
- 'and perhaps more.'.format(first_value, second_value)
3261
- )
3262
- raise too_long or ValueError(msg)
3263
-
3264
- return first_value
3265
-
3266
-
3267
- class _IChunk:
3268
- def __init__(self, iterable, n):
3269
- self._it = islice(iterable, n)
3270
- self._cache = deque()
3271
-
3272
- def fill_cache(self):
3273
- self._cache.extend(self._it)
3274
-
3275
- def __iter__(self):
3276
- return self
3277
-
3278
- def __next__(self):
3279
- try:
3280
- return next(self._it)
3281
- except StopIteration:
3282
- if self._cache:
3283
- return self._cache.popleft()
3284
- else:
3285
- raise
3286
-
3287
-
3288
- def ichunked(iterable, n):
3289
- """Break *iterable* into sub-iterables with *n* elements each.
3290
- :func:`ichunked` is like :func:`chunked`, but it yields iterables
3291
- instead of lists.
3292
-
3293
- If the sub-iterables are read in order, the elements of *iterable*
3294
- won't be stored in memory.
3295
- If they are read out of order, :func:`itertools.tee` is used to cache
3296
- elements as necessary.
3297
-
3298
- >>> from itertools import count
3299
- >>> all_chunks = ichunked(count(), 4)
3300
- >>> c_1, c_2, c_3 = next(all_chunks), next(all_chunks), next(all_chunks)
3301
- >>> list(c_2) # c_1's elements have been cached; c_3's haven't been
3302
- [4, 5, 6, 7]
3303
- >>> list(c_1)
3304
- [0, 1, 2, 3]
3305
- >>> list(c_3)
3306
- [8, 9, 10, 11]
3307
-
3308
- """
3309
- source = peekable(iter(iterable))
3310
- ichunk_marker = object()
3311
- while True:
3312
- # Check to see whether we're at the end of the source iterable
3313
- item = source.peek(ichunk_marker)
3314
- if item is ichunk_marker:
3315
- return
3316
-
3317
- chunk = _IChunk(source, n)
3318
- yield chunk
3319
-
3320
- # Advance the source iterable and fill previous chunk's cache
3321
- chunk.fill_cache()
3322
-
3323
-
3324
- def iequals(*iterables):
3325
- """Return ``True`` if all given *iterables* are equal to each other,
3326
- which means that they contain the same elements in the same order.
3327
-
3328
- The function is useful for comparing iterables of different data types
3329
- or iterables that do not support equality checks.
3330
-
3331
- >>> iequals("abc", ['a', 'b', 'c'], ('a', 'b', 'c'), iter("abc"))
3332
- True
3333
-
3334
- >>> iequals("abc", "acb")
3335
- False
3336
-
3337
- Not to be confused with :func:`all_equals`, which checks whether all
3338
- elements of iterable are equal to each other.
3339
-
3340
- """
3341
- return all(map(all_equal, zip_longest(*iterables, fillvalue=object())))
3342
-
3343
-
3344
- def distinct_combinations(iterable, r):
3345
- """Yield the distinct combinations of *r* items taken from *iterable*.
3346
-
3347
- >>> list(distinct_combinations([0, 0, 1], 2))
3348
- [(0, 0), (0, 1)]
3349
-
3350
- Equivalent to ``set(combinations(iterable))``, except duplicates are not
3351
- generated and thrown away. For larger input sequences this is much more
3352
- efficient.
3353
-
3354
- """
3355
- if r < 0:
3356
- raise ValueError('r must be non-negative')
3357
- elif r == 0:
3358
- yield ()
3359
- return
3360
- pool = tuple(iterable)
3361
- generators = [unique_everseen(enumerate(pool), key=itemgetter(1))]
3362
- current_combo = [None] * r
3363
- level = 0
3364
- while generators:
3365
- try:
3366
- cur_idx, p = next(generators[-1])
3367
- except StopIteration:
3368
- generators.pop()
3369
- level -= 1
3370
- continue
3371
- current_combo[level] = p
3372
- if level + 1 == r:
3373
- yield tuple(current_combo)
3374
- else:
3375
- generators.append(
3376
- unique_everseen(
3377
- enumerate(pool[cur_idx + 1 :], cur_idx + 1),
3378
- key=itemgetter(1),
3379
- )
3380
- )
3381
- level += 1
3382
-
3383
-
3384
- def filter_except(validator, iterable, *exceptions):
3385
- """Yield the items from *iterable* for which the *validator* function does
3386
- not raise one of the specified *exceptions*.
3387
-
3388
- *validator* is called for each item in *iterable*.
3389
- It should be a function that accepts one argument and raises an exception
3390
- if that item is not valid.
3391
-
3392
- >>> iterable = ['1', '2', 'three', '4', None]
3393
- >>> list(filter_except(int, iterable, ValueError, TypeError))
3394
- ['1', '2', '4']
3395
-
3396
- If an exception other than one given by *exceptions* is raised by
3397
- *validator*, it is raised like normal.
3398
- """
3399
- for item in iterable:
3400
- try:
3401
- validator(item)
3402
- except exceptions:
3403
- pass
3404
- else:
3405
- yield item
3406
-
3407
-
3408
- def map_except(function, iterable, *exceptions):
3409
- """Transform each item from *iterable* with *function* and yield the
3410
- result, unless *function* raises one of the specified *exceptions*.
3411
-
3412
- *function* is called to transform each item in *iterable*.
3413
- It should accept one argument.
3414
-
3415
- >>> iterable = ['1', '2', 'three', '4', None]
3416
- >>> list(map_except(int, iterable, ValueError, TypeError))
3417
- [1, 2, 4]
3418
-
3419
- If an exception other than one given by *exceptions* is raised by
3420
- *function*, it is raised like normal.
3421
- """
3422
- for item in iterable:
3423
- try:
3424
- yield function(item)
3425
- except exceptions:
3426
- pass
3427
-
3428
-
3429
- def map_if(iterable, pred, func, func_else=lambda x: x):
3430
- """Evaluate each item from *iterable* using *pred*. If the result is
3431
- equivalent to ``True``, transform the item with *func* and yield it.
3432
- Otherwise, transform the item with *func_else* and yield it.
3433
-
3434
- *pred*, *func*, and *func_else* should each be functions that accept
3435
- one argument. By default, *func_else* is the identity function.
3436
-
3437
- >>> from math import sqrt
3438
- >>> iterable = list(range(-5, 5))
3439
- >>> iterable
3440
- [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]
3441
- >>> list(map_if(iterable, lambda x: x > 3, lambda x: 'toobig'))
3442
- [-5, -4, -3, -2, -1, 0, 1, 2, 3, 'toobig']
3443
- >>> list(map_if(iterable, lambda x: x >= 0,
3444
- ... lambda x: f'{sqrt(x):.2f}', lambda x: None))
3445
- [None, None, None, None, None, '0.00', '1.00', '1.41', '1.73', '2.00']
3446
- """
3447
- for item in iterable:
3448
- yield func(item) if pred(item) else func_else(item)
3449
-
3450
-
3451
- def _sample_unweighted(iterable, k):
3452
- # Implementation of "Algorithm L" from the 1994 paper by Kim-Hung Li:
3453
- # "Reservoir-Sampling Algorithms of Time Complexity O(n(1+log(N/n)))".
3454
-
3455
- # Fill up the reservoir (collection of samples) with the first `k` samples
3456
- reservoir = take(k, iterable)
3457
-
3458
- # Generate random number that's the largest in a sample of k U(0,1) numbers
3459
- # Largest order statistic: https://en.wikipedia.org/wiki/Order_statistic
3460
- W = exp(log(random()) / k)
3461
-
3462
- # The number of elements to skip before changing the reservoir is a random
3463
- # number with a geometric distribution. Sample it using random() and logs.
3464
- next_index = k + floor(log(random()) / log(1 - W))
3465
-
3466
- for index, element in enumerate(iterable, k):
3467
-
3468
- if index == next_index:
3469
- reservoir[randrange(k)] = element
3470
- # The new W is the largest in a sample of k U(0, `old_W`) numbers
3471
- W *= exp(log(random()) / k)
3472
- next_index += floor(log(random()) / log(1 - W)) + 1
3473
-
3474
- return reservoir
3475
-
3476
-
3477
- def _sample_weighted(iterable, k, weights):
3478
- # Implementation of "A-ExpJ" from the 2006 paper by Efraimidis et al. :
3479
- # "Weighted random sampling with a reservoir".
3480
-
3481
- # Log-transform for numerical stability for weights that are small/large
3482
- weight_keys = (log(random()) / weight for weight in weights)
3483
-
3484
- # Fill up the reservoir (collection of samples) with the first `k`
3485
- # weight-keys and elements, then heapify the list.
3486
- reservoir = take(k, zip(weight_keys, iterable))
3487
- heapify(reservoir)
3488
-
3489
- # The number of jumps before changing the reservoir is a random variable
3490
- # with an exponential distribution. Sample it using random() and logs.
3491
- smallest_weight_key, _ = reservoir[0]
3492
- weights_to_skip = log(random()) / smallest_weight_key
3493
-
3494
- for weight, element in zip(weights, iterable):
3495
- if weight >= weights_to_skip:
3496
- # The notation here is consistent with the paper, but we store
3497
- # the weight-keys in log-space for better numerical stability.
3498
- smallest_weight_key, _ = reservoir[0]
3499
- t_w = exp(weight * smallest_weight_key)
3500
- r_2 = uniform(t_w, 1) # generate U(t_w, 1)
3501
- weight_key = log(r_2) / weight
3502
- heapreplace(reservoir, (weight_key, element))
3503
- smallest_weight_key, _ = reservoir[0]
3504
- weights_to_skip = log(random()) / smallest_weight_key
3505
- else:
3506
- weights_to_skip -= weight
3507
-
3508
- # Equivalent to [element for weight_key, element in sorted(reservoir)]
3509
- return [heappop(reservoir)[1] for _ in range(k)]
3510
-
3511
-
3512
- def sample(iterable, k, weights=None):
3513
- """Return a *k*-length list of elements chosen (without replacement)
3514
- from the *iterable*. Like :func:`random.sample`, but works on iterables
3515
- of unknown length.
3516
-
3517
- >>> iterable = range(100)
3518
- >>> sample(iterable, 5) # doctest: +SKIP
3519
- [81, 60, 96, 16, 4]
3520
-
3521
- An iterable with *weights* may also be given:
3522
-
3523
- >>> iterable = range(100)
3524
- >>> weights = (i * i + 1 for i in range(100))
3525
- >>> sampled = sample(iterable, 5, weights=weights) # doctest: +SKIP
3526
- [79, 67, 74, 66, 78]
3527
-
3528
- The algorithm can also be used to generate weighted random permutations.
3529
- The relative weight of each item determines the probability that it
3530
- appears late in the permutation.
3531
-
3532
- >>> data = "abcdefgh"
3533
- >>> weights = range(1, len(data) + 1)
3534
- >>> sample(data, k=len(data), weights=weights) # doctest: +SKIP
3535
- ['c', 'a', 'b', 'e', 'g', 'd', 'h', 'f']
3536
- """
3537
- if k == 0:
3538
- return []
3539
-
3540
- iterable = iter(iterable)
3541
- if weights is None:
3542
- return _sample_unweighted(iterable, k)
3543
- else:
3544
- weights = iter(weights)
3545
- return _sample_weighted(iterable, k, weights)
3546
-
3547
-
3548
- def is_sorted(iterable, key=None, reverse=False, strict=False):
3549
- """Returns ``True`` if the items of iterable are in sorted order, and
3550
- ``False`` otherwise. *key* and *reverse* have the same meaning that they do
3551
- in the built-in :func:`sorted` function.
3552
-
3553
- >>> is_sorted(['1', '2', '3', '4', '5'], key=int)
3554
- True
3555
- >>> is_sorted([5, 4, 3, 1, 2], reverse=True)
3556
- False
3557
-
3558
- If *strict*, tests for strict sorting, that is, returns ``False`` if equal
3559
- elements are found:
3560
-
3561
- >>> is_sorted([1, 2, 2])
3562
- True
3563
- >>> is_sorted([1, 2, 2], strict=True)
3564
- False
3565
-
3566
- The function returns ``False`` after encountering the first out-of-order
3567
- item. If there are no out-of-order items, the iterable is exhausted.
3568
- """
3569
-
3570
- compare = (le if reverse else ge) if strict else (lt if reverse else gt)
3571
- it = iterable if key is None else map(key, iterable)
3572
- return not any(starmap(compare, pairwise(it)))
3573
-
3574
-
3575
- class AbortThread(BaseException):
3576
- pass
3577
-
3578
-
3579
- class callback_iter:
3580
- """Convert a function that uses callbacks to an iterator.
3581
-
3582
- Let *func* be a function that takes a `callback` keyword argument.
3583
- For example:
3584
-
3585
- >>> def func(callback=None):
3586
- ... for i, c in [(1, 'a'), (2, 'b'), (3, 'c')]:
3587
- ... if callback:
3588
- ... callback(i, c)
3589
- ... return 4
3590
-
3591
-
3592
- Use ``with callback_iter(func)`` to get an iterator over the parameters
3593
- that are delivered to the callback.
3594
-
3595
- >>> with callback_iter(func) as it:
3596
- ... for args, kwargs in it:
3597
- ... print(args)
3598
- (1, 'a')
3599
- (2, 'b')
3600
- (3, 'c')
3601
-
3602
- The function will be called in a background thread. The ``done`` property
3603
- indicates whether it has completed execution.
3604
-
3605
- >>> it.done
3606
- True
3607
-
3608
- If it completes successfully, its return value will be available
3609
- in the ``result`` property.
3610
-
3611
- >>> it.result
3612
- 4
3613
-
3614
- Notes:
3615
-
3616
- * If the function uses some keyword argument besides ``callback``, supply
3617
- *callback_kwd*.
3618
- * If it finished executing, but raised an exception, accessing the
3619
- ``result`` property will raise the same exception.
3620
- * If it hasn't finished executing, accessing the ``result``
3621
- property from within the ``with`` block will raise ``RuntimeError``.
3622
- * If it hasn't finished executing, accessing the ``result`` property from
3623
- outside the ``with`` block will raise a
3624
- ``more_itertools.AbortThread`` exception.
3625
- * Provide *wait_seconds* to adjust how frequently the it is polled for
3626
- output.
3627
-
3628
- """
3629
-
3630
- def __init__(self, func, callback_kwd='callback', wait_seconds=0.1):
3631
- self._func = func
3632
- self._callback_kwd = callback_kwd
3633
- self._aborted = False
3634
- self._future = None
3635
- self._wait_seconds = wait_seconds
3636
- # Lazily import concurrent.future
3637
- self._executor = __import__(
3638
- 'concurrent.futures'
3639
- ).futures.ThreadPoolExecutor(max_workers=1)
3640
- self._iterator = self._reader()
3641
-
3642
- def __enter__(self):
3643
- return self
3644
-
3645
- def __exit__(self, exc_type, exc_value, traceback):
3646
- self._aborted = True
3647
- self._executor.shutdown()
3648
-
3649
- def __iter__(self):
3650
- return self
3651
-
3652
- def __next__(self):
3653
- return next(self._iterator)
3654
-
3655
- @property
3656
- def done(self):
3657
- if self._future is None:
3658
- return False
3659
- return self._future.done()
3660
-
3661
- @property
3662
- def result(self):
3663
- if not self.done:
3664
- raise RuntimeError('Function has not yet completed')
3665
-
3666
- return self._future.result()
3667
-
3668
- def _reader(self):
3669
- q = Queue()
3670
-
3671
- def callback(*args, **kwargs):
3672
- if self._aborted:
3673
- raise AbortThread('canceled by user')
3674
-
3675
- q.put((args, kwargs))
3676
-
3677
- self._future = self._executor.submit(
3678
- self._func, **{self._callback_kwd: callback}
3679
- )
3680
-
3681
- while True:
3682
- try:
3683
- item = q.get(timeout=self._wait_seconds)
3684
- except Empty:
3685
- pass
3686
- else:
3687
- q.task_done()
3688
- yield item
3689
-
3690
- if self._future.done():
3691
- break
3692
-
3693
- remaining = []
3694
- while True:
3695
- try:
3696
- item = q.get_nowait()
3697
- except Empty:
3698
- break
3699
- else:
3700
- q.task_done()
3701
- remaining.append(item)
3702
- q.join()
3703
- yield from remaining
3704
-
3705
-
3706
- def windowed_complete(iterable, n):
3707
- """
3708
- Yield ``(beginning, middle, end)`` tuples, where:
3709
-
3710
- * Each ``middle`` has *n* items from *iterable*
3711
- * Each ``beginning`` has the items before the ones in ``middle``
3712
- * Each ``end`` has the items after the ones in ``middle``
3713
-
3714
- >>> iterable = range(7)
3715
- >>> n = 3
3716
- >>> for beginning, middle, end in windowed_complete(iterable, n):
3717
- ... print(beginning, middle, end)
3718
- () (0, 1, 2) (3, 4, 5, 6)
3719
- (0,) (1, 2, 3) (4, 5, 6)
3720
- (0, 1) (2, 3, 4) (5, 6)
3721
- (0, 1, 2) (3, 4, 5) (6,)
3722
- (0, 1, 2, 3) (4, 5, 6) ()
3723
-
3724
- Note that *n* must be at least 0 and most equal to the length of
3725
- *iterable*.
3726
-
3727
- This function will exhaust the iterable and may require significant
3728
- storage.
3729
- """
3730
- if n < 0:
3731
- raise ValueError('n must be >= 0')
3732
-
3733
- seq = tuple(iterable)
3734
- size = len(seq)
3735
-
3736
- if n > size:
3737
- raise ValueError('n must be <= len(seq)')
3738
-
3739
- for i in range(size - n + 1):
3740
- beginning = seq[:i]
3741
- middle = seq[i : i + n]
3742
- end = seq[i + n :]
3743
- yield beginning, middle, end
3744
-
3745
-
3746
- def all_unique(iterable, key=None):
3747
- """
3748
- Returns ``True`` if all the elements of *iterable* are unique (no two
3749
- elements are equal).
3750
-
3751
- >>> all_unique('ABCB')
3752
- False
3753
-
3754
- If a *key* function is specified, it will be used to make comparisons.
3755
-
3756
- >>> all_unique('ABCb')
3757
- True
3758
- >>> all_unique('ABCb', str.lower)
3759
- False
3760
-
3761
- The function returns as soon as the first non-unique element is
3762
- encountered. Iterables with a mix of hashable and unhashable items can
3763
- be used, but the function will be slower for unhashable items.
3764
- """
3765
- seenset = set()
3766
- seenset_add = seenset.add
3767
- seenlist = []
3768
- seenlist_add = seenlist.append
3769
- for element in map(key, iterable) if key else iterable:
3770
- try:
3771
- if element in seenset:
3772
- return False
3773
- seenset_add(element)
3774
- except TypeError:
3775
- if element in seenlist:
3776
- return False
3777
- seenlist_add(element)
3778
- return True
3779
-
3780
-
3781
- def nth_product(index, *args):
3782
- """Equivalent to ``list(product(*args))[index]``.
3783
-
3784
- The products of *args* can be ordered lexicographically.
3785
- :func:`nth_product` computes the product at sort position *index* without
3786
- computing the previous products.
3787
-
3788
- >>> nth_product(8, range(2), range(2), range(2), range(2))
3789
- (1, 0, 0, 0)
3790
-
3791
- ``IndexError`` will be raised if the given *index* is invalid.
3792
- """
3793
- pools = list(map(tuple, reversed(args)))
3794
- ns = list(map(len, pools))
3795
-
3796
- c = reduce(mul, ns)
3797
-
3798
- if index < 0:
3799
- index += c
3800
-
3801
- if not 0 <= index < c:
3802
- raise IndexError
3803
-
3804
- result = []
3805
- for pool, n in zip(pools, ns):
3806
- result.append(pool[index % n])
3807
- index //= n
3808
-
3809
- return tuple(reversed(result))
3810
-
3811
-
3812
- def nth_permutation(iterable, r, index):
3813
- """Equivalent to ``list(permutations(iterable, r))[index]```
3814
-
3815
- The subsequences of *iterable* that are of length *r* where order is
3816
- important can be ordered lexicographically. :func:`nth_permutation`
3817
- computes the subsequence at sort position *index* directly, without
3818
- computing the previous subsequences.
3819
-
3820
- >>> nth_permutation('ghijk', 2, 5)
3821
- ('h', 'i')
3822
-
3823
- ``ValueError`` will be raised If *r* is negative or greater than the length
3824
- of *iterable*.
3825
- ``IndexError`` will be raised if the given *index* is invalid.
3826
- """
3827
- pool = list(iterable)
3828
- n = len(pool)
3829
-
3830
- if r is None or r == n:
3831
- r, c = n, factorial(n)
3832
- elif not 0 <= r < n:
3833
- raise ValueError
3834
- else:
3835
- c = factorial(n) // factorial(n - r)
3836
-
3837
- if index < 0:
3838
- index += c
3839
-
3840
- if not 0 <= index < c:
3841
- raise IndexError
3842
-
3843
- if c == 0:
3844
- return tuple()
3845
-
3846
- result = [0] * r
3847
- q = index * factorial(n) // c if r < n else index
3848
- for d in range(1, n + 1):
3849
- q, i = divmod(q, d)
3850
- if 0 <= n - d < r:
3851
- result[n - d] = i
3852
- if q == 0:
3853
- break
3854
-
3855
- return tuple(map(pool.pop, result))
3856
-
3857
-
3858
- def value_chain(*args):
3859
- """Yield all arguments passed to the function in the same order in which
3860
- they were passed. If an argument itself is iterable then iterate over its
3861
- values.
3862
-
3863
- >>> list(value_chain(1, 2, 3, [4, 5, 6]))
3864
- [1, 2, 3, 4, 5, 6]
3865
-
3866
- Binary and text strings are not considered iterable and are emitted
3867
- as-is:
3868
-
3869
- >>> list(value_chain('12', '34', ['56', '78']))
3870
- ['12', '34', '56', '78']
3871
-
3872
-
3873
- Multiple levels of nesting are not flattened.
3874
-
3875
- """
3876
- for value in args:
3877
- if isinstance(value, (str, bytes)):
3878
- yield value
3879
- continue
3880
- try:
3881
- yield from value
3882
- except TypeError:
3883
- yield value
3884
-
3885
-
3886
- def product_index(element, *args):
3887
- """Equivalent to ``list(product(*args)).index(element)``
3888
-
3889
- The products of *args* can be ordered lexicographically.
3890
- :func:`product_index` computes the first index of *element* without
3891
- computing the previous products.
3892
-
3893
- >>> product_index([8, 2], range(10), range(5))
3894
- 42
3895
-
3896
- ``ValueError`` will be raised if the given *element* isn't in the product
3897
- of *args*.
3898
- """
3899
- index = 0
3900
-
3901
- for x, pool in zip_longest(element, args, fillvalue=_marker):
3902
- if x is _marker or pool is _marker:
3903
- raise ValueError('element is not a product of args')
3904
-
3905
- pool = tuple(pool)
3906
- index = index * len(pool) + pool.index(x)
3907
-
3908
- return index
3909
-
3910
-
3911
- def combination_index(element, iterable):
3912
- """Equivalent to ``list(combinations(iterable, r)).index(element)``
3913
-
3914
- The subsequences of *iterable* that are of length *r* can be ordered
3915
- lexicographically. :func:`combination_index` computes the index of the
3916
- first *element*, without computing the previous combinations.
3917
-
3918
- >>> combination_index('adf', 'abcdefg')
3919
- 10
3920
-
3921
- ``ValueError`` will be raised if the given *element* isn't one of the
3922
- combinations of *iterable*.
3923
- """
3924
- element = enumerate(element)
3925
- k, y = next(element, (None, None))
3926
- if k is None:
3927
- return 0
3928
-
3929
- indexes = []
3930
- pool = enumerate(iterable)
3931
- for n, x in pool:
3932
- if x == y:
3933
- indexes.append(n)
3934
- tmp, y = next(element, (None, None))
3935
- if tmp is None:
3936
- break
3937
- else:
3938
- k = tmp
3939
- else:
3940
- raise ValueError('element is not a combination of iterable')
3941
-
3942
- n, _ = last(pool, default=(n, None))
3943
-
3944
- # Python versions below 3.8 don't have math.comb
3945
- index = 1
3946
- for i, j in enumerate(reversed(indexes), start=1):
3947
- j = n - j
3948
- if i <= j:
3949
- index += factorial(j) // (factorial(i) * factorial(j - i))
3950
-
3951
- return factorial(n + 1) // (factorial(k + 1) * factorial(n - k)) - index
3952
-
3953
-
3954
- def permutation_index(element, iterable):
3955
- """Equivalent to ``list(permutations(iterable, r)).index(element)```
3956
-
3957
- The subsequences of *iterable* that are of length *r* where order is
3958
- important can be ordered lexicographically. :func:`permutation_index`
3959
- computes the index of the first *element* directly, without computing
3960
- the previous permutations.
3961
-
3962
- >>> permutation_index([1, 3, 2], range(5))
3963
- 19
3964
-
3965
- ``ValueError`` will be raised if the given *element* isn't one of the
3966
- permutations of *iterable*.
3967
- """
3968
- index = 0
3969
- pool = list(iterable)
3970
- for i, x in zip(range(len(pool), -1, -1), element):
3971
- r = pool.index(x)
3972
- index = index * i + r
3973
- del pool[r]
3974
-
3975
- return index
3976
-
3977
-
3978
- class countable:
3979
- """Wrap *iterable* and keep a count of how many items have been consumed.
3980
-
3981
- The ``items_seen`` attribute starts at ``0`` and increments as the iterable
3982
- is consumed:
3983
-
3984
- >>> iterable = map(str, range(10))
3985
- >>> it = countable(iterable)
3986
- >>> it.items_seen
3987
- 0
3988
- >>> next(it), next(it)
3989
- ('0', '1')
3990
- >>> list(it)
3991
- ['2', '3', '4', '5', '6', '7', '8', '9']
3992
- >>> it.items_seen
3993
- 10
3994
- """
3995
-
3996
- def __init__(self, iterable):
3997
- self._it = iter(iterable)
3998
- self.items_seen = 0
3999
-
4000
- def __iter__(self):
4001
- return self
4002
-
4003
- def __next__(self):
4004
- item = next(self._it)
4005
- self.items_seen += 1
4006
-
4007
- return item
4008
-
4009
-
4010
- def chunked_even(iterable, n):
4011
- """Break *iterable* into lists of approximately length *n*.
4012
- Items are distributed such the lengths of the lists differ by at most
4013
- 1 item.
4014
-
4015
- >>> iterable = [1, 2, 3, 4, 5, 6, 7]
4016
- >>> n = 3
4017
- >>> list(chunked_even(iterable, n)) # List lengths: 3, 2, 2
4018
- [[1, 2, 3], [4, 5], [6, 7]]
4019
- >>> list(chunked(iterable, n)) # List lengths: 3, 3, 1
4020
- [[1, 2, 3], [4, 5, 6], [7]]
4021
-
4022
- """
4023
-
4024
- len_method = getattr(iterable, '__len__', None)
4025
-
4026
- if len_method is None:
4027
- return _chunked_even_online(iterable, n)
4028
- else:
4029
- return _chunked_even_finite(iterable, len_method(), n)
4030
-
4031
-
4032
- def _chunked_even_online(iterable, n):
4033
- buffer = []
4034
- maxbuf = n + (n - 2) * (n - 1)
4035
- for x in iterable:
4036
- buffer.append(x)
4037
- if len(buffer) == maxbuf:
4038
- yield buffer[:n]
4039
- buffer = buffer[n:]
4040
- yield from _chunked_even_finite(buffer, len(buffer), n)
4041
-
4042
-
4043
- def _chunked_even_finite(iterable, N, n):
4044
- if N < 1:
4045
- return
4046
-
4047
- # Lists are either size `full_size <= n` or `partial_size = full_size - 1`
4048
- q, r = divmod(N, n)
4049
- num_lists = q + (1 if r > 0 else 0)
4050
- q, r = divmod(N, num_lists)
4051
- full_size = q + (1 if r > 0 else 0)
4052
- partial_size = full_size - 1
4053
- num_full = N - partial_size * num_lists
4054
- num_partial = num_lists - num_full
4055
-
4056
- buffer = []
4057
- iterator = iter(iterable)
4058
-
4059
- # Yield num_full lists of full_size
4060
- for x in iterator:
4061
- buffer.append(x)
4062
- if len(buffer) == full_size:
4063
- yield buffer
4064
- buffer = []
4065
- num_full -= 1
4066
- if num_full <= 0:
4067
- break
4068
-
4069
- # Yield num_partial lists of partial_size
4070
- for x in iterator:
4071
- buffer.append(x)
4072
- if len(buffer) == partial_size:
4073
- yield buffer
4074
- buffer = []
4075
- num_partial -= 1
4076
-
4077
-
4078
- def zip_broadcast(*objects, scalar_types=(str, bytes), strict=False):
4079
- """A version of :func:`zip` that "broadcasts" any scalar
4080
- (i.e., non-iterable) items into output tuples.
4081
-
4082
- >>> iterable_1 = [1, 2, 3]
4083
- >>> iterable_2 = ['a', 'b', 'c']
4084
- >>> scalar = '_'
4085
- >>> list(zip_broadcast(iterable_1, iterable_2, scalar))
4086
- [(1, 'a', '_'), (2, 'b', '_'), (3, 'c', '_')]
4087
-
4088
- The *scalar_types* keyword argument determines what types are considered
4089
- scalar. It is set to ``(str, bytes)`` by default. Set it to ``None`` to
4090
- treat strings and byte strings as iterable:
4091
-
4092
- >>> list(zip_broadcast('abc', 0, 'xyz', scalar_types=None))
4093
- [('a', 0, 'x'), ('b', 0, 'y'), ('c', 0, 'z')]
4094
-
4095
- If the *strict* keyword argument is ``True``, then
4096
- ``UnequalIterablesError`` will be raised if any of the iterables have
4097
- different lengths.
4098
- """
4099
-
4100
- def is_scalar(obj):
4101
- if scalar_types and isinstance(obj, scalar_types):
4102
- return True
4103
- try:
4104
- iter(obj)
4105
- except TypeError:
4106
- return True
4107
- else:
4108
- return False
4109
-
4110
- size = len(objects)
4111
- if not size:
4112
- return
4113
-
4114
- iterables, iterable_positions = [], []
4115
- scalars, scalar_positions = [], []
4116
- for i, obj in enumerate(objects):
4117
- if is_scalar(obj):
4118
- scalars.append(obj)
4119
- scalar_positions.append(i)
4120
- else:
4121
- iterables.append(iter(obj))
4122
- iterable_positions.append(i)
4123
-
4124
- if len(scalars) == size:
4125
- yield tuple(objects)
4126
- return
4127
-
4128
- zipper = _zip_equal if strict else zip
4129
- for item in zipper(*iterables):
4130
- new_item = [None] * size
4131
-
4132
- for i, elem in zip(iterable_positions, item):
4133
- new_item[i] = elem
4134
-
4135
- for i, elem in zip(scalar_positions, scalars):
4136
- new_item[i] = elem
4137
-
4138
- yield tuple(new_item)
4139
-
4140
-
4141
- def unique_in_window(iterable, n, key=None):
4142
- """Yield the items from *iterable* that haven't been seen recently.
4143
- *n* is the size of the lookback window.
4144
-
4145
- >>> iterable = [0, 1, 0, 2, 3, 0]
4146
- >>> n = 3
4147
- >>> list(unique_in_window(iterable, n))
4148
- [0, 1, 2, 3, 0]
4149
-
4150
- The *key* function, if provided, will be used to determine uniqueness:
4151
-
4152
- >>> list(unique_in_window('abAcda', 3, key=lambda x: x.lower()))
4153
- ['a', 'b', 'c', 'd', 'a']
4154
-
4155
- The items in *iterable* must be hashable.
4156
-
4157
- """
4158
- if n <= 0:
4159
- raise ValueError('n must be greater than 0')
4160
-
4161
- window = deque(maxlen=n)
4162
- uniques = set()
4163
- use_key = key is not None
4164
-
4165
- for item in iterable:
4166
- k = key(item) if use_key else item
4167
- if k in uniques:
4168
- continue
4169
-
4170
- if len(uniques) == n:
4171
- uniques.discard(window[0])
4172
-
4173
- uniques.add(k)
4174
- window.append(k)
4175
-
4176
- yield item
4177
-
4178
-
4179
- def duplicates_everseen(iterable, key=None):
4180
- """Yield duplicate elements after their first appearance.
4181
-
4182
- >>> list(duplicates_everseen('mississippi'))
4183
- ['s', 'i', 's', 's', 'i', 'p', 'i']
4184
- >>> list(duplicates_everseen('AaaBbbCccAaa', str.lower))
4185
- ['a', 'a', 'b', 'b', 'c', 'c', 'A', 'a', 'a']
4186
-
4187
- This function is analagous to :func:`unique_everseen` and is subject to
4188
- the same performance considerations.
4189
-
4190
- """
4191
- seen_set = set()
4192
- seen_list = []
4193
- use_key = key is not None
4194
-
4195
- for element in iterable:
4196
- k = key(element) if use_key else element
4197
- try:
4198
- if k not in seen_set:
4199
- seen_set.add(k)
4200
- else:
4201
- yield element
4202
- except TypeError:
4203
- if k not in seen_list:
4204
- seen_list.append(k)
4205
- else:
4206
- yield element
4207
-
4208
-
4209
- def duplicates_justseen(iterable, key=None):
4210
- """Yields serially-duplicate elements after their first appearance.
4211
-
4212
- >>> list(duplicates_justseen('mississippi'))
4213
- ['s', 's', 'p']
4214
- >>> list(duplicates_justseen('AaaBbbCccAaa', str.lower))
4215
- ['a', 'a', 'b', 'b', 'c', 'c', 'a', 'a']
4216
-
4217
- This function is analagous to :func:`unique_justseen`.
4218
-
4219
- """
4220
- return flatten(
4221
- map(
4222
- lambda group_tuple: islice_extended(group_tuple[1])[1:],
4223
- groupby(iterable, key),
4224
- )
4225
- )
4226
-
4227
-
4228
- def minmax(iterable_or_value, *others, key=None, default=_marker):
4229
- """Returns both the smallest and largest items in an iterable
4230
- or the largest of two or more arguments.
4231
-
4232
- >>> minmax([3, 1, 5])
4233
- (1, 5)
4234
-
4235
- >>> minmax(4, 2, 6)
4236
- (2, 6)
4237
-
4238
- If a *key* function is provided, it will be used to transform the input
4239
- items for comparison.
4240
-
4241
- >>> minmax([5, 30], key=str) # '30' sorts before '5'
4242
- (30, 5)
4243
-
4244
- If a *default* value is provided, it will be returned if there are no
4245
- input items.
4246
-
4247
- >>> minmax([], default=(0, 0))
4248
- (0, 0)
4249
-
4250
- Otherwise ``ValueError`` is raised.
4251
-
4252
- This function is based on the
4253
- `recipe <http://code.activestate.com/recipes/577916/>`__ by
4254
- Raymond Hettinger and takes care to minimize the number of comparisons
4255
- performed.
4256
- """
4257
- iterable = (iterable_or_value, *others) if others else iterable_or_value
4258
-
4259
- it = iter(iterable)
4260
-
4261
- try:
4262
- lo = hi = next(it)
4263
- except StopIteration as e:
4264
- if default is _marker:
4265
- raise ValueError(
4266
- '`minmax()` argument is an empty iterable. '
4267
- 'Provide a `default` value to suppress this error.'
4268
- ) from e
4269
- return default
4270
-
4271
- # Different branches depending on the presence of key. This saves a lot
4272
- # of unimportant copies which would slow the "key=None" branch
4273
- # significantly down.
4274
- if key is None:
4275
- for x, y in zip_longest(it, it, fillvalue=lo):
4276
- if y < x:
4277
- x, y = y, x
4278
- if x < lo:
4279
- lo = x
4280
- if hi < y:
4281
- hi = y
4282
-
4283
- else:
4284
- lo_key = hi_key = key(lo)
4285
-
4286
- for x, y in zip_longest(it, it, fillvalue=lo):
4287
-
4288
- x_key, y_key = key(x), key(y)
4289
-
4290
- if y_key < x_key:
4291
- x, y, x_key, y_key = y, x, y_key, x_key
4292
- if x_key < lo_key:
4293
- lo, lo_key = x, x_key
4294
- if hi_key < y_key:
4295
- hi, hi_key = y, y_key
4296
-
4297
- return lo, hi
4298
-
4299
-
4300
- def constrained_batches(
4301
- iterable, max_size, max_count=None, get_len=len, strict=True
4302
- ):
4303
- """Yield batches of items from *iterable* with a combined size limited by
4304
- *max_size*.
4305
-
4306
- >>> iterable = [b'12345', b'123', b'12345678', b'1', b'1', b'12', b'1']
4307
- >>> list(constrained_batches(iterable, 10))
4308
- [(b'12345', b'123'), (b'12345678', b'1', b'1'), (b'12', b'1')]
4309
-
4310
- If a *max_count* is supplied, the number of items per batch is also
4311
- limited:
4312
-
4313
- >>> iterable = [b'12345', b'123', b'12345678', b'1', b'1', b'12', b'1']
4314
- >>> list(constrained_batches(iterable, 10, max_count = 2))
4315
- [(b'12345', b'123'), (b'12345678', b'1'), (b'1', b'12'), (b'1',)]
4316
-
4317
- If a *get_len* function is supplied, use that instead of :func:`len` to
4318
- determine item size.
4319
-
4320
- If *strict* is ``True``, raise ``ValueError`` if any single item is bigger
4321
- than *max_size*. Otherwise, allow single items to exceed *max_size*.
4322
- """
4323
- if max_size <= 0:
4324
- raise ValueError('maximum size must be greater than zero')
4325
-
4326
- batch = []
4327
- batch_size = 0
4328
- batch_count = 0
4329
- for item in iterable:
4330
- item_len = get_len(item)
4331
- if strict and item_len > max_size:
4332
- raise ValueError('item size exceeds maximum size')
4333
-
4334
- reached_count = batch_count == max_count
4335
- reached_size = item_len + batch_size > max_size
4336
- if batch_count and (reached_size or reached_count):
4337
- yield tuple(batch)
4338
- batch.clear()
4339
- batch_size = 0
4340
- batch_count = 0
4341
-
4342
- batch.append(item)
4343
- batch_size += item_len
4344
- batch_count += 1
4345
-
4346
- if batch:
4347
- yield tuple(batch)