pyxllib 0.3.112__tar.gz → 0.3.114__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 (348) hide show
  1. {pyxllib-0.3.112/pyxllib.egg-info → pyxllib-0.3.114}/PKG-INFO +1 -1
  2. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/algo/pupil.py +9 -4
  3. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/algo/stat.py +2 -0
  4. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/data/pglib.py +5 -4
  5. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/specialist/filelib.py +8 -7
  6. pyxllib-0.3.114/pyxllib/prog/cachetools.py +62 -0
  7. {pyxllib-0.3.112 → pyxllib-0.3.114/pyxllib.egg-info}/PKG-INFO +1 -1
  8. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib.egg-info/SOURCES.txt +1 -0
  9. {pyxllib-0.3.112 → pyxllib-0.3.114}/setup.py +9 -1
  10. {pyxllib-0.3.112 → pyxllib-0.3.114}/LICENSE +0 -0
  11. {pyxllib-0.3.112 → pyxllib-0.3.114}/MANIFEST.in +0 -0
  12. {pyxllib-0.3.112 → pyxllib-0.3.114}/README.md +0 -0
  13. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/__init__.py +0 -0
  14. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/algo/__init__.py +0 -0
  15. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/algo/disjoint.py +0 -0
  16. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/algo/geo.py +0 -0
  17. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/algo/intervals.py +0 -0
  18. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/algo/matcher.py +0 -0
  19. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/algo/newbie.py +0 -0
  20. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/algo/shapelylib.py +0 -0
  21. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/algo/specialist.py +0 -0
  22. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/algo/treelib.py +0 -0
  23. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/algo/unitlib.py +0 -0
  24. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/cv/__init__.py +0 -0
  25. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/cv/expert.py +0 -0
  26. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/cv/imfile.py +0 -0
  27. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/cv/imhash.py +0 -0
  28. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/cv/pupil.py +0 -0
  29. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/cv/rgbfmt.py +0 -0
  30. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/cv/trackbartools.py +0 -0
  31. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/cv/xlcvlib.py +0 -0
  32. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/cv/xlpillib.py +0 -0
  33. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/data/__init__.py +0 -0
  34. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/data/echarts.py +0 -0
  35. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/data/jsonlib.py +0 -0
  36. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/data/oss.py +0 -0
  37. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/data/sqlite.py +0 -0
  38. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/data/sqllib.py +0 -0
  39. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/JLineViewer.py +0 -0
  40. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/__init__.py +0 -0
  41. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/autogui/__init__.py +0 -0
  42. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/autogui/autogui.py +0 -0
  43. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/autogui/virtualkey.py +0 -0
  44. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/demolib.py +0 -0
  45. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/drissionlib.py +0 -0
  46. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/kq5034lib.py +0 -0
  47. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/old.py +0 -0
  48. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/qt.py +0 -0
  49. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/robustprocfile.py +0 -0
  50. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/seleniumlib.py +0 -0
  51. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/tk.py +0 -0
  52. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/unixlib.py +0 -0
  53. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/utools.py +0 -0
  54. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/webhook.py +0 -0
  55. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/win32lib.py +0 -0
  56. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/ext/yuquelib.py +0 -0
  57. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/__init__.py +0 -0
  58. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/docxlib.py +0 -0
  59. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/gitlib.py +0 -0
  60. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/libreoffice.py +0 -0
  61. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/movielib.py +0 -0
  62. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/newbie.py +0 -0
  63. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/onenotelib.py +0 -0
  64. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/packlib/__init__.py +0 -0
  65. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/packlib/zipfile.py +0 -0
  66. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/pdflib.py +0 -0
  67. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/pupil.py +0 -0
  68. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/specialist/__init__.py +0 -0
  69. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/specialist/dirlib.py +0 -0
  70. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/specialist/download.py +0 -0
  71. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/file/xlsxlib.py +0 -0
  72. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/__init__.py +0 -0
  73. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/deprecatedlib.py +0 -0
  74. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/ipyexec.py +0 -0
  75. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/multiprocs.py +0 -0
  76. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/newbie.py +0 -0
  77. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/pupil.py +0 -0
  78. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/sitepackages.py +0 -0
  79. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/specialist/__init__.py +0 -0
  80. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/specialist/bc.py +0 -0
  81. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/specialist/browser.py +0 -0
  82. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/specialist/common.py +0 -0
  83. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/specialist/datetime.py +0 -0
  84. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/specialist/tictoc.py +0 -0
  85. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/specialist/xllog.py +0 -0
  86. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/prog/xlosenv.py +0 -0
  87. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/stdlib/__init__.py +0 -0
  88. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/stdlib/tablepyxl/__init__.py +0 -0
  89. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/stdlib/tablepyxl/style.py +0 -0
  90. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/stdlib/tablepyxl/tablepyxl.py +0 -0
  91. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/__init__.py +0 -0
  92. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/ahocorasick.py +0 -0
  93. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/charclasslib.py +0 -0
  94. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/jiebalib.py +0 -0
  95. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/jinjalib.py +0 -0
  96. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/jscode.py +0 -0
  97. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/latex/__init__.py +0 -0
  98. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/levenshtein.py +0 -0
  99. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/nestenv.py +0 -0
  100. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/newbie.py +0 -0
  101. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/pupil/__init__.py +0 -0
  102. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/pupil/common.py +0 -0
  103. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/pupil/xlalign.py +0 -0
  104. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/pycode.py +0 -0
  105. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/specialist/__init__.py +0 -0
  106. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/specialist/common.py +0 -0
  107. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/specialist/ptag.py +0 -0
  108. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/spellchecker.py +0 -0
  109. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/vbacode.py +0 -0
  110. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/text/xmllib.py +0 -0
  111. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/xl.py +0 -0
  112. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib/xlcv.py +0 -0
  113. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib.egg-info/dependency_links.txt +0 -0
  114. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib.egg-info/requires.txt +5 -5
  115. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxllib.egg-info/top_level.txt +0 -0
  116. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/__init__.py +0 -0
  117. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ai/__init__.py +0 -0
  118. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ai/clientlib.py +0 -0
  119. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ai/specialist.py +0 -0
  120. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ai/torch_app.py +0 -0
  121. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ai/xlpaddle.py +0 -0
  122. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ai/xltorch.py +0 -0
  123. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/__init__.py +0 -0
  124. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/coco.py +0 -0
  125. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/datacls.py +0 -0
  126. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/datasets.py +0 -0
  127. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/gptlib.py +0 -0
  128. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/icdar/__init__.py +0 -0
  129. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/icdar/deteval.py +0 -0
  130. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/icdar/icdar2013.py +0 -0
  131. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/icdar/iou.py +0 -0
  132. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/icdar/rrc_evaluation_funcs_1_1.py +0 -0
  133. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/imtextline.py +0 -0
  134. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/labelme.py +0 -0
  135. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/removeline.py +0 -0
  136. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/specialist.py +0 -0
  137. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/data/tiktokenlib.py +0 -0
  138. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/eval/__init__.py +0 -0
  139. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/paddleocr.py +0 -0
  140. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/__init__.py +0 -0
  141. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/configs/rec/multi_language/generate_multi_language_configs.py +0 -0
  142. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/__init__.py +0 -0
  143. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/ColorJitter.py +0 -0
  144. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/__init__.py +0 -0
  145. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/copy_paste.py +0 -0
  146. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/east_process.py +0 -0
  147. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/gen_table_mask.py +0 -0
  148. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/iaa_augment.py +0 -0
  149. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/label_ops.py +0 -0
  150. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/make_border_map.py +0 -0
  151. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/make_pse_gt.py +0 -0
  152. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/make_shrink_map.py +0 -0
  153. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/operators.py +0 -0
  154. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/pg_process.py +0 -0
  155. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/randaugment.py +0 -0
  156. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/random_crop_data.py +0 -0
  157. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/rec_img_aug.py +0 -0
  158. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/sast_process.py +0 -0
  159. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/text_image_aug/__init__.py +0 -0
  160. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/text_image_aug/augment.py +0 -0
  161. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/imaug/text_image_aug/warp_mls.py +0 -0
  162. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/lmdb_dataset.py +0 -0
  163. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/pgnet_dataset.py +0 -0
  164. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/pubtab_dataset.py +0 -0
  165. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/data/simple_dataset.py +0 -0
  166. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/__init__.py +0 -0
  167. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/ace_loss.py +0 -0
  168. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/basic_loss.py +0 -0
  169. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/center_loss.py +0 -0
  170. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/cls_loss.py +0 -0
  171. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/combined_loss.py +0 -0
  172. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/det_basic_loss.py +0 -0
  173. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/det_db_loss.py +0 -0
  174. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/det_east_loss.py +0 -0
  175. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/det_pse_loss.py +0 -0
  176. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/det_sast_loss.py +0 -0
  177. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/distillation_loss.py +0 -0
  178. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/e2e_pg_loss.py +0 -0
  179. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/kie_sdmgr_loss.py +0 -0
  180. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/rec_aster_loss.py +0 -0
  181. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/rec_att_loss.py +0 -0
  182. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/rec_ctc_loss.py +0 -0
  183. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/rec_enhanced_ctc_loss.py +0 -0
  184. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/rec_nrtr_loss.py +0 -0
  185. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/rec_sar_loss.py +0 -0
  186. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/rec_srn_loss.py +0 -0
  187. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/losses/table_att_loss.py +0 -0
  188. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/metrics/__init__.py +0 -0
  189. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/metrics/cls_metric.py +0 -0
  190. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/metrics/det_metric.py +0 -0
  191. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/metrics/distillation_metric.py +0 -0
  192. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/metrics/e2e_metric.py +0 -0
  193. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/metrics/eval_det_iou.py +0 -0
  194. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/metrics/kie_metric.py +0 -0
  195. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/metrics/rec_metric.py +0 -0
  196. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/metrics/table_metric.py +0 -0
  197. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/architectures/__init__.py +0 -0
  198. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/architectures/base_model.py +0 -0
  199. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/architectures/distillation_model.py +0 -0
  200. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/__init__.py +0 -0
  201. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/det_mobilenet_v3.py +0 -0
  202. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd.py +0 -0
  203. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd_sast.py +0 -0
  204. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/e2e_resnet_vd_pg.py +0 -0
  205. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/kie_unet_sdmgr.py +0 -0
  206. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/rec_mobilenet_v3.py +0 -0
  207. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/rec_mv1_enhance.py +0 -0
  208. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/rec_nrtr_mtb.py +0 -0
  209. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/rec_resnet_31.py +0 -0
  210. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/rec_resnet_aster.py +0 -0
  211. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/rec_resnet_fpn.py +0 -0
  212. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/backbones/rec_resnet_vd.py +0 -0
  213. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/__init__.py +0 -0
  214. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/cls_head.py +0 -0
  215. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/det_db_head.py +0 -0
  216. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/det_east_head.py +0 -0
  217. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/det_pse_head.py +0 -0
  218. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/det_sast_head.py +0 -0
  219. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/e2e_pg_head.py +0 -0
  220. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/kie_sdmgr_head.py +0 -0
  221. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/multiheadAttention.py +0 -0
  222. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/rec_aster_head.py +0 -0
  223. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/rec_att_head.py +0 -0
  224. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/rec_ctc_head.py +0 -0
  225. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/rec_nrtr_head.py +0 -0
  226. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/rec_sar_head.py +0 -0
  227. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/rec_srn_head.py +0 -0
  228. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/self_attention.py +0 -0
  229. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/heads/table_att_head.py +0 -0
  230. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/necks/__init__.py +0 -0
  231. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/necks/db_fpn.py +0 -0
  232. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/necks/east_fpn.py +0 -0
  233. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/necks/fpn.py +0 -0
  234. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/necks/pg_fpn.py +0 -0
  235. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/necks/rnn.py +0 -0
  236. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/necks/sast_fpn.py +0 -0
  237. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/necks/table_fpn.py +0 -0
  238. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/transforms/__init__.py +0 -0
  239. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/transforms/stn.py +0 -0
  240. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/transforms/tps.py +0 -0
  241. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/modeling/transforms/tps_spatial_transformer.py +0 -0
  242. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/optimizer/__init__.py +0 -0
  243. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/optimizer/learning_rate.py +0 -0
  244. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/optimizer/lr_scheduler.py +0 -0
  245. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/optimizer/optimizer.py +0 -0
  246. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/optimizer/regularizer.py +0 -0
  247. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/postprocess/__init__.py +0 -0
  248. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/postprocess/cls_postprocess.py +0 -0
  249. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/postprocess/db_postprocess.py +0 -0
  250. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/postprocess/east_postprocess.py +0 -0
  251. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/postprocess/locality_aware_nms.py +0 -0
  252. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/postprocess/pg_postprocess.py +0 -0
  253. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/postprocess/pse_postprocess/__init__.py +0 -0
  254. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/__init__.py +0 -0
  255. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/setup.py +0 -0
  256. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/postprocess/pse_postprocess/pse_postprocess.py +0 -0
  257. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/postprocess/rec_postprocess.py +0 -0
  258. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/postprocess/sast_postprocess.py +0 -0
  259. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/__init__.py +0 -0
  260. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/eval.py +0 -0
  261. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/export_center.py +0 -0
  262. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/export_model.py +0 -0
  263. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/infer/predict_cls.py +0 -0
  264. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/infer/predict_det.py +0 -0
  265. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/infer/predict_e2e.py +0 -0
  266. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/infer/predict_rec.py +0 -0
  267. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/infer/predict_system.py +0 -0
  268. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/infer/utility.py +0 -0
  269. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/infer_cls.py +0 -0
  270. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/infer_det.py +0 -0
  271. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/infer_e2e.py +0 -0
  272. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/infer_kie.py +0 -0
  273. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/infer_rec.py +0 -0
  274. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/infer_table.py +0 -0
  275. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/program.py +0 -0
  276. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/test_hubserving.py +0 -0
  277. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/train.py +0 -0
  278. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/tools/xlprog.py +0 -0
  279. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/EN_symbol_dict.txt +0 -0
  280. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/__init__.py +0 -0
  281. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/ar_dict.txt +0 -0
  282. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/arabic_dict.txt +0 -0
  283. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/be_dict.txt +0 -0
  284. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/bg_dict.txt +0 -0
  285. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/chinese_cht_dict.txt +0 -0
  286. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/cyrillic_dict.txt +0 -0
  287. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/devanagari_dict.txt +0 -0
  288. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/en_dict.txt +0 -0
  289. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/fa_dict.txt +0 -0
  290. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/french_dict.txt +0 -0
  291. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/german_dict.txt +0 -0
  292. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/hi_dict.txt +0 -0
  293. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/it_dict.txt +0 -0
  294. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/japan_dict.txt +0 -0
  295. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/ka_dict.txt +0 -0
  296. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/korean_dict.txt +0 -0
  297. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/latin_dict.txt +0 -0
  298. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/mr_dict.txt +0 -0
  299. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/ne_dict.txt +0 -0
  300. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/oc_dict.txt +0 -0
  301. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/pu_dict.txt +0 -0
  302. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/rs_dict.txt +0 -0
  303. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/rsc_dict.txt +0 -0
  304. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/ru_dict.txt +0 -0
  305. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/ta_dict.txt +0 -0
  306. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/table_dict.txt +0 -0
  307. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/table_structure_dict.txt +0 -0
  308. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/te_dict.txt +0 -0
  309. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/ug_dict.txt +0 -0
  310. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/uk_dict.txt +0 -0
  311. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/ur_dict.txt +0 -0
  312. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict/xi_dict.txt +0 -0
  313. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/dict90.txt +0 -0
  314. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/e2e_metric/Deteval.py +0 -0
  315. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/e2e_metric/polygon_fast.py +0 -0
  316. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/e2e_utils/extract_batchsize.py +0 -0
  317. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_fast.py +0 -0
  318. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_slow.py +0 -0
  319. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/e2e_utils/pgnet_pp_utils.py +0 -0
  320. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/e2e_utils/visual.py +0 -0
  321. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/en_dict.txt +0 -0
  322. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/gen_label.py +0 -0
  323. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/ic15_dict.txt +0 -0
  324. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/iou.py +0 -0
  325. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/logging.py +0 -0
  326. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/network.py +0 -0
  327. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/ppocr_keys_v1.txt +0 -0
  328. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/profiler.py +0 -0
  329. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/save_load.py +0 -0
  330. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/stats.py +0 -0
  331. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppocr/utils/utility.py +0 -0
  332. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/__init__.py +0 -0
  333. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/predict_system.py +0 -0
  334. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/table/__init__.py +0 -0
  335. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/table/eval_table.py +0 -0
  336. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/table/matcher.py +0 -0
  337. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/table/predict_structure.py +0 -0
  338. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/table/predict_table.py +0 -0
  339. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/table/table_metric/__init__.py +0 -0
  340. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/table/table_metric/parallel.py +0 -0
  341. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/table/table_metric/table_metric.py +0 -0
  342. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/table/tablepyxl/__init__.py +0 -0
  343. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/table/tablepyxl/style.py +0 -0
  344. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/table/tablepyxl/tablepyxl.py +0 -0
  345. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/ppstructure/utility.py +0 -0
  346. {pyxllib-0.3.112 → pyxllib-0.3.114}/pyxlpr/xlai.py +0 -0
  347. {pyxllib-0.3.112 → pyxllib-0.3.114}/requirements.txt +0 -0
  348. {pyxllib-0.3.112 → pyxllib-0.3.114}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyxllib
3
- Version: 0.3.112
3
+ Version: 0.3.114
4
4
  Summary: 厦门理工模式识别团队通用python代码工具库
5
5
  Home-page: https://github.com/XLPRUtils/pyxllib
6
6
  Author: code4101
@@ -271,17 +271,17 @@ class ValuesStat2:
271
271
  def summary(self, unit=None, precision=4, percentile_count=5):
272
272
  """ 文本汇总性的报告
273
273
 
274
+ :param unit: 展示数值时使用的单位
275
+ :param precision: 展示数值时的精度
274
276
  :param percentile_count: 包括两个极值端点的切分点数,
275
277
  设置2,就是不设置分位数,就是只展示最小、最大值
276
278
  如果设置了3,就表示"中位数、二分位数",在展示的时候,会显示50%位置的分位数值
277
279
  如果设置了5,就相当于"四分位数",会显示25%、50%、75%位置的分位数值
278
- :param unit: 展示数值时使用的单位
279
- :param precision: 展示数值时的精度
280
280
  """
281
281
  desc = self._summary(unit, precision, percentile_count)
282
282
  return '\t'.join([f"{key}: {value}" for key, value in desc.items()])
283
283
 
284
- def calculate_ratios(self, x_values, fmt=False):
284
+ def calculate_ratios(self, x_values, fmt=False, unit=False):
285
285
  """ 计算并返回一个字典,其中包含每个 x_values 中的值与其小于等于该值的元素的比例
286
286
 
287
287
  :param x_values: 一个数值列表,用来计算每个数值小于等于它的元素的比例
@@ -297,8 +297,13 @@ class ValuesStat2:
297
297
  ratio = 0
298
298
  ratio_dict[x] = ratio
299
299
 
300
+ def unit_func(x):
301
+ if unit:
302
+ return human_readable_number(x, unit, 4)
303
+ return x
304
+
300
305
  if fmt:
301
- ratio_dict = {x: f'{ratio:.2%}' for x, ratio in ratio_dict.items()}
306
+ ratio_dict = {unit_func(x): f'{ratio:.2%}' for x, ratio in ratio_dict.items()}
302
307
 
303
308
  return ratio_dict
304
309
 
@@ -297,6 +297,8 @@ def xlpivot(df, index=None, columns=None, values=None):
297
297
  raise TypeError
298
298
 
299
299
  # 3 分组
300
+ assert len(df), 'df是空的'
301
+
300
302
  keys = index_ + columns_
301
303
  dfgp = df.groupby(keys)
302
304
  data = defaultdict(list)
@@ -379,13 +379,14 @@ WHERE {table_name}.{item_id_name} = cte.{item_id_name}"""
379
379
  if file_path.is_file():
