pyxllib 0.3.126__tar.gz → 0.3.128__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. {pyxllib-0.3.126/pyxllib.egg-info → pyxllib-0.3.128}/PKG-INFO +1 -1
  2. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/data/pglib.py +1 -1
  3. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/drissionlib.py +5 -1
  4. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/yuquelib.py +1 -1
  5. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/xlsxlib.py +45 -0
  6. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/pupil.py +76 -4
  7. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/specialist/xllog.py +1 -2
  8. {pyxllib-0.3.126 → pyxllib-0.3.128/pyxllib.egg-info}/PKG-INFO +1 -1
  9. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib.egg-info/requires.txt +17 -15
  10. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/openai2/_core/chat.py +148 -26
  11. {pyxllib-0.3.126 → pyxllib-0.3.128}/requirements.txt +4 -3
  12. {pyxllib-0.3.126 → pyxllib-0.3.128}/setup.py +1 -1
  13. {pyxllib-0.3.126 → pyxllib-0.3.128}/LICENSE +0 -0
  14. {pyxllib-0.3.126 → pyxllib-0.3.128}/MANIFEST.in +0 -0
  15. {pyxllib-0.3.126 → pyxllib-0.3.128}/README.md +0 -0
  16. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/__init__.py +0 -0
  17. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/algo/__init__.py +0 -0
  18. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/algo/disjoint.py +0 -0
  19. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/algo/geo.py +0 -0
  20. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/algo/intervals.py +0 -0
  21. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/algo/matcher.py +0 -0
  22. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/algo/newbie.py +0 -0
  23. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/algo/pupil.py +0 -0
  24. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/algo/shapelylib.py +0 -0
  25. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/algo/specialist.py +0 -0
  26. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/algo/stat.py +0 -0
  27. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/algo/treelib.py +0 -0
  28. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/algo/unitlib.py +0 -0
  29. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/cv/__init__.py +0 -0
  30. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/cv/expert.py +0 -0
  31. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/cv/imfile.py +0 -0
  32. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/cv/imhash.py +0 -0
  33. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/cv/pupil.py +0 -0
  34. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/cv/rgbfmt.py +0 -0
  35. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/cv/trackbartools.py +0 -0
  36. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/cv/xlcvlib.py +0 -0
  37. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/cv/xlpillib.py +0 -0
  38. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/data/__init__.py +0 -0
  39. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/data/echarts.py +0 -0
  40. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/data/jsonlib.py +0 -0
  41. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/data/oss.py +0 -0
  42. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/data/sqlite.py +0 -0
  43. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/data/sqllib.py +0 -0
  44. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/JLineViewer.py +0 -0
  45. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/__init__.py +0 -0
  46. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/autogui/__init__.py +0 -0
  47. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/autogui/autogui.py +0 -0
  48. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/autogui/virtualkey.py +0 -0
  49. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/demolib.py +0 -0
  50. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/kq5034lib.py +0 -0
  51. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/old.py +0 -0
  52. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/qt.py +0 -0
  53. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/robustprocfile.py +0 -0
  54. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/seleniumlib.py +0 -0
  55. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/tk.py +0 -0
  56. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/unixlib.py +0 -0
  57. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/utools.py +0 -0
  58. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/webhook.py +0 -0
  59. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/ext/win32lib.py +0 -0
  60. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/__init__.py +0 -0
  61. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/docxlib.py +0 -0
  62. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/gitlib.py +0 -0
  63. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/libreoffice.py +0 -0
  64. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/movielib.py +0 -0
  65. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/newbie.py +0 -0
  66. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/onenotelib.py +0 -0
  67. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/packlib/__init__.py +0 -0
  68. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/packlib/zipfile.py +0 -0
  69. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/pdflib.py +0 -0
  70. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/pupil.py +0 -0
  71. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/specialist/__init__.py +0 -0
  72. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/specialist/dirlib.py +0 -0
  73. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/specialist/download.py +0 -0
  74. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/file/specialist/filelib.py +0 -0
  75. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/__init__.py +0 -0
  76. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/cachetools.py +0 -0
  77. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/deprecatedlib.py +0 -0
  78. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/ipyexec.py +0 -0
  79. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/multiprocs.py +0 -0
  80. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/newbie.py +0 -0
  81. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/scheduler.py +0 -0
  82. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/sitepackages.py +0 -0
  83. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/specialist/__init__.py +0 -0
  84. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/specialist/bc.py +0 -0
  85. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/specialist/browser.py +0 -0
  86. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/specialist/common.py +0 -0
  87. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/specialist/datetime.py +0 -0
  88. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/specialist/tictoc.py +0 -0
  89. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/prog/xlosenv.py +0 -0
  90. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/stdlib/__init__.py +0 -0
  91. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/stdlib/tablepyxl/__init__.py +0 -0
  92. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/stdlib/tablepyxl/style.py +0 -0
  93. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/stdlib/tablepyxl/tablepyxl.py +0 -0
  94. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/__init__.py +0 -0
  95. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/ahocorasick.py +0 -0
  96. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/charclasslib.py +0 -0
  97. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/jiebalib.py +0 -0
  98. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/jinjalib.py +0 -0
  99. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/jscode.py +0 -0
  100. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/latex/__init__.py +0 -0
  101. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/levenshtein.py +0 -0
  102. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/nestenv.py +0 -0
  103. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/newbie.py +0 -0
  104. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/pupil/__init__.py +0 -0
  105. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/pupil/common.py +0 -0
  106. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/pupil/xlalign.py +0 -0
  107. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/pycode.py +0 -0
  108. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/specialist/__init__.py +0 -0
  109. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/specialist/common.py +0 -0
  110. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/specialist/ptag.py +0 -0
  111. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/spellchecker.py +0 -0
  112. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/templates/echart_base.html +0 -0
  113. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/templates/highlight_code.html +0 -0
  114. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/templates/latex_editor.html +0 -0
  115. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/vbacode.py +0 -0
  116. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/text/xmllib.py +0 -0
  117. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/xl.py +0 -0
  118. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib/xlcv.py +0 -0
  119. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib.egg-info/SOURCES.txt +0 -0
  120. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib.egg-info/dependency_links.txt +0 -0
  121. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxllib.egg-info/top_level.txt +0 -0
  122. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/__init__.py +0 -0
  123. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ai/__init__.py +0 -0
  124. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ai/clientlib.py +0 -0
  125. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ai/specialist.py +0 -0
  126. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ai/torch_app.py +0 -0
  127. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ai/xlpaddle.py +0 -0
  128. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ai/xltorch.py +0 -0
  129. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/__init__.py +0 -0
  130. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/coco.py +0 -0
  131. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/datacls.py +0 -0
  132. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/datasets.py +0 -0
  133. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/gptlib.py +0 -0
  134. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/icdar/__init__.py +0 -0
  135. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/icdar/deteval.py +0 -0
  136. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/icdar/icdar2013.py +0 -0
  137. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/icdar/iou.py +0 -0
  138. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/icdar/rrc_evaluation_funcs_1_1.py +0 -0
  139. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/imtextline.py +0 -0
  140. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/labelme.py +0 -0
  141. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/removeline.py +0 -0
  142. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/specialist.py +0 -0
  143. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/data/tiktokenlib.py +0 -0
  144. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/eval/__init__.py +0 -0
  145. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/openai2/__init__.py +0 -0
  146. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/openai2/_core/chat_in_cmd.py +0 -0
  147. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/openai2/_core/group_chat.py +0 -0
  148. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/openai2/openai2.py +0 -0
  149. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/paddleocr.py +0 -0
  150. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/__init__.py +0 -0
  151. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/configs/rec/multi_language/generate_multi_language_configs.py +0 -0
  152. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/__init__.py +0 -0
  153. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/ColorJitter.py +0 -0
  154. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/__init__.py +0 -0
  155. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/copy_paste.py +0 -0
  156. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/east_process.py +0 -0
  157. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/gen_table_mask.py +0 -0
  158. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/iaa_augment.py +0 -0
  159. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/label_ops.py +0 -0
  160. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/make_border_map.py +0 -0
  161. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/make_pse_gt.py +0 -0
  162. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/make_shrink_map.py +0 -0
  163. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/operators.py +0 -0
  164. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/pg_process.py +0 -0
  165. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/randaugment.py +0 -0
  166. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/random_crop_data.py +0 -0
  167. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/rec_img_aug.py +0 -0
  168. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/sast_process.py +0 -0
  169. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/text_image_aug/__init__.py +0 -0
  170. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/text_image_aug/augment.py +0 -0
  171. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/imaug/text_image_aug/warp_mls.py +0 -0
  172. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/lmdb_dataset.py +0 -0
  173. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/pgnet_dataset.py +0 -0
  174. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/pubtab_dataset.py +0 -0
  175. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/data/simple_dataset.py +0 -0
  176. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/__init__.py +0 -0
  177. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/ace_loss.py +0 -0
  178. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/basic_loss.py +0 -0
  179. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/center_loss.py +0 -0
  180. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/cls_loss.py +0 -0
  181. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/combined_loss.py +0 -0
  182. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/det_basic_loss.py +0 -0
  183. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/det_db_loss.py +0 -0
  184. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/det_east_loss.py +0 -0
  185. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/det_pse_loss.py +0 -0
  186. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/det_sast_loss.py +0 -0
  187. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/distillation_loss.py +0 -0
  188. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/e2e_pg_loss.py +0 -0
  189. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/kie_sdmgr_loss.py +0 -0
  190. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/rec_aster_loss.py +0 -0
  191. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/rec_att_loss.py +0 -0
  192. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/rec_ctc_loss.py +0 -0
  193. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/rec_enhanced_ctc_loss.py +0 -0
  194. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/rec_nrtr_loss.py +0 -0
  195. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/rec_sar_loss.py +0 -0
  196. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/rec_srn_loss.py +0 -0
  197. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/losses/table_att_loss.py +0 -0
  198. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/metrics/__init__.py +0 -0
  199. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/metrics/cls_metric.py +0 -0
  200. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/metrics/det_metric.py +0 -0
  201. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/metrics/distillation_metric.py +0 -0
  202. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/metrics/e2e_metric.py +0 -0
  203. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/metrics/eval_det_iou.py +0 -0
  204. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/metrics/kie_metric.py +0 -0
  205. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/metrics/rec_metric.py +0 -0
  206. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/metrics/table_metric.py +0 -0
  207. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/architectures/__init__.py +0 -0
  208. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/architectures/base_model.py +0 -0
  209. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/architectures/distillation_model.py +0 -0
  210. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/__init__.py +0 -0
  211. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/det_mobilenet_v3.py +0 -0
  212. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd.py +0 -0
  213. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd_sast.py +0 -0
  214. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/e2e_resnet_vd_pg.py +0 -0
  215. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/kie_unet_sdmgr.py +0 -0
  216. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/rec_mobilenet_v3.py +0 -0
  217. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/rec_mv1_enhance.py +0 -0
  218. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/rec_nrtr_mtb.py +0 -0
  219. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/rec_resnet_31.py +0 -0
  220. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/rec_resnet_aster.py +0 -0
  221. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/rec_resnet_fpn.py +0 -0
  222. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/backbones/rec_resnet_vd.py +0 -0
  223. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/__init__.py +0 -0
  224. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/cls_head.py +0 -0
  225. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/det_db_head.py +0 -0
  226. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/det_east_head.py +0 -0
  227. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/det_pse_head.py +0 -0
  228. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/det_sast_head.py +0 -0
  229. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/e2e_pg_head.py +0 -0
  230. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/kie_sdmgr_head.py +0 -0
  231. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/multiheadAttention.py +0 -0
  232. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/rec_aster_head.py +0 -0
  233. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/rec_att_head.py +0 -0
  234. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/rec_ctc_head.py +0 -0
  235. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/rec_nrtr_head.py +0 -0
  236. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/rec_sar_head.py +0 -0
  237. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/rec_srn_head.py +0 -0
  238. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/self_attention.py +0 -0
  239. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/heads/table_att_head.py +0 -0
  240. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/necks/__init__.py +0 -0
  241. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/necks/db_fpn.py +0 -0
  242. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/necks/east_fpn.py +0 -0
  243. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/necks/fpn.py +0 -0
  244. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/necks/pg_fpn.py +0 -0
  245. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/necks/rnn.py +0 -0
  246. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/necks/sast_fpn.py +0 -0
  247. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/necks/table_fpn.py +0 -0
  248. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/transforms/__init__.py +0 -0
  249. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/transforms/stn.py +0 -0
  250. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/transforms/tps.py +0 -0
  251. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/modeling/transforms/tps_spatial_transformer.py +0 -0
  252. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/optimizer/__init__.py +0 -0
  253. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/optimizer/learning_rate.py +0 -0
  254. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/optimizer/lr_scheduler.py +0 -0
  255. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/optimizer/optimizer.py +0 -0
  256. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/optimizer/regularizer.py +0 -0
  257. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/postprocess/__init__.py +0 -0
  258. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/postprocess/cls_postprocess.py +0 -0
  259. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/postprocess/db_postprocess.py +0 -0
  260. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/postprocess/east_postprocess.py +0 -0
  261. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/postprocess/locality_aware_nms.py +0 -0
  262. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/postprocess/pg_postprocess.py +0 -0
  263. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/postprocess/pse_postprocess/__init__.py +0 -0
  264. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/__init__.py +0 -0
  265. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/setup.py +0 -0
  266. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/postprocess/pse_postprocess/pse_postprocess.py +0 -0
  267. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/postprocess/rec_postprocess.py +0 -0
  268. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/postprocess/sast_postprocess.py +0 -0
  269. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/__init__.py +0 -0
  270. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/eval.py +0 -0
  271. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/export_center.py +0 -0
  272. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/export_model.py +0 -0
  273. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/infer/predict_cls.py +0 -0
  274. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/infer/predict_det.py +0 -0
  275. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/infer/predict_e2e.py +0 -0
  276. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/infer/predict_rec.py +0 -0
  277. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/infer/predict_system.py +0 -0
  278. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/infer/utility.py +0 -0
  279. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/infer_cls.py +0 -0
  280. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/infer_det.py +0 -0
  281. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/infer_e2e.py +0 -0
  282. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/infer_kie.py +0 -0
  283. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/infer_rec.py +0 -0
  284. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/infer_table.py +0 -0
  285. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/program.py +0 -0
  286. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/test_hubserving.py +0 -0
  287. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/train.py +0 -0
  288. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/tools/xlprog.py +0 -0
  289. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/EN_symbol_dict.txt +0 -0
  290. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/__init__.py +0 -0
  291. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/ar_dict.txt +0 -0
  292. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/arabic_dict.txt +0 -0
  293. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/be_dict.txt +0 -0
  294. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/bg_dict.txt +0 -0
  295. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/chinese_cht_dict.txt +0 -0
  296. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/cyrillic_dict.txt +0 -0
  297. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/devanagari_dict.txt +0 -0
  298. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/en_dict.txt +0 -0
  299. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/fa_dict.txt +0 -0
  300. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/french_dict.txt +0 -0
  301. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/german_dict.txt +0 -0
  302. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/hi_dict.txt +0 -0
  303. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/it_dict.txt +0 -0
  304. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/japan_dict.txt +0 -0
  305. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/ka_dict.txt +0 -0
  306. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/korean_dict.txt +0 -0
  307. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/latin_dict.txt +0 -0
  308. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/mr_dict.txt +0 -0
  309. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/ne_dict.txt +0 -0
  310. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/oc_dict.txt +0 -0
  311. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/pu_dict.txt +0 -0
  312. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/rs_dict.txt +0 -0
  313. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/rsc_dict.txt +0 -0
  314. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/ru_dict.txt +0 -0
  315. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/ta_dict.txt +0 -0
  316. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/table_dict.txt +0 -0
  317. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/table_structure_dict.txt +0 -0
  318. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/te_dict.txt +0 -0
  319. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/ug_dict.txt +0 -0
  320. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/uk_dict.txt +0 -0
  321. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/ur_dict.txt +0 -0
  322. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict/xi_dict.txt +0 -0
  323. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/dict90.txt +0 -0
  324. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/e2e_metric/Deteval.py +0 -0
  325. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/e2e_metric/polygon_fast.py +0 -0
  326. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/e2e_utils/extract_batchsize.py +0 -0
  327. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_fast.py +0 -0
  328. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_slow.py +0 -0
  329. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/e2e_utils/pgnet_pp_utils.py +0 -0
  330. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/e2e_utils/visual.py +0 -0
  331. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/en_dict.txt +0 -0
  332. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/gen_label.py +0 -0
  333. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/ic15_dict.txt +0 -0
  334. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/iou.py +0 -0
  335. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/logging.py +0 -0
  336. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/network.py +0 -0
  337. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/ppocr_keys_v1.txt +0 -0
  338. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/profiler.py +0 -0
  339. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/save_load.py +0 -0
  340. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/stats.py +0 -0
  341. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppocr/utils/utility.py +0 -0
  342. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/__init__.py +0 -0
  343. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/predict_system.py +0 -0
  344. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/table/__init__.py +0 -0
  345. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/table/eval_table.py +0 -0
  346. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/table/matcher.py +0 -0
  347. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/table/predict_structure.py +0 -0
  348. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/table/predict_table.py +0 -0
  349. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/table/table_metric/__init__.py +0 -0
  350. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/table/table_metric/parallel.py +0 -0
  351. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/table/table_metric/table_metric.py +0 -0
  352. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/table/tablepyxl/__init__.py +0 -0
  353. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/table/tablepyxl/style.py +0 -0
  354. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/table/tablepyxl/tablepyxl.py +0 -0
  355. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/ppstructure/utility.py +0 -0
  356. {pyxllib-0.3.126 → pyxllib-0.3.128}/pyxlpr/xlai.py +0 -0
  357. {pyxllib-0.3.126 → pyxllib-0.3.128}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyxllib
3
- Version: 0.3.126
3
+ Version: 0.3.128
4
4
  Summary: 厦门理工模式识别团队通用python代码工具库
5
5
  Home-page: https://github.com/XLPRUtils/pyxllib
6
6
  Author: code4101
@@ -194,7 +194,7 @@ WHERE {table_name}.{item_id_name} = cte.{item_id_name}"""
194
194
  @classmethod
195
195
  def cvt_type(cls, val):
196
196
  if isinstance(val, (dict, list)):
197
- val = json.dumps(val, ensure_ascii=False)
197
+ val = json.dumps(val, ensure_ascii=False, default=str)
198
198
  # 注意list数组类型读、写都会自动适配py
199
199
  return val
200
200
 
@@ -74,7 +74,11 @@ def get_dp_tab(dp_page=None) -> 'XlPage':
74
74
  elif dp_page is True:
75
75
  return ChromiumPage().new_tab()
76
76
  elif isinstance(dp_page, str):
77
- return ChromiumPage().new_tab(dp_page)
77
+ def dp_page2(tab): # 默认开启页面复用。 todo 以后可以改进成可选参数
78
+ if tab.url.startswith(dp_page):
79
+ return tab
80
+
81
+ return get_dp_page(dp_page2)
78
82
  else:
79
83
  return ChromiumPage().latest_tab
80
84
 
@@ -197,7 +197,7 @@ class Yuque:
197
197
  elif return_mode == 'md':
198
198
  return res['data']['body']
199
199
  elif return_mode == 'title_and_md':
200
- return f'文章标题:{res["data"]["title"]}\n\n{res["data"]["body"]}'
200
+ return res["data"]["title"], res["data"]["body"]
201
201
 
202
202
  def export_markdown(self, url, output_dir=None, post_mode=1):
203
203
  """ 导出md格式文件
