pyxllib 0.3.175__tar.gz → 0.3.197__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 (441) hide show
  1. pyxllib-0.3.197/.gitignore +16 -0
  2. pyxllib-0.3.197/PKG-INFO +48 -0
  3. pyxllib-0.3.197/README.md +12 -0
  4. pyxllib-0.3.197/pyproject.toml +58 -0
  5. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/autogui/uiautolib.py +9 -4
  6. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/autogui/wxautolib.py +7 -6
  7. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/data/pglib.py +4 -1
  8. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/drissionlib.py +32 -1
  9. pyxllib-0.3.197/pyxllib/ext/kq5034lib.py +12 -0
  10. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/webhook.py +32 -4
  11. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/wpsapi.py +36 -14
  12. pyxllib-0.3.197/pyxllib/ext/xlwork.py +9 -0
  13. pyxllib-0.3.197/pyxllib/ext/yuquelib.py +1105 -0
  14. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/xlsyncfile.py +36 -11
  15. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/multiprogs.py +15 -7
  16. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/pupil.py +22 -0
  17. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/specialist/datetime.py +65 -0
  18. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/airscript.js +137 -150
  19. pyxllib-0.3.197/pyxllib/text/jsa_ai_prompt.md +271 -0
  20. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/jscode.py +35 -17
  21. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/xmllib.py +70 -3
  22. pyxllib-0.3.197/pyxlpr/openai2/LICENSE +202 -0
  23. pyxllib-0.3.197/pyxlpr/openai2/README.md +427 -0
  24. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/openai2/_core/chat.py +2 -2
  25. pyxllib-0.3.197/pyxlpr/openai2/art.json +4 -0
  26. pyxllib-0.3.197/pyxlpr/openai2/licenses/README.md +1 -0
  27. pyxllib-0.3.197/pyxlpr/openai2/licenses/openai/LICENSE +21 -0
  28. pyxllib-0.3.197/pyxlpr/openai2/pyproject.toml +22 -0
  29. pyxllib-0.3.197/pyxlpr/ppocr/configs/cls/cls_mv3.yml +95 -0
  30. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/ch_PP-OCRv2/ch_PP-OCRv2_det_cml.yml +204 -0
  31. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/ch_PP-OCRv2/ch_PP-OCRv2_det_distill.yml +175 -0
  32. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/ch_PP-OCRv2/ch_PP-OCRv2_det_dml.yml +178 -0
  33. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/ch_PP-OCRv2/ch_PP-OCRv2_det_student.yml +132 -0
  34. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml +132 -0
  35. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml +131 -0
  36. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0_2.yml +127 -0
  37. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/det_mv3_db.yml +131 -0
  38. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/det_mv3_db2.yml +128 -0
  39. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/det_mv3_east.yml +109 -0
  40. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/det_mv3_pse.yml +135 -0
  41. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/det_r50_vd_db.yml +128 -0
  42. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/det_r50_vd_east.yml +108 -0
  43. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/det_r50_vd_pse.yml +134 -0
  44. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/det_r50_vd_sast_icdar15.yml +109 -0
  45. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/det_r50_vd_sast_totaltext.yml +108 -0
  46. pyxllib-0.3.197/pyxlpr/ppocr/configs/det/det_res18_db_v2.0.yml +131 -0
  47. pyxllib-0.3.197/pyxlpr/ppocr/configs/e2e/e2e_r50_vd_pg.yml +114 -0
  48. pyxllib-0.3.197/pyxlpr/ppocr/configs/kie/kie_unet_sdmgr.yml +111 -0
  49. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/ch_PP-OCRv2/ch_PP-OCRv2_rec.yml +110 -0
  50. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/ch_PP-OCRv2/ch_PP-OCRv2_rec_distillation.yml +159 -0
  51. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/ch_PP-OCRv2/ch_PP-OCRv2_rec_enhanced_ctc_loss.yml +124 -0
  52. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml +100 -0
  53. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml +102 -0
  54. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/multi_language/rec_arabic_lite_train.yml +110 -0
  55. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/multi_language/rec_cyrillic_lite_train.yml +110 -0
  56. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/multi_language/rec_devanagari_lite_train.yml +110 -0
  57. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/multi_language/rec_en_number_lite_train.yml +101 -0
  58. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/multi_language/rec_french_lite_train.yml +101 -0
  59. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/multi_language/rec_german_lite_train.yml +101 -0
  60. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/multi_language/rec_japan_lite_train.yml +101 -0
  61. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/multi_language/rec_korean_lite_train.yml +101 -0
  62. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/multi_language/rec_latin_lite_train.yml +110 -0
  63. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/multi_language/rec_multi_language_lite_train.yml +103 -0
  64. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_icdar15_train.yml +99 -0
  65. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_mtb_nrtr.yml +101 -0
  66. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_mv3_none_bilstm_ctc.yml +95 -0
  67. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_mv3_none_none_ctc.yml +94 -0
  68. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_mv3_tps_bilstm_att.yml +101 -0
  69. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_mv3_tps_bilstm_ctc.yml +99 -0
  70. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_r31_sar.yml +98 -0
  71. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_r34_vd_none_bilstm_ctc.yml +94 -0
  72. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_r34_vd_none_none_ctc.yml +92 -0
  73. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_r34_vd_tps_bilstm_att.yml +100 -0
  74. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_r34_vd_tps_bilstm_ctc.yml +98 -0
  75. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_r50_fpn_srn.yml +106 -0
  76. pyxllib-0.3.197/pyxlpr/ppocr/configs/rec/rec_resnet_stn_bilstm_att.yml +108 -0
  77. pyxllib-0.3.197/pyxlpr/ppocr/configs/table/table_mv3.yml +117 -0
  78. pyxllib-0.3.197/pyxlpr/ppocr/postprocess/pse_postprocess/pse/README.md +6 -0
  79. pyxllib-0.3.197/pyxlpr/ppocr/postprocess/pse_postprocess/pse/pse.pyx +70 -0
  80. pyxllib-0.3.197/pyxlpr/ppstructure/README.md +140 -0
  81. pyxllib-0.3.197/pyxlpr/ppstructure/README_ch.md +137 -0
  82. pyxllib-0.3.197/pyxlpr/ppstructure/layout/README.md +141 -0
  83. pyxllib-0.3.197/pyxlpr/ppstructure/layout/README_ch.md +141 -0
  84. pyxllib-0.3.197/pyxlpr/ppstructure/layout/train_layoutparser_model.md +203 -0
  85. pyxllib-0.3.197/pyxlpr/ppstructure/layout/train_layoutparser_model_ch.md +203 -0
  86. pyxllib-0.3.197/pyxlpr/ppstructure/table/README.md +116 -0
  87. pyxllib-0.3.197/pyxlpr/ppstructure/table/README_ch.md +126 -0
  88. pyxllib-0.3.175/MANIFEST.in +0 -5
  89. pyxllib-0.3.175/PKG-INFO +0 -86
  90. pyxllib-0.3.175/README.md +0 -18
  91. pyxllib-0.3.175/pyxllib/ext/kq5034lib.py +0 -1270
  92. pyxllib-0.3.175/pyxllib/ext/yuquelib.py +0 -294
  93. pyxllib-0.3.175/pyxllib.egg-info/PKG-INFO +0 -86
  94. pyxllib-0.3.175/pyxllib.egg-info/SOURCES.txt +0 -366
  95. pyxllib-0.3.175/pyxllib.egg-info/dependency_links.txt +0 -1
  96. pyxllib-0.3.175/pyxllib.egg-info/requires.txt +0 -54
  97. pyxllib-0.3.175/pyxllib.egg-info/top_level.txt +0 -2
  98. pyxllib-0.3.175/requirements.txt +0 -23
  99. pyxllib-0.3.175/setup.cfg +0 -4
  100. pyxllib-0.3.175/setup.py +0 -84
  101. {pyxllib-0.3.175 → pyxllib-0.3.197}/LICENSE +0 -0
  102. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/__init__.py +0 -0
  103. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/algo/__init__.py +0 -0
  104. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/algo/disjoint.py +0 -0
  105. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/algo/geo.py +0 -0
  106. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/algo/intervals.py +0 -0
  107. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/algo/matcher.py +0 -0
  108. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/algo/newbie.py +0 -0
  109. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/algo/pupil.py +0 -0
  110. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/algo/shapelylib.py +0 -0
  111. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/algo/specialist.py +0 -0
  112. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/algo/stat.py +0 -0
  113. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/algo/treelib.py +0 -0
  114. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/algo/unitlib.py +0 -0
  115. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/autogui/__init__.py +0 -0
  116. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/autogui/activewin.py +0 -0
  117. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/autogui/all.py +0 -0
  118. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/autogui/autogui.py +0 -0
  119. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/autogui/virtualkey.py +0 -0
  120. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/autogui/wechat.py +0 -0
  121. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/autogui/wechat_msg.py +0 -0
  122. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/cv/__init__.py +0 -0
  123. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/cv/expert.py +0 -0
  124. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/cv/imfile.py +0 -0
  125. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/cv/imhash.py +0 -0
  126. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/cv/pupil.py +0 -0
  127. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/cv/rgbfmt.py +0 -0
  128. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/cv/slidercaptcha.py +0 -0
  129. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/cv/trackbartools.py +0 -0
  130. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/cv/xlcvlib.py +0 -0
  131. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/cv/xlpillib.py +0 -0
  132. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/data/__init__.py +0 -0
  133. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/data/echarts.py +0 -0
  134. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/data/jsonlib.py +0 -0
  135. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/data/oss.py +0 -0
  136. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/data/sqlite.py +0 -0
  137. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/data/sqllib.py +0 -0
  138. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/JLineViewer.py +0 -0
  139. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/__init__.py +0 -0
  140. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/demolib.py +0 -0
  141. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/old.py +0 -0
  142. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/qt.py +0 -0
  143. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/robustprocfile.py +0 -0
  144. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/seleniumlib.py +0 -0
  145. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/tk.py +0 -0
  146. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/unixlib.py +0 -0
  147. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/utools.py +0 -0
  148. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/win32lib.py +0 -0
  149. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/ext/wjxlib.py +0 -0
  150. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/__init__.py +0 -0
  151. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/docxlib.py +0 -0
  152. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/gitlib.py +0 -0
  153. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/libreoffice.py +0 -0
  154. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/movielib.py +0 -0
  155. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/newbie.py +0 -0
  156. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/onenotelib.py +0 -0
  157. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/packlib/__init__.py +0 -0
  158. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/packlib/zipfile.py +0 -0
  159. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/pdflib.py +0 -0
  160. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/pupil.py +0 -0
  161. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/specialist/__init__.py +0 -0
  162. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/specialist/dirlib.py +0 -0
  163. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/specialist/download.py +0 -0
  164. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/specialist/filelib.py +0 -0
  165. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/file/xlsxlib.py +0 -0
  166. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/__init__.py +0 -0
  167. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/cachetools.py +0 -0
  168. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/deprecatedlib.py +0 -0
  169. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/filelock.py +0 -0
  170. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/ipyexec.py +0 -0
  171. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/newbie.py +0 -0
  172. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/sitepackages.py +0 -0
  173. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/specialist/__init__.py +0 -0
  174. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/specialist/bc.py +0 -0
  175. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/specialist/browser.py +0 -0
  176. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/specialist/common.py +0 -0
  177. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/specialist/tictoc.py +0 -0
  178. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/specialist/xllog.py +0 -0
  179. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/prog/xlosenv.py +0 -0
  180. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/stdlib/__init__.py +0 -0
  181. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/stdlib/tablepyxl/__init__.py +0 -0
  182. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/stdlib/tablepyxl/style.py +0 -0
  183. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/stdlib/tablepyxl/tablepyxl.py +0 -0
  184. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/__init__.py +0 -0
  185. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/ahocorasick.py +0 -0
  186. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/charclasslib.py +0 -0
  187. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/jiebalib.py +0 -0
  188. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/jinjalib.py +0 -0
  189. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/latex/__init__.py +0 -0
  190. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/levenshtein.py +0 -0
  191. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/nestenv.py +0 -0
  192. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/newbie.py +0 -0
  193. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/pupil/__init__.py +0 -0
  194. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/pupil/common.py +0 -0
  195. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/pupil/xlalign.py +0 -0
  196. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/pycode.py +0 -0
  197. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/specialist/__init__.py +0 -0
  198. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/specialist/common.py +0 -0
  199. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/specialist/ptag.py +0 -0
  200. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/spellchecker.py +0 -0
  201. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/templates/echart_base.html +0 -0
  202. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/templates/highlight_code.html +0 -0
  203. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/templates/latex_editor.html +0 -0
  204. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/text/vbacode.py +0 -0
  205. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/xl.py +0 -0
  206. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxllib/xlcv.py +0 -0
  207. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/__init__.py +0 -0
  208. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ai/__init__.py +0 -0
  209. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ai/clientlib.py +0 -0
  210. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ai/specialist.py +0 -0
  211. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ai/torch_app.py +0 -0
  212. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ai/xlpaddle.py +0 -0
  213. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ai/xltorch.py +0 -0
  214. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/__init__.py +0 -0
  215. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/coco.py +0 -0
  216. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/datacls.py +0 -0
  217. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/datasets.py +0 -0
  218. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/gptlib.py +0 -0
  219. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/icdar/__init__.py +0 -0
  220. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/icdar/deteval.py +0 -0
  221. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/icdar/icdar2013.py +0 -0
  222. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/icdar/iou.py +0 -0
  223. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/icdar/rrc_evaluation_funcs_1_1.py +0 -0
  224. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/imtextline.py +0 -0
  225. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/labelme.py +0 -0
  226. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/removeline.py +0 -0
  227. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/specialist.py +0 -0
  228. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/data/tiktokenlib.py +0 -0
  229. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/eval/__init__.py +0 -0
  230. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/openai2/__init__.py +0 -0
  231. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/openai2/_core/chat_in_cmd.py +0 -0
  232. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/openai2/_core/group_chat.py +0 -0
  233. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/openai2/openai2.py +0 -0
  234. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/paddleocr.py +0 -0
  235. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/__init__.py +0 -0
  236. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/configs/rec/multi_language/generate_multi_language_configs.py +0 -0
  237. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/__init__.py +0 -0
  238. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/ColorJitter.py +0 -0
  239. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/__init__.py +0 -0
  240. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/copy_paste.py +0 -0
  241. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/east_process.py +0 -0
  242. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/gen_table_mask.py +0 -0
  243. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/iaa_augment.py +0 -0
  244. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/label_ops.py +0 -0
  245. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/make_border_map.py +0 -0
  246. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/make_pse_gt.py +0 -0
  247. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/make_shrink_map.py +0 -0
  248. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/operators.py +0 -0
  249. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/pg_process.py +0 -0
  250. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/randaugment.py +0 -0
  251. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/random_crop_data.py +0 -0
  252. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/rec_img_aug.py +0 -0
  253. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/sast_process.py +0 -0
  254. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/text_image_aug/__init__.py +0 -0
  255. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/text_image_aug/augment.py +0 -0
  256. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/imaug/text_image_aug/warp_mls.py +0 -0
  257. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/lmdb_dataset.py +0 -0
  258. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/pgnet_dataset.py +0 -0
  259. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/pubtab_dataset.py +0 -0
  260. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/data/simple_dataset.py +0 -0
  261. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/__init__.py +0 -0
  262. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/ace_loss.py +0 -0
  263. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/basic_loss.py +0 -0
  264. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/center_loss.py +0 -0
  265. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/cls_loss.py +0 -0
  266. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/combined_loss.py +0 -0
  267. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/det_basic_loss.py +0 -0
  268. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/det_db_loss.py +0 -0
  269. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/det_east_loss.py +0 -0
  270. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/det_pse_loss.py +0 -0
  271. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/det_sast_loss.py +0 -0
  272. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/distillation_loss.py +0 -0
  273. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/e2e_pg_loss.py +0 -0
  274. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/kie_sdmgr_loss.py +0 -0
  275. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/rec_aster_loss.py +0 -0
  276. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/rec_att_loss.py +0 -0
  277. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/rec_ctc_loss.py +0 -0
  278. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/rec_enhanced_ctc_loss.py +0 -0
  279. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/rec_nrtr_loss.py +0 -0
  280. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/rec_sar_loss.py +0 -0
  281. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/rec_srn_loss.py +0 -0
  282. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/losses/table_att_loss.py +0 -0
  283. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/metrics/__init__.py +0 -0
  284. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/metrics/cls_metric.py +0 -0
  285. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/metrics/det_metric.py +0 -0
  286. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/metrics/distillation_metric.py +0 -0
  287. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/metrics/e2e_metric.py +0 -0
  288. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/metrics/eval_det_iou.py +0 -0
  289. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/metrics/kie_metric.py +0 -0
  290. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/metrics/rec_metric.py +0 -0
  291. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/metrics/table_metric.py +0 -0
  292. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/architectures/__init__.py +0 -0
  293. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/architectures/base_model.py +0 -0
  294. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/architectures/distillation_model.py +0 -0
  295. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/__init__.py +0 -0
  296. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/det_mobilenet_v3.py +0 -0
  297. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd.py +0 -0
  298. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd_sast.py +0 -0
  299. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/e2e_resnet_vd_pg.py +0 -0
  300. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/kie_unet_sdmgr.py +0 -0
  301. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/rec_mobilenet_v3.py +0 -0
  302. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/rec_mv1_enhance.py +0 -0
  303. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/rec_nrtr_mtb.py +0 -0
  304. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/rec_resnet_31.py +0 -0
  305. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/rec_resnet_aster.py +0 -0
  306. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/rec_resnet_fpn.py +0 -0
  307. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/backbones/rec_resnet_vd.py +0 -0
  308. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/__init__.py +0 -0
  309. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/cls_head.py +0 -0
  310. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/det_db_head.py +0 -0
  311. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/det_east_head.py +0 -0
  312. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/det_pse_head.py +0 -0
  313. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/det_sast_head.py +0 -0
  314. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/e2e_pg_head.py +0 -0
  315. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/kie_sdmgr_head.py +0 -0
  316. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/multiheadAttention.py +0 -0
  317. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/rec_aster_head.py +0 -0
  318. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/rec_att_head.py +0 -0
  319. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/rec_ctc_head.py +0 -0
  320. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/rec_nrtr_head.py +0 -0
  321. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/rec_sar_head.py +0 -0
  322. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/rec_srn_head.py +0 -0
  323. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/self_attention.py +0 -0
  324. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/heads/table_att_head.py +0 -0
  325. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/necks/__init__.py +0 -0
  326. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/necks/db_fpn.py +0 -0
  327. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/necks/east_fpn.py +0 -0
  328. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/necks/fpn.py +0 -0
  329. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/necks/pg_fpn.py +0 -0
  330. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/necks/rnn.py +0 -0
  331. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/necks/sast_fpn.py +0 -0
  332. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/necks/table_fpn.py +0 -0
  333. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/transforms/__init__.py +0 -0
  334. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/transforms/stn.py +0 -0
  335. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/transforms/tps.py +0 -0
  336. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/modeling/transforms/tps_spatial_transformer.py +0 -0
  337. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/optimizer/__init__.py +0 -0
  338. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/optimizer/learning_rate.py +0 -0
  339. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/optimizer/lr_scheduler.py +0 -0
  340. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/optimizer/optimizer.py +0 -0
  341. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/optimizer/regularizer.py +0 -0
  342. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/postprocess/__init__.py +0 -0
  343. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/postprocess/cls_postprocess.py +0 -0
  344. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/postprocess/db_postprocess.py +0 -0
  345. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/postprocess/east_postprocess.py +0 -0
  346. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/postprocess/locality_aware_nms.py +0 -0
  347. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/postprocess/pg_postprocess.py +0 -0
  348. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/postprocess/pse_postprocess/__init__.py +0 -0
  349. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/__init__.py +0 -0
  350. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/setup.py +0 -0
  351. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/postprocess/pse_postprocess/pse_postprocess.py +0 -0
  352. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/postprocess/rec_postprocess.py +0 -0
  353. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/postprocess/sast_postprocess.py +0 -0
  354. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/__init__.py +0 -0
  355. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/eval.py +0 -0
  356. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/export_center.py +0 -0
  357. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/export_model.py +0 -0
  358. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/infer/predict_cls.py +0 -0
  359. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/infer/predict_det.py +0 -0
  360. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/infer/predict_e2e.py +0 -0
  361. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/infer/predict_rec.py +0 -0
  362. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/infer/predict_system.py +0 -0
  363. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/infer/utility.py +0 -0
  364. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/infer_cls.py +0 -0
  365. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/infer_det.py +0 -0
  366. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/infer_e2e.py +0 -0
  367. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/infer_kie.py +0 -0
  368. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/infer_rec.py +0 -0
  369. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/infer_table.py +0 -0
  370. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/program.py +0 -0
  371. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/test_hubserving.py +0 -0
  372. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/train.py +0 -0
  373. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/tools/xlprog.py +0 -0
  374. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/EN_symbol_dict.txt +0 -0
  375. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/__init__.py +0 -0
  376. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/ar_dict.txt +0 -0
  377. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/arabic_dict.txt +0 -0
  378. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/be_dict.txt +0 -0
  379. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/bg_dict.txt +0 -0
  380. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/chinese_cht_dict.txt +0 -0
  381. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/cyrillic_dict.txt +0 -0
  382. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/devanagari_dict.txt +0 -0
  383. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/en_dict.txt +0 -0
  384. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/fa_dict.txt +0 -0
  385. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/french_dict.txt +0 -0
  386. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/german_dict.txt +0 -0
  387. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/hi_dict.txt +0 -0
  388. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/it_dict.txt +0 -0
  389. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/japan_dict.txt +0 -0
  390. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/ka_dict.txt +0 -0
  391. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/korean_dict.txt +0 -0
  392. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/latin_dict.txt +0 -0
  393. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/mr_dict.txt +0 -0
  394. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/ne_dict.txt +0 -0
  395. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/oc_dict.txt +0 -0
  396. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/pu_dict.txt +0 -0
  397. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/rs_dict.txt +0 -0
  398. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/rsc_dict.txt +0 -0
  399. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/ru_dict.txt +0 -0
  400. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/ta_dict.txt +0 -0
  401. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/table_dict.txt +0 -0
  402. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/table_structure_dict.txt +0 -0
  403. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/te_dict.txt +0 -0
  404. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/ug_dict.txt +0 -0
  405. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/uk_dict.txt +0 -0
  406. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/ur_dict.txt +0 -0
  407. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict/xi_dict.txt +0 -0
  408. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/dict90.txt +0 -0
  409. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/e2e_metric/Deteval.py +0 -0
  410. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/e2e_metric/polygon_fast.py +0 -0
  411. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/e2e_utils/extract_batchsize.py +0 -0
  412. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_fast.py +0 -0
  413. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_slow.py +0 -0
  414. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/e2e_utils/pgnet_pp_utils.py +0 -0
  415. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/e2e_utils/visual.py +0 -0
  416. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/en_dict.txt +0 -0
  417. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/gen_label.py +0 -0
  418. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/ic15_dict.txt +0 -0
  419. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/iou.py +0 -0
  420. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/logging.py +0 -0
  421. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/network.py +0 -0
  422. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/ppocr_keys_v1.txt +0 -0
  423. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/profiler.py +0 -0
  424. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/save_load.py +0 -0
  425. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/stats.py +0 -0
  426. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppocr/utils/utility.py +0 -0
  427. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/__init__.py +0 -0
  428. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/predict_system.py +0 -0
  429. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/table/__init__.py +0 -0
  430. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/table/eval_table.py +0 -0
  431. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/table/matcher.py +0 -0
  432. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/table/predict_structure.py +0 -0
  433. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/table/predict_table.py +0 -0
  434. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/table/table_metric/__init__.py +0 -0
  435. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/table/table_metric/parallel.py +0 -0
  436. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/table/table_metric/table_metric.py +0 -0
  437. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/table/tablepyxl/__init__.py +0 -0
  438. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/table/tablepyxl/style.py +0 -0
  439. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/table/tablepyxl/tablepyxl.py +0 -0
  440. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/ppstructure/utility.py +0 -0
  441. {pyxllib-0.3.175 → pyxllib-0.3.197}/pyxlpr/xlai.py +0 -0
