pyxllib 0.3.130__tar.gz → 0.3.131__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 (358) hide show
  1. {pyxllib-0.3.130/pyxllib.egg-info → pyxllib-0.3.131}/PKG-INFO +15 -15
  2. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/xlsxlib.py +1 -1
  3. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/pupil.py +209 -92
  4. {pyxllib-0.3.130 → pyxllib-0.3.131/pyxllib.egg-info}/PKG-INFO +15 -15
  5. {pyxllib-0.3.130 → pyxllib-0.3.131}/setup.py +1 -1
  6. {pyxllib-0.3.130 → pyxllib-0.3.131}/LICENSE +0 -0
  7. {pyxllib-0.3.130 → pyxllib-0.3.131}/MANIFEST.in +0 -0
  8. {pyxllib-0.3.130 → pyxllib-0.3.131}/README.md +0 -0
  9. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/__init__.py +0 -0
  10. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/algo/__init__.py +0 -0
  11. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/algo/disjoint.py +0 -0
  12. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/algo/geo.py +0 -0
  13. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/algo/intervals.py +0 -0
  14. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/algo/matcher.py +0 -0
  15. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/algo/newbie.py +0 -0
  16. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/algo/pupil.py +0 -0
  17. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/algo/shapelylib.py +0 -0
  18. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/algo/specialist.py +0 -0
  19. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/algo/stat.py +0 -0
  20. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/algo/treelib.py +0 -0
  21. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/algo/unitlib.py +0 -0
  22. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/cv/__init__.py +0 -0
  23. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/cv/expert.py +0 -0
  24. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/cv/imfile.py +0 -0
  25. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/cv/imhash.py +0 -0
  26. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/cv/pupil.py +0 -0
  27. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/cv/rgbfmt.py +0 -0
  28. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/cv/trackbartools.py +0 -0
  29. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/cv/xlcvlib.py +0 -0
  30. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/cv/xlpillib.py +0 -0
  31. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/data/__init__.py +0 -0
  32. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/data/echarts.py +0 -0
  33. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/data/jsonlib.py +0 -0
  34. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/data/oss.py +0 -0
  35. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/data/pglib.py +0 -0
  36. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/data/sqlite.py +0 -0
  37. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/data/sqllib.py +0 -0
  38. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/JLineViewer.py +0 -0
  39. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/__init__.py +0 -0
  40. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/autogui/__init__.py +0 -0
  41. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/autogui/autogui.py +0 -0
  42. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/autogui/virtualkey.py +0 -0
  43. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/demolib.py +0 -0
  44. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/drissionlib.py +0 -0
  45. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/kq5034lib.py +0 -0
  46. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/old.py +0 -0
  47. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/qt.py +0 -0
  48. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/robustprocfile.py +0 -0
  49. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/seleniumlib.py +0 -0
  50. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/tk.py +0 -0
  51. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/unixlib.py +0 -0
  52. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/utools.py +0 -0
  53. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/webhook.py +0 -0
  54. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/win32lib.py +0 -0
  55. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/ext/yuquelib.py +0 -0
  56. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/__init__.py +0 -0
  57. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/docxlib.py +0 -0
  58. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/gitlib.py +0 -0
  59. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/libreoffice.py +0 -0
  60. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/movielib.py +0 -0
  61. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/newbie.py +0 -0
  62. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/onenotelib.py +0 -0
  63. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/packlib/__init__.py +0 -0
  64. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/packlib/zipfile.py +0 -0
  65. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/pdflib.py +0 -0
  66. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/pupil.py +0 -0
  67. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/specialist/__init__.py +0 -0
  68. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/specialist/dirlib.py +0 -0
  69. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/specialist/download.py +0 -0
  70. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/specialist/filelib.py +0 -0
  71. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/file/xlsyncfile.py +0 -0
  72. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/__init__.py +0 -0
  73. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/cachetools.py +0 -0
  74. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/deprecatedlib.py +0 -0
  75. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/ipyexec.py +0 -0
  76. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/multiprocs.py +0 -0
  77. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/newbie.py +0 -0
  78. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/scheduler.py +0 -0
  79. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/sitepackages.py +0 -0
  80. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/specialist/__init__.py +0 -0
  81. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/specialist/bc.py +0 -0
  82. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/specialist/browser.py +0 -0
  83. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/specialist/common.py +0 -0
  84. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/specialist/datetime.py +0 -0
  85. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/specialist/tictoc.py +0 -0
  86. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/specialist/xllog.py +0 -0
  87. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/prog/xlosenv.py +0 -0
  88. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/stdlib/__init__.py +0 -0
  89. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/stdlib/tablepyxl/__init__.py +0 -0
  90. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/stdlib/tablepyxl/style.py +0 -0
  91. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/stdlib/tablepyxl/tablepyxl.py +0 -0
  92. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/__init__.py +0 -0
  93. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/ahocorasick.py +0 -0
  94. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/charclasslib.py +0 -0
  95. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/jiebalib.py +0 -0
  96. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/jinjalib.py +0 -0
  97. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/jscode.py +0 -0
  98. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/latex/__init__.py +0 -0
  99. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/levenshtein.py +0 -0
  100. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/nestenv.py +0 -0
  101. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/newbie.py +0 -0
  102. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/pupil/__init__.py +0 -0
  103. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/pupil/common.py +0 -0
  104. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/pupil/xlalign.py +0 -0
  105. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/pycode.py +0 -0
  106. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/specialist/__init__.py +0 -0
  107. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/specialist/common.py +0 -0
  108. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/specialist/ptag.py +0 -0
  109. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/spellchecker.py +0 -0
  110. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/templates/echart_base.html +0 -0
  111. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/templates/highlight_code.html +0 -0
  112. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/templates/latex_editor.html +0 -0
  113. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/vbacode.py +0 -0
  114. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/text/xmllib.py +0 -0
  115. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/xl.py +0 -0
  116. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib/xlcv.py +0 -0
  117. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib.egg-info/SOURCES.txt +0 -0
  118. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib.egg-info/dependency_links.txt +0 -0
  119. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib.egg-info/requires.txt +14 -14
  120. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxllib.egg-info/top_level.txt +0 -0
  121. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/__init__.py +0 -0
  122. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ai/__init__.py +0 -0
  123. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ai/clientlib.py +0 -0
  124. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ai/specialist.py +0 -0
  125. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ai/torch_app.py +0 -0
  126. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ai/xlpaddle.py +0 -0
  127. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ai/xltorch.py +0 -0
  128. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/__init__.py +0 -0
  129. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/coco.py +0 -0
  130. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/datacls.py +0 -0
  131. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/datasets.py +0 -0
  132. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/gptlib.py +0 -0
  133. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/icdar/__init__.py +0 -0
  134. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/icdar/deteval.py +0 -0
  135. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/icdar/icdar2013.py +0 -0
  136. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/icdar/iou.py +0 -0
  137. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/icdar/rrc_evaluation_funcs_1_1.py +0 -0
  138. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/imtextline.py +0 -0
  139. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/labelme.py +0 -0
  140. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/removeline.py +0 -0
  141. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/specialist.py +0 -0
  142. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/data/tiktokenlib.py +0 -0
  143. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/eval/__init__.py +0 -0
  144. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/openai2/__init__.py +0 -0
  145. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/openai2/_core/chat.py +0 -0
  146. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/openai2/_core/chat_in_cmd.py +0 -0
  147. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/openai2/_core/group_chat.py +0 -0
  148. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/openai2/openai2.py +0 -0
  149. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/paddleocr.py +0 -0
  150. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/__init__.py +0 -0
  151. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/configs/rec/multi_language/generate_multi_language_configs.py +0 -0
  152. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/__init__.py +0 -0
  153. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/ColorJitter.py +0 -0
  154. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/__init__.py +0 -0
  155. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/copy_paste.py +0 -0
  156. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/east_process.py +0 -0
  157. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/gen_table_mask.py +0 -0
  158. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/iaa_augment.py +0 -0
  159. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/label_ops.py +0 -0
  160. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/make_border_map.py +0 -0
  161. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/make_pse_gt.py +0 -0
  162. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/make_shrink_map.py +0 -0
  163. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/operators.py +0 -0
  164. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/pg_process.py +0 -0
  165. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/randaugment.py +0 -0
  166. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/random_crop_data.py +0 -0
  167. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/rec_img_aug.py +0 -0
  168. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/sast_process.py +0 -0
  169. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/text_image_aug/__init__.py +0 -0
  170. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/text_image_aug/augment.py +0 -0
  171. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/imaug/text_image_aug/warp_mls.py +0 -0
  172. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/lmdb_dataset.py +0 -0
  173. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/pgnet_dataset.py +0 -0
  174. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/pubtab_dataset.py +0 -0
  175. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/data/simple_dataset.py +0 -0
  176. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/__init__.py +0 -0
  177. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/ace_loss.py +0 -0
  178. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/basic_loss.py +0 -0
  179. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/center_loss.py +0 -0
  180. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/cls_loss.py +0 -0
  181. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/combined_loss.py +0 -0
  182. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/det_basic_loss.py +0 -0
  183. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/det_db_loss.py +0 -0
  184. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/det_east_loss.py +0 -0
  185. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/det_pse_loss.py +0 -0
  186. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/det_sast_loss.py +0 -0
  187. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/distillation_loss.py +0 -0
  188. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/e2e_pg_loss.py +0 -0
  189. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/kie_sdmgr_loss.py +0 -0
  190. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/rec_aster_loss.py +0 -0
  191. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/rec_att_loss.py +0 -0
  192. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/rec_ctc_loss.py +0 -0
  193. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/rec_enhanced_ctc_loss.py +0 -0
  194. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/rec_nrtr_loss.py +0 -0
  195. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/rec_sar_loss.py +0 -0
  196. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/rec_srn_loss.py +0 -0
  197. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/losses/table_att_loss.py +0 -0
  198. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/metrics/__init__.py +0 -0
  199. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/metrics/cls_metric.py +0 -0
  200. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/metrics/det_metric.py +0 -0
  201. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/metrics/distillation_metric.py +0 -0
  202. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/metrics/e2e_metric.py +0 -0
  203. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/metrics/eval_det_iou.py +0 -0
  204. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/metrics/kie_metric.py +0 -0
  205. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/metrics/rec_metric.py +0 -0
  206. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/metrics/table_metric.py +0 -0
  207. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/architectures/__init__.py +0 -0
  208. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/architectures/base_model.py +0 -0
  209. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/architectures/distillation_model.py +0 -0
  210. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/__init__.py +0 -0
  211. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/det_mobilenet_v3.py +0 -0
  212. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd.py +0 -0
  213. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd_sast.py +0 -0
  214. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/e2e_resnet_vd_pg.py +0 -0
  215. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/kie_unet_sdmgr.py +0 -0
  216. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/rec_mobilenet_v3.py +0 -0
  217. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/rec_mv1_enhance.py +0 -0
  218. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/rec_nrtr_mtb.py +0 -0
  219. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/rec_resnet_31.py +0 -0
  220. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/rec_resnet_aster.py +0 -0
  221. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/rec_resnet_fpn.py +0 -0
  222. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/backbones/rec_resnet_vd.py +0 -0
  223. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/__init__.py +0 -0
  224. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/cls_head.py +0 -0
  225. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/det_db_head.py +0 -0
  226. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/det_east_head.py +0 -0
  227. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/det_pse_head.py +0 -0
  228. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/det_sast_head.py +0 -0
  229. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/e2e_pg_head.py +0 -0
  230. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/kie_sdmgr_head.py +0 -0
  231. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/multiheadAttention.py +0 -0
  232. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/rec_aster_head.py +0 -0
  233. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/rec_att_head.py +0 -0
  234. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/rec_ctc_head.py +0 -0
  235. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/rec_nrtr_head.py +0 -0
  236. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/rec_sar_head.py +0 -0
  237. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/rec_srn_head.py +0 -0
  238. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/self_attention.py +0 -0
  239. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/heads/table_att_head.py +0 -0
  240. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/necks/__init__.py +0 -0
  241. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/necks/db_fpn.py +0 -0
  242. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/necks/east_fpn.py +0 -0
  243. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/necks/fpn.py +0 -0
  244. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/necks/pg_fpn.py +0 -0
  245. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/necks/rnn.py +0 -0
  246. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/necks/sast_fpn.py +0 -0
  247. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/necks/table_fpn.py +0 -0
  248. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/transforms/__init__.py +0 -0
  249. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/transforms/stn.py +0 -0
  250. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/transforms/tps.py +0 -0
  251. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/modeling/transforms/tps_spatial_transformer.py +0 -0
  252. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/optimizer/__init__.py +0 -0
  253. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/optimizer/learning_rate.py +0 -0
  254. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/optimizer/lr_scheduler.py +0 -0
  255. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/optimizer/optimizer.py +0 -0
  256. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/optimizer/regularizer.py +0 -0
  257. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/postprocess/__init__.py +0 -0
  258. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/postprocess/cls_postprocess.py +0 -0
  259. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/postprocess/db_postprocess.py +0 -0
  260. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/postprocess/east_postprocess.py +0 -0
  261. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/postprocess/locality_aware_nms.py +0 -0
  262. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/postprocess/pg_postprocess.py +0 -0
  263. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/postprocess/pse_postprocess/__init__.py +0 -0
  264. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/__init__.py +0 -0
  265. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/setup.py +0 -0
  266. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/postprocess/pse_postprocess/pse_postprocess.py +0 -0
  267. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/postprocess/rec_postprocess.py +0 -0
  268. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/postprocess/sast_postprocess.py +0 -0
  269. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/__init__.py +0 -0
  270. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/eval.py +0 -0
  271. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/export_center.py +0 -0
  272. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/export_model.py +0 -0
  273. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/infer/predict_cls.py +0 -0
  274. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/infer/predict_det.py +0 -0
  275. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/infer/predict_e2e.py +0 -0
  276. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/infer/predict_rec.py +0 -0
  277. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/infer/predict_system.py +0 -0
  278. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/infer/utility.py +0 -0
  279. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/infer_cls.py +0 -0
  280. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/infer_det.py +0 -0
  281. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/infer_e2e.py +0 -0
  282. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/infer_kie.py +0 -0
  283. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/infer_rec.py +0 -0
  284. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/infer_table.py +0 -0
  285. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/program.py +0 -0
  286. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/test_hubserving.py +0 -0
  287. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/train.py +0 -0
  288. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/tools/xlprog.py +0 -0
  289. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/EN_symbol_dict.txt +0 -0
  290. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/__init__.py +0 -0
  291. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/ar_dict.txt +0 -0
  292. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/arabic_dict.txt +0 -0
  293. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/be_dict.txt +0 -0
  294. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/bg_dict.txt +0 -0
  295. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/chinese_cht_dict.txt +0 -0
  296. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/cyrillic_dict.txt +0 -0
  297. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/devanagari_dict.txt +0 -0
  298. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/en_dict.txt +0 -0
  299. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/fa_dict.txt +0 -0
  300. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/french_dict.txt +0 -0
  301. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/german_dict.txt +0 -0
  302. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/hi_dict.txt +0 -0
  303. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/it_dict.txt +0 -0
  304. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/japan_dict.txt +0 -0
  305. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/ka_dict.txt +0 -0
  306. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/korean_dict.txt +0 -0
  307. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/latin_dict.txt +0 -0
  308. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/mr_dict.txt +0 -0
  309. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/ne_dict.txt +0 -0
  310. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/oc_dict.txt +0 -0
  311. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/pu_dict.txt +0 -0
  312. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/rs_dict.txt +0 -0
  313. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/rsc_dict.txt +0 -0
  314. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/ru_dict.txt +0 -0
  315. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/ta_dict.txt +0 -0
  316. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/table_dict.txt +0 -0
  317. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/table_structure_dict.txt +0 -0
  318. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/te_dict.txt +0 -0
  319. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/ug_dict.txt +0 -0
  320. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/uk_dict.txt +0 -0
  321. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/ur_dict.txt +0 -0
  322. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict/xi_dict.txt +0 -0
  323. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/dict90.txt +0 -0
  324. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/e2e_metric/Deteval.py +0 -0
  325. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/e2e_metric/polygon_fast.py +0 -0
  326. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/e2e_utils/extract_batchsize.py +0 -0
  327. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_fast.py +0 -0
  328. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_slow.py +0 -0
  329. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/e2e_utils/pgnet_pp_utils.py +0 -0
  330. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/e2e_utils/visual.py +0 -0
  331. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/en_dict.txt +0 -0
  332. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/gen_label.py +0 -0
  333. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/ic15_dict.txt +0 -0
  334. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/iou.py +0 -0
  335. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/logging.py +0 -0
  336. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/network.py +0 -0
  337. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/ppocr_keys_v1.txt +0 -0
  338. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/profiler.py +0 -0
  339. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/save_load.py +0 -0
  340. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/stats.py +0 -0
  341. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppocr/utils/utility.py +0 -0
  342. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/__init__.py +0 -0
  343. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/predict_system.py +0 -0
  344. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/table/__init__.py +0 -0
  345. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/table/eval_table.py +0 -0
  346. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/table/matcher.py +0 -0
  347. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/table/predict_structure.py +0 -0
  348. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/table/predict_table.py +0 -0
  349. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/table/table_metric/__init__.py +0 -0
  350. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/table/table_metric/parallel.py +0 -0
  351. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/table/table_metric/table_metric.py +0 -0
  352. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/table/tablepyxl/__init__.py +0 -0
  353. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/table/tablepyxl/style.py +0 -0
  354. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/table/tablepyxl/tablepyxl.py +0 -0
  355. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/ppstructure/utility.py +0 -0
  356. {pyxllib-0.3.130 → pyxllib-0.3.131}/pyxlpr/xlai.py +0 -0
  357. {pyxllib-0.3.130 → pyxllib-0.3.131}/requirements.txt +0 -0
  358. {pyxllib-0.3.130 → pyxllib-0.3.131}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyxllib
3
- Version: 0.3.130
3
+ Version: 0.3.131
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: opsdroid-get-image-size; extra == "xlcv"
41
42
  Requires-Dist: opencv-python; extra == "xlcv"
42
43
  Requires-Dist: pillow; extra == "xlcv"
43
- Requires-Dist: opsdroid-get-image-size; extra == "xlcv"
44
44
  Provides-Extra: xlai
45
- Requires-Dist: opsdroid-get-image-size; extra == "xlai"
46
45
  Requires-Dist: pynvml; extra == "xlai"
47
- Requires-Dist: opencv-python; extra == "xlai"
48
46
  Requires-Dist: visdom; extra == "xlai"
47
+ Requires-Dist: opencv-python; extra == "xlai"
49
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: uvicorn; extra == "xlall"
54
+ Requires-Dist: openai2; extra == "xlall"
55
+ Requires-Dist: opencv-python; extra == "xlall"
56
+ Requires-Dist: pillow; extra == "xlall"
57
+ Requires-Dist: sentencepiece; extra == "xlall"
51
58
  Requires-Dist: xlrd; extra == "xlall"
52
59
  Requires-Dist: html2text; extra == "xlall"
53
- Requires-Dist: flask-restful; extra == "xlall"
54
- Requires-Dist: opsdroid-get-image-size; extra == "xlall"
55
- Requires-Dist: flask-jwt-extended; extra == "xlall"
56
60
  Requires-Dist: flask; extra == "xlall"