380
380
  # 读取现有数据,找出主键最大值
381
381
  data = file_path.read_jsonl(batch_size=1000)
382
- max_val = max([x[key_col] for x in data]) if data else None
383
- if max_val is not None:
384
- sql.where(f'{key_col} > {max_val}')
382
+ if data:
383
+ max_val = max([x[key_col] for x in data]) if data else None
384
+ if max_val is not None:
385
+ sql.where(f'{key_col} > {max_val}')
385
386
 
386
387
  # 2 获取数据
387
388
  file = StreamJsonlWriter(file_path, batch_size=batch_size) # 流式存储
388
- rows, total = self.exec2dict_batch(sql, batch_size=batch_size)
389
+ rows, total = self.exec2dict_batch(sql, batch_size=batch_size, use_offset=True)
389
390
  for row in tqdm(rows, total=total, desc=f'从{table_name}表导出数据', disable=not print_mode):
390
391
  file.append_line(row)
391
392
  file.flush()
@@ -1089,7 +1089,7 @@ class XlPath(type(pathlib.Path())):
1089
1089
  src_dir = XlPath(src_dir)
1090
1090
  stem = src_dir.name
1091
1091
 
1092
- pattern = filename_template.format(stem=stem, index="(\d+)", suffix=".*")
1092
+ pattern = filename_template.format(stem=stem, index=r"(\d+)", suffix=".*")
1093
1093
  files = [file for file in src_dir.iterdir() if re.match(pattern, file.name)] # 获取目录中符合模式的文件