@@ -0,0 +1,16 @@
1
+ # PyCharm config dir
2
+ .idea/
3
+
4
+ # compile files
5
+ build/
6
+ dist/
7
+ *.egg-info/
8
+
9
+ # ingore file types
10
+ *.pyc
11
+ *.pyd
12
+ *.so
13
+ *.pkl
14
+ *.lock
15
+
16
+ /pyxllib/ext/wpsapi2.py
@@ -0,0 +1,48 @@
1
+ Metadata-Version: 2.4
2
+ Name: pyxllib
3
+ Version: 0.3.197
4
+ Summary: 厦门理工模式识别团队通用python代码工具库
5
+ Project-URL: Homepage, https://github.com/XLPRUtils/pyxllib
6
+ Author-email: code4101 <877362867@qq.com>
7
+ License-File: LICENSE
8
+ Classifier: License :: OSI Approved :: Apache Software License
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: Programming Language :: Python :: 3
11
+ Requires-Python: <3.13,>=3.6
12
+ Requires-Dist: arrow
13
+ Requires-Dist: beautifulsoup4
14
+ Requires-Dist: charset-normalizer
15
+ Requires-Dist: decorator
16
+ Requires-Dist: deprecated
17
+ Requires-Dist: envariable
18
+ Requires-Dist: fire
19
+ Requires-Dist: humanfriendly
20
+ Requires-Dist: jinja2
21
+ Requires-Dist: loguru
22
+ Requires-Dist: lxml
23
+ Requires-Dist: more-itertools
24
+ Requires-Dist: numpy
25
+ Requires-Dist: pandas>=0.23.4
26
+ Requires-Dist: pillow
27
+ Requires-Dist: pympler
28
+ Requires-Dist: pyperclip
29
+ Requires-Dist: pyyaml
30
+ Requires-Dist: qiniu
31
+ Requires-Dist: requests
32
+ Requires-Dist: tqdm
33
+ Requires-Dist: ujson
34
+ Requires-Dist: xlrd
35
+ Description-Content-Type: text/markdown
36
+
37
+
38
+ # 1 安装
39
+
40
+ ```
41
+ pip install pyxllib
42
+ ```
43
+
44
+ 更多介绍: https://www.yuque.com/xlpr/pyxllib/install
45
+
46
+ # 2 文档
47
+
48
+ 文档都在语雀: https://www.yuque.com/xlpr/pyxllib
@@ -0,0 +1,12 @@
1
+
2
+ # 1 安装
3
+
4
+ ```
5
+ pip install pyxllib
6
+ ```
7
+
8
+ 更多介绍: https://www.yuque.com/xlpr/pyxllib/install
9
+
10
+ # 2 文档
11
+
12
+ 文档都在语雀: https://www.yuque.com/xlpr/pyxllib
@@ -0,0 +1,58 @@
1
+ [build-system]
2
+ requires = ['hatchling']
3
+ build-backend = 'hatchling.build'
4
+
5
+ [project]
6
+ name = 'pyxllib'
7
+ version = '0.3.197'
8
+ description = '厦门理工模式识别团队通用python代码工具库'
9
+ authors = [
10
+ { name = 'code4101', email = '877362867@qq.com' },
11
+ ]
12
+ readme = 'README.md'
13
+ requires-python = '>=3.6, <3.13' # 3.6可以兼容大部分功能,但并不保证所有功能都可用
14
+ classifiers = [
15
+ 'Programming Language :: Python :: 3',
16
+ 'Operating System :: OS Independent',
17
+ 'License :: OSI Approved :: Apache Software License',
18
+ ]
19
+ dependencies = [
20
+ 'arrow',
21
+ 'charset-normalizer',
22
+ 'requests',
23
+ 'qiniu',
24
+ 'pyyaml',
25
+ 'loguru',
26
+ 'humanfriendly',
27
+ 'tqdm',
28
+ 'ujson',
29
+ 'Deprecated',
30
+ 'pyperclip',
31
+ 'envariable',
32
+ 'decorator',
33
+ 'more-itertools',
34
+ 'fire',
35
+ 'xlrd',
36
+ 'pympler',
37
+ 'lxml',
38
+ 'beautifulsoup4',
39
+ 'numpy',
40
+ 'Jinja2',
41
+ 'pandas>=0.23.4',
42
+ 'pillow',
43
+ ]
44
+
45
+ [project.urls]
46
+ Homepage = 'https://github.com/XLPRUtils/pyxllib'
47
+
48
+ [tool.hatch.build]
49
+ exclude = [
50
+ '.github',
51
+ '.gitignore',
52
+ '.gitattributes',
53
+ ]
54
+
55
+ [tool.uv]
56
+ index-url = 'https://pypi.tuna.tsinghua.edu.cn/simple'
57
+ dev-dependencies = [
58
+ ]
@@ -18,6 +18,7 @@ import tempfile
18
18
 
