pyxllib 0.3.119__tar.gz → 0.3.120__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.119/pyxllib.egg-info → pyxllib-0.3.120}/PKG-INFO +1 -1
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/kq5034lib.py +0 -3
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/utools.py +105 -105
- {pyxllib-0.3.119 → pyxllib-0.3.120/pyxllib.egg-info}/PKG-INFO +1 -1
- {pyxllib-0.3.119 → pyxllib-0.3.120}/setup.py +1 -1
- {pyxllib-0.3.119 → pyxllib-0.3.120}/LICENSE +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/MANIFEST.in +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/README.md +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/algo/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/algo/disjoint.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/algo/geo.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/algo/intervals.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/algo/matcher.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/algo/newbie.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/algo/pupil.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/algo/shapelylib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/algo/specialist.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/algo/stat.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/algo/treelib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/algo/unitlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/cv/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/cv/expert.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/cv/imfile.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/cv/imhash.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/cv/pupil.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/cv/rgbfmt.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/cv/trackbartools.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/cv/xlcvlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/cv/xlpillib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/data/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/data/echarts.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/data/jsonlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/data/oss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/data/pglib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/data/sqlite.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/data/sqllib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/JLineViewer.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/autogui/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/autogui/autogui.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/autogui/virtualkey.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/demolib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/drissionlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/old.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/qt.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/robustprocfile.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/seleniumlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/tk.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/unixlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/webhook.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/win32lib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/ext/yuquelib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/docxlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/gitlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/libreoffice.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/movielib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/newbie.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/onenotelib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/packlib/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/packlib/zipfile.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/pdflib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/pupil.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/specialist/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/specialist/dirlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/specialist/download.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/specialist/filelib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/file/xlsxlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/cachetools.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/deprecatedlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/ipyexec.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/multiprocs.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/newbie.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/pupil.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/scheduler.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/sitepackages.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/specialist/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/specialist/bc.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/specialist/browser.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/specialist/common.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/specialist/datetime.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/specialist/tictoc.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/specialist/xllog.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/prog/xlosenv.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/stdlib/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/stdlib/tablepyxl/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/stdlib/tablepyxl/style.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/stdlib/tablepyxl/tablepyxl.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/ahocorasick.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/charclasslib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/jiebalib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/jinjalib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/jscode.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/latex/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/levenshtein.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/nestenv.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/newbie.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/pupil/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/pupil/common.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/pupil/xlalign.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/pycode.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/specialist/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/specialist/common.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/specialist/ptag.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/spellchecker.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/vbacode.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/text/xmllib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/xl.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib/xlcv.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib.egg-info/SOURCES.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib.egg-info/dependency_links.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib.egg-info/requires.txt +11 -11
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxllib.egg-info/top_level.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ai/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ai/clientlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ai/specialist.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ai/torch_app.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ai/xlpaddle.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ai/xltorch.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/coco.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/datacls.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/datasets.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/gptlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/icdar/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/icdar/deteval.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/icdar/icdar2013.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/icdar/iou.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/icdar/rrc_evaluation_funcs_1_1.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/imtextline.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/labelme.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/removeline.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/specialist.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/data/tiktokenlib.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/eval/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/paddleocr.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/configs/rec/multi_language/generate_multi_language_configs.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/ColorJitter.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/copy_paste.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/east_process.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/gen_table_mask.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/iaa_augment.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/label_ops.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/make_border_map.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/make_pse_gt.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/make_shrink_map.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/operators.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/pg_process.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/randaugment.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/random_crop_data.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/rec_img_aug.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/sast_process.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/text_image_aug/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/text_image_aug/augment.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/imaug/text_image_aug/warp_mls.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/lmdb_dataset.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/pgnet_dataset.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/pubtab_dataset.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/data/simple_dataset.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/ace_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/basic_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/center_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/cls_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/combined_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/det_basic_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/det_db_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/det_east_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/det_pse_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/det_sast_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/distillation_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/e2e_pg_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/kie_sdmgr_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/rec_aster_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/rec_att_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/rec_ctc_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/rec_enhanced_ctc_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/rec_nrtr_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/rec_sar_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/rec_srn_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/losses/table_att_loss.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/metrics/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/metrics/cls_metric.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/metrics/det_metric.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/metrics/distillation_metric.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/metrics/e2e_metric.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/metrics/eval_det_iou.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/metrics/kie_metric.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/metrics/rec_metric.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/metrics/table_metric.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/architectures/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/architectures/base_model.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/architectures/distillation_model.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/det_mobilenet_v3.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd_sast.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/e2e_resnet_vd_pg.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/kie_unet_sdmgr.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/rec_mobilenet_v3.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/rec_mv1_enhance.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/rec_nrtr_mtb.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/rec_resnet_31.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/rec_resnet_aster.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/rec_resnet_fpn.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/backbones/rec_resnet_vd.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/cls_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/det_db_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/det_east_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/det_pse_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/det_sast_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/e2e_pg_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/kie_sdmgr_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/multiheadAttention.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/rec_aster_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/rec_att_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/rec_ctc_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/rec_nrtr_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/rec_sar_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/rec_srn_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/self_attention.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/heads/table_att_head.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/necks/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/necks/db_fpn.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/necks/east_fpn.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/necks/fpn.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/necks/pg_fpn.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/necks/rnn.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/necks/sast_fpn.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/necks/table_fpn.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/transforms/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/transforms/stn.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/transforms/tps.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/modeling/transforms/tps_spatial_transformer.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/optimizer/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/optimizer/learning_rate.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/optimizer/lr_scheduler.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/optimizer/optimizer.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/optimizer/regularizer.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/postprocess/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/postprocess/cls_postprocess.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/postprocess/db_postprocess.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/postprocess/east_postprocess.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/postprocess/locality_aware_nms.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/postprocess/pg_postprocess.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/postprocess/pse_postprocess/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/setup.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/postprocess/pse_postprocess/pse_postprocess.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/postprocess/rec_postprocess.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/postprocess/sast_postprocess.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/eval.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/export_center.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/export_model.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/infer/predict_cls.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/infer/predict_det.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/infer/predict_e2e.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/infer/predict_rec.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/infer/predict_system.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/infer/utility.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/infer_cls.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/infer_det.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/infer_e2e.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/infer_kie.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/infer_rec.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/infer_table.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/program.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/test_hubserving.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/train.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/tools/xlprog.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/EN_symbol_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/ar_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/arabic_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/be_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/bg_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/chinese_cht_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/cyrillic_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/devanagari_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/en_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/fa_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/french_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/german_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/hi_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/it_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/japan_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/ka_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/korean_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/latin_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/mr_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/ne_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/oc_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/pu_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/rs_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/rsc_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/ru_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/ta_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/table_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/table_structure_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/te_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/ug_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/uk_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/ur_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict/xi_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/dict90.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/e2e_metric/Deteval.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/e2e_metric/polygon_fast.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/e2e_utils/extract_batchsize.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_fast.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_slow.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/e2e_utils/pgnet_pp_utils.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/e2e_utils/visual.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/en_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/gen_label.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/ic15_dict.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/iou.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/logging.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/network.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/ppocr_keys_v1.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/profiler.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/save_load.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/stats.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppocr/utils/utility.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/predict_system.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/table/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/table/eval_table.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/table/matcher.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/table/predict_structure.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/table/predict_table.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/table/table_metric/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/table/table_metric/parallel.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/table/table_metric/table_metric.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/table/tablepyxl/__init__.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/table/tablepyxl/style.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/table/tablepyxl/tablepyxl.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/ppstructure/utility.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/pyxlpr/xlai.py +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/requirements.txt +0 -0
- {pyxllib-0.3.119 → pyxllib-0.3.120}/setup.cfg +0 -0
@@ -113,6 +113,9 @@ class UtoolsBase:
|
|
113
113
|
|
114
114
|
self.outfmt = self.cmds['outfmt'] if 'outfmt' in self.cmds else outfmt
|
115
115
|
|
116
|
+
|
117
|
+
class UtoolsName(UtoolsBase):
|
118
|
+
|
116
119
|
def check_cmds(self):
|
117
120
|
""" 显示所有参数值 """
|
118
121
|
df = pd.DataFrame.from_records([(k, v) for k, v in self.cmds.items()],
|
@@ -134,110 +137,6 @@ class UtoolsBase:
|
|
134
137
|
f2.write_text(self.cmds['ClipText'] + '\n')
|
135
138
|
bcompare(f1, f2, wait=False)
|
136
139
|
|
137
|
-
|
138
|
-
class UtoolsFile(UtoolsBase):
|
139
|
-
""" 文件相关操作工具 """
|
140
|
-
|
141
|
-
def __init__(self, cmds, *, outfmt='text'):
|
142
|
-
super().__init__(cmds, outfmt=outfmt)
|
143
|
-
|
144
|
-
# 如果是window等模式,补充 MatchedFiles
|
145
|
-
if 'MatchedFiles' in self.cmds:
|
146
|
-
self.paths = [pathlib.Path(f['path']) for f in self.cmds['MatchedFiles']]
|
147
|
-
else:
|
148
|
-
self.paths = [pathlib.Path(os.path.abspath(f)).resolve() for f in os.listdir('../robot')]
|
149
|
-
|
150
|
-
@classmethod
|
151
|
-
def is_image(cls, f):
|
152
|
-
return bool(re.match('jpe?g|png|gif|bmp', f.suffix.lower()[1:]))
|
153
|
-
|
154
|
-
def codefile(self):
|
155
|
-
""" 多用途文件处理器
|
156
|
-
|
157
|
-
核心理念是不设定具体功能,而是让用户在 subinput 自己写需要执行的py代码功能
|
158
|
-
而在subinput,可以用一些特殊的标识符来传参
|
159
|
-
|
160
|
-
以file为例,有4类参数:
|
161
|
-
file,处理当前目录 文件
|
162
|
-
rfile,递归处理所有目录下 文件
|
163
|
-
files,当前目录 所有文件
|
164
|
-
rfiles,递归获取所有目录下 所有文件
|
165
|
-
|
166
|
-
类型上,file可以改为
|
167
|
-
dir,只分析目录
|
168
|
-
path,所有文件和目录
|
169
|
-
|
170
|
-
扩展了一些特殊的类型:
|
171
|
-
imfile,图片文件
|
172
|
-
"""
|
173
|
-
from functools import reduce
|
174
|
-
try:
|
175
|
-
from xlproject.xyz.kzconfig import KzDataSync
|
176
|
-
from pyxlpr.data.labelme import reduce_labelme_jsonfile
|
177
|
-
except ModuleNotFoundError:
|
178
|
-
pass
|
179
|
-
|
180
|
-
tt = TicToc()
|
181
|
-
|
182
|
-
# 1 获得所有标识符
|
183
|
-
# 每个单词前后都有空格,方便定界
|
184
|
-
keywords = filter(lambda x: re.match(r'[a-zA-Z_]+$', x),
|
185
|
-
set(re.findall(r'\.?[a-zA-Z_]+\(?', self.cmds['subinput'])))
|
186
|
-
keywords = ' ' + ' '.join(keywords) + ' '
|
187
|
-
# print('keywords:', keywords)
|
188
|
-
|
189
|
-
# 2 生成一些备用的智能参数
|
190
|
-
# 一级目录下选中的文件
|
191
|
-
paths = self.paths
|
192
|
-
# 用正则判断一些智能参数是否要计算,注意不能只判断files,如果出现file,也是要引用files的
|
193
|
-
files = [XlPath(p) for p in paths if p.is_file()] if re.search(r'files? ', keywords) else []
|
194
|
-
imfiles = [f for f in files if self.is_image(f)] if re.search(r' imfiles? ', keywords) else []
|
195
|
-
# 出现r系列的递归操作,都是要计算出dirs的
|
196
|
-
dirs = [XlPath(p) for p in paths if p.is_dir()] if re.search(r' (dirs?|r[a-zA-Z_]+) ', keywords) else []
|
197
|
-
|
198
|
-
# 递归所有的文件
|
199
|
-
rpaths = reduce(lambda x, y: x + y.select('**/*').subpaths(), [paths] + dirs) \
|
200
|
-
if re.search(r' (r[a-zA-Z_]+) ', keywords) else []
|
201
|
-
rfiles = [XlPath(p) for p in rpaths if p.is_file()] if re.search(r' (r(im)?files?) ', keywords) else []
|
202
|
-
rimfiles = [f for f in rfiles if self.is_image(f)] if re.search(r' rimfiles? ', keywords) else []
|
203
|
-
rdirs = [XlPath(p) for p in rpaths if p.is_dir()] if re.search(r' (rdirs?) ', keywords) else []
|
204
|
-
|
205
|
-
# 3 判断是否要智能开循环处理
|
206
|
-
m = re.search(r' (r?(path|(im)?file|dir)) ', keywords)
|
207
|
-
if m:
|
208
|
-
name = m.group(1)
|
209
|
-
objs = eval(name + 's')
|
210
|
-
print('len(' + name + 's)=', len(objs))
|
211
|
-
for x in objs:
|
212
|
-
locals()[name] = x
|
213
|
-
eval(self.cmds['subinput'])
|
214
|
-
else: # 没有的话就直接处理所有文件
|
215
|
-
eval(self.cmds['subinput'])
|
216
|
-
|
217
|
-
# 4 运行结束标志
|
218
|
-
print(f'finished in {format_timespan(tt.tocvalue())}.')
|
219
|
-
|
220
|
-
def open_jsonl(self):
|
221
|
-
""" 打开jsonl文件 """
|
222
|
-
from pyxllib.ext.JLineViewer import start_jlineviewer
|
223
|
-
start_jlineviewer(self.paths[0].as_posix())
|
224
|
-
|
225
|
-
def open_jsonl_with_excel(self):
|
226
|
-
""" 用excel打开jsonl文件 """
|
227
|
-
from pyxllib.algo.stat import write_dataframes_to_excel
|
228
|
-
|
229
|
-
file = self.paths[0].as_posix()
|
230
|
-
data = XlPath(file).read_jsonl()
|
231
|
-
|
232
|
-
file = XlPath.create_tempfile_path('.xlsx')
|
233
|
-
df = pd.DataFrame.from_dict(data)
|
234
|
-
write_dataframes_to_excel(file, {'Sheet1': df})
|
235
|
-
|
236
|
-
os.startfile(file)
|
237
|
-
|
238
|
-
|
239
|
-
class UtoolsText(UtoolsBase):
|
240
|
-
|
241
140
|
@clipboard_decorator(copy=False, typing=True)
|
242
141
|
def common_dir(self):
|
243
142
|
# 目录路径生成工具
|
@@ -315,7 +214,7 @@ class UtoolsText(UtoolsBase):
|
|
315
214
|
fire.Fire(func, self.cmds['subinput'], 'create_text_image')
|
316
215
|
|
317
216
|
|
318
|
-
class
|
217
|
+
class UtoolsText(UtoolsBase):
|
319
218
|
def __init__(self, cmds, *, outfmt='text'):
|
320
219
|
super().__init__(cmds, outfmt=outfmt)
|
321
220
|
|
@@ -346,6 +245,107 @@ class UtoolsRegex(UtoolsBase):
|
|
346
245
|
bcompare(text1, text2)
|
347
246
|
|
348
247
|
|
248
|
+
class UtoolsFile(UtoolsBase):
|
249
|
+
""" 文件相关操作工具 """
|
250
|
+
|
251
|
+
def __init__(self, cmds, *, outfmt='text'):
|
252
|
+
super().__init__(cmds, outfmt=outfmt)
|
253
|
+
|
254
|
+
# 如果是window等模式,补充 MatchedFiles
|
255
|
+
if 'MatchedFiles' in self.cmds:
|
256
|
+
self.paths = [pathlib.Path(f['path']) for f in self.cmds['MatchedFiles']]
|
257
|
+
else:
|
258
|
+
self.paths = [pathlib.Path(os.path.abspath(f)).resolve() for f in os.listdir('../robot')]
|
259
|
+
|
260
|
+
@classmethod
|
261
|
+
def is_image(cls, f):
|
262
|
+
return bool(re.match('jpe?g|png|gif|bmp', f.suffix.lower()[1:]))
|
263
|
+
|
264
|
+
def codefile(self):
|
265
|
+
""" 多用途文件处理器
|
266
|
+
|
267
|
+
核心理念是不设定具体功能,而是让用户在 subinput 自己写需要执行的py代码功能
|
268
|
+
而在subinput,可以用一些特殊的标识符来传参
|
269
|
+
|
270
|
+
以file为例,有4类参数:
|
271
|
+
file,处理当前目录 文件
|
272
|
+
rfile,递归处理所有目录下 文件
|
273
|
+
files,当前目录 所有文件
|
274
|
+
rfiles,递归获取所有目录下 所有文件
|
275
|
+
|
276
|
+
类型上,file可以改为
|
277
|
+
dir,只分析目录
|
278
|
+
path,所有文件和目录
|
279
|
+
|
280
|
+
扩展了一些特殊的类型:
|
281
|
+
imfile,图片文件
|
282
|
+
"""
|
283
|
+
from functools import reduce
|
284
|
+
try:
|
285
|
+
from xlproject.xyz.kzconfig import KzDataSync
|
286
|
+
from pyxlpr.data.labelme import reduce_labelme_jsonfile
|
287
|
+
except ModuleNotFoundError:
|
288
|
+
pass
|
289
|
+
|
290
|
+
tt = TicToc()
|
291
|
+
|
292
|
+
# 1 获得所有标识符
|
293
|
+
# 每个单词前后都有空格,方便定界
|
294
|
+
keywords = filter(lambda x: re.match(r'[a-zA-Z_]+$', x),
|
295
|
+
set(re.findall(r'\.?[a-zA-Z_]+\(?', self.cmds['subinput'])))
|
296
|
+
keywords = ' ' + ' '.join(keywords) + ' '
|
297
|
+
# print('keywords:', keywords)
|
298
|
+
|
299
|
+
# 2 生成一些备用的智能参数
|
300
|
+
# 一级目录下选中的文件
|
301
|
+
paths = self.paths
|
302
|
+
# 用正则判断一些智能参数是否要计算,注意不能只判断files,如果出现file,也是要引用files的
|
303
|
+
files = [XlPath(p) for p in paths if p.is_file()] if re.search(r'files? ', keywords) else []
|
304
|
+
imfiles = [f for f in files if self.is_image(f)] if re.search(r' imfiles? ', keywords) else []
|
305
|
+
# 出现r系列的递归操作,都是要计算出dirs的
|
306
|
+
dirs = [XlPath(p) for p in paths if p.is_dir()] if re.search(r' (dirs?|r[a-zA-Z_]+) ', keywords) else []
|
307
|
+
|
308
|
+
# 递归所有的文件
|
309
|
+
rpaths = reduce(lambda x, y: x + y.select('**/*').subpaths(), [paths] + dirs) \
|
310
|
+
if re.search(r' (r[a-zA-Z_]+) ', keywords) else []
|
311
|
+
rfiles = [XlPath(p) for p in rpaths if p.is_file()] if re.search(r' (r(im)?files?) ', keywords) else []
|
312
|
+
rimfiles = [f for f in rfiles if self.is_image(f)] if re.search(r' rimfiles? ', keywords) else []
|
313
|
+
rdirs = [XlPath(p) for p in rpaths if p.is_dir()] if re.search(r' (rdirs?) ', keywords) else []
|
314
|
+
|
315
|
+
# 3 判断是否要智能开循环处理
|
316
|
+
m = re.search(r' (r?(path|(im)?file|dir)) ', keywords)
|
317
|
+
if m:
|
318
|
+
name = m.group(1)
|
319
|
+
objs = eval(name + 's')
|
320
|
+
print('len(' + name + 's)=', len(objs))
|
321
|
+
for x in objs:
|
322
|
+
locals()[name] = x
|
323
|
+
eval(self.cmds['subinput'])
|
324
|
+
else: # 没有的话就直接处理所有文件
|
325
|
+
eval(self.cmds['subinput'])
|
326
|
+
|
327
|
+
# 4 运行结束标志
|
328
|
+
print(f'finished in {format_timespan(tt.tocvalue())}.')
|
329
|
+
|
330
|
+
def open_jsonl(self):
|
331
|
+
""" 打开jsonl文件 """
|
332
|
+
from pyxllib.ext.JLineViewer import start_jlineviewer
|
333
|
+
start_jlineviewer(self.paths[0].as_posix())
|
334
|
+
|
335
|
+
def open_jsonl_with_excel(self):
|
336
|
+
""" 用excel打开jsonl文件 """
|
337
|
+
from pyxllib.algo.stat import write_dataframes_to_excel
|
338
|
+
|
339
|
+
file = self.paths[0].as_posix()
|
340
|
+
data = XlPath(file).read_jsonl()
|
341
|
+
|
342
|
+
file = XlPath.create_tempfile_path('.xlsx')
|
343
|
+
df = pd.DataFrame.from_dict(data)
|
344
|
+
write_dataframes_to_excel(file, {'Sheet1': df})
|
345
|
+
|
346
|
+
os.startfile(file)
|
347
|
+
|
348
|
+
|
349
349
|
if __name__ == '__main__':
|
350
350
|
with TicToc('utools'):
|
351
351
|
pass
|
@@ -45,7 +45,7 @@ _dir = Path(__file__).parent
|
|
45
45
|
|
46
46
|
setup(
|
47
47
|
name='pyxllib', # pip 安装时用的名字
|
48
|
-
version='0.3.
|
48
|
+
version='0.3.120', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
|
49
49
|
author='code4101',
|
50
50
|
author_email='877362867@qq.com',
|
51
51
|
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
|
@@ -21,28 +21,28 @@ Jinja2
|
|
21
21
|
pandas>=0.23.4
|
22
22
|
|
23
23
|
[xlai]
|
24
|
-
|
24
|
+
opsdroid-get-image-size
|
25
|
+
pynvml
|
25
26
|
opencv-python
|
26
27
|
pillow
|
27
|
-
|
28
|
-
opsdroid-get-image-size
|
28
|
+
visdom
|
29
29
|
|
30
30
|
[xlall]
|
31
|
-
flask-restful
|
32
31
|
flask-wtf
|
32
|
+
flask-restful
|
33
|
+
opsdroid-get-image-size
|
34
|
+
sentencepiece
|
33
35
|
opencv-python
|
36
|
+
flask-cors
|
34
37
|
flask
|
35
|
-
flask-jwt-extended
|
36
38
|
xlrd
|
37
|
-
pillow
|
38
39
|
zhconv
|
39
|
-
|
40
|
-
flask-cors
|
41
|
-
sentencepiece
|
40
|
+
flask-jwt-extended
|
42
41
|
html2text
|
43
|
-
|
42
|
+
pillow
|
43
|
+
ujson
|
44
44
|
|
45
45
|
[xlcv]
|
46
|
+
opsdroid-get-image-size
|
46
47
|
pillow
|
47
48
|
opencv-python
|
48
|
-
opsdroid-get-image-size
|
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
|