pyxllib 0.3.170__tar.gz → 0.3.175__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 (369) hide show
  1. {pyxllib-0.3.170 → pyxllib-0.3.175}/MANIFEST.in +2 -1
  2. {pyxllib-0.3.170/pyxllib.egg-info → pyxllib-0.3.175}/PKG-INFO +15 -15
  3. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/autogui/wxautolib.py +7 -0
  4. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/drissionlib.py +31 -0
  5. pyxllib-0.3.175/pyxllib/ext/wpsapi.py +102 -0
  6. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/airscript.js +34 -21
  7. {pyxllib-0.3.170 → pyxllib-0.3.175/pyxllib.egg-info}/PKG-INFO +15 -15
  8. {pyxllib-0.3.170 → pyxllib-0.3.175}/setup.py +1 -1
  9. pyxllib-0.3.170/pyxllib/ext/wpsapi.py +0 -542
  10. {pyxllib-0.3.170 → pyxllib-0.3.175}/LICENSE +0 -0
  11. {pyxllib-0.3.170 → pyxllib-0.3.175}/README.md +0 -0
  12. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/__init__.py +0 -0
  13. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/algo/__init__.py +0 -0
  14. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/algo/disjoint.py +0 -0
  15. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/algo/geo.py +0 -0
  16. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/algo/intervals.py +0 -0
  17. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/algo/matcher.py +0 -0
  18. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/algo/newbie.py +0 -0
  19. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/algo/pupil.py +0 -0
  20. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/algo/shapelylib.py +0 -0
  21. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/algo/specialist.py +0 -0
  22. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/algo/stat.py +0 -0
  23. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/algo/treelib.py +0 -0
  24. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/algo/unitlib.py +0 -0
  25. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/autogui/__init__.py +0 -0
  26. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/autogui/activewin.py +0 -0
  27. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/autogui/all.py +0 -0
  28. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/autogui/autogui.py +0 -0
  29. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/autogui/uiautolib.py +0 -0
  30. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/autogui/virtualkey.py +0 -0
  31. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/autogui/wechat.py +0 -0
  32. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/autogui/wechat_msg.py +0 -0
  33. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/cv/__init__.py +0 -0
  34. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/cv/expert.py +0 -0
  35. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/cv/imfile.py +0 -0
  36. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/cv/imhash.py +0 -0
  37. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/cv/pupil.py +0 -0
  38. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/cv/rgbfmt.py +0 -0
  39. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/cv/slidercaptcha.py +0 -0
  40. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/cv/trackbartools.py +0 -0
  41. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/cv/xlcvlib.py +0 -0
  42. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/cv/xlpillib.py +0 -0
  43. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/data/__init__.py +0 -0
  44. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/data/echarts.py +0 -0
  45. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/data/jsonlib.py +0 -0
  46. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/data/oss.py +0 -0
  47. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/data/pglib.py +0 -0
  48. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/data/sqlite.py +0 -0
  49. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/data/sqllib.py +0 -0
  50. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/JLineViewer.py +0 -0
  51. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/__init__.py +0 -0
  52. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/demolib.py +0 -0
  53. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/kq5034lib.py +0 -0
  54. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/old.py +0 -0
  55. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/qt.py +0 -0
  56. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/robustprocfile.py +0 -0
  57. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/seleniumlib.py +0 -0
  58. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/tk.py +0 -0
  59. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/unixlib.py +0 -0
  60. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/utools.py +0 -0
  61. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/webhook.py +0 -0
  62. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/win32lib.py +0 -0
  63. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/wjxlib.py +0 -0
  64. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/ext/yuquelib.py +0 -0
  65. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/__init__.py +0 -0
  66. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/docxlib.py +0 -0
  67. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/gitlib.py +0 -0
  68. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/libreoffice.py +0 -0
  69. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/movielib.py +0 -0
  70. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/newbie.py +0 -0
  71. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/onenotelib.py +0 -0
  72. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/packlib/__init__.py +0 -0
  73. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/packlib/zipfile.py +0 -0
  74. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/pdflib.py +0 -0
  75. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/pupil.py +0 -0
  76. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/specialist/__init__.py +0 -0
  77. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/specialist/dirlib.py +0 -0
  78. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/specialist/download.py +0 -0
  79. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/specialist/filelib.py +0 -0
  80. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/xlsxlib.py +0 -0
  81. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/file/xlsyncfile.py +0 -0
  82. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/__init__.py +0 -0
  83. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/cachetools.py +0 -0
  84. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/deprecatedlib.py +0 -0
  85. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/filelock.py +0 -0
  86. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/ipyexec.py +0 -0
  87. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/multiprogs.py +0 -0
  88. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/newbie.py +0 -0
  89. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/pupil.py +0 -0
  90. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/sitepackages.py +0 -0
  91. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/specialist/__init__.py +0 -0
  92. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/specialist/bc.py +0 -0
  93. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/specialist/browser.py +0 -0
  94. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/specialist/common.py +0 -0
  95. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/specialist/datetime.py +0 -0
  96. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/specialist/tictoc.py +0 -0
  97. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/specialist/xllog.py +0 -0
  98. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/prog/xlosenv.py +0 -0
  99. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/stdlib/__init__.py +0 -0
  100. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/stdlib/tablepyxl/__init__.py +0 -0
  101. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/stdlib/tablepyxl/style.py +0 -0
  102. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/stdlib/tablepyxl/tablepyxl.py +0 -0
  103. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/__init__.py +0 -0
  104. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/ahocorasick.py +0 -0
  105. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/charclasslib.py +0 -0
  106. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/jiebalib.py +0 -0
  107. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/jinjalib.py +0 -0
  108. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/jscode.py +0 -0
  109. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/latex/__init__.py +0 -0
  110. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/levenshtein.py +0 -0
  111. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/nestenv.py +0 -0
  112. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/newbie.py +0 -0
  113. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/pupil/__init__.py +0 -0
  114. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/pupil/common.py +0 -0
  115. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/pupil/xlalign.py +0 -0
  116. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/pycode.py +0 -0
  117. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/specialist/__init__.py +0 -0
  118. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/specialist/common.py +0 -0
  119. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/specialist/ptag.py +0 -0
  120. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/spellchecker.py +0 -0
  121. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/templates/echart_base.html +0 -0
  122. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/templates/highlight_code.html +0 -0
  123. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/templates/latex_editor.html +0 -0
  124. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/vbacode.py +0 -0
  125. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/text/xmllib.py +0 -0
  126. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/xl.py +0 -0
  127. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib/xlcv.py +0 -0
  128. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib.egg-info/SOURCES.txt +0 -0
  129. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib.egg-info/dependency_links.txt +0 -0
  130. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib.egg-info/requires.txt +14 -14
  131. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxllib.egg-info/top_level.txt +0 -0
  132. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/__init__.py +0 -0
  133. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ai/__init__.py +0 -0
  134. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ai/clientlib.py +0 -0
  135. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ai/specialist.py +0 -0
  136. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ai/torch_app.py +0 -0
  137. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ai/xlpaddle.py +0 -0
  138. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ai/xltorch.py +0 -0
  139. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/__init__.py +0 -0
  140. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/coco.py +0 -0
  141. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/datacls.py +0 -0
  142. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/datasets.py +0 -0
  143. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/gptlib.py +0 -0
  144. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/icdar/__init__.py +0 -0
  145. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/icdar/deteval.py +0 -0
  146. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/icdar/icdar2013.py +0 -0
  147. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/icdar/iou.py +0 -0
  148. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/icdar/rrc_evaluation_funcs_1_1.py +0 -0
  149. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/imtextline.py +0 -0
  150. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/labelme.py +0 -0
  151. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/removeline.py +0 -0
  152. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/specialist.py +0 -0
  153. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/data/tiktokenlib.py +0 -0
  154. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/eval/__init__.py +0 -0
  155. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/openai2/__init__.py +0 -0
  156. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/openai2/_core/chat.py +0 -0
  157. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/openai2/_core/chat_in_cmd.py +0 -0
  158. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/openai2/_core/group_chat.py +0 -0
  159. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/openai2/openai2.py +0 -0
  160. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/paddleocr.py +0 -0
  161. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/__init__.py +0 -0
  162. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/configs/rec/multi_language/generate_multi_language_configs.py +0 -0
  163. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/__init__.py +0 -0
  164. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/ColorJitter.py +0 -0
  165. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/__init__.py +0 -0
  166. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/copy_paste.py +0 -0
  167. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/east_process.py +0 -0
  168. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/gen_table_mask.py +0 -0
  169. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/iaa_augment.py +0 -0
  170. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/label_ops.py +0 -0
  171. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/make_border_map.py +0 -0
  172. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/make_pse_gt.py +0 -0
  173. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/make_shrink_map.py +0 -0
  174. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/operators.py +0 -0
  175. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/pg_process.py +0 -0
  176. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/randaugment.py +0 -0
  177. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/random_crop_data.py +0 -0
  178. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/rec_img_aug.py +0 -0
  179. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/sast_process.py +0 -0
  180. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/text_image_aug/__init__.py +0 -0
  181. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/text_image_aug/augment.py +0 -0
  182. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/imaug/text_image_aug/warp_mls.py +0 -0
  183. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/lmdb_dataset.py +0 -0
  184. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/pgnet_dataset.py +0 -0
  185. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/pubtab_dataset.py +0 -0
  186. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/data/simple_dataset.py +0 -0
  187. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/__init__.py +0 -0
  188. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/ace_loss.py +0 -0
  189. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/basic_loss.py +0 -0
  190. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/center_loss.py +0 -0
  191. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/cls_loss.py +0 -0
  192. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/combined_loss.py +0 -0
  193. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/det_basic_loss.py +0 -0
  194. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/det_db_loss.py +0 -0
  195. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/det_east_loss.py +0 -0
  196. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/det_pse_loss.py +0 -0
  197. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/det_sast_loss.py +0 -0
  198. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/distillation_loss.py +0 -0
  199. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/e2e_pg_loss.py +0 -0
  200. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/kie_sdmgr_loss.py +0 -0
  201. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/rec_aster_loss.py +0 -0
  202. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/rec_att_loss.py +0 -0
  203. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/rec_ctc_loss.py +0 -0
  204. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/rec_enhanced_ctc_loss.py +0 -0
  205. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/rec_nrtr_loss.py +0 -0
  206. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/rec_sar_loss.py +0 -0
  207. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/rec_srn_loss.py +0 -0
  208. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/losses/table_att_loss.py +0 -0
  209. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/metrics/__init__.py +0 -0
  210. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/metrics/cls_metric.py +0 -0
  211. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/metrics/det_metric.py +0 -0
  212. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/metrics/distillation_metric.py +0 -0
  213. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/metrics/e2e_metric.py +0 -0
  214. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/metrics/eval_det_iou.py +0 -0
  215. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/metrics/kie_metric.py +0 -0
  216. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/metrics/rec_metric.py +0 -0
  217. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/metrics/table_metric.py +0 -0
  218. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/architectures/__init__.py +0 -0
  219. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/architectures/base_model.py +0 -0
  220. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/architectures/distillation_model.py +0 -0
  221. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/__init__.py +0 -0
  222. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/det_mobilenet_v3.py +0 -0
  223. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd.py +0 -0
  224. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd_sast.py +0 -0
  225. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/e2e_resnet_vd_pg.py +0 -0
  226. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/kie_unet_sdmgr.py +0 -0
  227. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/rec_mobilenet_v3.py +0 -0
  228. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/rec_mv1_enhance.py +0 -0
  229. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/rec_nrtr_mtb.py +0 -0
  230. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/rec_resnet_31.py +0 -0
  231. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/rec_resnet_aster.py +0 -0
  232. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/rec_resnet_fpn.py +0 -0
  233. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/backbones/rec_resnet_vd.py +0 -0
  234. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/__init__.py +0 -0
  235. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/cls_head.py +0 -0
  236. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/det_db_head.py +0 -0
  237. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/det_east_head.py +0 -0
  238. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/det_pse_head.py +0 -0
  239. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/det_sast_head.py +0 -0
  240. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/e2e_pg_head.py +0 -0
  241. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/kie_sdmgr_head.py +0 -0
  242. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/multiheadAttention.py +0 -0
  243. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/rec_aster_head.py +0 -0
  244. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/rec_att_head.py +0 -0
  245. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/rec_ctc_head.py +0 -0
  246. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/rec_nrtr_head.py +0 -0
  247. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/rec_sar_head.py +0 -0
  248. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/rec_srn_head.py +0 -0
  249. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/self_attention.py +0 -0
  250. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/heads/table_att_head.py +0 -0
  251. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/necks/__init__.py +0 -0
  252. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/necks/db_fpn.py +0 -0
  253. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/necks/east_fpn.py +0 -0
  254. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/necks/fpn.py +0 -0
  255. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/necks/pg_fpn.py +0 -0
  256. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/necks/rnn.py +0 -0
  257. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/necks/sast_fpn.py +0 -0
  258. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/necks/table_fpn.py +0 -0
  259. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/transforms/__init__.py +0 -0
  260. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/transforms/stn.py +0 -0
  261. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/transforms/tps.py +0 -0
  262. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/modeling/transforms/tps_spatial_transformer.py +0 -0
  263. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/optimizer/__init__.py +0 -0
  264. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/optimizer/learning_rate.py +0 -0
  265. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/optimizer/lr_scheduler.py +0 -0
  266. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/optimizer/optimizer.py +0 -0
  267. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/optimizer/regularizer.py +0 -0
  268. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/postprocess/__init__.py +0 -0
  269. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/postprocess/cls_postprocess.py +0 -0
  270. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/postprocess/db_postprocess.py +0 -0
  271. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/postprocess/east_postprocess.py +0 -0
  272. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/postprocess/locality_aware_nms.py +0 -0
  273. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/postprocess/pg_postprocess.py +0 -0
  274. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/postprocess/pse_postprocess/__init__.py +0 -0
  275. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/__init__.py +0 -0
  276. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/setup.py +0 -0
  277. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/postprocess/pse_postprocess/pse_postprocess.py +0 -0
  278. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/postprocess/rec_postprocess.py +0 -0
  279. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/postprocess/sast_postprocess.py +0 -0
  280. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/__init__.py +0 -0
  281. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/eval.py +0 -0
  282. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/export_center.py +0 -0
  283. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/export_model.py +0 -0
  284. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/infer/predict_cls.py +0 -0
  285. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/infer/predict_det.py +0 -0
  286. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/infer/predict_e2e.py +0 -0
  287. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/infer/predict_rec.py +0 -0
  288. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/infer/predict_system.py +0 -0
  289. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/infer/utility.py +0 -0
  290. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/infer_cls.py +0 -0
  291. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/infer_det.py +0 -0
  292. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/infer_e2e.py +0 -0
  293. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/infer_kie.py +0 -0
  294. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/infer_rec.py +0 -0
  295. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/infer_table.py +0 -0
  296. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/program.py +0 -0
  297. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/test_hubserving.py +0 -0
  298. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/train.py +0 -0
  299. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/tools/xlprog.py +0 -0
  300. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/EN_symbol_dict.txt +0 -0
  301. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/__init__.py +0 -0
  302. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/ar_dict.txt +0 -0
  303. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/arabic_dict.txt +0 -0
  304. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/be_dict.txt +0 -0
  305. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/bg_dict.txt +0 -0
  306. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/chinese_cht_dict.txt +0 -0
  307. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/cyrillic_dict.txt +0 -0
  308. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/devanagari_dict.txt +0 -0
  309. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/en_dict.txt +0 -0
  310. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/fa_dict.txt +0 -0
  311. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/french_dict.txt +0 -0
  312. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/german_dict.txt +0 -0
  313. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/hi_dict.txt +0 -0
  314. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/it_dict.txt +0 -0
  315. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/japan_dict.txt +0 -0
  316. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/ka_dict.txt +0 -0
  317. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/korean_dict.txt +0 -0
  318. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/latin_dict.txt +0 -0
  319. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/mr_dict.txt +0 -0
  320. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/ne_dict.txt +0 -0
  321. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/oc_dict.txt +0 -0
  322. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/pu_dict.txt +0 -0
  323. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/rs_dict.txt +0 -0
  324. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/rsc_dict.txt +0 -0
  325. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/ru_dict.txt +0 -0
  326. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/ta_dict.txt +0 -0
  327. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/table_dict.txt +0 -0
  328. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/table_structure_dict.txt +0 -0
  329. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/te_dict.txt +0 -0
  330. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/ug_dict.txt +0 -0
  331. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/uk_dict.txt +0 -0
  332. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/ur_dict.txt +0 -0
  333. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict/xi_dict.txt +0 -0
  334. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/dict90.txt +0 -0
  335. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/e2e_metric/Deteval.py +0 -0
  336. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/e2e_metric/polygon_fast.py +0 -0
  337. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/e2e_utils/extract_batchsize.py +0 -0
  338. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_fast.py +0 -0
  339. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_slow.py +0 -0
  340. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/e2e_utils/pgnet_pp_utils.py +0 -0
  341. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/e2e_utils/visual.py +0 -0
  342. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/en_dict.txt +0 -0
  343. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/gen_label.py +0 -0
  344. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/ic15_dict.txt +0 -0
  345. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/iou.py +0 -0
  346. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/logging.py +0 -0
  347. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/network.py +0 -0
  348. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/ppocr_keys_v1.txt +0 -0
  349. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/profiler.py +0 -0
  350. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/save_load.py +0 -0
  351. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/stats.py +0 -0
  352. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppocr/utils/utility.py +0 -0
  353. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/__init__.py +0 -0
  354. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/predict_system.py +0 -0
  355. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/table/__init__.py +0 -0
  356. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/table/eval_table.py +0 -0
  357. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/table/matcher.py +0 -0
  358. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/table/predict_structure.py +0 -0
  359. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/table/predict_table.py +0 -0
  360. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/table/table_metric/__init__.py +0 -0
  361. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/table/table_metric/parallel.py +0 -0
  362. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/table/table_metric/table_metric.py +0 -0
  363. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/table/tablepyxl/__init__.py +0 -0
  364. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/table/tablepyxl/style.py +0 -0
  365. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/table/tablepyxl/tablepyxl.py +0 -0
  366. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/ppstructure/utility.py +0 -0
  367. {pyxllib-0.3.170 → pyxllib-0.3.175}/pyxlpr/xlai.py +0 -0
  368. {pyxllib-0.3.170 → pyxllib-0.3.175}/requirements.txt +0 -0
  369. {pyxllib-0.3.170 → pyxllib-0.3.175}/setup.cfg +0 -0