57
- Requires-Dist: ujson; extra == "xlall"
58
- Requires-Dist: arts; extra == "xlall"
59
61
  Requires-Dist: flask-wtf; extra == "xlall"
60
- Requires-Dist: opencv-python; extra == "xlall"
61
- Requires-Dist: sentencepiece; extra == "xlall"
62
- Requires-Dist: openai2; extra == "xlall"
63
62
  Requires-Dist: fastapi; extra == "xlall"
64
63
  Requires-Dist: zhconv; extra == "xlall"
65
- Requires-Dist: pillow; extra == "xlall"
66
- Requires-Dist: uvicorn; extra == "xlall"
67
- Requires-Dist: flask-cors; extra == "xlall"
64
+ Requires-Dist: opsdroid-get-image-size; extra == "xlall"
65
+ Requires-Dist: ujson; extra == "xlall"
66
+ Requires-Dist: flask-jwt-extended; extra == "xlall"
67
+ Requires-Dist: flask-restful; extra == "xlall"
68
68
 
69
69
  # 1 install
70
70
 
@@ -2870,7 +2870,7 @@ class WorkbookSummary3:
2870
2870
 
2871
2871
  # 4 否则每张表按照比例删单元格,只保留前面部分的单元格
2872
2872
  # todo 这里应该有更好的筛选机制,后续可以思考思考