19
19
  import psutil
20
20
  import pandas as pd
21
+ from fastcore.basics import GetAttr
21
22
 
22
23
  from loguru import logger
23
24
  # ui组件大多是树形组织结构,auto库自带树形操作太弱。没有专业的树形结构库,能搞个毛线。
@@ -32,7 +33,8 @@ if sys.platform == 'win32':
32
33
  import win32process
33
34
  import win32clipboard
34
35
 
35
- import uiautomation as auto
36
+ import uiautomation as uia
37
+ from uiautomation import WindowControl
36
38
 
37
39
 
38
40
  def __1_clipboard_utils():
@@ -198,7 +200,7 @@ def get_windows_info():
198
200
  }
199
201
 
200
202
  if not data['proc_name'].endswith('.tmp') and is_visible:
201
- ctrl = auto.ControlFromHandle(hwnd)
203
+ ctrl = uia.ControlFromHandle(hwnd)
202
204
  data['ControlTypeName'] = ctrl.ControlTypeName
203
205
 
204
206
  window_list.append(data)
@@ -212,11 +214,13 @@ def find_ctrl(class_name=None, name=None, **kwargs):
212
214
  kwargs['ClassName'] = class_name
213
215
  if name is not None:
214
216
  kwargs['Name'] = name
215
- ctrl = auto.WindowControl(**kwargs)
217
+ ctrl = uia.WindowControl(**kwargs)
216
218
  return ctrl
