pyxllib 0.3.126__tar.gz → 0.3.127__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.127}/PKG-INFO +1 -1
  2. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/drissionlib.py +5 -1
  3. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/pupil.py +77 -4
  4. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/specialist/xllog.py +1 -2
  5. {pyxllib-0.3.126 → pyxllib-0.3.127/pyxllib.egg-info}/PKG-INFO +1 -1
  6. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib.egg-info/requires.txt +17 -15
  7. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/openai2/_core/chat.py +146 -24
  8. {pyxllib-0.3.126 → pyxllib-0.3.127}/requirements.txt +4 -3
  9. {pyxllib-0.3.126 → pyxllib-0.3.127}/setup.py +1 -1
  10. {pyxllib-0.3.126 → pyxllib-0.3.127}/LICENSE +0 -0
  11. {pyxllib-0.3.126 → pyxllib-0.3.127}/MANIFEST.in +0 -0
  12. {pyxllib-0.3.126 → pyxllib-0.3.127}/README.md +0 -0
  13. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/__init__.py +0 -0
  14. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/algo/__init__.py +0 -0
  15. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/algo/disjoint.py +0 -0
  16. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/algo/geo.py +0 -0
  17. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/algo/intervals.py +0 -0
  18. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/algo/matcher.py +0 -0
  19. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/algo/newbie.py +0 -0
  20. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/algo/pupil.py +0 -0
  21. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/algo/shapelylib.py +0 -0
  22. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/algo/specialist.py +0 -0
  23. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/algo/stat.py +0 -0
  24. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/algo/treelib.py +0 -0
  25. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/algo/unitlib.py +0 -0
  26. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/cv/__init__.py +0 -0
  27. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/cv/expert.py +0 -0
  28. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/cv/imfile.py +0 -0
  29. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/cv/imhash.py +0 -0
  30. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/cv/pupil.py +0 -0
  31. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/cv/rgbfmt.py +0 -0
  32. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/cv/trackbartools.py +0 -0
  33. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/cv/xlcvlib.py +0 -0
  34. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/cv/xlpillib.py +0 -0
  35. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/data/__init__.py +0 -0
  36. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/data/echarts.py +0 -0
  37. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/data/jsonlib.py +0 -0
  38. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/data/oss.py +0 -0
  39. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/data/pglib.py +0 -0
  40. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/data/sqlite.py +0 -0
  41. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/data/sqllib.py +0 -0
  42. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/JLineViewer.py +0 -0
  43. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/__init__.py +0 -0
  44. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/autogui/__init__.py +0 -0
  45. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/autogui/autogui.py +0 -0
  46. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/autogui/virtualkey.py +0 -0
  47. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/demolib.py +0 -0
  48. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/kq5034lib.py +0 -0
  49. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/old.py +0 -0
  50. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/qt.py +0 -0
  51. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/robustprocfile.py +0 -0
  52. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/seleniumlib.py +0 -0
  53. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/tk.py +0 -0
  54. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/unixlib.py +0 -0
  55. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/utools.py +0 -0
  56. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/webhook.py +0 -0
  57. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/win32lib.py +0 -0
  58. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/ext/yuquelib.py +0 -0
  59. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/__init__.py +0 -0
  60. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/docxlib.py +0 -0
  61. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/gitlib.py +0 -0
  62. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/libreoffice.py +0 -0
  63. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/movielib.py +0 -0
  64. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/newbie.py +0 -0
  65. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/onenotelib.py +0 -0
  66. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/packlib/__init__.py +0 -0
  67. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/packlib/zipfile.py +0 -0
  68. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/pdflib.py +0 -0
  69. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/pupil.py +0 -0
  70. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/specialist/__init__.py +0 -0
  71. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/specialist/dirlib.py +0 -0
  72. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/specialist/download.py +0 -0
  73. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/specialist/filelib.py +0 -0
  74. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/file/xlsxlib.py +0 -0
  75. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/__init__.py +0 -0
  76. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/cachetools.py +0 -0
  77. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/deprecatedlib.py +0 -0
  78. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/ipyexec.py +0 -0
  79. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/multiprocs.py +0 -0
  80. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/newbie.py +0 -0
  81. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/scheduler.py +0 -0
  82. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/sitepackages.py +0 -0
  83. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/specialist/__init__.py +0 -0
  84. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/specialist/bc.py +0 -0
  85. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/specialist/browser.py +0 -0
  86. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/specialist/common.py +0 -0
  87. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/specialist/datetime.py +0 -0
  88. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/specialist/tictoc.py +0 -0
  89. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/prog/xlosenv.py +0 -0
  90. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/stdlib/__init__.py +0 -0
  91. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/stdlib/tablepyxl/__init__.py +0 -0
  92. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/stdlib/tablepyxl/style.py +0 -0
  93. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/stdlib/tablepyxl/tablepyxl.py +0 -0
  94. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/__init__.py +0 -0
  95. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/ahocorasick.py +0 -0
  96. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/charclasslib.py +0 -0
  97. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/jiebalib.py +0 -0
  98. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/jinjalib.py +0 -0
  99. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/jscode.py +0 -0
  100. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/latex/__init__.py +0 -0
  101. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/levenshtein.py +0 -0
  102. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/nestenv.py +0 -0
  103. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/newbie.py +0 -0
  104. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/pupil/__init__.py +0 -0
  105. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/pupil/common.py +0 -0
  106. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/pupil/xlalign.py +0 -0
  107. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/pycode.py +0 -0
  108. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/specialist/__init__.py +0 -0
  109. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/specialist/common.py +0 -0
  110. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/specialist/ptag.py +0 -0
  111. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/spellchecker.py +0 -0
  112. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/templates/echart_base.html +0 -0
  113. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/templates/highlight_code.html +0 -0
  114. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/templates/latex_editor.html +0 -0
  115. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/vbacode.py +0 -0
  116. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/text/xmllib.py +0 -0
  117. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/xl.py +0 -0
  118. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib/xlcv.py +0 -0
  119. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib.egg-info/SOURCES.txt +0 -0
  120. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib.egg-info/dependency_links.txt +0 -0
  121. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxllib.egg-info/top_level.txt +0 -0
  122. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/__init__.py +0 -0
  123. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ai/__init__.py +0 -0
  124. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ai/clientlib.py +0 -0
  125. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ai/specialist.py +0 -0
  126. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ai/torch_app.py +0 -0
  127. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ai/xlpaddle.py +0 -0
  128. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ai/xltorch.py +0 -0
  129. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/__init__.py +0 -0
  130. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/coco.py +0 -0
  131. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/datacls.py +0 -0
  132. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/datasets.py +0 -0
  133. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/gptlib.py +0 -0
  134. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/icdar/__init__.py +0 -0
  135. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/icdar/deteval.py +0 -0
  136. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/icdar/icdar2013.py +0 -0
  137. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/icdar/iou.py +0 -0
  138. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/icdar/rrc_evaluation_funcs_1_1.py +0 -0
  139. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/imtextline.py +0 -0
  140. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/labelme.py +0 -0
  141. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/removeline.py +0 -0
  142. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/specialist.py +0 -0
  143. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/data/tiktokenlib.py +0 -0
  144. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/eval/__init__.py +0 -0
  145. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/openai2/__init__.py +0 -0
  146. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/openai2/_core/chat_in_cmd.py +0 -0
  147. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/openai2/_core/group_chat.py +0 -0
  148. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/openai2/openai2.py +0 -0
  149. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/paddleocr.py +0 -0
  150. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/__init__.py +0 -0
  151. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/configs/rec/multi_language/generate_multi_language_configs.py +0 -0
  152. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/__init__.py +0 -0
  153. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/ColorJitter.py +0 -0
  154. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/__init__.py +0 -0
  155. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/copy_paste.py +0 -0
  156. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/east_process.py +0 -0
  157. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/gen_table_mask.py +0 -0
  158. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/iaa_augment.py +0 -0
  159. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/label_ops.py +0 -0
  160. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/make_border_map.py +0 -0
  161. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/make_pse_gt.py +0 -0
  162. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/make_shrink_map.py +0 -0
  163. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/operators.py +0 -0
  164. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/pg_process.py +0 -0
  165. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/randaugment.py +0 -0
  166. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/random_crop_data.py +0 -0
  167. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/rec_img_aug.py +0 -0
  168. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/sast_process.py +0 -0
  169. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/text_image_aug/__init__.py +0 -0
  170. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/text_image_aug/augment.py +0 -0
  171. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/imaug/text_image_aug/warp_mls.py +0 -0
  172. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/lmdb_dataset.py +0 -0
  173. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/pgnet_dataset.py +0 -0
  174. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/pubtab_dataset.py +0 -0
  175. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/data/simple_dataset.py +0 -0
  176. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/__init__.py +0 -0
  177. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/ace_loss.py +0 -0
  178. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/basic_loss.py +0 -0
  179. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/center_loss.py +0 -0
  180. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/cls_loss.py +0 -0
  181. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/combined_loss.py +0 -0
  182. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/det_basic_loss.py +0 -0
  183. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/det_db_loss.py +0 -0
  184. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/det_east_loss.py +0 -0
  185. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/det_pse_loss.py +0 -0
  186. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/det_sast_loss.py +0 -0
  187. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/distillation_loss.py +0 -0
  188. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/e2e_pg_loss.py +0 -0
  189. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/kie_sdmgr_loss.py +0 -0
  190. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/rec_aster_loss.py +0 -0
  191. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/rec_att_loss.py +0 -0
  192. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/rec_ctc_loss.py +0 -0
  193. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/rec_enhanced_ctc_loss.py +0 -0
  194. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/rec_nrtr_loss.py +0 -0
  195. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/rec_sar_loss.py +0 -0
  196. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/rec_srn_loss.py +0 -0
  197. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/losses/table_att_loss.py +0 -0
  198. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/metrics/__init__.py +0 -0
  199. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/metrics/cls_metric.py +0 -0
  200. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/metrics/det_metric.py +0 -0
  201. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/metrics/distillation_metric.py +0 -0
  202. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/metrics/e2e_metric.py +0 -0
  203. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/metrics/eval_det_iou.py +0 -0
  204. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/metrics/kie_metric.py +0 -0
  205. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/metrics/rec_metric.py +0 -0
  206. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/metrics/table_metric.py +0 -0
  207. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/architectures/__init__.py +0 -0
  208. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/architectures/base_model.py +0 -0
  209. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/architectures/distillation_model.py +0 -0
  210. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/__init__.py +0 -0
  211. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/det_mobilenet_v3.py +0 -0
  212. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd.py +0 -0
  213. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd_sast.py +0 -0
  214. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/e2e_resnet_vd_pg.py +0 -0
  215. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/kie_unet_sdmgr.py +0 -0
  216. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/rec_mobilenet_v3.py +0 -0
  217. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/rec_mv1_enhance.py +0 -0
  218. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/rec_nrtr_mtb.py +0 -0
  219. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/rec_resnet_31.py +0 -0
  220. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/rec_resnet_aster.py +0 -0
  221. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/rec_resnet_fpn.py +0 -0
  222. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/backbones/rec_resnet_vd.py +0 -0
  223. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/__init__.py +0 -0
  224. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/cls_head.py +0 -0
  225. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/det_db_head.py +0 -0
  226. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/det_east_head.py +0 -0
  227. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/det_pse_head.py +0 -0
  228. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/det_sast_head.py +0 -0
  229. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/e2e_pg_head.py +0 -0
  230. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/kie_sdmgr_head.py +0 -0
  231. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/multiheadAttention.py +0 -0
  232. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/rec_aster_head.py +0 -0
  233. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/rec_att_head.py +0 -0
  234. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/rec_ctc_head.py +0 -0
  235. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/rec_nrtr_head.py +0 -0
  236. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/rec_sar_head.py +0 -0
  237. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/rec_srn_head.py +0 -0
  238. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/self_attention.py +0 -0
  239. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/heads/table_att_head.py +0 -0
  240. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/necks/__init__.py +0 -0
  241. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/necks/db_fpn.py +0 -0
  242. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/necks/east_fpn.py +0 -0
  243. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/necks/fpn.py +0 -0
  244. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/necks/pg_fpn.py +0 -0
  245. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/necks/rnn.py +0 -0
  246. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/necks/sast_fpn.py +0 -0
  247. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/necks/table_fpn.py +0 -0
  248. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/transforms/__init__.py +0 -0
  249. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/transforms/stn.py +0 -0
  250. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/transforms/tps.py +0 -0
  251. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/modeling/transforms/tps_spatial_transformer.py +0 -0
  252. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/optimizer/__init__.py +0 -0
  253. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/optimizer/learning_rate.py +0 -0
  254. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/optimizer/lr_scheduler.py +0 -0
  255. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/optimizer/optimizer.py +0 -0
  256. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/optimizer/regularizer.py +0 -0
  257. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/postprocess/__init__.py +0 -0
  258. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/postprocess/cls_postprocess.py +0 -0
  259. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/postprocess/db_postprocess.py +0 -0
  260. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/postprocess/east_postprocess.py +0 -0
  261. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/postprocess/locality_aware_nms.py +0 -0
  262. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/postprocess/pg_postprocess.py +0 -0
  263. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/postprocess/pse_postprocess/__init__.py +0 -0
  264. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/__init__.py +0 -0
  265. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/setup.py +0 -0
  266. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/postprocess/pse_postprocess/pse_postprocess.py +0 -0
  267. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/postprocess/rec_postprocess.py +0 -0
  268. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/postprocess/sast_postprocess.py +0 -0
  269. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/__init__.py +0 -0
  270. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/eval.py +0 -0
  271. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/export_center.py +0 -0
  272. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/export_model.py +0 -0
  273. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/infer/predict_cls.py +0 -0
  274. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/infer/predict_det.py +0 -0
  275. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/infer/predict_e2e.py +0 -0
  276. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/infer/predict_rec.py +0 -0
  277. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/infer/predict_system.py +0 -0
  278. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/infer/utility.py +0 -0
  279. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/infer_cls.py +0 -0
  280. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/infer_det.py +0 -0
  281. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/infer_e2e.py +0 -0
  282. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/infer_kie.py +0 -0
  283. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/infer_rec.py +0 -0
  284. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/infer_table.py +0 -0
  285. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/program.py +0 -0
  286. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/test_hubserving.py +0 -0
  287. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/train.py +0 -0
  288. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/tools/xlprog.py +0 -0
  289. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/EN_symbol_dict.txt +0 -0
  290. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/__init__.py +0 -0
  291. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/ar_dict.txt +0 -0
  292. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/arabic_dict.txt +0 -0
  293. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/be_dict.txt +0 -0
  294. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/bg_dict.txt +0 -0
  295. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/chinese_cht_dict.txt +0 -0
  296. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/cyrillic_dict.txt +0 -0
  297. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/devanagari_dict.txt +0 -0
  298. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/en_dict.txt +0 -0
  299. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/fa_dict.txt +0 -0
  300. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/french_dict.txt +0 -0
  301. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/german_dict.txt +0 -0
  302. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/hi_dict.txt +0 -0
  303. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/it_dict.txt +0 -0
  304. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/japan_dict.txt +0 -0
  305. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/ka_dict.txt +0 -0
  306. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/korean_dict.txt +0 -0
  307. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/latin_dict.txt +0 -0
  308. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/mr_dict.txt +0 -0
  309. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/ne_dict.txt +0 -0
  310. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/oc_dict.txt +0 -0
  311. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/pu_dict.txt +0 -0
  312. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/rs_dict.txt +0 -0
  313. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/rsc_dict.txt +0 -0
  314. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/ru_dict.txt +0 -0
  315. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/ta_dict.txt +0 -0
  316. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/table_dict.txt +0 -0
  317. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/table_structure_dict.txt +0 -0
  318. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/te_dict.txt +0 -0
  319. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/ug_dict.txt +0 -0
  320. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/uk_dict.txt +0 -0
  321. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/ur_dict.txt +0 -0
  322. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict/xi_dict.txt +0 -0
  323. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/dict90.txt +0 -0
  324. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/e2e_metric/Deteval.py +0 -0
  325. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/e2e_metric/polygon_fast.py +0 -0
  326. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/e2e_utils/extract_batchsize.py +0 -0
  327. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_fast.py +0 -0
  328. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_slow.py +0 -0
  329. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/e2e_utils/pgnet_pp_utils.py +0 -0
  330. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/e2e_utils/visual.py +0 -0
  331. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/en_dict.txt +0 -0
  332. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/gen_label.py +0 -0
  333. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/ic15_dict.txt +0 -0
  334. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/iou.py +0 -0
  335. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/logging.py +0 -0
  336. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/network.py +0 -0
  337. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/ppocr_keys_v1.txt +0 -0
  338. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/profiler.py +0 -0
  339. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/save_load.py +0 -0
  340. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/stats.py +0 -0
  341. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppocr/utils/utility.py +0 -0
  342. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/__init__.py +0 -0
  343. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/predict_system.py +0 -0
  344. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/table/__init__.py +0 -0
  345. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/table/eval_table.py +0 -0
  346. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/table/matcher.py +0 -0
  347. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/table/predict_structure.py +0 -0
  348. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/table/predict_table.py +0 -0
  349. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/table/table_metric/__init__.py +0 -0
  350. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/table/table_metric/parallel.py +0 -0
  351. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/table/table_metric/table_metric.py +0 -0
  352. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/table/tablepyxl/__init__.py +0 -0
  353. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/table/tablepyxl/style.py +0 -0
  354. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/table/tablepyxl/tablepyxl.py +0 -0
  355. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/ppstructure/utility.py +0 -0
  356. {pyxllib-0.3.126 → pyxllib-0.3.127}/pyxlpr/xlai.py +0 -0
  357. {pyxllib-0.3.126 → pyxllib-0.3.127}/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.127