@@ -1,4 +1,5 @@
1
1
  include README.md
2
2
  include requirements.txt
3
3
  recursive-include pyxllib *.html *.js
4
- recursive-include pyxlpr *.py *.txt
4
+ recursive-include pyxlpr *.py *.txt
5
+ exclude pyxllib/ext/wpsapi2.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyxllib
3
- Version: 0.3.170
3
+ Version: 0.3.175
4
4
  Summary: 厦门理工模式识别团队通用python代码工具库
5
5
  Home-page: https://github.com/XLPRUtils/pyxllib
6
6
  Author: code4101
@@ -38,33 +38,33 @@ Requires-Dist: Jinja2
38
38
  Requires-Dist: pandas>=0.23.4
39
39
  Requires-Dist: pillow
40
40
  Provides-Extra: xlcv
41
- Requires-Dist: pillow; extra == "xlcv"
42
41
  Requires-Dist: opsdroid-get-image-size; extra == "xlcv"
43
42
  Requires-Dist: opencv-python; extra == "xlcv"
43
+ Requires-Dist: pillow; extra == "xlcv"
44
44
  Provides-Extra: xlai
45
- Requires-Dist: pillow; extra == "xlai"
46
- Requires-Dist: opsdroid-get-image-size; extra == "xlai"
47
- Requires-Dist: pynvml; extra == "xlai"
48
45
  Requires-Dist: visdom; extra == "xlai"
46
+ Requires-Dist: pynvml; extra == "xlai"
49
47
  Requires-Dist: opencv-python; extra == "xlai"
48
+ Requires-Dist: pillow; extra == "xlai"
49
+ Requires-Dist: opsdroid-get-image-size; extra == "xlai"
50
50
  Provides-Extra: xlall
51
+ Requires-Dist: flask-cors; extra == "xlall"
52
+ Requires-Dist: arts; extra == "xlall"
53
+ Requires-Dist: ujson; extra == "xlall"
51
54
  Requires-Dist: flask; extra == "xlall"
52
55
  Requires-Dist: html2text; extra == "xlall"
56
+ Requires-Dist: uvicorn; extra == "xlall"
53
57
  Requires-Dist: flask-restful; extra == "xlall"
54
- Requires-Dist: zhconv; extra == "xlall"
58
+ Requires-Dist: flask-jwt-extended; extra == "xlall"
59
+ Requires-Dist: openai2; extra == "xlall"
55
60
  Requires-Dist: xlrd; extra == "xlall"
61
+ Requires-Dist: fastapi; extra == "xlall"
62
+ Requires-Dist: opencv-python; extra == "xlall"
56
63
  Requires-Dist: sentencepiece; extra == "xlall"
57
64
  Requires-Dist: pillow; extra == "xlall"
58
- Requires-Dist: opsdroid-get-image-size; extra == "xlall"
59
65
  Requires-Dist: flask-wtf; extra == "xlall"
60
- Requires-Dist: flask-jwt-extended; extra == "xlall"
61
- Requires-Dist: flask-cors; extra == "xlall"
62
- Requires-Dist: fastapi; extra == "xlall"
63
- Requires-Dist: openai2; extra == "xlall"
64
- Requires-Dist: ujson; extra == "xlall"
65
- Requires-Dist: uvicorn; extra == "xlall"
66
- Requires-Dist: opencv-python; extra == "xlall"
67
- Requires-Dist: arts; extra == "xlall"
66
+ Requires-Dist: opsdroid-get-image-size; extra == "xlall"
67
+ Requires-Dist: zhconv; extra == "xlall"
68
68
 
69
69
  # 1 install
70
70
 
@@ -41,6 +41,13 @@ class WeChatSingletonLock:
41
41
  def wechat_lock_send(user, text=None, files=None, *, timeout=-1):
42
42
  """ 使用全局唯一单例锁,确保同一时间仅有一个微信自动化程序在操作 """
43
43
  with WeChatSingletonLock(timeout) as we:
44
+ # 241223周一12:27,今天可被这个默认2秒坑惨了,往错误群一直发骚扰消息
45
+ # 22:07,但我复测,感觉不可能找不到啊,为什么会找到禅宗考勤管理群呢,太离谱了
46
+ status = we.ChatWith(user, timeout=5)
47
+
48
+ if status != user:
49
+ raise ValueError(f'无法找到用户:{user}')
50
+
44
51
  if text:
45
52
  we.SendMsg(text, user)
46
53
  if files:
@@ -213,3 +213,34 @@ class DpWebBase:
213
213
  # def __del__(self):
214
214
  # """ 我习惯每次新任务建立新的tab处理,并在结束后自动检查同网页打开的标签是否不唯一则删掉 """
215
215
  # self.close_if_exceeds_min_tabs()
216
+
217
+
218
+ def close_duplicate_tabs(browser=None):
219
+ """ 关闭浏览器重复标签页
220
+
221
+ 遍历所有标签页(从前往后,dp的get_tabs拿到的tab就是从新到旧的),对每个域名仅保留第一个出现的标签页,其余同域名标签页关闭;
222
+ 如果最后还剩多个标签页,则把'chrome://newtab/'也关掉。
223
+ """
224
+ # 1 初始化
225
+ if browser is None:
226
+ browser = Chromium()
227
+ all_tabs = browser.get_tabs()
228
+ seen_domains = set()
229
+
230
+ # 2 第一次遍历:保留首个出现的域名,其余重复则关闭
231
+ for t in all_tabs:
232
+ parsed_url = urlparse(t.url)
233
+ domain = parsed_url.netloc # netloc 通常可拿到域名部分
234
+ # logger.info(f'{t.url}, {domain}')
235
+
236
+ if domain in seen_domains:
237
+ t.close()
238
+ else:
239
+ seen_domains.add(domain)
240
+
241
+ # 3 第二次遍历:如果剩余标签页 > 1,则关掉chrome://newtab/
242
+ remaining_tabs = browser.get_tabs()
243
+ if len(remaining_tabs) > 1:
244
+ for t in remaining_tabs:
245
+ if t.url.startswith('chrome://newtab'):
246
+ t.close()
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # @Author : 陈坤泽
4
+ # @Date : 2024/07/31
5
+
6
+ import os
7
+ import requests
8
+
9
+ import pandas as pd
10
+
11
+
12
+ class WpsOnlineBook:
13
+ """ wps的"脚本令牌"调用模式
14
+
15
+ 官方文档:https://airsheet.wps.cn/docs/apitoken/api.html
16
+ """
17
+
18
+ def __1_基础功能(self):
19
+ pass
20
+
21
+ def __init__(self, file_id=None, script_id=None, *, token=None):
22
+ self.headers = {
23
+ 'Content-Type': "application/json",
24
+ 'AirScript-Token': token or os.getenv('WPS_SCRIPT_TOKEN', ''),
25
+ }
26
+ self.default_file_id = file_id
27
+ self.default_script_id = script_id
28
+
29
+ def post_request(self, url, payload):
30
+ """
31
+ 发送 POST 请求到指定的 URL 并返回响应结果
32
+ """
33
+ try:
34
+ resp = requests.post(url, json=payload, headers=self.headers)
35
+ resp.raise_for_status() # 如果请求失败会抛出异常
36
+ return resp.json()
37
+ except requests.exceptions.RequestException as e:
38
+ print(f"请求失败: {e}")
39
+ return None
40
+
41
+ def run_script(self, script_id=None, file_id=None, context_argv=None, sync=True):
42
+ """
43
+ 执行 WPS 脚本并返回执行结果
44
+
45
+ :param file_id: 文件 ID
46
+ 虽然提供了file_id,但并不支持跨文件调用as脚本
47
+ :param script_id: 脚本 ID
48
+ :param context_argv: 脚本参数 (可选)
49
+ context本来能支持这些参数的:
50
+ dict argv: 传入的上下文参数对象,比如传入{name: 'xiaomeng', age: 18}, 在 AS 代码中可通过Context.argv.name获取到传入的值
51
+ str sheet_name: et,ksheet 运行时所在表名
52
+ str range: et,ksheet 运行时所在区域,例如$B$156
53
+ str link_from: et,ksheet 点击超链接所在单元格
54
+ str db_active_view: db 运行时所在 view 名
55
+ str db_selection: db 运行时所在选区
56
+ 但是,sheet_name, range等,并看不到对运行代码有什么实质影响,不影响active,而且as里也引用不了sheet_name等值
57
+ 所以退化,简化为只要传入content_argv参数就行
58
+ :param sync:
59
+ True, 同步运行
60
+ False, 异步运行
61
+
62
+ 这个接口跟普通as一样,运行有30秒时限
63
+ """
64
+ file_id = file_id or self.default_file_id
65
+ url = f"https://www.kdocs.cn/api/v3/ide/file/{file_id}/script/{script_id}/{'sync_task' if sync else 'task'}"
66
+ payload = {
67
+ "Context": {'argv': context_argv or {}}
68
+ }
69
+ res = self.post_request(url, payload)
70
+ if sync:
71
+ return res['data']['result']
72
+ else:
73
+ return res
74
+
75
+ def __2_封装的更高级的接口(self):
76
+ pass
77
+
78
+ def run_script2(self, func_name, *args):
79
+ """ 我自己常用的jsa框架,jsa那边已经简化了对接模式,所以一般都只用这个高级的接口即可
80
+
81
+ 配合这个框架范式使用:https://github.com/XLPRUtils/pyxllib/blob/master/pyxllib/text/airscript.js
82
+ """
83
+ return self.run_script(self.default_script_id, context_argv={'funcName': func_name, 'args': args})
84
+
85
+ def get_sheet_data(self, sheet_name, fields, data_row=0, filter_empty_rows=True, *,
86
+ return_mode='pd') -> pd.DataFrame:
87
+ """ 获取某张sheet表格数据
88
+
89
+ :param sheet_name: sheet表名
90
+ :param list[str] fields: 字段名列表
91
+ :param int data_row: 数据起始行,详细用法见packTableDataFields
92
+ :param return_mode: 'pd' or 'json'
93
+ """
94
+ data = self.run_script2('packTableDataFields', sheet_name, fields, data_row, filter_empty_rows)
95
+ if return_mode == 'json':
96
+ return data
97
+ elif return_mode == 'pd':
98
+ return pd.DataFrame(data)
99
+
100
+
101
+ if __name__ == '__main__':
102
+ pass
@@ -143,17 +143,17 @@ function getUsedRange(ws = ActiveSheet) {
143
143
  * 正整数,人工精确指定数据结束行(有时候数据实际可能有100行,可以只写10,实现少量部分样本的功能测试)
144
144
  * '料理'等精确的字段名标记,同负数模式,以找到的所在列,配合.End(xlUp)确定最后一行有数据的位置
145
145
  * 负数,比如-3,表示基于第3列(C列),使用.End(xlUp)对这列的最后一行数据位置做判定,作为数据最后一行的标记
146
- * @param colNames 后续要使用到的相关字段数据,使用as2.0版本的时候,该参数可以不输入,会在使用中动态检索
146
+ * @param fields 后续要使用到的相关字段数据,使用as2.0版本的时候,该参数可以不输入,会在使用中动态检索
147
147
  * @return [ur, rows, cols]
148
148
  * ur,表格实际的UsedRange
149
149
  * rows是字典,rows.start、rows.end分别存储了数据的起止行
150
150
  * cols也是字典,存储了个字段名对应的所在列编号,比如cols['料理']
151
151
  * 注:返回的行、列,都是相对ur的位置,所以可以类似这样 ur.Cells(rows.start, cols[x]) 取到第1条数据在x字段的值
152
152
  */
153
- function as1_locateTableRange(ws, dataRow = [0, 0], colNames = []) {
154
- // 1 初步确定数据区域范围
153
+ function as1_locateTableRange(ws, dataRow = [0, 0], fields = []) {
154
+ // 1 初步确定数据区域getUsedRange范围
155
155
  const ur = getUsedRange(ws)
156
- ws = ur.Parent
156
+ ws = ur.Worksheet
157
157
  // dataRow可以输入单个数值
158
158
  if (typeof dataRow === 'number') dataRow = [dataRow, 0]
159
159
  let rows = {
@@ -163,7 +163,7 @@ function as1_locateTableRange(ws, dataRow = [0, 0], colNames = []) {
163
163
 
164
164
  // 2 获取列名对应的列号
165
165
  let cols = {}
166
- colNames.forEach(colName => {
166
+ fields.forEach(colName => {
167
167
  const col = findCol(colName, ur)
168
168
  if (col) {
169
169
  cols[colName] = col
@@ -196,9 +196,9 @@ function as1_locateTableRange(ws, dataRow = [0, 0], colNames = []) {
196
196
  }
197
197
 
198
198
 
199
- function locateTableRange(sheetName, dataRow = [0, 0], colNames = []) {
199
+ function locateTableRange(ws, dataRow = [0, 0], fields = []) {
200
200
  // 1 先获得基础版本的结果
201
- let [ur, rows, cols] = as1_locateTableRange(sheetName, dataRow, colNames)
201
+ let [ur, rows, cols] = as1_locateTableRange(ws, dataRow, fields)
202
202
 
203
203
  // 2 使用 Proxy 实现动态查找未配置的字段(该功能仅AirScript2.0可用,1.0请使用as1_locateTableRange接口)
204
204
  cols = new Proxy(cols, {
@@ -219,8 +219,12 @@ function locateTableRange(sheetName, dataRow = [0, 0], colNames = []) {
219
219
  return [ur, rows, cols]
220
220
  }
221
221
 
222
- function locateTableRange2(sheetName, dataRow = [0, 0], colNames = []) {
223
- let [ur, rows, cols] = locateTableRange(sheetName, dataRow, colNames)
222
+ /**
223
+ * 表格结构化定位工具的增强版本,在locateTableRange基础上增加了tools简化一些常用操作
224
+ * tools增加的工具详见内部实现的子函数注释
225
+ */
226
+ function locateTableRange2(ws, dataRow = [0, 0], fields = []) {
227
+ let [ur, rows, cols] = locateTableRange(ws, dataRow, fields)
224
228
 
225
229
  class TableTools {
226
230
  constructor(ur, rows, cols) {
@@ -233,7 +237,7 @@ function locateTableRange2(sheetName, dataRow = [0, 0], colNames = []) {
233
237
  * 获取指定行和列名的单元格值
234
238
  * @param {number} row 行号
235
239
  * @param {string} colName 列名
236
- * @return {any} 单元格的值
240
+ * @return {any} 单元格的Value2值
237
241
  */
238
242
  getval(row, colName) {
239
243
  return this.ur.Cells(row, this.cols[colName]).Value2
@@ -282,9 +286,12 @@ function __3_json数据导入导出() {
282
286
  // 使用示例:packTableDataFields('料理', ['名称', '标签']
283
287
  // fields的参数支持字段名称或整数,明确指定某列的位置
284
288
  // 返回格式:{'名称': [x1, x2, ...], '标签': [y1, y2, ...]}
285
- function packTableDataFields(sheetName, fields, dataRow = [0, 0], filterEmptyRows = true) {
289
+ // todo fields能否不输入,默认获取所有字段数据(此时需要给出表头所在行)
290
+ // todo 多级表头类的数据怎么处理?
291
+ // todo 支持一定的筛选功能?避免表格太大时要传输的数据过多。
292
+ function packTableDataFields(ws, fields, dataRow = [0, 0], filterEmptyRows = true) {
286
293
  // 1 确定数据范围和字段列号映射
287
- const [ur, rows, cols] = locateTableRange(sheetName, dataRow, fields)
294
+ const [ur, rows, cols] = locateTableRange(ws, dataRow, fields)
288
295
 
289
296
  // 2 初始化字段格式数据
290
297
  const fieldsData = fields.reduce((dataMap, field) => {
@@ -295,13 +302,13 @@ function packTableDataFields(sheetName, fields, dataRow = [0, 0], filterEmptyRow
295
302
  // 3 遍历数据行填充字段数据
296
303
  for (let row = rows.start; row <= rows.end; row++) {
297
304
  if (filterEmptyRows) {
298
- const isEmptyRow = Object.values(cols).every(col => Cells(row, col).Value2 === undefined)
305
+ const isEmptyRow = Object.values(cols).every(col => ur.Cells(row, col).Value2 === undefined)
299
306
  if (isEmptyRow) continue; // 跳过空行
300
307
  }
301
308
 
302
309
  // 填充每个字段的数据
303
310
  Object.entries(cols).forEach(([field, col]) => {
304
- fieldsData[field].push(Cells(row, col).Value2)
311
+ fieldsData[field].push(ur.Cells(row, col).Value2)
305
312
  })
306
313
  }
307
314
 
@@ -664,7 +671,7 @@ function setHyperlink(cel, link, text, screenTip) {
664
671
 
665
672
 
666
673
  function __7_考勤() {
667
- // 个人考勤业务定制化功能
674
+ // 个人的考勤业务定制化功能
668
675
  }
669
676
 
670
677
  function highlightCourseProgress(refundDict, cell) {
@@ -719,6 +726,7 @@ function highlightCourseProgress(refundDict, cell) {
719
726
  return refundAmount
720
727
  }
721
728
 
729
+ // 分析回放规则文本,从中提取结构化的字典解释
722
730
  function parseRefundRules(text) {
723
731
  const match = text.match(/"\d+(\/\d+)*"/)
724
732
  const refundDict = {}
@@ -735,10 +743,15 @@ function parseRefundRules(text) {
735
743
  return refundDict
736
744
  }
737
745
 
746
+ function __x_main() {
747
+ // 我常用的jsa脚本触发运行的模式
748
+ }
738
749
 
739
- const pyScript = `
740
- from xlsln.kq5034.courses.d241201第29届觉观 import 更新修订
741
- 更新修订()
742
- return {'res': '更新完成'}
743
- `
744
- runIsolatedPyScript({script: pyScript, long_task: true}, 'codepc_mi15')
750
+ // 1 这里填上要支持的函数接口清单
751
+ const funcsMap = {packTableDataFields}
752
+ // 2 支持三种触发方式,及优先级:py-jsa调用 > 选中单元格指定函数名 > 选中单元格所在第1列是触发函数名
753
+ let funcName = Context.argv.funcName || Selection.Cells(1, 1).Value2 || ''
754
+ if (!funcsMap[funcName]) funcName = ActiveSheet.Cells(Selection.Row, 1)
755
+ // 3 如果找得到函数则运行
756
+ if (funcsMap[funcName]) return funcsMap[funcName](...Context.argv.args)
757
+ // 4 也可以注释掉3,下面写自己手动调试要运行的代码
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyxllib
3
- Version: 0.3.170
3
+ Version: 0.3.175
4
4
  Summary: 厦门理工模式识别团队通用python代码工具库
5
5
  Home-page: https://github.com/XLPRUtils/pyxllib
6
6
  Author: code4101
@@ -38,33 +38,33 @@ Requires-Dist: Jinja2
38
38
  Requires-Dist: pandas>=0.23.4
39
39
  Requires-Dist: pillow
40
40
  Provides-Extra: xlcv
41
- Requires-Dist: pillow; extra == "xlcv"
42
41
  Requires-Dist: opsdroid-get-image-size; extra == "xlcv"
43
42
  Requires-Dist: opencv-python; extra == "xlcv"
43
+ Requires-Dist: pillow; extra == "xlcv"
44
44
  Provides-Extra: xlai
45
- Requires-Dist: pillow; extra == "xlai"
46
- Requires-Dist: opsdroid-get-image-size; extra == "xlai"
47
- Requires-Dist: pynvml; extra == "xlai"
48
45
  Requires-Dist: visdom; extra == "xlai"
46
+ Requires-Dist: pynvml; extra == "xlai"
49
47
  Requires-Dist: opencv-python; extra == "xlai"
48
+ Requires-Dist: pillow; extra == "xlai"
49
+ Requires-Dist: opsdroid-get-image-size; extra == "xlai"
50
50
  Provides-Extra: xlall
51
+ Requires-Dist: flask-cors; extra == "xlall"
52
+ Requires-Dist: arts; extra == "xlall"
53
+ Requires-Dist: ujson; extra == "xlall"
51
54
  Requires-Dist: flask; extra == "xlall"
52
55
  Requires-Dist: html2text; extra == "xlall"
56
+ Requires-Dist: uvicorn; extra == "xlall"
53
57
  Requires-Dist: flask-restful; extra == "xlall"
54
- Requires-Dist: zhconv; extra == "xlall"
58
+ Requires-Dist: flask-jwt-extended; extra == "xlall"
59
+ Requires-Dist: openai2; extra == "xlall"
55
60
  Requires-Dist: xlrd; extra == "xlall"
61
+ Requires-Dist: fastapi; extra == "xlall"
62
+ Requires-Dist: opencv-python; extra == "xlall"
56
63
  Requires-Dist: sentencepiece; extra == "xlall"
57
64
  Requires-Dist: pillow; extra == "xlall"
58
- Requires-Dist: opsdroid-get-image-size; extra == "xlall"
59
65
  Requires-Dist: flask-wtf; extra == "xlall"
60
- Requires-Dist: flask-jwt-extended; extra == "xlall"
61
- Requires-Dist: flask-cors; extra == "xlall"
62
- Requires-Dist: fastapi; extra == "xlall"
63
- Requires-Dist: openai2; extra == "xlall"
64
- Requires-Dist: ujson; extra == "xlall"
65
- Requires-Dist: uvicorn; extra == "xlall"
66
- Requires-Dist: opencv-python; extra == "xlall"
67
- Requires-Dist: arts; extra == "xlall"
66
+ Requires-Dist: opsdroid-get-image-size; extra == "xlall"
67
+ Requires-Dist: zhconv; extra == "xlall"
68
68
 
69
69
  # 1 install
70
70
 
@@ -50,7 +50,7 @@ _dir = Path(__file__).parent
50
50
 
51
51
  setup(
52
52
  name='pyxllib', # pip 安装时用的名字
53
- version='0.3.170', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
53
+ version='0.3.175', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
54
54
  author='code4101',
55
55
  author_email='877362867@qq.com',
56
56
  url='https://github.com/XLPRUtils/pyxllib',