@@ -3018,12 +3018,51 @@ def extract_workbook_summary3(file_path, summary_limit_len=4000, **kwargs):
3018
3018
  return data
3019
3019
 
3020
3020
 
3021
+ def summary2_add_enums(summary2, enum_values):
3022
+ # 1 预备
3023
+ if enum_values is True:
3024
+ enum_values = (20, 10)
3025
+ max_len, max_num = enum_values
3026
+
3027
+ # 2 枚举值
3028
+ for sheet in summary2['sheets']:
3029
+ # 2.1 遍历计数
3030
+ cols = defaultdict(Counter)
3031
+ for addr, val in sheet['cells'].items():
3032
+ n = len(str(val))
3033
+ if not n or n > max_len:
3034
+ continue
3035
+ col = re.match(r'[A-Z]+', addr).group()
3036
+ cols[col][val] += 1
3037
+
3038
+ # 2.2 添加枚举值列
3039
+ enums = {}
3040
+ keys = sorted(cols.keys(), key=column_index_from_string)
3041
+ for k in keys:
3042
+ ct = cols[k]
3043
+ if len(ct) > max_num:
3044
+ continue
3045
+ vals = ct.most_common()
3046
+ if vals[0][1] == 1: # 都只出现了一次,也不认为是枚举值,跳过。或者是小数据表,一般也能全量展示。
3047
+ continue
3048
+ enums[k] = [v for v, _ in vals]
3049
+
3050
+ # 2.3 保存
3051
+ if enums:
3052
+ sheet['enums'] = enums
3053
+ # enums2 = json.dumps(enums, ensure_ascii=False, default=str)
3054
+ # sheet['enums'] = json.loads(enums2)
3055
+
3056
+ return summary2
3057
+
3058
+
3021
3059
  def extract_workbook_summary3b(file_path,
3022
3060
  summary_limit_len=4000,
3023
3061
  timeout_seconds=10,
3024
3062
  return_mode=0,
3025
3063
  debug=False,
3026
3064
  len_mode=0,
3065
+ enum_values=False,
3027
3066
  **kwargs):