4
4
  Summary: 厦门理工模式识别团队通用python代码工具库
5
5
  Home-page: https://github.com/XLPRUtils/pyxllib
6
6
  Author: code4101
@@ -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
 
@@ -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,8 @@ 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
+
1226
+ mpl.add_process_python_module()
1154
1227
  mpl.add_process_python(sys.argv[0], cmds, shell=shell)
1155
1228
  mpl.run_endless()
1156
1229
 
@@ -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.127
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]
26
+ pillow
27
+ opsdroid-get-image-size
24
28
  pynvml
25
29
  visdom
26
- opsdroid-get-image-size
27
30
  opencv-python
28
- pillow
29
31
 
30
32
  [xlall]
31
- arts
32
- flask-cors
33
- zhconv
34
- ujson
33
+ pillow
34
+ flask-jwt-extended
35
+ flask
36
+ fastapi
37
+ opsdroid-get-image-size
35
38
  html2text
39
+ ujson
40
+ arts
36
41
  uvicorn
37
- opsdroid-get-image-size
38
- flask-jwt-extended
42
+ flask-wtf
43
+ zhconv
44
+ sentencepiece
45
+ flask-cors
39
46
  xlrd
40
- fastapi
41
47
  flask-restful
42
48
  opencv-python
43
- flask-wtf
44
- flask
45
- pillow
46
- sentencepiece
47
49
 
48
50
  [xlcv]
49
51
  opencv-python
50
- pillow
51
52
  opsdroid-get-image-size
53
+ pillow
@@ -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
@@ -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'):
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,7 +697,6 @@ class CompressContent:
580
697
  expect_len=None,
581
698
  max_round=-1,
582
699
  text_spliter=None,
583
- style=None,
584
700
  model='gpt-3.5-turbo',
585
701
  soft_merge_prompt=None,
586
702
  calc_len=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.127', # 当前版本,每次更新上传到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
File without changes
File without changes
File without changes