217
219
 
218
220
 
219
- class UiCtrlNode(NodeMixin):
221
+ class UiCtrlNode(NodeMixin, GetAttr, WindowControl):
222
+ _default = 'ctrl'
223
+
220
224
  def __0_构建(self):
221
225
  pass
222
226
 
@@ -246,6 +250,7 @@ class UiCtrlNode(NodeMixin):
246
250
  """ 激活当前窗口
247
251
  """
248
252
  while True:
253
+ # todo 这种限定情况并不严谨,有概率出现重复的~
249
254
  hwnd = win32gui.FindWindow(self.ctrl.ClassName, self.text)
250
255
  # logger.info(hwnd)
251
256
  if not hwnd:
@@ -8,12 +8,13 @@ import sys
8
8
 
9
9
  from loguru import logger
10
10
 
11
- try: # 尝试加载VIP版
12
- from wxautox import WeChat
13
- from wxautox.elements import WxParam # WxParam.DEFALUT_SAVEPATH 可以用来配置数据自动保存位置
14
- except ModuleNotFoundError: # 否则用贫民版
15
- from wxauto import WeChat
16
- from wxauto.elements import WxParam
11
+ if sys.platform == 'win32':
12
+ try: # 尝试加载VIP版
13
+ from wxautox import WeChat
14
+ from wxautox.elements import WxParam # WxParam.DEFALUT_SAVEPATH 可以用来配置数据自动保存位置
15
+ except ModuleNotFoundError: # 否则用贫民版
16
+ from wxauto import WeChat
17
+ from wxauto.elements import WxParam
17
18
 