1094
1094
 
1095
1095
  self.merge_from_files(files, ignore_empty_lines_between_files=True, encoding=encoding)
@@ -1217,11 +1217,12 @@ class XlPath(type(pathlib.Path())):
1217
1217
  break
1218
1218
  else:
1219
1219
  def get_data():
1220
- for line in self.yield_line(batch_size, encoding=encoding):
1221
- try: # 注意,这里可能会有数据读取失败
1222
- yield json.loads(line)
1223
- except json.decoder.JSONDecodeError:
1224
- pass
1220
+ for batch in self.yield_line(batch_size=batch_size, encoding=encoding):
1221
+ for line in batch:
1222
+ try: # 注意,这里可能会有数据读取失败
1223
+ yield json.loads(line)
1224
+ except json.decoder.JSONDecodeError:
1225
+ pass
1225
1226
 
1226
1227
  data = get_data()
1227
1228
 
@@ -2541,7 +2542,7 @@ def myoswalk(root, filter_rule=None, recur=True):
2541
2542
 
2542
2543
 
2543
2544
  def mygetfiles(root, filter_rule=None, recur=True):
2544
- """对myoswalk进一步封装,返回所有匹配的文件
2545
+ r""" 对myoswalk进一步封装,返回所有匹配的文件
2545
2546
  会递归查找所有子文件
