pyxllib 0.3.127__tar.gz → 0.3.129__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.127/pyxllib.egg-info → pyxllib-0.3.129}/PKG-INFO +1 -1
  2. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/data/pglib.py +50 -47
  3. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/yuquelib.py +3 -3
  4. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/xlsxlib.py +45 -0
  5. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/pupil.py +0 -1
  6. {pyxllib-0.3.127 → pyxllib-0.3.129/pyxllib.egg-info}/PKG-INFO +1 -1
  7. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib.egg-info/requires.txt +15 -14
  8. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/openai2/_core/chat.py +48 -9
  9. {pyxllib-0.3.127 → pyxllib-0.3.129}/setup.py +3 -1
  10. {pyxllib-0.3.127 → pyxllib-0.3.129}/LICENSE +0 -0
  11. {pyxllib-0.3.127 → pyxllib-0.3.129}/MANIFEST.in +0 -0
  12. {pyxllib-0.3.127 → pyxllib-0.3.129}/README.md +0 -0
  13. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/__init__.py +0 -0
  14. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/algo/__init__.py +0 -0
  15. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/algo/disjoint.py +0 -0
  16. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/algo/geo.py +0 -0
  17. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/algo/intervals.py +0 -0
  18. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/algo/matcher.py +0 -0
  19. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/algo/newbie.py +0 -0
  20. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/algo/pupil.py +0 -0
  21. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/algo/shapelylib.py +0 -0
  22. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/algo/specialist.py +0 -0
  23. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/algo/stat.py +0 -0
  24. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/algo/treelib.py +0 -0
  25. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/algo/unitlib.py +0 -0
  26. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/cv/__init__.py +0 -0
  27. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/cv/expert.py +0 -0
  28. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/cv/imfile.py +0 -0
  29. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/cv/imhash.py +0 -0
  30. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/cv/pupil.py +0 -0
  31. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/cv/rgbfmt.py +0 -0
  32. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/cv/trackbartools.py +0 -0
  33. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/cv/xlcvlib.py +0 -0
  34. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/cv/xlpillib.py +0 -0
  35. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/data/__init__.py +0 -0
  36. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/data/echarts.py +0 -0
  37. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/data/jsonlib.py +0 -0
  38. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/data/oss.py +0 -0
  39. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/data/sqlite.py +0 -0
  40. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/data/sqllib.py +0 -0
  41. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/JLineViewer.py +0 -0
  42. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/__init__.py +0 -0
  43. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/autogui/__init__.py +0 -0
  44. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/autogui/autogui.py +0 -0
  45. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/autogui/virtualkey.py +0 -0
  46. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/demolib.py +0 -0
  47. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/drissionlib.py +0 -0
  48. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/kq5034lib.py +0 -0
  49. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/old.py +0 -0
  50. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/qt.py +0 -0
  51. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/robustprocfile.py +0 -0
  52. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/seleniumlib.py +0 -0
  53. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/tk.py +0 -0
  54. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/unixlib.py +0 -0
  55. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/utools.py +0 -0
  56. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/webhook.py +0 -0
  57. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/ext/win32lib.py +0 -0
  58. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/__init__.py +0 -0
  59. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/docxlib.py +0 -0
  60. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/gitlib.py +0 -0
  61. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/libreoffice.py +0 -0
  62. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/movielib.py +0 -0
  63. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/newbie.py +0 -0
  64. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/onenotelib.py +0 -0
  65. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/packlib/__init__.py +0 -0
  66. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/packlib/zipfile.py +0 -0
  67. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/pdflib.py +0 -0
  68. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/pupil.py +0 -0
  69. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/specialist/__init__.py +0 -0
  70. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/specialist/dirlib.py +0 -0
  71. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/specialist/download.py +0 -0
  72. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/file/specialist/filelib.py +0 -0
  73. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/__init__.py +0 -0
  74. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/cachetools.py +0 -0
  75. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/deprecatedlib.py +0 -0
  76. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/ipyexec.py +0 -0
  77. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/multiprocs.py +0 -0
  78. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/newbie.py +0 -0
  79. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/scheduler.py +0 -0
  80. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/sitepackages.py +0 -0
  81. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/specialist/__init__.py +0 -0
  82. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/specialist/bc.py +0 -0
  83. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/specialist/browser.py +0 -0
  84. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/specialist/common.py +0 -0
  85. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/specialist/datetime.py +0 -0
  86. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/specialist/tictoc.py +0 -0
  87. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/specialist/xllog.py +0 -0
  88. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/prog/xlosenv.py +0 -0
  89. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/stdlib/__init__.py +0 -0
  90. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/stdlib/tablepyxl/__init__.py +0 -0
  91. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/stdlib/tablepyxl/style.py +0 -0
  92. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/stdlib/tablepyxl/tablepyxl.py +0 -0
  93. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/__init__.py +0 -0
  94. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/ahocorasick.py +0 -0
  95. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/charclasslib.py +0 -0
  96. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/jiebalib.py +0 -0
  97. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/jinjalib.py +0 -0
  98. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/jscode.py +0 -0
  99. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/latex/__init__.py +0 -0
  100. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/levenshtein.py +0 -0
  101. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/nestenv.py +0 -0
  102. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/newbie.py +0 -0
  103. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/pupil/__init__.py +0 -0
  104. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/pupil/common.py +0 -0
  105. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/pupil/xlalign.py +0 -0
  106. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/pycode.py +0 -0
  107. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/specialist/__init__.py +0 -0
  108. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/specialist/common.py +0 -0
  109. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/specialist/ptag.py +0 -0
  110. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/spellchecker.py +0 -0
  111. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/templates/echart_base.html +0 -0
  112. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/templates/highlight_code.html +0 -0
  113. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/templates/latex_editor.html +0 -0
  114. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/vbacode.py +0 -0
  115. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/text/xmllib.py +0 -0
  116. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/xl.py +0 -0
  117. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib/xlcv.py +0 -0
  118. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib.egg-info/SOURCES.txt +0 -0
  119. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib.egg-info/dependency_links.txt +0 -0
  120. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxllib.egg-info/top_level.txt +0 -0
  121. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/__init__.py +0 -0
  122. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ai/__init__.py +0 -0
  123. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ai/clientlib.py +0 -0
  124. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ai/specialist.py +0 -0
  125. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ai/torch_app.py +0 -0
  126. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ai/xlpaddle.py +0 -0
  127. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ai/xltorch.py +0 -0
  128. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/__init__.py +0 -0
  129. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/coco.py +0 -0
  130. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/datacls.py +0 -0
  131. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/datasets.py +0 -0
  132. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/gptlib.py +0 -0
  133. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/icdar/__init__.py +0 -0
  134. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/icdar/deteval.py +0 -0
  135. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/icdar/icdar2013.py +0 -0
  136. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/icdar/iou.py +0 -0
  137. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/icdar/rrc_evaluation_funcs_1_1.py +0 -0
  138. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/imtextline.py +0 -0
  139. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/labelme.py +0 -0
  140. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/removeline.py +0 -0
  141. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/specialist.py +0 -0
  142. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/data/tiktokenlib.py +0 -0
  143. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/eval/__init__.py +0 -0
  144. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/openai2/__init__.py +0 -0
  145. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/openai2/_core/chat_in_cmd.py +0 -0
  146. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/openai2/_core/group_chat.py +0 -0
  147. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/openai2/openai2.py +0 -0
  148. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/paddleocr.py +0 -0
  149. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/__init__.py +0 -0
  150. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/configs/rec/multi_language/generate_multi_language_configs.py +0 -0
  151. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/__init__.py +0 -0
  152. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/ColorJitter.py +0 -0
  153. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/__init__.py +0 -0
  154. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/copy_paste.py +0 -0
  155. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/east_process.py +0 -0
  156. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/gen_table_mask.py +0 -0
  157. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/iaa_augment.py +0 -0
  158. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/label_ops.py +0 -0
  159. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/make_border_map.py +0 -0
  160. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/make_pse_gt.py +0 -0
  161. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/make_shrink_map.py +0 -0
  162. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/operators.py +0 -0
  163. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/pg_process.py +0 -0
  164. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/randaugment.py +0 -0
  165. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/random_crop_data.py +0 -0
  166. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/rec_img_aug.py +0 -0
  167. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/sast_process.py +0 -0
  168. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/text_image_aug/__init__.py +0 -0
  169. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/text_image_aug/augment.py +0 -0
  170. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/imaug/text_image_aug/warp_mls.py +0 -0
  171. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/lmdb_dataset.py +0 -0
  172. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/pgnet_dataset.py +0 -0
  173. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/pubtab_dataset.py +0 -0
  174. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/data/simple_dataset.py +0 -0
  175. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/__init__.py +0 -0
  176. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/ace_loss.py +0 -0
  177. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/basic_loss.py +0 -0
  178. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/center_loss.py +0 -0
  179. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/cls_loss.py +0 -0
  180. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/combined_loss.py +0 -0
  181. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/det_basic_loss.py +0 -0
  182. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/det_db_loss.py +0 -0
  183. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/det_east_loss.py +0 -0
  184. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/det_pse_loss.py +0 -0
  185. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/det_sast_loss.py +0 -0
  186. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/distillation_loss.py +0 -0
  187. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/e2e_pg_loss.py +0 -0
  188. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/kie_sdmgr_loss.py +0 -0
  189. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/rec_aster_loss.py +0 -0
  190. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/rec_att_loss.py +0 -0
  191. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/rec_ctc_loss.py +0 -0
  192. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/rec_enhanced_ctc_loss.py +0 -0
  193. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/rec_nrtr_loss.py +0 -0
  194. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/rec_sar_loss.py +0 -0
  195. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/rec_srn_loss.py +0 -0
  196. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/losses/table_att_loss.py +0 -0
  197. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/metrics/__init__.py +0 -0
  198. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/metrics/cls_metric.py +0 -0
  199. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/metrics/det_metric.py +0 -0
  200. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/metrics/distillation_metric.py +0 -0
  201. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/metrics/e2e_metric.py +0 -0
  202. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/metrics/eval_det_iou.py +0 -0
  203. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/metrics/kie_metric.py +0 -0
  204. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/metrics/rec_metric.py +0 -0
  205. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/metrics/table_metric.py +0 -0
  206. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/architectures/__init__.py +0 -0
  207. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/architectures/base_model.py +0 -0
  208. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/architectures/distillation_model.py +0 -0
  209. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/__init__.py +0 -0
  210. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/det_mobilenet_v3.py +0 -0
  211. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd.py +0 -0
  212. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd_sast.py +0 -0
  213. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/e2e_resnet_vd_pg.py +0 -0
  214. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/kie_unet_sdmgr.py +0 -0
  215. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/rec_mobilenet_v3.py +0 -0
  216. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/rec_mv1_enhance.py +0 -0
  217. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/rec_nrtr_mtb.py +0 -0
  218. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/rec_resnet_31.py +0 -0
  219. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/rec_resnet_aster.py +0 -0
  220. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/rec_resnet_fpn.py +0 -0
  221. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/backbones/rec_resnet_vd.py +0 -0
  222. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/__init__.py +0 -0
  223. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/cls_head.py +0 -0
  224. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/det_db_head.py +0 -0
  225. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/det_east_head.py +0 -0
  226. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/det_pse_head.py +0 -0
  227. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/det_sast_head.py +0 -0
  228. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/e2e_pg_head.py +0 -0
  229. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/kie_sdmgr_head.py +0 -0
  230. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/multiheadAttention.py +0 -0
  231. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/rec_aster_head.py +0 -0
  232. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/rec_att_head.py +0 -0
  233. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/rec_ctc_head.py +0 -0
  234. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/rec_nrtr_head.py +0 -0
  235. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/rec_sar_head.py +0 -0
  236. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/rec_srn_head.py +0 -0
  237. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/self_attention.py +0 -0
  238. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/heads/table_att_head.py +0 -0
  239. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/necks/__init__.py +0 -0
  240. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/necks/db_fpn.py +0 -0
  241. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/necks/east_fpn.py +0 -0
  242. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/necks/fpn.py +0 -0
  243. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/necks/pg_fpn.py +0 -0
  244. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/necks/rnn.py +0 -0
  245. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/necks/sast_fpn.py +0 -0
  246. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/necks/table_fpn.py +0 -0
  247. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/transforms/__init__.py +0 -0
  248. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/transforms/stn.py +0 -0
  249. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/transforms/tps.py +0 -0
  250. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/modeling/transforms/tps_spatial_transformer.py +0 -0
  251. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/optimizer/__init__.py +0 -0
  252. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/optimizer/learning_rate.py +0 -0
  253. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/optimizer/lr_scheduler.py +0 -0
  254. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/optimizer/optimizer.py +0 -0
  255. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/optimizer/regularizer.py +0 -0
  256. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/postprocess/__init__.py +0 -0
  257. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/postprocess/cls_postprocess.py +0 -0
  258. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/postprocess/db_postprocess.py +0 -0
  259. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/postprocess/east_postprocess.py +0 -0
  260. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/postprocess/locality_aware_nms.py +0 -0
  261. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/postprocess/pg_postprocess.py +0 -0
  262. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/postprocess/pse_postprocess/__init__.py +0 -0
  263. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/__init__.py +0 -0
  264. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/setup.py +0 -0
  265. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/postprocess/pse_postprocess/pse_postprocess.py +0 -0
  266. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/postprocess/rec_postprocess.py +0 -0
  267. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/postprocess/sast_postprocess.py +0 -0
  268. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/__init__.py +0 -0
  269. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/eval.py +0 -0
  270. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/export_center.py +0 -0
  271. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/export_model.py +0 -0
  272. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/infer/predict_cls.py +0 -0
  273. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/infer/predict_det.py +0 -0
  274. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/infer/predict_e2e.py +0 -0
  275. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/infer/predict_rec.py +0 -0
  276. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/infer/predict_system.py +0 -0
  277. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/infer/utility.py +0 -0
  278. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/infer_cls.py +0 -0
  279. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/infer_det.py +0 -0
  280. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/infer_e2e.py +0 -0
  281. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/infer_kie.py +0 -0
  282. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/infer_rec.py +0 -0
  283. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/infer_table.py +0 -0
  284. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/program.py +0 -0
  285. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/test_hubserving.py +0 -0
  286. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/train.py +0 -0
  287. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/tools/xlprog.py +0 -0
  288. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/EN_symbol_dict.txt +0 -0
  289. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/__init__.py +0 -0
  290. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/ar_dict.txt +0 -0
  291. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/arabic_dict.txt +0 -0
  292. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/be_dict.txt +0 -0
  293. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/bg_dict.txt +0 -0
  294. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/chinese_cht_dict.txt +0 -0
  295. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/cyrillic_dict.txt +0 -0
  296. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/devanagari_dict.txt +0 -0
  297. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/en_dict.txt +0 -0
  298. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/fa_dict.txt +0 -0
  299. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/french_dict.txt +0 -0
  300. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/german_dict.txt +0 -0
  301. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/hi_dict.txt +0 -0
  302. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/it_dict.txt +0 -0
  303. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/japan_dict.txt +0 -0
  304. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/ka_dict.txt +0 -0
  305. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/korean_dict.txt +0 -0
  306. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/latin_dict.txt +0 -0
  307. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/mr_dict.txt +0 -0
  308. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/ne_dict.txt +0 -0
  309. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/oc_dict.txt +0 -0
  310. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/pu_dict.txt +0 -0
  311. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/rs_dict.txt +0 -0
  312. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/rsc_dict.txt +0 -0
  313. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/ru_dict.txt +0 -0
  314. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/ta_dict.txt +0 -0
  315. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/table_dict.txt +0 -0
  316. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/table_structure_dict.txt +0 -0
  317. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/te_dict.txt +0 -0
  318. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/ug_dict.txt +0 -0
  319. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/uk_dict.txt +0 -0
  320. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/ur_dict.txt +0 -0
  321. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict/xi_dict.txt +0 -0
  322. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/dict90.txt +0 -0
  323. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/e2e_metric/Deteval.py +0 -0
  324. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/e2e_metric/polygon_fast.py +0 -0
  325. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/e2e_utils/extract_batchsize.py +0 -0
  326. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_fast.py +0 -0
  327. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_slow.py +0 -0
  328. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/e2e_utils/pgnet_pp_utils.py +0 -0
  329. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/e2e_utils/visual.py +0 -0
  330. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/en_dict.txt +0 -0
  331. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/gen_label.py +0 -0
  332. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/ic15_dict.txt +0 -0
  333. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/iou.py +0 -0
  334. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/logging.py +0 -0
  335. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/network.py +0 -0
  336. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/ppocr_keys_v1.txt +0 -0
  337. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/profiler.py +0 -0
  338. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/save_load.py +0 -0
  339. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/stats.py +0 -0
  340. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppocr/utils/utility.py +0 -0
  341. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/__init__.py +0 -0
  342. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/predict_system.py +0 -0
  343. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/table/__init__.py +0 -0
  344. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/table/eval_table.py +0 -0
  345. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/table/matcher.py +0 -0
  346. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/table/predict_structure.py +0 -0
  347. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/table/predict_table.py +0 -0
  348. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/table/table_metric/__init__.py +0 -0
  349. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/table/table_metric/parallel.py +0 -0
  350. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/table/table_metric/table_metric.py +0 -0
  351. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/table/tablepyxl/__init__.py +0 -0
  352. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/table/tablepyxl/style.py +0 -0
  353. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/table/tablepyxl/tablepyxl.py +0 -0
  354. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/ppstructure/utility.py +0 -0
  355. {pyxllib-0.3.127 → pyxllib-0.3.129}/pyxlpr/xlai.py +0 -0
  356. {pyxllib-0.3.127 → pyxllib-0.3.129}/requirements.txt +0 -0
  357. {pyxllib-0.3.127 → pyxllib-0.3.129}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyxllib
3
- Version: 0.3.127
3
+ Version: 0.3.129
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
 
@@ -781,27 +781,30 @@ class XlprDb(Connection):
781
781
  def pretty_val(v):
782
782
  return round_int(v) if v > 100 else round(v, 2)
783
783
 
784
- chart = Line()
785
- chart.set_title(title)
786
- chart.options['xAxis'][0].update({'min': ls[0][0], 'type': 'time',
787
- # 'minInterval': 3600 * 1000 * 24,
788
- 'name': '时间', 'nameGap': 50, 'nameLocation': 'middle'})
789
- chart.options['yAxis'][0].update({'name': yaxis_name, 'nameGap': 50, 'nameLocation': 'middle'})
790
- # 目前是比较暴力的方法调整排版,后续要研究是不是能更自动灵活些
791
- chart.options['legend'][0].update({'top': '6%', 'icon': 'pin'})
792
- chart.options['grid'] = [{'top': 55 + len(all_users_usaged) * 4, 'containLabel': True}]
793
- chart.options['tooltip'].opts.update({'axisPointer': {'type': 'cross'}, 'trigger': 'item'})
794
-
795
- chart.add_series(f'total{pretty_val(ls[0][1]):g}', to_list([x[1] for x in ls]), areaStyle={})
796
- for user, usaged in all_users_usaged.most_common():
797
- usaged = usaged / ((ls[-1][0] - ls[0][0]).total_seconds() / 3600 + 1e-9)
798
- chart.add_series(f'{user}{pretty_val(usaged):g}',
799
- to_list([x[2].get(user, 0) for x in ls]),
800
- areaStyle={}, stack='Total', emphasis={'focus': 'series'})
801
-
802
- return '<body>' + chart.render_embed() + '</body>', sum(all_users_usaged.values())
803
-
804
- # cdx_edit
784
+ try:
785
+ chart = Line()
786
+ chart.set_title(title)
787
+ chart.options['xAxis'][0].update({'min': ls[0][0], 'type': 'time',
788
+ # 'minInterval': 3600 * 1000 * 24,
789
+ 'name': '时间', 'nameGap': 50, 'nameLocation': 'middle'})
790
+ chart.options['yAxis'][0].update({'name': yaxis_name, 'nameGap': 50, 'nameLocation': 'middle'})
791
+ # 目前是比较暴力的方法调整排版,后续要研究是不是能更自动灵活些
792
+ chart.options['legend'][0].update({'top': '6%', 'icon': 'pin'})
793
+ chart.options['grid'] = [{'top': 55 + len(all_users_usaged) * 4, 'containLabel': True}]
794
+ chart.options['tooltip'].opts.update({'axisPointer': {'type': 'cross'}, 'trigger': 'item'})
795
+
796
+ chart.add_series(f'total{pretty_val(ls[0][1]):g}', to_list([x[1] for x in ls]), areaStyle={})
797
+ for user, usaged in all_users_usaged.most_common():
798
+ usaged = usaged / ((ls[-1][0] - ls[0][0]).total_seconds() / 3600 + 1e-9)
799
+ chart.add_series(f'{user}{pretty_val(usaged):g}',
800
+ to_list([x[2].get(user, 0) for x in ls]),
801
+ areaStyle={}, stack='Total', emphasis={'focus': 'series'})
802
+
803
+ return '<body>' + chart.render_embed() + '</body>', sum(all_users_usaged.values())
804
+ except Exception as e:
805
+ return str(e), 0
806
+
807
+ # cdx_edit
805
808
  def _get_database_trace_total(self, title, yaxis_name, date_trunc, recent, link_name):