3028
3067
  """
3029
3068
 
@@ -3036,6 +3075,9 @@ def extract_workbook_summary3b(file_path,
3036
3075
  :param len_mode:
3037
3076
  0, 使用len作为token长度评估
3038
3077
  1, 使用模型评估实际token长度
3078
+ :param enum_values: 是否展示每列枚举值
3079
+ False, 默认不展示
3080
+ True, 展示,并且默认参数 (20, 10) 表示长度超过20的丢弃,只保留枚举类型不超过10种值的列
3039
3081
  :param kwargs: 其他是summary2读取文件的时候的参数,其实都不太关键,一般不用特地设置
3040
3082
  """
3041
3083
  res = {}
@@ -3056,7 +3098,10 @@ def extract_workbook_summary3b(file_path,
3056
3098
  res, load_time = extract_workbook_summary2(file_path, mode=1, return_mode=1, **kwargs)
3057
3099
  # res = convert_to_json_compatible(res)
3058
3100
  summary2_res = copy.deepcopy(res)
3101
+ if enum_values:
3102
+ res = summary2_add_enums(res, enum_values)
3059
3103
  summary2_time = time.time() - start_time - load_time
3104
+
3060
3105
  start_time = time.time()
3061
3106
  if len_mode == 1:
3062
3107
  res = WorkbookSummary3plus.summary2_to_summary3b(res, summary_limit_len)
@@ -603,6 +603,7 @@ def inject_members(from_obj, to_obj, member_list=None, *,
603
603
  # 把XlDocxTable的成员方法绑定到docx.table.Table里
604
604
  >> inject_members(XlDocxTable, docx.table.Table)
605
605
 
606
+ 240826周一,其他可参考学习的三方现成工具库:from fastcore.foundation import patch
606
607
  """
607
608
  # 1 整理需要注入的方法清单
608
609
  dst = set(dir(to_obj))
@@ -1029,10 +1030,13 @@ class MultiProcessLauncher:
1029
1030
  if name is None:
1030
1031
  cmd2 = cmd.split() if isinstance(cmd, str) else cmd
1031
1032
  name = cmd2[0]
1032
-
1033
- proc = subprocess.Popen(cmd,
1034
- shell=shell,
1035
- preexec_fn=self._set_pdeathsig())
1033
+ if sys.platform == 'darwin':
1034
+ proc = subprocess.Popen(cmd,
1035
+ shell=shell)
1036
+ else:
1037
+ proc = subprocess.Popen(cmd,
1038
+ shell=shell,
1039
+ preexec_fn=self._set_pdeathsig())
1036
1040
 
1037
1041
  worker = ProcessWorker(name, proc, raw_cmd=cmd, **kwargs)
1038
1042
  self.workers.append(worker)
@@ -1118,6 +1122,73 @@ class MultiProcessLauncher:
1118
1122
  print_full_dataframe(df)
1119
1123
 
1120
1124
 
1125
+ def support_multi_processes_hyx(default_processes=1):
1126
+ """ 对函数进行扩展,支持并发多进程运行
1127
+ 增加重跑
1128
+ 注意被装饰的函数,需要支持 process_count、process_id 两个参数,来获得总进程数,当前进程id的信息
1129
+ """
1130
+
1131
+ def decorator(func):
1132
+
1133
+ def wrapper(*args, **kwargs):
1134
+ process_count = int(kwargs.pop('process_count', default_processes))
1135
+ process_id = kwargs.pop('process_id', None)
1136
+ shell = kwargs.pop('shell', False)
1137
+
1138
+ if process_count == 1 or process_id is not None:
1139
+ if process_id is None:
1140
+ return func(*args, **kwargs)
1141
+ else:
1142
+ return func(*args, **kwargs, process_count=process_count, process_id=int(process_id))
1143
+ else:
1144
+ mpl = MultiProcessLauncher()
1145
+ for i in range(int(process_count)):
1146
+ if isinstance(process_id, int) and i != process_id:
1147
+ continue
1148
+
1149
+ '''
1150
+ sys.argv[0] 为 /Users/youx/NutstoreCloudBridge/slns/xlproject/xlproject/m2404ragdata/b清洗/hyx240806统计图表数.py
1151
+ 将其转化为 xlproject.m2404ragdata.b清洗.hyx240806统计图表数
1152
+ '''
1153
+ header = 'xlproject.code4101'
1154
+
1155
+ root_directory_name = 'xlproject'
1156
+ occurrence = 2
1157
+ path = sys.argv[0]
1158
+
1159
+ # 查找第 occurrence 次出现的 root_directory_name 位置
1160
+ positions = [i for i in range(len(path)) if path.startswith(root_directory_name, i)]
1161
+ if len(positions) < occurrence:
1162
+ raise ValueError(
1163
+ f"Path does not contain {occurrence} occurrences of the root directory name: {root_directory_name}")
1164
+
1165
+ # 提取并转换为模块名称
1166
+ index = positions[occurrence - 1]
1167
+ module_name = os.path.splitext(path[index:])[0].replace(os.path.sep, '.')
1168
+
1169
+ # todo 这样使用有个坑,process_count、process_id都是以str类型传入的,开发者下游使用容易出问题
1170
+ cmds = [
1171
+ 'run_python_module',
1172
+ '--wait_mode',
1173
+ '60',
1174
+ module_name,
1175
+ func.__name__,
1176
+ '--process_count', str(process_count),
1177
+ '--process_id', str(i)
1178
+ ]
1179
+ cmds.extend(map(str, args)) # 添加位置参数
1180
+ for k, v in kwargs.items():
1181
+ cmds.append(f'--{k}') # 添加关键字参数的键
1182
+ cmds.append(str(v)) # 添加关键字参数的值
1183
+
1184
+ mpl.add_process_python_module(header, cmds, shell=shell)
1185
+ mpl.run_endless()
1186
+
1187
+ return wrapper
1188
+
1189
+ return decorator
1190
+
1191
+
1121
1192
  def support_multi_processes(default_processes=1):
1122
1193
  """ 对函数进行扩展,支持并发多进程运行
1123
1194
 
@@ -1151,6 +1222,7 @@ def support_multi_processes(default_processes=1):
1151
1222
  for k, v in kwargs.items():
1152
1223
  cmds.append(f'--{k}') # 添加关键字参数的键
1153
1224
  cmds.append(str(v)) # 添加关键字参数的值
1225
+
1154
1226
  mpl.add_process_python(sys.argv[0], cmds, shell=shell)
1155
1227
  mpl.run_endless()
1156
1228
 
@@ -53,8 +53,7 @@ def get_xllog(name='xllog', *, log_file=None):
53
53
  xllog = logging.getLogger('pyxllib.xllog')
54
54
  fmt = '%(asctime)s %(message)s'
55
55
  if log_file:
56
- # TODO 这里的格式设置是否能统一、精简?
57
- file_handler = logging.FileHandler(f'{log_file}', 'w')
56
+ file_handler = logging.FileHandler(f'{log_file}', 'a')
58
57
  file_handler.setLevel(logging.DEBUG)
59
58
  file_handler.setFormatter(logging.Formatter(fmt))
60
59
  xllog.addHandler(file_handler)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyxllib
3
- Version: 0.3.126
3
+ Version: 0.3.128
4
4
  Summary: 厦门理工模式识别团队通用python代码工具库
5
5
  Home-page: https://github.com/XLPRUtils/pyxllib
6
6
  Author: code4101
@@ -3,7 +3,7 @@ charset-normalizer
3
3
  requests
4
4
  qiniu
5
5
  pyyaml
6
- coloredlogs
6
+ loguru
7
7
  humanfriendly
8
8
  tqdm
9
9
  ujson
@@ -13,39 +13,41 @@ envariable
13
13
  decorator
14
14
  more-itertools
15
15
  fire
16
+ xlrd
16
17
  pympler
17
18
  lxml
18
19
  beautifulsoup4
19
20
  numpy
20
21
  Jinja2
21
22
  pandas>=0.23.4
23
+ pillow
22
24
 
23
25
  [xlai]
24
- pynvml
26
+ pillow
25
27
  visdom
26
28
  opsdroid-get-image-size
27
29
  opencv-python
28
- pillow
30
+ pynvml
29
31
 
30
32
  [xlall]
31
- arts
32
- flask-cors
33
+ pillow
34
+ fastapi
35
+ xlrd
36
+ flask-wtf
37
+ sentencepiece
38
+ flask
33
39
  zhconv
34
40
  ujson
35
- html2text
36
- uvicorn
37
- opsdroid-get-image-size
38
41
  flask-jwt-extended
39
- xlrd
40
- fastapi
42
+ arts
43
+ uvicorn
41
44
  flask-restful
45
+ opsdroid-get-image-size
46
+ flask-cors
42
47
  opencv-python
43
- flask-wtf
44
- flask
45
- pillow
46
- sentencepiece
48
+ html2text
47
49
 
48
50
  [xlcv]
49
- opencv-python
50
51
  pillow
52
+ opencv-python
51
53
  opsdroid-get-image-size
@@ -16,6 +16,8 @@ from unittest.mock import MagicMock
16
16
  import math
17
17
  from types import SimpleNamespace
18
18
 
19
+ import requests
20
+ from loguru import logger as loguru_logger
19
21
  from tqdm import tqdm
20
22
  from joblib import Parallel, delayed
21
23
  from openai import OpenAI, AsyncOpenAI
@@ -143,7 +145,7 @@ class Chat:
143
145
  model: Literal["gpt-4-1106-preview", "gpt-4-vision-preview",
144
146
  "gpt-4", "gpt-4-0314", "gpt-4-0613",
145
147
  "gpt-4-32k", "gpt-4-32k-0314", "gpt-4-32k-0613", "gpt-3.5-turbo",
146
- "gpt-4o", "gpt-4-turbo"] = "gpt-3.5-turbo",
148
+ "gpt-4o", "gpt-4-turbo"] = "gpt-4o-mini",
147
149
  # Chat
148
150
  msg_max_count: int = None,
149
151
  # kwargs
@@ -289,20 +291,35 @@ class Chat:
289
291
  self._messages.add_many(*messages)
290
292
 
291
293
  def __getattr__(self, name):
292
- match name: # 兼容旧代码
293
- case 'asy_request':
294
- return self.async_request
295
- case 'forge':
296
- return self.add_dialogs
297
- case 'pin':
298
- return self.pin_messages
299
- case 'unpin':
300
- return self.unpin_messages
301
- case 'dump':
302
- return self._dump
303
- case 'load':
304
- return self._load
305
- raise AttributeError(name)
294
+ # match name: # 兼容旧代码
295
+ # case 'asy_request':
296
+ # return self.async_request
297
+ # case 'forge':
298
+ # return self.add_dialogs
299
+ # case 'pin':
300
+ # return self.pin_messages
301
+ # case 'unpin':
302
+ # return self.unpin_messages
303
+ # case 'dump':
304
+ # return self._dump
305
+ # case 'load':
306
+ # return self._load
307
+ # raise AttributeError(name)
308
+
309
+ if name == 'asy_request':
310
+ return self.async_request
311
+ elif name == 'forge':
312
+ return self.add_dialogs
313
+ elif name == 'pin':
314
+ return self.pin_messages
315
+ elif name == 'unpin':
316
+ return self.unpin_messages
317
+ elif name == 'dump':
318
+ return self._dump
319
+ elif name == 'load':
320
+ return self._load
321
+ else:
322
+ raise AttributeError(name)
306
323
 
307
324
  def _dump(self, fpath: str):
308
325
  """ 存档 """
@@ -480,6 +497,106 @@ class Chat:
480
497
  return image_url
481
498
 
482
499
 
500
+ class Chat2:
501
+ default_api_key = None
502
+ default_base_url = 'https://beta.gpt4api.plus'
503
+
504
+ def __init__(self, api_key=None,
505
+ gizmo_id=None,
506
+ *,
507
+ base_url=None,
508
+ model='gpt-4o-mini'):
509
+ """
510
+ :param gizmo_id: gpts的id,比如 https://chatgpt.com/g/g-ABCD1234-ce-shi。则id就是"g-ABCD1234"
511
+ 后面的gpts的名称变了没关系,前面前缀的id不要变就行
512
+ """
513
+ self.api_key = api_key or self.default_api_key
514
+ self.base_url = base_url or self.default_base_url
515
+ self.gizmo_id = gizmo_id # 是否有action模块需要点击确认
516
+
517
+ self.headers = {
518
+ 'Authorization': f'Bearer {self.api_key}'
519
+ }
520
+ self.session_state = {
521
+ 'stream': False,
522
+ 'model': model,
523
+ }
524
+
525
+ self.messages = list() # 历史记录
526
+
527
+ def _upload_file(self, file_path, file_type='my_files', parent_payload=None):
528
+ """ 上传文件
529
+
530
+ :param payload: 如果传入外部主payload自动,会自动添加已上传的文件的状态内容信息
531
+ """
532
+ # 1 请求
533
+ url = f"{self.base_url}/chat/uploaded"
534
+ payload = {'type': file_type}
535
+ if 'conversation_id' in self.session_state:
536
+ payload['conversation_id'] = self.session_state['conversation_id']
537
+ files = [
538
+ ('files', (Path(file_path).name, open(file_path, 'rb')))
539
+ ]
540
+ resp = requests.post(url, headers=self.headers, data=payload, files=files)
541
+ resp_json = resp.json()
542
+
543
+ # 2 保存状态
544
+ self.session_state['conversation_id'] = resp_json['conversation_id']
545
+ self.messages.append(resp_json)
546
+ if parent_payload:
547
+ key_name = 'attachments' if file_type == 'my_files' else 'parts'
548
+ if key_name not in parent_payload:
549
+ parent_payload[key_name] = []
550
+ parent_payload[key_name].append(resp_json[key_name[:-1]])
551
+
552
+ return resp_json
553
+
554
+ def _upload_image(self, image_path, parent_payload=None):
555
+ """ 上传图片 """
556
+ return self._upload_file(image_path, 'multimodal', parent_payload=parent_payload)
557
+
558
+ def query(self, message, *, files=None, images=None):
559
+ # 1 预备
560
+ if self.gizmo_id:
561
+ url = f"{self.base_url}/chat/action"
562
+ else:
563
+ url = f"{self.base_url}/chat/all-tools"
564
+
565
+ headers = self.headers.copy()
566
+ headers['Content-Type'] = 'application/json'
567
+
568
+ # 2 api初步配置
569
+ payload = self.session_state.copy()
570
+ payload['message'] = message
571
+ if self.gizmo_id:
572
+ payload['gizmo_id'] = self.gizmo_id
573
+
574
+ # 3 添加文件
575
+ if files:
576
+ if isinstance(files, str):
577
+ files = [files]
578
+ for file in files:
579
+ self._upload_file(file, parent_payload=payload)
580
+
581
+ # 4 添加图片
582
+ if images:
583
+ if isinstance(images, str):
584
+ images = [images]
585
+ for image in images:
586
+ self._upload_image(image, parent_payload=payload)
587
+
588
+ # 5 请求
589
+ resp = requests.post(url, headers=headers, data=json.dumps(payload))
590
+ resp_json = resp.json()
591
+
592
+ # 6 保存状态
593
+ self.session_state['conversation_id'] = resp_json['conversation_id']
594
+ self.session_state['parent_message_id'] = resp_json['message_id']
595
+ self.messages.append(resp_json)
596
+
597
+ return '\n\n'.join(resp_json['contents'][-1]['message']['content']['parts'])
598
+
599
+
483
600
  def __2_信息摘要():
484
601
  pass
485
602
 
@@ -580,8 +697,7 @@ class CompressContent:
580
697
  expect_len=None,
581
698
  max_round=-1,
582
699
  text_spliter=None,
583
- style=None,
584
- model='gpt-3.5-turbo',
700
+ model='gpt-4o-mini',
585
701
  soft_merge_prompt=None,
586
702
  calc_len=None,
587
703
  logger=None,
@@ -606,7 +722,6 @@ class CompressContent:
606
722
  :param func text_spliter: 文本分割器,默认使用均切
607
723
  均匀切分,在不超过segment_len的情况下,尽量保持每段文本长度相同
608
724
  后续要支持langchain里分割算法,觉得那个切法更泛用,虽然效率估计更低
609
- :param str style: 提取风格。暂未实装,涉及到如何跟已有prompts配合。
610
725
  :param str model: 使用的模型
611
726
  :param soft_merge_prompt: 最后一轮合并后,如果已经满足要求,是否要加一段提示词,再优化下描述,避免暴力合并效果过于生硬
612
727
 
@@ -621,6 +736,9 @@ class CompressContent:
621
736
 
622
737
  expect_len = expect_len or segment_len // 2
623
738
  logger = logger or MagicMock()
739
+ if logger is True:
740
+ logger = loguru_logger
741
+
624
742
  calc_len = calc_len or len
625
743
 
626
744
  if text_spliter is None:
@@ -641,22 +759,21 @@ class CompressContent:
641
759
  contents2.extend(text_spliter(content))
642
760
 
643
761
  # 3 单个提取的接口
644
- def extract_info(content, prompt):
762
+ def extract_info(i, content, prompt):
645
763
  chat = Chat(model=model)
646
764
  chat.add_system_prompt(prompt)
647
765
  summary = chat.query(content)
648
- logger.info(f'>>> 原始内容:{content}\n\n>>> 提取信息:{summary}\n\n')
766
+ logger.debug(f'>>> {i}块原始内容:\n{content}\n\n>>> 提取信息:{summary}\n\n')
649
767
  return summary
650
768
 
651
769
  # 4 (并发)提取信息
652
770
  prompt_idx = min(round_num, len(extra_prompts) - 1)
653
771
  backend = 'threading' if max_workers != 1 else 'sequential'
654
772
  parallel = Parallel(n_jobs=max_workers, backend=backend, return_as='generator')
655
- tasks = [delayed(extract_info)(c, extra_prompts[prompt_idx]) for c in contents2]
656
- disable = False if ((not isinstance(logger, MagicMock)) and logger.level <= logging.INFO) else True
657
- # disable = False
773
+ logger.debug(f'>>> 提取信息轮次:{round_num},使用提示词:\n{extra_prompts[prompt_idx]}')
774
+ tasks = [delayed(extract_info)(i, c, extra_prompts[prompt_idx]) for i, c in enumerate(contents2, start=1)]
658
775
  contents = list(tqdm(parallel(tasks), total=len(contents2),
659
- desc=f'round {round_num} 提取信息', disable=disable))
776
+ desc=f'round {round_num} 提取信息', disable=isinstance(logger, MagicMock)))
660
777
 
661
778
  # 5 合并数据
662
779
  contents = ['\n\n'.join(contents)]
@@ -682,8 +799,13 @@ class CompressContent:
682
799
  **kwargs)
683
800
 
684
801
  @classmethod
685
- def with_query(cls, content, query, extra_prompts=None, **kwargs):
686
- """ 通用的信息压缩,根据用户的问题,进行信息压缩 """
802
+ def with_query(cls, content, query=None, extra_prompts=None, **kwargs):
803
+ """ 通用的信息压缩,根据用户的问题,进行信息压缩
804
+ 但如果没传入query参数,也会自动改回common机制处理
805
+ """
806
+ if not query:
807
+ return cls.common(content, extra_prompts, **kwargs)
808
+
687
809
  return cls.basic(content,
688
810
  extra_prompts or xlprompts.compress_content_with_query.render(query=query),
689
811
  **kwargs)
@@ -3,7 +3,7 @@ charset-normalizer
3
3
  requests
4
4
  qiniu
5
5
  pyyaml
6
- coloredlogs
6
+ loguru
7
7
  humanfriendly
8
8
  tqdm
9
9
  ujson
@@ -13,10 +13,11 @@ envariable
13
13
  decorator
14
14
  more-itertools
15
15
  fire
16
-
16
+ xlrd
17
17
  pympler
18
18
  lxml
19
19
  beautifulsoup4
20
20
  numpy
21
21
  Jinja2
22
- pandas>=0.23.4
22
+ pandas>=0.23.4
23
+ pillow
@@ -48,7 +48,7 @@ _dir = Path(__file__).parent
48
48
 
49
49
  setup(
50
50
  name='pyxllib', # pip 安装时用的名字
51
- version='0.3.126', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
51
+ version='0.3.128', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
52
52
  author='code4101',
53
53
  author_email='877362867@qq.com',
54
54
  url='https://github.com/XLPRUtils/pyxllib',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes