pyxllib 0.3.104__tar.gz → 0.3.105__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.104/pyxllib.egg-info → pyxllib-0.3.105}/PKG-INFO +1 -1
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/data/pglib.py +32 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/data/sqlite.py +5 -0
- pyxllib-0.3.105/pyxllib/ext/drissionlib.py +103 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/utools.py +2 -2
- {pyxllib-0.3.104 → pyxllib-0.3.105/pyxllib.egg-info}/PKG-INFO +1 -1
- {pyxllib-0.3.104 → pyxllib-0.3.105}/setup.py +1 -1
- pyxllib-0.3.104/pyxllib/ext/drissionlib.py +0 -67
- {pyxllib-0.3.104 → pyxllib-0.3.105}/LICENSE +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/MANIFEST.in +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/README.md +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/algo/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/algo/disjoint.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/algo/geo.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/algo/intervals.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/algo/matcher.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/algo/newbie.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/algo/pupil.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/algo/shapelylib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/algo/specialist.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/algo/stat.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/algo/treelib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/algo/unitlib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/cv/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/cv/expert.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/cv/imfile.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/cv/imhash.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/cv/pupil.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/cv/rgbfmt.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/cv/trackbartools.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/cv/xlcvlib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/cv/xlpillib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/data/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/data/echarts.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/data/jsonlib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/data/oss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/data/sqllib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/JLineViewer.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/autogui/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/autogui/autogui.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/autogui/virtualkey.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/demolib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/kq5034lib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/old.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/qt.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/robustprocfile.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/seleniumlib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/tk.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/unixlib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/webhook.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/win32lib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/ext/yuquelib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/docxlib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/gitlib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/movielib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/newbie.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/onenotelib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/packlib/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/packlib/zipfile.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/pdflib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/pupil.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/specialist/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/specialist/dirlib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/specialist/download.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/specialist/filelib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/file/xlsxlib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/deprecatedlib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/ipyexec.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/multiprocs.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/newbie.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/pupil.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/sitepackages.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/specialist/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/specialist/bc.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/specialist/browser.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/specialist/common.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/specialist/datetime.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/specialist/tictoc.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/specialist/xllog.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/prog/xlosenv.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/stdlib/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/stdlib/tablepyxl/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/stdlib/tablepyxl/style.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/stdlib/tablepyxl/tablepyxl.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/ahocorasick.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/charclasslib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/jiebalib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/jscode.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/latex/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/levenshtein.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/nestenv.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/newbie.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/pupil/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/pupil/common.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/pupil/xlalign.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/pycode.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/specialist/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/specialist/common.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/specialist/ptag.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/spellchecker.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/vbacode.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/text/xmllib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/xl.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib/xlcv.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib.egg-info/SOURCES.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib.egg-info/dependency_links.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib.egg-info/requires.txt +4 -4
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxllib.egg-info/top_level.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ai/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ai/clientlib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ai/specialist.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ai/torch_app.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ai/xlpaddle.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ai/xltorch.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/coco.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/datacls.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/datasets.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/gptlib.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/icdar/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/icdar/deteval.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/icdar/icdar2013.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/icdar/iou.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/icdar/rrc_evaluation_funcs_1_1.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/imtextline.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/labelme.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/removeline.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/data/specialist.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/eval/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/paddleocr.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/configs/rec/multi_language/generate_multi_language_configs.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/ColorJitter.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/copy_paste.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/east_process.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/gen_table_mask.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/iaa_augment.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/label_ops.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/make_border_map.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/make_pse_gt.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/make_shrink_map.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/operators.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/pg_process.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/randaugment.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/random_crop_data.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/rec_img_aug.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/sast_process.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/text_image_aug/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/text_image_aug/augment.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/imaug/text_image_aug/warp_mls.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/lmdb_dataset.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/pgnet_dataset.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/pubtab_dataset.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/data/simple_dataset.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/ace_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/basic_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/center_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/cls_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/combined_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/det_basic_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/det_db_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/det_east_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/det_pse_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/det_sast_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/distillation_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/e2e_pg_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/kie_sdmgr_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/rec_aster_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/rec_att_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/rec_ctc_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/rec_enhanced_ctc_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/rec_nrtr_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/rec_sar_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/rec_srn_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/losses/table_att_loss.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/metrics/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/metrics/cls_metric.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/metrics/det_metric.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/metrics/distillation_metric.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/metrics/e2e_metric.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/metrics/eval_det_iou.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/metrics/kie_metric.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/metrics/rec_metric.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/metrics/table_metric.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/architectures/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/architectures/base_model.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/architectures/distillation_model.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/det_mobilenet_v3.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd_sast.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/e2e_resnet_vd_pg.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/kie_unet_sdmgr.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/rec_mobilenet_v3.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/rec_mv1_enhance.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/rec_nrtr_mtb.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/rec_resnet_31.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/rec_resnet_aster.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/rec_resnet_fpn.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/backbones/rec_resnet_vd.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/cls_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/det_db_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/det_east_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/det_pse_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/det_sast_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/e2e_pg_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/kie_sdmgr_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/multiheadAttention.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/rec_aster_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/rec_att_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/rec_ctc_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/rec_nrtr_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/rec_sar_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/rec_srn_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/self_attention.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/heads/table_att_head.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/necks/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/necks/db_fpn.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/necks/east_fpn.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/necks/fpn.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/necks/pg_fpn.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/necks/rnn.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/necks/sast_fpn.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/necks/table_fpn.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/transforms/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/transforms/stn.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/transforms/tps.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/modeling/transforms/tps_spatial_transformer.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/optimizer/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/optimizer/learning_rate.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/optimizer/lr_scheduler.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/optimizer/optimizer.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/optimizer/regularizer.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/postprocess/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/postprocess/cls_postprocess.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/postprocess/db_postprocess.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/postprocess/east_postprocess.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/postprocess/locality_aware_nms.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/postprocess/pg_postprocess.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/postprocess/pse_postprocess/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/setup.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/postprocess/pse_postprocess/pse_postprocess.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/postprocess/rec_postprocess.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/postprocess/sast_postprocess.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/eval.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/export_center.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/export_model.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/infer/predict_cls.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/infer/predict_det.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/infer/predict_e2e.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/infer/predict_rec.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/infer/predict_system.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/infer/utility.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/infer_cls.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/infer_det.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/infer_e2e.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/infer_kie.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/infer_rec.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/infer_table.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/program.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/test_hubserving.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/train.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/tools/xlprog.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/EN_symbol_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/ar_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/arabic_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/be_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/bg_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/chinese_cht_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/cyrillic_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/devanagari_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/en_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/fa_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/french_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/german_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/hi_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/it_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/japan_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/ka_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/korean_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/latin_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/mr_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/ne_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/oc_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/pu_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/rs_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/rsc_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/ru_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/ta_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/table_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/table_structure_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/te_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/ug_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/uk_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/ur_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict/xi_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/dict90.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/e2e_metric/Deteval.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/e2e_metric/polygon_fast.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/e2e_utils/extract_batchsize.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_fast.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_slow.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/e2e_utils/pgnet_pp_utils.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/e2e_utils/visual.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/en_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/gen_label.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/ic15_dict.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/iou.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/logging.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/network.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/ppocr_keys_v1.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/profiler.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/save_load.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/stats.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppocr/utils/utility.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/predict_system.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/table/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/table/eval_table.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/table/matcher.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/table/predict_structure.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/table/predict_table.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/table/table_metric/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/table/table_metric/parallel.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/table/table_metric/table_metric.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/table/tablepyxl/__init__.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/table/tablepyxl/style.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/table/tablepyxl/tablepyxl.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/ppstructure/utility.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/pyxlpr/xlai.py +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/requirements.txt +0 -0
- {pyxllib-0.3.104 → pyxllib-0.3.105}/setup.cfg +0 -0
@@ -34,6 +34,7 @@ import json
|
|
34
34
|
import json
|
35
35
|
import textwrap
|
36
36
|
import datetime
|
37
|
+
import re
|
37
38
|
|
38
39
|
from tqdm import tqdm
|
39
40
|
|
@@ -99,6 +100,37 @@ class Connection(psycopg.Connection, SqlBase):
|
|
99
100
|
self.execute(f"COMMENT ON COLUMN {table_name}.{col_name} IS $zyzf${comment}$zyzf$")
|
100
101
|
self.commit()
|
101
102
|
|
103
|
+
def reset_table_item_id(self, table_name, item_id_name=None, counter_name=None):
|
104
|
+
""" 重置表格的数据的id值,也重置计数器
|
105
|
+
|
106
|
+
:param item_id_name: 表格的自增id字段名,有一套我自己风格的自动推算算法
|
107
|
+
:param counter_name: 计数器字段名,如果有的话,也会重置
|
108
|
+
"""
|
109
|
+
# 1 重置数据的编号
|
110
|
+
if item_id_name is None:
|
111
|
+
m = re.match(r'(.+?)(_table)?$', table_name)
|
112
|
+
item_id_name = m.group(1) + '_id'
|
113
|
+
|
114
|
+
sql = f"""WITH cte AS (
|
115
|
+
SELECT {item_id_name}, ROW_NUMBER() OVER (ORDER BY {item_id_name}) AS new_{item_id_name}
|
116
|
+
FROM {table_name}
|
117
|
+
)
|
118
|
+
UPDATE {table_name}
|
119
|
+
SET {item_id_name} = cte.new_{item_id_name}
|
120
|
+
FROM cte
|
121
|
+
WHERE {table_name}.{item_id_name} = cte.{item_id_name}"""
|
122
|
+
self.execute(sql) # todo 这种sql写法好像偶尔有bug会出问题
|
123
|
+
self.commit()
|
124
|
+
|
125
|
+
# 2 重置计数器
|
126
|
+
if counter_name is None:
|
127
|
+
counter_name = f'{table_name}_{item_id_name}_seq'
|
128
|
+
|
129
|
+
# 找到目前最大的id值
|
130
|
+
max_id = self.exec2one(f'SELECT MAX({item_id_name}) FROM {table_name}')
|
131
|
+
self.execute(f'ALTER SEQUENCE {counter_name} RESTART WITH {max_id + 1}')
|
132
|
+
self.commit()
|
133
|
+
|
102
134
|
def __3_execute(self):
|
103
135
|
pass
|
104
136
|
|
@@ -12,7 +12,10 @@ from collections import defaultdict
|
|
12
12
|
|
13
13
|
import pandas as pd
|
14
14
|
|
15
|
+
# 旧版的pandas警告
|
15
16
|
warnings.filterwarnings('ignore', message="pandas only support SQLAlchemy connectable")
|
17
|
+
# 新版的pandas警告多了个's‘
|
18
|
+
warnings.filterwarnings('ignore', message="pandas only supports SQLAlchemy connectable")
|
16
19
|
|
17
20
|
|
18
21
|
class SqlBase:
|
@@ -191,6 +194,8 @@ class SqlBase:
|
|
191
194
|
cur.close()
|
192
195
|
self.commit()
|
193
196
|
|
197
|
+
self._commit_cache = defaultdict(list)
|
198
|
+
|
194
199
|
def update_row(self, table_name, cols, where, *, commit=False):
|
195
200
|
""" 【改】更新数据
|
196
201
|
|
@@ -0,0 +1,103 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Author : 陈坤泽
|
4
|
+
# @Email : 877362867@qq.com
|
5
|
+
# @Date : 2024/04/12
|
6
|
+
|
7
|
+
from pyxllib.prog.pupil import check_install_package
|
8
|
+
|
9
|
+
check_install_package('DrissionPage')
|
10
|
+
|
11
|
+
import re
|
12
|
+
from urllib.parse import unquote
|
13
|
+
|
14
|
+
import DrissionPage
|
15
|
+
from DrissionPage import ChromiumPage
|
16
|
+
from DrissionPage._base.base import BasePage, BaseElement
|
17
|
+
|
18
|
+
from pyxllib.prog.pupil import inject_members
|
19
|
+
|
20
|
+
|
21
|
+
def get_latest_not_dev_tab(page=None):
|
22
|
+
""" 开发工具本身也会算一个tab,这个函数返回最新的一个不是开发工具的tab """
|
23
|
+
if page is None:
|
24
|
+
page = ChromiumPage()
|
25
|
+
tabs = page.get_tabs()
|
26
|
+
for tab in tabs:
|
27
|
+
if tab.url.startswith('devtools://'):
|
28
|
+
continue
|
29
|
+
return tab
|
30
|
+
|
31
|
+
|
32
|
+
def set_input_text(input_ele, text):
|
33
|
+
""" 因为input输入框可能原本就自带了内容,为了不重复输入,先清空再输入 """
|
34
|
+
input_ele.clear()
|
35
|
+
input_ele.input(text)
|
36
|
+
|
37
|
+
|
38
|
+
def search_download_file(file_name):
|
39
|
+
file_name = file_name.replace(':', '_')
|
40
|
+
files = ChromiumPage().get_download_files()
|
41
|
+
for file in files:
|
42
|
+
if file_name in file['file']: # 正常情况下的匹配
|
43
|
+
return file
|
44
|
+
if file_name in file['file'].replace('+', ' '): # 但有时候'+'好像有点特别
|
45
|
+
return file
|
46
|
+
|
47
|
+
|
48
|
+
class XlBasePage(BasePage):
|
49
|
+
def get2(self, url, show_errmsg=False, retry=None, interval=None):
|
50
|
+
"""
|
51
|
+
240418周四21:57,DrissionPage-4.0.4.21 官方自带page.get,有时候会有bug,不会实际刷新url,这里加个代码进行fix
|
52
|
+
"""
|
53
|
+
old_url = self.url
|
54
|
+
if old_url == url:
|
55
|
+
# page.refresh()
|
56
|
+
return
|
57
|
+
|
58
|
+
ele = self.active_ele
|
59
|
+
self.get(url, show_errmsg=show_errmsg, retry=retry, interval=interval)
|
60
|
+
try: # 如果新页面获取成功,理论上旧的ele会失效
|
61
|
+
ele
|
62
|
+
self.refresh() # 如果不报错,这里网站要强制更新
|
63
|
+
return self
|
64
|
+
except DrissionPage.errors.ElementLostError:
|
65
|
+
return self
|
66
|
+
|
67
|
+
def get_download_files(self):
|
68
|
+
""" 获取下载列表
|
69
|
+
|
70
|
+
:param search_name: 搜索文件名,输入该参数时,只会从上往下找到第一个匹配的文件
|
71
|
+
否则返回一个list结构,存储下载清单里的文件
|
72
|
+
:return:
|
73
|
+
|
74
|
+
todo 默认应该显示是不全的,有时间可以考虑往下滑动继续检索的功能
|
75
|
+
"""
|
76
|
+
files = []
|
77
|
+
page2 = self.new_tab('chrome://downloads/')
|
78
|
+
items = page2('tag:downloads-manager', timeout=1).sr('#mainContainer')('#downloadsList').eles(
|
79
|
+
'tag:downloads-item')
|
80
|
+
for item in items:
|
81
|
+
loc = unquote(item.sr('tag:img').attr('src').replace('+', ' '))
|
82
|
+
file = re.search(r'path=(.+?)(&scale=\d+x)?$', loc).group(1)
|
83
|
+
|
84
|
+
files.append({
|
85
|
+
'file': file,
|
86
|
+
'url': unquote(item.sr('#url').attr('href'))
|
87
|
+
})
|
88
|
+
|
89
|
+
page2.close()
|
90
|
+
|
91
|
+
return files
|
92
|
+
|
93
|
+
|
94
|
+
inject_members(XlBasePage, BasePage)
|
95
|
+
|
96
|
+
|
97
|
+
class XlBaseElement(BaseElement):
|
98
|
+
def input2(self, vals, clear=False, by_js=False):
|
99
|
+
self.clear()
|
100
|
+
self.input(vals)
|
101
|
+
|
102
|
+
|
103
|
+
inject_members(XlBaseElement, BaseElement)
|
@@ -130,8 +130,8 @@ class UtoolsBase:
|
|
130
130
|
except OSError: # 忽略错误的扩展名
|
131
131
|
f1 = XlPath.init('left', XlPath.tempdir())
|
132
132
|
f2 = XlPath.init('right', XlPath.tempdir())
|
133
|
-
f1.write_text(
|
134
|
-
f2.write_text(self.cmds['ClipText'])
|
133
|
+
f1.write_text(self.cmds['ClipText'])
|
134
|
+
f2.write_text(self.cmds['ClipText'] + '\n')
|
135
135
|
bcompare(f1, f2, wait=False)
|
136
136
|
|
137
137
|
|
@@ -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.105', # 当前版本,每次更新上传到pypi都需要修改; 第4位版本号一般是修紧急bug
|
34
34
|
author='code4101',
|
35
35
|
author_email='877362867@qq.com',
|
36
36
|
url='https://github.com/XLPRUtils/pyxllib',
|
@@ -1,67 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python3
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
# @Author : 陈坤泽
|
4
|
-
# @Email : 877362867@qq.com
|
5
|
-
# @Date : 2024/04/12
|
6
|
-
|
7
|
-
from pyxllib.prog.pupil import check_install_package
|
8
|
-
|
9
|
-
check_install_package('DrissionPage')
|
10
|
-
|
11
|
-
import re
|
12
|
-
from urllib.parse import unquote
|
13
|
-
|
14
|
-
from DrissionPage import ChromiumPage
|
15
|
-
|
16
|
-
|
17
|
-
def get_latest_not_dev_tab(page=None):
|
18
|
-
""" 开发工具本身也会算一个tab,这个函数返回最新的一个不是开发工具的tab """
|
19
|
-
if page is None:
|
20
|
-
page = ChromiumPage()
|
21
|
-
tabs = page.get_tabs()
|
22
|
-
for tab in tabs:
|
23
|
-
if tab.url.startswith('devtools://'):
|
24
|
-
continue
|
25
|
-
return tab
|
26
|
-
|
27
|
-
|
28
|
-
def set_input_text(input_ele, text):
|
29
|
-
""" 因为input输入框可能原本就自带了内容,为了不重复输入,先清空再输入 """
|
30
|
-
input_ele.clear()
|
31
|
-
input_ele.input(text)
|
32
|
-
|
33
|
-
|
34
|
-
def get_download_files(page=None):
|
35
|
-
""" 获取下载列表
|
36
|
-
|
37
|
-
:param search_name: 搜索文件名,输入该参数时,只会从上往下找到第一个匹配的文件
|
38
|
-
否则返回一个list结构,存储下载清单里的文件
|
39
|
-
:return:
|
40
|
-
|
41
|
-
todo 默认应该显示是不全的,有时间可以考虑往下滑动继续检索的功能
|
42
|
-
"""
|
43
|
-
if page is None:
|
44
|
-
page = ChromiumPage()
|
45
|
-
|
46
|
-
files = []
|
47
|
-
page2 = page.new_tab('chrome://downloads/')
|
48
|
-
items = page2('tag:downloads-manager', timeout=1).sr('#mainContainer')('#downloadsList').eles('tag:downloads-item')
|
49
|
-
for item in items:
|
50
|
-
loc = unquote(item.sr('tag:img').attr('src'))
|
51
|
-
file = re.search(r'path=(.+?)(&scale=\d+x)?$', loc).group(1)
|
52
|
-
|
53
|
-
files.append({
|
54
|
-
'file': file,
|
55
|
-
'url': unquote(item.sr('#url').attr('href'))
|
56
|
-
})
|
57
|
-
|
58
|
-
page2.close()
|
59
|
-
|
60
|
-
return files
|
61
|
-
|
62
|
-
|
63
|
-
def search_download_file(file_name):
|
64
|
-
files = get_download_files()
|
65
|
-
for file in files:
|
66
|
-
if file_name in file['file']:
|
67
|
-
return file
|
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,14 +21,14 @@ Jinja2
|
|
21
21
|
pandas>=0.23.4
|
22
22
|
|
23
23
|
[xlai]
|
24
|
-
pillow
|
25
|
-
opsdroid-get-image-size
|
26
24
|
visdom
|
27
25
|
pynvml
|
28
|
-
|
26
|
+
pillow
|
27
|
+
opsdroid-get-image-size
|
29
28
|
opencv-python
|
29
|
+
xlcocotools
|
30
30
|
|
31
31
|
[xlcv]
|
32
|
+
opsdroid-get-image-size
|
32
33
|
opencv-python
|
33
34
|
pillow
|
34
|
-
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
|
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
|