2546
2547
 
2547
2548
  可以这样遍历一个目录下的所有文件:
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # @Author : 陈坤泽
4
+ # @Email : 877362867@qq.com
5
+ # @Date : 2024/05/29
6
+
7
+ from pyxllib.prog.pupil import check_install_package
8
+
9
+ # cachetools,通用缓存工具,适用范围更广
10
+ check_install_package('cachetools')
11
+ # cached-property,类属性特用工具,相对比较简洁些
12
+ check_install_package('cached_property', 'cached-property')
13
+
14
+ # 对于普通函数,一般用lru_cache即可
15
+ from functools import lru_cache
16
+ import threading
17
+
18
+ from cachetools import cached, LRUCache, TTLCache
19
+
20
+ # 官方文档:https://pypi.org/project/cached-property/
21
+ from cached_property import cached_property
22
+ from cached_property import threaded_cached_property # 线程安全
23
+ from cached_property import cached_property_with_ttl # 限时缓存,单位秒
24
+ from cached_property import threaded_cached_property_with_ttl # 线程 + 限时
25
+
26
+
27
+ # 进一步封装的更通用、自己常用的装饰器
28
+
29
+ def xlcache(maxsize=128, *, ttl=None, lock=None, property=False):
30
+ """ 那些工具接口太复杂难记,自己封装一个统一的工具
31
+
32
+ 就是一个装饰器,最大缓存多少项,然后是否要开多线程安全,是否要设置限时重置,是否是作为类成员属性修饰
33
+
34
+ :param property: 是否作为类成员属性修饰,不过一般不建议通过这里设置,
35
+ 而是外部再加一层@property,不然IDE会识别不了这是一个property,影响开发
36
+
37
+ """
38
+ def decorator(func):
39
+ if property:
40
+ if ttl is not None:
41
+ if lock:
42
+ # 使用带有时间限制和线程安全的缓存属性
43
+ return threaded_cached_property_with_ttl(ttl)(func)
44
+ else:
45
+ # 使用带有时间限制但非线程安全的缓存属性
46
+ return cached_property_with_ttl(ttl)(func)
47
+ else:
48
+ if lock:
49
+ # 使用线程安全的缓存属性
50
+ return threaded_cached_property(func)
51
+ else:
52
+ # 使用普通的缓存属性
53
+ return cached_property(func)
54
+ else:
55
+ lock2 = threading.RLock() if lock is True else lock
56
+ if ttl is None:
57
+ return cached(LRUCache(maxsize), lock=lock2)(func)
58
+ else:
59
+ cache = TTLCache(maxsize=maxsize, ttl=ttl)
60
+ return cached(cache, lock=lock2)(func)
61
+
62
+ return decorator
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyxllib
3
- Version: 0.3.112
3
+ Version: 0.3.114
4
4
  Summary: 厦门理工模式识别团队通用python代码工具库
