pyxllib 0.3.106__tar.gz → 0.3.107__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.
- {pyxllib-0.3.106/pyxllib.egg-info → pyxllib-0.3.107}/PKG-INFO +1 -1
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/libreoffice.py +14 -8
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/xlsxlib.py +33 -22
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/specialist/tictoc.py +1 -1
- {pyxllib-0.3.106 → pyxllib-0.3.107/pyxllib.egg-info}/PKG-INFO +1 -1
- {pyxllib-0.3.106 → pyxllib-0.3.107}/setup.py +1 -1
- {pyxllib-0.3.106 → pyxllib-0.3.107}/LICENSE +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/MANIFEST.in +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/README.md +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/algo/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/algo/disjoint.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/algo/geo.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/algo/intervals.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/algo/matcher.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/algo/newbie.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/algo/pupil.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/algo/shapelylib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/algo/specialist.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/algo/stat.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/algo/treelib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/algo/unitlib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/cv/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/cv/expert.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/cv/imfile.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/cv/imhash.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/cv/pupil.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/cv/rgbfmt.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/cv/trackbartools.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/cv/xlcvlib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/cv/xlpillib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/data/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/data/echarts.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/data/jsonlib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/data/oss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/data/pglib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/data/sqlite.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/data/sqllib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/JLineViewer.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/autogui/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/autogui/autogui.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/autogui/virtualkey.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/demolib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/drissionlib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/kq5034lib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/old.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/qt.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/robustprocfile.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/seleniumlib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/tk.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/unixlib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/utools.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/webhook.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/win32lib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/ext/yuquelib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/docxlib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/gitlib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/movielib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/newbie.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/onenotelib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/packlib/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/packlib/zipfile.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/pdflib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/pupil.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/specialist/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/specialist/dirlib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/specialist/download.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/file/specialist/filelib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/deprecatedlib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/ipyexec.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/multiprocs.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/newbie.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/pupil.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/sitepackages.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/specialist/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/specialist/bc.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/specialist/browser.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/specialist/common.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/specialist/datetime.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/specialist/xllog.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/prog/xlosenv.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/stdlib/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/stdlib/tablepyxl/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/stdlib/tablepyxl/style.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/stdlib/tablepyxl/tablepyxl.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/ahocorasick.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/charclasslib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/jiebalib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/jscode.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/latex/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/levenshtein.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/nestenv.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/newbie.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/pupil/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/pupil/common.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/pupil/xlalign.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/pycode.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/specialist/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/specialist/common.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/specialist/ptag.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/spellchecker.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/vbacode.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/text/xmllib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/xl.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib/xlcv.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib.egg-info/SOURCES.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib.egg-info/dependency_links.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib.egg-info/requires.txt +3 -3
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxllib.egg-info/top_level.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ai/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ai/clientlib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ai/specialist.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ai/torch_app.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ai/xlpaddle.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ai/xltorch.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/coco.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/datacls.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/datasets.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/gptlib.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/icdar/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/icdar/deteval.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/icdar/icdar2013.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/icdar/iou.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/icdar/rrc_evaluation_funcs_1_1.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/imtextline.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/labelme.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/removeline.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/data/specialist.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/eval/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/paddleocr.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/configs/rec/multi_language/generate_multi_language_configs.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/ColorJitter.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/copy_paste.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/east_process.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/gen_table_mask.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/iaa_augment.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/label_ops.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/make_border_map.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/make_pse_gt.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/make_shrink_map.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/operators.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/pg_process.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/randaugment.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/random_crop_data.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/rec_img_aug.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/sast_process.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/text_image_aug/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/text_image_aug/augment.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/imaug/text_image_aug/warp_mls.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/lmdb_dataset.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/pgnet_dataset.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/pubtab_dataset.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/data/simple_dataset.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/ace_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/basic_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/center_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/cls_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/combined_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/det_basic_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/det_db_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/det_east_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/det_pse_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/det_sast_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/distillation_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/e2e_pg_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/kie_sdmgr_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/rec_aster_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/rec_att_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/rec_ctc_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/rec_enhanced_ctc_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/rec_nrtr_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/rec_sar_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/rec_srn_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/losses/table_att_loss.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/metrics/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/metrics/cls_metric.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/metrics/det_metric.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/metrics/distillation_metric.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/metrics/e2e_metric.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/metrics/eval_det_iou.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/metrics/kie_metric.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/metrics/rec_metric.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/metrics/table_metric.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/architectures/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/architectures/base_model.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/architectures/distillation_model.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/det_mobilenet_v3.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd_sast.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/e2e_resnet_vd_pg.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/kie_unet_sdmgr.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/rec_mobilenet_v3.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/rec_mv1_enhance.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/rec_nrtr_mtb.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/rec_resnet_31.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/rec_resnet_aster.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/rec_resnet_fpn.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/backbones/rec_resnet_vd.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/cls_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/det_db_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/det_east_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/det_pse_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/det_sast_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/e2e_pg_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/kie_sdmgr_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/multiheadAttention.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/rec_aster_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/rec_att_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/rec_ctc_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/rec_nrtr_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/rec_sar_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/rec_srn_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/self_attention.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/heads/table_att_head.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/necks/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/necks/db_fpn.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/necks/east_fpn.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/necks/fpn.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/necks/pg_fpn.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/necks/rnn.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/necks/sast_fpn.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/necks/table_fpn.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/transforms/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/transforms/stn.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/transforms/tps.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/modeling/transforms/tps_spatial_transformer.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/optimizer/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/optimizer/learning_rate.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/optimizer/lr_scheduler.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/optimizer/optimizer.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/optimizer/regularizer.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/postprocess/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/postprocess/cls_postprocess.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/postprocess/db_postprocess.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/postprocess/east_postprocess.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/postprocess/locality_aware_nms.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/postprocess/pg_postprocess.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/postprocess/pse_postprocess/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/setup.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/postprocess/pse_postprocess/pse_postprocess.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/postprocess/rec_postprocess.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/postprocess/sast_postprocess.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/eval.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/export_center.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/export_model.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/infer/predict_cls.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/infer/predict_det.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/infer/predict_e2e.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/infer/predict_rec.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/infer/predict_system.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/infer/utility.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/infer_cls.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/infer_det.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/infer_e2e.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/infer_kie.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/infer_rec.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/infer_table.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/program.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/test_hubserving.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/train.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/tools/xlprog.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/EN_symbol_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/ar_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/arabic_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/be_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/bg_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/chinese_cht_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/cyrillic_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/devanagari_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/en_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/fa_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/french_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/german_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/hi_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/it_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/japan_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/ka_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/korean_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/latin_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/mr_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/ne_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/oc_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/pu_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/rs_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/rsc_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/ru_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/ta_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/table_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/table_structure_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/te_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/ug_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/uk_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/ur_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict/xi_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/dict90.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/e2e_metric/Deteval.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/e2e_metric/polygon_fast.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/e2e_utils/extract_batchsize.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_fast.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_slow.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/e2e_utils/pgnet_pp_utils.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/e2e_utils/visual.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/en_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/gen_label.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/ic15_dict.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/iou.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/logging.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/network.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/ppocr_keys_v1.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/profiler.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/save_load.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/stats.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppocr/utils/utility.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/predict_system.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/table/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/table/eval_table.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/table/matcher.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/table/predict_structure.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/table/predict_table.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/table/table_metric/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/table/table_metric/parallel.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/table/table_metric/table_metric.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/table/tablepyxl/__init__.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/table/tablepyxl/style.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/table/tablepyxl/tablepyxl.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/ppstructure/utility.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/pyxlpr/xlai.py +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/requirements.txt +0 -0
- {pyxllib-0.3.106 → pyxllib-0.3.107}/setup.cfg +0 -0
@@ -59,7 +59,7 @@ def infer_file_format(file_path):
|
|
59
59
|
|
60
60
|
class UpgradeOfficeFile:
|
61
61
|
@classmethod
|
62
|
-
def to_dir(cls, file_path, out_dir=None, fmt=None):
|
62
|
+
def to_dir(cls, file_path, out_dir=None, fmt=None, timeout=10):
|
63
63
|
""" 将doc文件转换为docx文件
|
64
64
|
|
65
65
|
:param file_path: 待升级的文件路径
|
@@ -86,20 +86,26 @@ class UpgradeOfficeFile:
|
|
86
86
|
executor,
|
87
87
|
'--headless', # 无界面模式
|
88
88
|
'--convert-to', fmt, # 转换为docx格式
|
89
|
-
'--outdir', out_dir, # 输出目录
|
89
|
+
'--outdir', str(out_dir), # 输出目录
|
90
90
|
file_path # 输入文件路径
|
91
91
|
]
|
92
92
|
|
93
|
-
subprocess.run(command, check=True)
|
93
|
+
subprocess.run(command, timeout=timeout, check=True)
|
94
94
|
|
95
95
|
# 返回转换后的文件路径
|
96
96
|
base_name = os.path.basename(file_path)
|
97
97
|
name, _ = os.path.splitext(base_name)
|
98
98
|
new_file_path = os.path.join(out_dir, f"{name}.{fmt}")
|
99
|
+
|
100
|
+
# todo 以目标文件是否存在判断转换是否成功也是有一定bug的,可能目标文件本来就存在
|
101
|
+
# 但如果严谨判断,就要分析subprocess.run的输出结果了,那个太麻烦,先用简便方法处理
|
102
|
+
if not Path(new_file_path).exists():
|
103
|
+
raise ValueError(f"升级文档失败")
|
104
|
+
|
99
105
|
return new_file_path
|
100
106
|
|
101
107
|
@classmethod
|
102
|
-
def to_file(cls, in_file, out_file=None, fmt=None):
|
108
|
+
def to_file(cls, in_file, out_file=None, fmt=None, timeout=10):
|
103
109
|
""" 可以指定转换出的文件名的版本
|
104
110
|
|
105
111
|
:param in_file: 待转换的文件路径
|
@@ -126,7 +132,7 @@ class UpgradeOfficeFile:
|
|
126
132
|
out_file.parent.mkdir(parents=True, exist_ok=True)
|
127
133
|
|
128
134
|
# 调用upgrade_office_file函数进行转换
|
129
|
-
temp_file = cls.to_dir(in_file, out_dir=out_file.parent, fmt=fmt)
|
135
|
+
temp_file = cls.to_dir(in_file, out_dir=out_file.parent, fmt=fmt, timeout=timeout)
|
130
136
|
|
131
137
|
# 将生成的临时文件重命名为out_file
|
132
138
|
os.rename(temp_file, out_file)
|
@@ -134,7 +140,7 @@ class UpgradeOfficeFile:
|
|
134
140
|
return out_file
|
135
141
|
|
136
142
|
@classmethod
|
137
|
-
def to_tempfile(cls, in_file, fmt=None, *, timestamp_stem=False, create_subdir=False):
|
143
|
+
def to_tempfile(cls, in_file, fmt=None, *, timestamp_stem=False, create_subdir=False, timeout=10):
|
138
144
|
""" 将文件转换为临时文件
|
139
145
|
|
140
146
|
:param timestamp_stem: 时间戳文件名
|
@@ -151,8 +157,8 @@ class UpgradeOfficeFile:
|
|
151
157
|
|
152
158
|
if timestamp_stem:
|
153
159
|
stem = datetime.now().strftime('%Y%m%d.%H%M%S.%f')
|
154
|
-
out_file = cls.to_file(in_file, out_file=root / f"{stem}.{fmt}", fmt=fmt)
|
160
|
+
out_file = cls.to_file(in_file, out_file=root / f"{stem}.{fmt}", fmt=fmt, timeout=timeout)
|
155
161
|
else:
|
156
|
-
out_file = cls.to_dir(in_file, out_dir=root, fmt=fmt)
|
162
|
+
out_file = cls.to_dir(in_file, out_dir=root, fmt=fmt, timeout=timeout)
|
157
163
|
|
158
164
|
return out_file
|
@@ -2650,30 +2650,39 @@ class WorkbookSummary3:
|
|
2650
2650
|
for addr, _ in row:
|
2651
2651
|
new_cells[addr] = cells[addr]
|
2652
2652
|
|
2653
|
-
|
2654
|
-
for rows in rows_groups:
|
2653
|
+
total_new_cells = []
|
2654
|
+
for rows in reversed(rows_groups):
|
2655
|
+
new_cells = {}
|
2655
2656
|
if len(rows) < 10:
|
2656
2657
|
extract_cells_from_rows(rows)
|
2657
2658
|
else: # 压缩中间的数据
|
2658
2659
|
# 如果评估到最终摘要可能太小,要收敛下删除的范围
|
2659
2660
|
n, m = len(rows), len(rows[0])
|
2660
2661
|
target_n = int(target_reduce_cells_num / m + 0.5) # 本来应该删除多少行才行
|
2661
|
-
|
2662
|
-
|
2663
|
-
|
2664
|
-
|
2665
|
-
|
2666
|
-
|
2667
|
-
|
2668
|
-
|
2669
|
-
|
2670
|
-
|
2671
|
-
|
2672
|
-
|
2673
|
-
|
2674
|
-
|
2675
|
-
|
2676
|
-
|
2662
|
+
if target_n <= 0: # 如果删除的行数太少,那么就不压缩了
|
2663
|
+
extract_cells_from_rows(rows)
|
2664
|
+
else:
|
2665
|
+
cur_n = n - 4 if target_n > n - 4 else target_n # 实际删除多少行
|
2666
|
+
left_n = n - cur_n # 剩余多少行
|
2667
|
+
b = left_n // 2
|
2668
|
+
a = left_n - b
|
2669
|
+
|
2670
|
+
extract_cells_from_rows(rows[:a])
|
2671
|
+
addr = combine_addresses(rows[a][0][0], rows[-b - 1][-1][0])
|
2672
|
+
# new_cells[addr] = '这块区域的内容跟前面几行、后面几行的内容结构是一致的,省略显示'
|
2673
|
+
new_cells[addr] = '...'
|
2674
|
+
extract_cells_from_rows(rows[-b:])
|
2675
|
+
|
2676
|
+
target_reduce_cells_num -= cur_n * m
|
2677
|
+
# 240429周一21:57,这两行不能开,否则会过渡精简。如果压缩够了,那么后面的单元格需要全量补上。
|
2678
|
+
# if target_reduce_cells_num <= 0: # 满足以后不是直接break,而是要把后续的内容都保留
|
2679
|
+
# break
|
2680
|
+
total_new_cells.append(new_cells)
|
2681
|
+
|
2682
|
+
new_cells2 = {}
|
2683
|
+
for rows in reversed(total_new_cells):
|
2684
|
+
new_cells2.update(rows)
|
2685
|
+
sheet['cells'] = new_cells2
|
2677
2686
|
|
2678
2687
|
@classmethod
|
2679
2688
|
def reduce4_truncate_cells(cls, y, summary_limit_len, *, cur_summary_len=None):
|
@@ -2805,6 +2814,7 @@ class WorkbookSummary3:
|
|
2805
2814
|
if cur_summary_len is None:
|
2806
2815
|
cur_summary_len = cls.count_length(y)
|
2807
2816
|
|
2817
|
+
cur_summary_len0 = cur_summary_len
|
2808
2818
|
active_sheet = y['ActiveSheet']
|
2809
2819
|
|
2810
2820
|
# 1 预计要删除单元格数
|
@@ -2836,7 +2846,8 @@ class WorkbookSummary3:
|
|
2836
2846
|
return cls.count_length(y)
|
2837
2847
|
|
2838
2848
|
# 4 否则每张表按照比例删单元格,只保留前面部分的单元格
|
2839
|
-
|
2849
|
+
# todo 这里应该有更好的筛选机制,后续可以思考思考
|
2850
|
+
left_rate = min((summary_limit_len + cur_summary_len) / 2 * cur_summary_len, 0.9) # 首轮减小一点调整幅度
|
2840
2851
|
while True:
|
2841
2852
|
for i, st in enumerate(y['sheets']):
|
2842
2853
|
if i == active_sheet_index:
|
@@ -2848,10 +2859,10 @@ class WorkbookSummary3:
|
|
2848
2859
|
cur_summary_len = cls.count_length(y)
|
2849
2860
|
if cur_summary_len <= summary_limit_len:
|
2850
2861
|
return cur_summary_len
|
2851
|
-
if left_rate * total_cells_num < 1:
|
2862
|
+
if left_rate * total_cells_num < 1: # 都没有单元格,别删了
|
2852
2863
|
break
|
2853
|
-
else:
|
2854
|
-
left_rate *= 0.
|
2864
|
+
else: # 更新保留比率,再试
|
2865
|
+
left_rate *= min(summary_limit_len / cur_summary_len, 0.9)
|
2855
2866
|
|
2856
2867
|
return cur_summary_len
|
2857
2868
|
|
@@ -30,7 +30,7 @@ _dir = Path(__file__).parent
|
|
30
30
|
|
31
31
|
setup(
|
32
32
|
name='pyxllib', # pip 安装时用的名字
|
33
|
-
version='0.3.
|
33
|
+
version='0.3.107', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
|
34
34
|
author='code4101',
|
35
35
|
author_email='877362867@qq.com',
|
36
36
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|