2873
- left_rate = min((summary_limit_len + cur_summary_len) / 2 * cur_summary_len, 0.9) # 首轮减小一点调整幅度
2873
+ left_rate = min((summary_limit_len + cur_summary_len) / (2 * cur_summary_len), 0.9) # 首轮减小一点调整幅度
2874
2874
  while True:
2875
2875
  for i, st in enumerate(y['sheets']):
2876
2876
  if i == active_sheet_index:
@@ -7,9 +7,11 @@
7
7
 
8
8
  """ 封装一些代码开发中常用的功能,工程组件 """
9
9
 
10
- import builtins
11
10
  from collections import Counter, UserDict
12
11
  from concurrent.futures import ThreadPoolExecutor
12
+ from types import SimpleNamespace
13
+ from urllib.parse import urlparse
14
+ import builtins
13
15
  import ctypes
14
16
  import datetime
15
17
  import functools
@@ -24,6 +26,7 @@ import os
24
26
  import pprint
25
27
  import queue
26
28
  import random
29
+ import re
27
30
  import signal
28
31
  import socket
29
32
  import socketserver
@@ -33,11 +36,13 @@ import tempfile
33
36
  import threading
34
37
  import time
35
38
  import traceback
36
- from urllib.parse import urlparse
37
- import re
39
+ from unittest.mock import Mock
38
40
 