5
5
  Home-page: https://github.com/XLPRUtils/pyxllib
6
6
  Author: code4101
@@ -74,6 +74,7 @@ pyxllib/file/specialist/dirlib.py
74
74
  pyxllib/file/specialist/download.py
75
75
  pyxllib/file/specialist/filelib.py
76
76
  pyxllib/prog/__init__.py
77
+ pyxllib/prog/cachetools.py
77
78
  pyxllib/prog/deprecatedlib.py
78
79
  pyxllib/prog/ipyexec.py
79
80
  pyxllib/prog/multiprocs.py
@@ -26,11 +26,19 @@ xlcocotools
26
26
  """
27
27
  # fvcore
28
28
 
29
+ # 全量的依赖,自用
30
+ xlall = """
31
+ flask_wtf
32
+ flask_restful
33
+ zhconv
34
+ sentencepiece
35
+ """
36
+
29
37
  _dir = Path(__file__).parent
30
38
 
31
39
  setup(
32
40
  name='pyxllib', # pip 安装时用的名字
33
- version='0.3.112', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
41
+ version='0.3.114', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
34
42
  author='code4101',
35
43
  author_email='877362867@qq.com',
36
44
  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
File without changes
File without changes
@@ -21,14 +21,14 @@ Jinja2
21
21
  pandas>=0.23.4
22
22
 
23
23
  [xlai]
24
- pynvml
25
- opsdroid-get-image-size
24
+ visdom
25
+ xlcocotools
26
26
  opencv-python
27
+ pynvml
27
28
  pillow
28
- xlcocotools
29
- visdom
29
+ opsdroid-get-image-size
30
30
 
31
31
  [xlcv]
32
- opsdroid-get-image-size
33
32
  opencv-python
33
+ opsdroid-get-image-size
34
34
  pillow
File without changes
File without changes
File without changes