806
809
  ls = self.execute(textwrap.dedent(f"""\
807
810
  WITH cte1 AS(
@@ -817,7 +820,6 @@ class XlprDb(Connection):
817
820
  ORDER BY ttime"""), ((utc_now(8) - recent).isoformat(timespec='seconds'),)).fetchall()
818
821
  return self.database_create_stack_chart(title, ls, yaxis_name=yaxis_name)
819
822
 
820
-
821
823
  def _get_database_trace_per_host(self, db, title, yaxis_name, date_trunc, recent, link_name):
822
824
  ls = self.execute(textwrap.dedent(f"""\
823
825
  WITH cte1 AS (
@@ -860,20 +862,20 @@ class XlprDb(Connection):
860
862
  if k == '_total':
861
863
  continue
862
864
  all_database_usaged[k] += v * hours
863
-
865
+
864
866
  for i, x in enumerate(ls):
865
867
  ct = Counter()
866
868
  for k, v in x[1].items():
867
869
  ct[k] += v
868
870
  ls[i] = (x[0], ct, int(x[2]))
869
-
871
+
870
872
  # 2 转图表可视化
871
873
  def to_list(values):
872
874
  return [(x[0], v) for x, v in zip(ls, values)]
873
-
875
+
874
876
  def pretty_val(v):
875
877
  return round_int(v) if v > 100 else round(v, 2)
876
-
878
+
877
879
  chart = Line()
878
880
  chart.set_title(title)
879
881
  chart.options['xAxis'][0].update({'min': ls[0][0], 'type': 'time',
@@ -882,51 +884,52 @@ class XlprDb(Connection):
882
884
  chart.options['yAxis'][0].update({'name': yaxis_name, 'nameGap': 50, 'nameLocation': 'middle'})
883
885
  # 目前是比较暴力的方法调整排版,后续要研究是不是能更自动灵活些
884
886
  chart.options['legend'][0].update({'top': '6%', 'icon': 'pin'})
885
- chart.options['grid'] = [{'top': 55 + len(all_database_usaged) * 4 , 'containLabel': True}]
887
+ chart.options['grid'] = [{'top': 55 + len(all_database_usaged) * 4, 'containLabel': True}]
886
888
  chart.options['tooltip'].opts.update({'axisPointer': {'type': 'cross'}, 'trigger': 'item'})
887
-
888
- chart.add_series(f'total {pretty_val(ls[0][2]/1024/1024/1024):g}', to_list([x[2]/1024/1024/1024 for x in ls]), areaStyle={})
889
+
890
+ #chart.add_series(f'total {pretty_val(ls[0][2] / 1024 / 1024 / 1024):g}',
891
+ # to_list([x[2] / 1024 / 1024 / 1024 for x in ls]), areaStyle={})
889
892
  for database, usaged in all_database_usaged.most_common():
890
893
  usaged = usaged / ((ls[-1][0] - ls[0][0]).total_seconds() / 3600 + 1e-9)
891
- chart.add_series(f'{database} {pretty_val(usaged/1024/1024/1024):g}',
892
- to_list([x[1].get(database, 0)/1024/1024/1024 for x in ls]),
894
+ chart.add_series(f'{database} {pretty_val(usaged / 1024 / 1024 / 1024):g}',
895
+ to_list([x[1].get(database, 0) / 1024 / 1024 / 1024 for x in ls]),
893
896
  areaStyle={}, stack='Total', emphasis={'focus': 'series'})
894
897
  return '<body>' + chart.render_embed() + '</body>'
895
898
 
896
- def dbview_xldb1_memory(self,recent=datetime.timedelta(days=30), date_trunc='hour'):
899
+ def dbview_xldb1_memory(self, recent=datetime.timedelta(days=180), date_trunc='day'):
897
900
  from pyxllib.data.echarts import render_echart_html
898
-
899
- db_list = ['st', 'xlpr', 'stdata', 'kq5034', 'ckz']
901
+
902
+ db_list = ['stdata', 'xlpr', 'st', 'ckz']
900
903
  args = ['数据库大小(GB)', date_trunc, recent, 'xldb1']
901
904
  htmltexts = []
902
905
 
903
- res = self._get_database_trace_total('XLDB1数据库使用近况', *args)
906
+ res = self._get_database_trace_total('xldb1数据库使用近况', *args)
904
907
  htmltexts.append(res)
905
908
 
906
909
  data_stats = []
907
- for idx,db in enumerate(db_list,start=1):
908
- data_stats.append(self._get_database_trace_per_host(db,f'{db}', *args))
910
+ for idx, db in enumerate(db_list, start=1):
911
+ data_stats.append(self._get_database_trace_per_host(db, f'{db}', *args))
909
912
  htmltexts += data_stats
910
913
 
911
914
  self.commit()
912
915
  h = render_echart_html('database_cdx', body='<br/>'.join(htmltexts))
913
916
  return h
914
-
915
- def dbview_xldb2_memory(self, recent=datetime.timedelta(days=30), date_trunc='hour'):
917
+
918
+ def dbview_xldb2_memory(self, recent=datetime.timedelta(days=180), date_trunc='day'):
916
919
  from pyxllib.data.echarts import render_echart_html
917
-
918
- db_list = ['st', 'ragdata']
920
+
921
+ db_list = ['ragdata', 'kq5034']
919
922
  args = ['数据库大小(GB)', date_trunc, recent, 'xldb2']
920
923
  htmltexts = []
921
-
922
- res = self._get_database_trace_total('XLDB2数据库使用近况', *args)
924
+
925
+ res = self._get_database_trace_total('xldb2数据库使用近况', *args)
923
926
  htmltexts.append(res)
924
-
927
+
925
928
  data_stats = []
926
929
  for idx, db in enumerate(db_list, start=1):
927
930
  data_stats.append(self._get_database_trace_per_host(db, f'{db}', *args))
928
931
  htmltexts += data_stats
929
-
932
+
930
933
  self.commit()
931
934
  h = render_echart_html('database_cdx', body='<br/>'.join(htmltexts))
932
935
  return h
@@ -977,7 +980,7 @@ class XlprDb(Connection):
977
980
  h = render_echart_html('cpu_memory', body='<br/>'.join(htmltexts))
978
981
  return h
979
982
 
980
- def dbview_disk_memory(self, recent=datetime.timedelta(days=30), date_trunc='day'):
983
+ def dbview_disk_memory(self, recent=datetime.timedelta(days=360), date_trunc='day'):
981
984
  """ 查看disk硬盘使用近况
982
985
  """
983
986
  from pyxllib.data.echarts import render_echart_html
@@ -20,10 +20,10 @@ class Yuque:
20
20
  语雀请求限制:每小时最多 5000 次请求,每秒最多 100 次请求
21
21
  """
22
22
 
23
- def __init__(self, token, user_id=None):
23
+ def __init__(self, token=None, user_id=None):
24
24
  self.base_url = "https://www.yuque.com/api/v2"
25
25
  self.headers = {
26
- "X-Auth-Token": token,
26
+ "X-Auth-Token": token or os.environ.get('YUQUE_TOKEN'),
27
27
  "Content-Type": "application/json"
28
28
  }
29
29
  self._user_id = user_id
@@ -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)
@@ -1223,7 +1223,6 @@ def support_multi_processes(default_processes=1):
1223
1223
  cmds.append(f'--{k}') # 添加关键字参数的键
1224
1224
  cmds.append(str(v)) # 添加关键字参数的值
1225
1225
 
1226
- mpl.add_process_python_module()
1227
1226
  mpl.add_process_python(sys.argv[0], cmds, shell=shell)
1228
1227
  mpl.run_endless()
1229
1228
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyxllib
3
- Version: 0.3.127
3
+ Version: 0.3.129
4
4
  Summary: 厦门理工模式识别团队通用python代码工具库
5
5
  Home-page: https://github.com/XLPRUtils/pyxllib
6
6
  Author: code4101
@@ -23,31 +23,32 @@ pandas>=0.23.4
23
23
  pillow
24
24
 
25
25
  [xlai]
26
- pillow
26
+ visdom
27
27
  opsdroid-get-image-size
28
28
  pynvml
29
- visdom
29
+ pillow
30
30
  opencv-python
31
31
 
32
32
  [xlall]
33
- pillow
34
- flask-jwt-extended
35
- flask
36
- fastapi
37
- opsdroid-get-image-size
38
- html2text
39
- ujson
33
+ zhconv
40
34
  arts
41
35
  uvicorn
42
- flask-wtf
43
- zhconv
36
+ html2text
37
+ openai2
38
+ opsdroid-get-image-size
39
+ fastapi
40
+ flask-restful
41
+ flask-jwt-extended
44
42
  sentencepiece
45
- flask-cors
43
+ ujson
44
+ pillow
45
+ flask
46
46
  xlrd
47
- flask-restful
47
+ flask-wtf
48
+ flask-cors
48
49
  opencv-python
49
50
 
50
51
  [xlcv]
51
- opencv-python
52
52
  opsdroid-get-image-size
53
53
  pillow
54
+ opencv-python
@@ -15,6 +15,7 @@ import logging
15
15
  from unittest.mock import MagicMock
16
16
  import math
17
17
  from types import SimpleNamespace
18
+ from typing import Union
18
19
 
19
20
  import requests
20
21
  from loguru import logger as loguru_logger
@@ -132,11 +133,11 @@ class Chat:
132
133
 
133
134
  recently_request_data: dict # 最近一次请求所用的参数
134
135
  default_api_key = None
135
- default_base_url = "https://console.chatdata.online/v1"
136
+ default_base_url = "https://platform.llmprovider.ai/v1"
136
137
 
137
138
  def __init__(self,
138
139
  # kwargs
139
- api_key: str | AKPool = None,
140
+ api_key: Union[str, AKPool] = None,
140
141
  base_url: str = None, # base_url 参数用于修改基础URL
141
142
  timeout=None,
142
143
  max_retries=None,
@@ -145,7 +146,7 @@ class Chat:
145
146
  model: Literal["gpt-4-1106-preview", "gpt-4-vision-preview",
146
147
  "gpt-4", "gpt-4-0314", "gpt-4-0613",
147
148
  "gpt-4-32k", "gpt-4-32k-0314", "gpt-4-32k-0613", "gpt-3.5-turbo",
148
- "gpt-4o", "gpt-4-turbo"] = "gpt-3.5-turbo",
149
+ "gpt-4o", "gpt-4-turbo"] = "gpt-4o-mini",
149
150
  # Chat
150
151
  msg_max_count: int = None,
151
152
  # kwargs
@@ -176,7 +177,7 @@ class Chat:
176
177
  def __1_原作者提供功能(self):
177
178
  pass
178
179
 
179
- def reset_api_key(self, api_key: str | AKPool):
180
+ def reset_api_key(self, api_key: Union[str, AKPool]):
180
181
  if isinstance(api_key, AKPool):
181
182
  self._akpool = api_key
182
183
  else:
@@ -283,7 +284,7 @@ class Chat:
283
284
  def fetch_messages(self):
284
285
  return list(self._messages)
285
286
 
286
- def add_dialogs(self, *ms: dict | system_msg | user_msg | assistant_msg):
287
+ def add_dialogs(self, *ms: Union[dict, system_msg, user_msg, assistant_msg]):
287
288
  '''
288
289
  添加历史对话
289
290
  '''
@@ -505,7 +506,7 @@ class Chat2:
505
506
  gizmo_id=None,
506
507
  *,
507
508
  base_url=None,
508
- model='gpt-4o'):
509
+ model='gpt-4o-mini'):
509
510
  """
510
511
  :param gizmo_id: gpts的id,比如 https://chatgpt.com/g/g-ABCD1234-ce-shi。则id就是"g-ABCD1234"
511
512
  后面的gpts的名称变了没关系,前面前缀的id不要变就行
@@ -563,7 +564,7 @@ class Chat2:
563
564
  url = f"{self.base_url}/chat/all-tools"
564
565
 
565
566
  headers = self.headers.copy()
566
- headers['Content-Type'] = 'application/json'
567
+ # headers['Content-Type'] = 'application/json'
567
568
 
568
569
  # 2 api初步配置
569
570
  payload = self.session_state.copy()
@@ -586,7 +587,8 @@ class Chat2:
586
587
  self._upload_image(image, parent_payload=payload)
587
588
 
588
589
  # 5 请求
589
- resp = requests.post(url, headers=headers, data=json.dumps(payload))
590
+ # resp = requests.post(url, headers=headers, data=json.dumps(payload))
591
+ resp = requests.post(url, headers=headers, json=payload) # 我觉得应该可以改这样调用,但还没测试
590
592
  resp_json = resp.json()
591
593
 
592
594
  # 6 保存状态
@@ -597,6 +599,43 @@ class Chat2:
597
599
  return '\n\n'.join(resp_json['contents'][-1]['message']['content']['parts'])
598
600
 
599
601
 
602
+ class DifyChat:
603
+ default_base_url = 'http://localhost'
604
+
605
+ def __init__(self, app_key, *,
606
+ conversation_id=None,
607
+ user=None,
608
+ base_url=None):
609
+ self.app_key = app_key
610
+ self.base_url = base_url or self.default_base_url
611
+
612
+ self.headers = {
613
+ 'Authorization': f'Bearer {self.app_key}',
614
+ }
615
+
616
+ self.conversation_state = {
617
+ 'inputs': {},
618
+ # 'response_mode': 'streaming',
619
+ 'conversation_id': conversation_id or '',
620
+ 'user': user or 'code4101',
621
+ }
622
+
623
+ def query(self, query, *, files=None, images=None):
624
+ """ files、images等后期再加
625
+ """
626
+ # 1 请求
627
+ payload = self.conversation_state.copy()
628
+ payload['query'] = query
629
+ resp = requests.post(f'{self.base_url}/v1/chat-messages',
630
+ headers=self.headers, json=payload)
631
+ resp_json = resp.json() # 如果需要可以打印这个字典看结构
632
+
633
+ # 2 保存状态
634
+ self.conversation_state['conversation_id'] = resp_json.get('conversation_id', '')
635
+
636
+ return resp_json['answer']
637
+
638
+
600
639
  def __2_信息摘要():
601
640
  pass
602
641
 
@@ -697,7 +736,7 @@ class CompressContent:
697
736
  expect_len=None,
698
737
  max_round=-1,
699
738
  text_spliter=None,
700
- model='gpt-3.5-turbo',
739
+ model='gpt-4o-mini',
701
740
  soft_merge_prompt=None,
702
741
  calc_len=None,
703
742
  logger=None,
@@ -41,14 +41,16 @@ flask-jwt-extended
41
41
  fastapi
42
42
  arts
43
43
  uvicorn
44
+ openai2
44
45
  """
45
46
  # pywin32
47
+ # openai2里有个import arts的东西,这个arts才是作者原本的库
46
48
 
47
49
  _dir = Path(__file__).parent
48
50
 
49
51
  setup(
50
52
  name='pyxllib', # pip 安装时用的名字
51
- version='0.3.127', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
53
+ version='0.3.129', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
52
54
  author='code4101',
53
55
  author_email='877362867@qq.com',
54
56
  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