39
41
  from pyxllib.prog.newbie import classproperty, typename
40
42
 
43
+ from deprecated import deprecated
44
+ # from loguru import logger
45
+
41
46
 
42
47
  def system_information():
43
48
  """主要是测试一些系统变量值,顺便再演示一次Timer用法"""
@@ -981,145 +986,257 @@ class OutputLogger(logging.Logger):
981
986
  self.print(msg)
982
987
 
983
988
 
984
- class ProcessWorker:
985
- """ 代表一个单独的工作进程 """
989
+ class ProgramWorker(SimpleNamespace):
990
+ """
991
+ 代表一个单独的程序(进程),基于 SimpleNamespace 实现。
992
+ """
986
993
 
987
- def __init__(self, name, process, port=None, locations=None,
988
- raw_cmd=None):
994
+ def __init__(self, name, program, port=None, locations=None,
995
+ raw_cmd=None, **attrs):
989
996
  """
990
-
991
- :param name: 进程昵称
992
- :param process: 进程对象
997
+ :param name: 程序昵称
998
+ :param program: 程序对象
993
999
  :param port: 是否有执行所在端口
994
1000
  :param locations: 是否有url地址映射,一般用于nginx等配置
995
1001
  """
1002
+ super().__init__(**attrs)
996
1003
  self.name = name
997
- self.process = process
1004
+ self.program = program
1005
+ self.raw_cmd = raw_cmd
1006
+
1007
+ # 这两个是比较特别的属性,在我的工程框架中常用
998
1008
  self.port = port
999
1009
  self.locations = locations
1000
- self.raw_cmd = raw_cmd
1001
1010
 
1002
1011
  def terminate(self):
1003
- """ 比较优雅结束进程的方法 """
1004
- if self.process is not None:
1005
- self.process.terminate()
1012
+ """
1013
+ 比较优雅结束进程的方法
1014
+ """
1015
+ if self.program is not None:
1016
+ self.program.terminate()
1006
1017
 
1007
1018
  def kill(self):
1008
- """ 有时候需要强硬的kill方法来结束进程 """
1009
- if self.process is not None:
1010
- self.process.kill()
1019
+ """
1020
+ 有时候需要强硬的kill方法来结束进程
1021
+ """
1022
+ if self.program is not None:
1023
+ self.program.kill()
1011
1024
 
1012
1025
 
1013
- class MultiProcessLauncher:
1014
- """ 注意这个类暂时只有linux能使用 """
1026
+ class MultiProgramLauncher:
1027
+ """
1028
+ 管理多个程序的启动与终止
1029
+ """
1015
1030
 
1016
1031
  def __init__(self):
1017
1032
  self.workers = []
1018
1033
 