18
19
  from pyxllib.prog.filelock import get_autoui_lock
19
20
 
@@ -55,6 +55,9 @@ class Connection(psycopg.Connection, SqlBase):
55
55
  psycopg.Connection.__init__(self, *args, **kwargs)
56
56
  SqlBase.__init__(self, *args, **kwargs)
57
57
 
58
+ def __del__(self):
59
+ self.close()
60
+
58
61
  def __1_库(self):
59
62
  pass
60
63
 
@@ -899,7 +902,7 @@ class XlprDb(Connection):
899
902
  chart.options['grid'] = [{'top': 55 + len(all_database_usaged) * 4, 'containLabel': True}]
900
903
  chart.options['tooltip'].opts.update({'axisPointer': {'type': 'cross'}, 'trigger': 'item'})
901
904
 
902
- #chart.add_series(f'total {pretty_val(ls[0][2] / 1024 / 1024 / 1024):g}',
905
+ # chart.add_series(f'total {pretty_val(ls[0][2] / 1024 / 1024 / 1024):g}',
903
906
  # to_list([x[2] / 1024 / 1024 / 1024 for x in ls]), areaStyle={})
904
907
  for database, usaged in all_database_usaged.most_common():
905
908
  usaged = usaged / ((ls[-1][0] - ls[0][0]).total_seconds() / 3600 + 1e-9)
@@ -16,6 +16,7 @@ import DrissionPage
16
16
  from DrissionPage import ChromiumPage, Chromium
17
17
  from DrissionPage._pages.chromium_base import ChromiumBase
18
18
  from DrissionPage._pages.chromium_tab import ChromiumTab
19
+ import DrissionPage.errors
19
20
 
20
21
  from pyxllib.prog.pupil import inject_members
21
22
  from pyxllib.text.pupil import strfind
@@ -224,7 +225,18 @@ def close_duplicate_tabs(browser=None):
224
225
  # 1 初始化
225
226
  if browser is None:
226
227
  browser = Chromium()
227
- all_tabs = browser.get_tabs()
228
+
229
+ # 250115周三21:12 这步不稳定,会报错,不知道为啥。导致dp最后经常没有清理tabs
230
+ # 250204周二09:21,好像是浏览器重启更新到最新版本就行了~ 这里也要加个try
231
+ try:
232
+ all_tabs = browser.get_tabs()
233
+ except TimeoutError:
234
+ logger.warning(
235
+ 'browser.get_tabs()运行报错,请清查浏览器是否已更新但没有重启。本次将browser.quit()退出整个浏览器。')
236
+ # 你不让我关tabs是吧,那我就把整个浏览器关了
237
+ browser.quit()
238
+ return
239
+
228
240
  seen_domains = set()
229
241
 
230
242
  # 2 第一次遍历:保留首个出现的域名,其余重复则关闭
@@ -244,3 +256,22 @@ def close_duplicate_tabs(browser=None):
244
256
  for t in remaining_tabs:
245
257
  if t.url.startswith('chrome://newtab'):
246
258
  t.close()
259
+
260
+
261
+ def dp_check_quit():
262
+ """ 检查当前页面是否只剩空标签页,则浏览器可以自动退出 """
263
+ browser = Chromium()
264
+ try:
265
+ tabs = browser.get_tabs()
266
+ except TimeoutError:
267
+ logger.warning('browser.get_tabs()运行报错,浏览器可能已更新但没有重启。将退出浏览器。')
268
+ browser.quit()
269
+ return
270
+
271
+ # 检查是否只剩下空标签页
272
+ if len(tabs) == 1 and tabs[0].url.startswith('chrome://newtab'):
273
+ # 如果只剩下一个空标签页,则退出浏览器
274
+ browser.quit()
275
+ elif len(tabs) == 0:
276
+ # 如果没有标签页,也退出浏览器
277
+ browser.quit()
@@ -0,0 +1,12 @@
1
+ # !/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # @Author : 陈坤泽
4
+ # @Email : 877362867@qq.com
5
+ # @Date : 2022/4
6
+
7
+ """ 惟海法师网课考勤工具
8
+
9
+ 为了使用便捷明了,程序开发上
10
+ 1、使用中文命名
11
+ 2、牺牲了一定的工程、扩展灵活性,用了尽可能多的自动推导,而不是参数配置
12
+ """
@@ -4,7 +4,7 @@
4
4
  # @Email : 877362867@qq.com
5
5
  # @Date : 2020/10/21 09:22
6
6
 
7
-
7
+ import os
8
8
  import time
9
9
  import hmac
10
10
  import hashlib
@@ -37,9 +37,10 @@ class DingtalkRobot:
37
37
  https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
38
38
  """
39
39
 
40
- def __init__(self, url, secret):
41
- self.url = url
42
- self.url += self.add_secret(secret)
40
+ def __init__(self, access_token=None, secret=None):
41
+ access_token = access_token or os.getenv('DINGTALK_ROBOT_SECRET')
42
+ self.url = f'https://oapi.dingtalk.com/robot/send?access_token={access_token}'
43
+ self.url += self.add_secret(secret or os.getenv('DINGTALK_ROBOT_SECRET'))
43
44
  self.headers = {"Content-Type": "application/json"}
44
45
 
45
46
  @classmethod
@@ -89,3 +90,30 @@ class DingtalkRobot:
89
90
 
90
91
  def send_feedcard(self):
91
92
  raise NotImplementedError
93
+
94
+
95
+ class DingtalkRobot2(DingtalkRobot):
96
+
97
+ def __init__(self, title=None):
98
+ super().__init__()
99
+ self.title = title
100
+
101
+ def send_text2(self, text): # 增加一个更加定制化的便捷接口
102
+ from pyxllib.prog.pupil import utc_timestamp
103
+
104
+ if self.title:
105
+ self.send_text(f'{utc_timestamp()} {get_host_nickname()} [{self.title}] {text}')
106
+ else:
107
+ self.send_text(f'{utc_timestamp()} {get_host_nickname()} {text}')
108
+
109
+ def __enter__(self):
110
+ self.send_text2('启动')
111
+ return self
112
+
113
+ def __exit__(self, exc_type, exc_val, exc_tb):
114
+ from pyxllib.prog.pupil import format_exception
115
+
116
+ if exc_tb is None:
117
+ self.send_text2('完成')
118
+ else:
119
+ self.send_text2(f'报错\n{format_exception(exc_val, 3)}')
@@ -4,8 +4,9 @@
4
4
  # @Date : 2024/07/31
5
5
 
6
6
  import os
7
- import requests
7
+ import re
8
8
 
9
+ import requests
9
10
  import pandas as pd
10
11
 
11
12
 
@@ -18,12 +19,12 @@ class WpsOnlineBook:
18
19
  def __1_基础功能(self):
19
20
  pass
20
21
 
21
- def __init__(self, file_id=None, script_id=None, *, token=None):
22
+ def __init__(self, file_id, script_id=None, *, token=None):
22
23
  self.headers = {
23
24
  'Content-Type': "application/json",
24
25
  'AirScript-Token': token or os.getenv('WPS_SCRIPT_TOKEN', ''),
25
26
  }
26
- self.default_file_id = file_id
27
+ self.file_id = file_id
27
28
  self.default_script_id = script_id
28
29
 
29
30
  def post_request(self, url, payload):
@@ -38,12 +39,9 @@ class WpsOnlineBook:
38
39
  print(f"请求失败: {e}")
39
40
  return None
40
41
 
41
- def run_script(self, script_id=None, file_id=None, context_argv=None, sync=True):
42
- """
43
- 执行 WPS 脚本并返回执行结果
42
+ def run_script(self, script_id=None, context_argv=None, sync=True):
43
+ """ 原本执行 WPS 脚本并返回执行结果
44
44
 
45
- :param file_id: 文件 ID
46
- 虽然提供了file_id,但并不支持跨文件调用as脚本
47
45
  :param script_id: 脚本 ID
48
46
  :param context_argv: 脚本参数 (可选)
49
47
  context本来能支持这些参数的:
@@ -61,8 +59,7 @@ class WpsOnlineBook:
61
59
 
62
60
  这个接口跟普通as一样,运行有30秒时限
63
61
  """
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'}"
62
+ url = f"https://www.kdocs.cn/api/v3/ide/file/{self.file_id}/script/{script_id}/{'sync_task' if sync else 'task'}"
66
63
  payload = {
67
64
  "Context": {'argv': context_argv or {}}
68
65
  }
@@ -73,12 +70,14 @@ class WpsOnlineBook:
73
70
  return res
74
71
 
75
72
  def __2_封装的更高级的接口(self):
73
+ """ 这系列的功能需要配套这个框架范式使用:
74
+ https://github.com/XLPRUtils/pyxllib/blob/master/pyxllib/text/airscript.js
75
+ """
76
76
  pass
77
77
 
78
- def run_script2(self, func_name, *args):
78
+ def run_func(self, func_name, *args):
79
79
  """ 我自己常用的jsa框架,jsa那边已经简化了对接模式,所以一般都只用这个高级的接口即可
80
-
81
- 配合这个框架范式使用:https://github.com/XLPRUtils/pyxllib/blob/master/pyxllib/text/airscript.js
80
+ (旧函数名run_script2不再使用)
82
81
  """
83
82
  return self.run_script(self.default_script_id, context_argv={'funcName': func_name, 'args': args})
84
83
 
@@ -91,12 +90,35 @@ class WpsOnlineBook:
91
90
  :param int data_row: 数据起始行,详细用法见packTableDataFields
92
91
  :param return_mode: 'pd' or 'json'
93
92
  """
94
- data = self.run_script2('packTableDataFields', sheet_name, fields, data_row, filter_empty_rows)
93
+ data = self.run_func('packTableDataFields', sheet_name, fields, data_row, filter_empty_rows)
95
94
  if return_mode == 'json':
96
95
  return data
97
96
  elif return_mode == 'pd':
98
97
  return pd.DataFrame(data)
99
98
 
99
+ def write_arr(self, rows, start_cell, batch_size=None):
100
+ """ 把一个二维数组数据写入表格
101
+
102
+ :param rows: 一个n*m的数据
103
+ :param start_cell: 写入的起始位置,例如'A1',也可以使用Sheet1!A1的格式表示具体的表格位置
104
+ :param batch_size: 为了避免一次写入内容过多,超时写入失败,可以分成多批运行
105
+ 这里写每批的数据行数
106
+ 默认表示一次性全部提交
107
+ :return:
108
+ """
109
+ if batch_size is None:
110
+ batch_size = len(rows) # 如果未指定批次大小,一次性写入所有行
111
+
112
+ def func(m):
113
+ return str(int(m.group()) + batch_size)
114
+
115
+ current_cell = start_cell
116
+ for start in range(0, len(rows), batch_size):
117
+ end = start + batch_size
118
+ batch_rows = rows[start:end]
119
+ self.run_func('writeArrToSheet', batch_rows, current_cell)
120
+ current_cell = re.sub(r'\d+$', func, current_cell)
121
+
100
122
 
101
123
  if __name__ == '__main__':
102
124
  pass
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # @Author : 陈坤泽
4
+ # @Email : 877362867@qq.com
5
+ # @Date : 2025/04/17
6
+
7
+ """ code4101的众多账号密码管理接口,工作目录等控制位置 """
8
+
9
+