1019
- def add_process_cmd(self,
1034
+ def __1_各种添加进程的机制(self):
1035
+ pass
1036
+
1037
+ def _set_pdeathsig(self, sig=None):
1038
+ """ 在主服务退出时,这些程序也会全部自动关闭 """
1039
+
1040
+ def callable():
1041
+ import signal
1042
+ sig2 = signal.SIGTERM if sig is None else sig
1043
+ libc = ctypes.CDLL("libc.so.6")
1044
+ return libc.prctl(1, sig2)
1045
+
1046
+ if sys.platform == 'win32':
1047
+ # windows系统暂设为空
1048
+ return None
1049
+ else:
1050
+ return callable
1051
+
1052
+ def add_program_cmd(self,
1020
1053
  cmd,
1021
1054
  name=None,
1022
1055
  shell=False,
1023
- **kwargs):
1056
+ run=True,
1057
+ **attrs):
1024
1058
  """
1025
-
1026
- :param shell: 默认直接跟系统交互,此时cmd应该输入数组格式
1027
- 如果shell=True,则启用shell进行交互操作,这种情况会更适合管道等模式的处理,此时cmd应该输入字符串格式
1028
-
1059
+ 启动一个程序,或仅存储任务,并添加进管理列表
1060
+
1061
+ :param cmd: 启动程序的命令
1062
+ :param name: 程序名称,如果未提供则从cmd中自动获取
1063
+ :param shell:
1064
+ False,(优先推荐)直接跟系统交互,此时cmd应该输入数组格式
1065
+ True,启用shell进行交互操作,这种情况会更适合管道等模式的处理,此时cmd应该输入字符串格式
1066
+ :param attrs: 其他需要传递给ProgramWorker的参数
1067
+ :return: 返回一个ProgramWorker实例,表示启动的程序或存储的任务
1029
1068
  """
1069
+ # 1 如果未显式传入name,自动从cmd中获取程序名称
1070
+ # logger.info(cmd)
1030
1071
  if name is None:
1031
- cmd2 = cmd.split() if isinstance(cmd, str) else cmd
1032
- name = cmd2[0]
1033
- if sys.platform == 'darwin':
1034
- proc = subprocess.Popen(cmd,
1035
- shell=shell)
1072
+ _cmd = cmd.split() if isinstance(cmd, str) else cmd
1073
+ name = _cmd[0]
1074
+
1075
+ # 2 启动或模拟进程
1076
+ if run:
1077
+ # 2.1 运行进程
1078
+ if sys.platform == 'win32':
1079
+ proc = subprocess.Popen(cmd, shell=shell)
1080
+ else:
1081
+ proc = subprocess.Popen(cmd, shell=shell, preexec_fn=self._set_pdeathsig())
1036
1082
  else:
1037
- proc = subprocess.Popen(cmd,
1038
- shell=shell,
1039
- preexec_fn=self._set_pdeathsig())
1083
+ # 2.2 如果run=False,使用Mock对象占位
1084
+ proc = Mock() # 模拟一个proc对象
1085
+ proc.pid = None
1086
+ proc.poll.return_value = 'tag' # 仅标签,此处未实际启动
1040
1087
 
1041
- worker = ProcessWorker(name, proc, raw_cmd=cmd, **kwargs)
1088
+ # 3 创建ProgramWorker实例并添加到workers列表中
1089
+ worker = ProgramWorker(name, proc, raw_cmd=cmd, **attrs)
1042
1090
  self.workers.append(worker)
1091
+
1043
1092
  return worker
1044
1093
 
1045
- def add_process_python(self, file, args='', name=None, shell=False):
1046
- """ 添加并启动一个Python模块作为后台进程。
1094
+ def add_program_cmd2(self, cmd, ports=1, name=None, **kwargs):
1095
+ """
1096
+ 增强版 add_program_cmd,支持 ports 的处理
1047
1097
 
1048
- :param file: 要执行的Python文件路径
1049
- :param str|list args: 模块的参数
1050
- :param name: 进程的名称,默认为模块名
1098
+ :param ports:
1099
+ int 表示要开启的进程数,端口号随机生成;
1100
+ list 表示指定的端口号
1101
+ None 不做特殊配置
1102
+ """
1103
+ # 1 处理 ports 参数,找到空闲端口或使用指定端口
1104
+ if isinstance(ports, int):
1105
+ ports = find_free_ports(ports)
1106
+
1107
+ # 2 处理 locations 参数,自动设置默认 URL 映射
1108
+ if name is None:
1109
+ _cmd = cmd.split() if isinstance(cmd, str) else cmd
1110
+ name = _cmd[0]
1111
+
1112
+ # 2 遍历端口,依次启动进程
1113
+ workers = []
1114
+ if ports:
1115
+ for port in ports:
1116
+ cmd_with_port = cmd + [f'--port', str(port)]
1117
+ kwargs['port'] = port
1118
+ worker = self.add_program_cmd(cmd_with_port, name=f'{name}:{port}', **kwargs)
1119
+ workers.append(worker)
1120
+ else:
1121
+ workers = [self.add_program_cmd(cmd, name=name, **kwargs)]
1122
+
1123
+ return workers
1124
+
1125
+ def add_program_cmd3(self, cmd, ports=None, locations=None, *, devices=None, **kwargs):
1126
+ """
1127
+ 增强版 add_program_cmd2,支持 devices 等其他更多特殊的扩展参数的处理
1128
+
1129
+ :param locations: URL 映射规则
1130
+ :param int|str|None devices: 使用的设备编号(显卡编号或 CPU)
1131
+ 未设置的时候,使用cpu运行
1132
+ :return: 返回一个包含所有启动程序的 worker 列表。
1051
1133
  """
1052
- cmd = [f'{sys.executable}', f'{file}']
1134
+ # 1 处理locations
1135
+ if locations:
1136
+ if isinstance(locations, str):
1137
+ locations = [locations]
1138
+ for i, x in enumerate(locations):
1139
+ if not isinstance(x, dict):
1140
+ locations[i] = {x: x}
1141
+ kwargs['locations'] = locations
1142
+
1143
+ # 2 处理 devices 参数,设置显卡编号或使用 CPU
1144
+ if devices is not None:
1145
+ os.environ['CUDA_VISIBLE_DEVICES'] = str(devices)
1146
+ elif 'CUDA_VISIBLE_DEVICES' in os.environ:
1147
+ del os.environ['CUDA_VISIBLE_DEVICES'] # 如果没设置 devices,就清除环境变量,使用 CPU
1148
+
1149
+ # 3 处理 ports 参数
1150
+ workers = self.add_program_cmd2(cmd, ports=ports, **kwargs)
1151
+
1152
+ return workers
1153
+
1154
+ def add_program_python(self, py_file, args='',
1155
+ ports=None, locations=None,
1156
+ name=None, shell=False, executer=None,
1157
+ **kwargs):
1158
+ """ 添加并启动一个Python文件作为后台程序 """
1159
+ if executer is None:
1160
+ executer = sys.executable
1161
+ cmd = [str(executer), str(py_file)]
1053
1162
  if isinstance(args, str):
1054
1163
  cmd.append(args)
1055
1164
  else:
1056
1165
  cmd += list(args)
1166
+ return self.add_program_cmd3(cmd, name, ports=ports, locations=locations, shell=shell, **kwargs)
1057
1167
 
1058
- return self.add_process_cmd(cmd, name, shell=shell)
1059
-
1060
- def add_process_python_module(self, module, args='', name=None, shell=False):
1061
- """ 添加并启动一个Python模块作为后台进程。
1168
+ def add_program_python_module(self, module, args='',
1169
+ ports=None, locations=None,
1170
+ name=None, shell=False, executer=None,
1171
+ **kwargs):
1172
+ """
1173
+ 添加并启动一个Python模块作为后台程序
1062
1174
 
1063
- :param module: 要执行的Python模块名(python -m 后面的部分)
1175
+ :param module: 要执行的Python模块名(python -m 后面的部分)
1064
1176
  :param str|list args: 模块的参数
1065
1177
  :param name: 进程的名称,默认为模块名
1066
- """
1067
- cmd = [f'{sys.executable}', '-m', f'{module}']
1178
+ """
1179
+ if executer is None:
1180
+ executer = sys.executable
1181
+ cmd = [f'{executer}', '-m', f'{module}']
1068
1182
  if isinstance(args, str):
1069
1183
  cmd.append(args)
1070
1184
  else:
1071
1185
  cmd += list(args)
1186
+ return self.add_program_cmd3(cmd, ports=ports, name=name, locations=locations, shell=shell, **kwargs)
1072
1187
 
1073
- return self.add_process_cmd(cmd, name, shell=shell)
1188
+ def __2_多进程管理(self):
1189
+ pass
1074
1190
 
1075
1191
  def stop_all(self):
1076
- """ 停止所有后台进程 """
1192
+ """ 停止所有后台程序 """
1077
1193
  for worker in self.workers:
1078
- worker.process.terminate()
1194
+ worker.terminate()
1079
1195
  self.workers = []
1080
1196
 
1081
- def _set_pdeathsig(self, sig=None):
1082
- """ 在主服务退出时,这些进程也会全部自动关闭 """
1083
-
1084
- def callable():
1085
- import signal
1086
- sig2 = signal.SIGTERM if sig is None else sig
1087
- libc = ctypes.CDLL("libc.so.6")
1088
- return libc.prctl(1, sig2)
1089
-
1090
- if sys.platform == 'win32':
1091
- # windows系统暂设为空
1092
- return None
1093
- else:
1094
- return callable
1095
-
1096
1197
  def run_endless(self):
1097
- """ 一直运行,直到用户输入kill命令
1198
+ """
1199
+ 一直运行,直到用户输入 kill 命令或 Ctrl+C
1098
1200
 
1099
- poll:
1201
+ poll:
1100
1202
  如果进程仍在运行,poll()方法返回None。
1101
1203
  如果进程已经结束,poll()方法返回进程的退出码(exit code)。
1102
1204
  如果进程正常结束,退出码通常为0。
1103
1205
  如果进程异常结束,退出码通常是一个非零值,表示异常的类型或错误码。
1104
- """
1206
+ """
1105
1207
  import pandas as pd
1106
1208
  from pyxllib.algo.stat import print_full_dataframe
1107
1209
 
1108
- while True:
1109
- cmd = input('>>>')
1110
- if cmd == 'kill':
1111
- self.stop_all()
1112
- break
1113
- elif cmd == 'count':
1114
- # 需要实际检查现有进程
1115
- m = sum([1 for worker in self.workers if worker.process.poll() is None])
1116
- print(f'有{m}个进程正在运行')
1117
- elif cmd == 'list': # 列出所有进程(转df查看)
1118
- ls = []
1119
- for worker in self.workers:
1120
- ls.append([worker.name, worker.process.pid, worker.process.poll(), worker.raw_cmd])
1121
- df = pd.DataFrame(ls, columns=['name', 'pid', 'poll', 'args'])
1122
- print_full_dataframe(df)
1210
+ try:
1211
+ while True:
1212
+ cmd = input('>>>')
1213
+ if cmd == 'kill':
1214
+ self.stop_all()
1215
+ break
1216
+ elif cmd == 'count':
1217
+ # 需要实际检查现有程序
1218
+ m = sum([1 for worker in self.workers if worker.program.poll() is None])
1219
+ print(f'有{m}个程序正在运行')
1220
+ elif cmd == 'list': # 列出所有程序(转df查看)
1221
+ ls = []
1222
+ for worker in self.workers:
1223
+ ls.append([worker.name, worker.program.pid, worker.program.poll(), worker.raw_cmd])
1224
+ df = pd.DataFrame(ls, columns=['name', 'pid', 'poll', 'args'])
1225
+ print_full_dataframe(df)
1226
+ except KeyboardInterrupt:
1227
+ print("\n检测到 Ctrl+C,正在终止所有程序...")
1228
+ self.stop_all()
1229
+ print("所有程序已终止,退出。")
1230
+
1231
+
1232
+ @deprecated(reason='已改名ProgramWorker')
1233
+ class ProcessWorker(ProgramWorker):
1234
+ pass
1235
+
1236
+
1237
+ @deprecated(reason='已改名MultiProgramLauncher')
1238
+ class MultiProcessLauncher(MultiProgramLauncher):
1239
+ pass
1123
1240
 
1124
1241
 
1125
1242
  def support_multi_processes_hyx(default_processes=1):
@@ -1168,14 +1285,14 @@ def support_multi_processes_hyx(default_processes=1):
1168
1285
 
1169
1286
  # todo 这样使用有个坑,process_count、process_id都是以str类型传入的,开发者下游使用容易出问题
1170
1287
  cmds = [
1171
- 'run_python_module',
1172
- '--wait_mode',
1173
- '60',
1174
- module_name,
1175
- func.__name__,
1176
- '--process_count', str(process_count),
1177
- '--process_id', str(i)
1178
- ]
1288
+ 'run_python_module',
1289
+ '--wait_mode',
1290
+ '60',
1291
+ module_name,
1292
+ func.__name__,
1293
+ '--process_count', str(process_count),
1294
+ '--process_id', str(i)
1295
+ ]
1179
1296
  cmds.extend(map(str, args)) # 添加位置参数
1180
1297
  for k, v in kwargs.items():
1181
1298
  cmds.append(f'--{k}') # 添加关键字参数的键
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyxllib
3
- Version: 0.3.130
3
+ Version: 0.3.131
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: opsdroid-get-image-size; extra == "xlcv"
41
42
  Requires-Dist: opencv-python; extra == "xlcv"
42
43
  Requires-Dist: pillow; extra == "xlcv"
43
- Requires-Dist: opsdroid-get-image-size; extra == "xlcv"
44
44
  Provides-Extra: xlai
45
- Requires-Dist: opsdroid-get-image-size; extra == "xlai"
46
45
  Requires-Dist: pynvml; extra == "xlai"
47
- Requires-Dist: opencv-python; extra == "xlai"
48
46
  Requires-Dist: visdom; extra == "xlai"
47
+ Requires-Dist: opencv-python; extra == "xlai"
49
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: uvicorn; extra == "xlall"
54
+ Requires-Dist: openai2; extra == "xlall"
55
+ Requires-Dist: opencv-python; extra == "xlall"
56
+ Requires-Dist: pillow; extra == "xlall"
57
+ Requires-Dist: sentencepiece; extra == "xlall"
51
58
  Requires-Dist: xlrd; extra == "xlall"
52
59
  Requires-Dist: html2text; extra == "xlall"
53
- Requires-Dist: flask-restful; extra == "xlall"
54
- Requires-Dist: opsdroid-get-image-size; extra == "xlall"
55
- Requires-Dist: flask-jwt-extended; extra == "xlall"
56
60
  Requires-Dist: flask; extra == "xlall"
57
- Requires-Dist: ujson; extra == "xlall"
58
- Requires-Dist: arts; extra == "xlall"
59
61
  Requires-Dist: flask-wtf; extra == "xlall"
60
- Requires-Dist: opencv-python; extra == "xlall"
61
- Requires-Dist: sentencepiece; extra == "xlall"
62
- Requires-Dist: openai2; extra == "xlall"
63
62
  Requires-Dist: fastapi; extra == "xlall"
64
63
  Requires-Dist: zhconv; extra == "xlall"
65
- Requires-Dist: pillow; extra == "xlall"
66
- Requires-Dist: uvicorn; extra == "xlall"
67
- Requires-Dist: flask-cors; extra == "xlall"
64
+ Requires-Dist: opsdroid-get-image-size; extra == "xlall"
65
+ Requires-Dist: ujson; extra == "xlall"
66
+ Requires-Dist: flask-jwt-extended; extra == "xlall"
67
+ Requires-Dist: flask-restful; 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.130', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
53
+ version='0.3.131', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
54
54
  author='code4101',
55
55
  author_email='877362867@qq.com',
56
56
  url='https://github.com/XLPRUtils/pyxllib',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes