pyxllib 0.3.118__tar.gz → 0.3.119__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.118/pyxllib.egg-info → pyxllib-0.3.119}/PKG-INFO +1 -1
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/drissionlib.py +67 -8
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/kq5034lib.py +0 -19
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/specialist/filelib.py +24 -11
- {pyxllib-0.3.118 → pyxllib-0.3.119/pyxllib.egg-info}/PKG-INFO +1 -1
- {pyxllib-0.3.118 → pyxllib-0.3.119}/setup.py +1 -1
- {pyxllib-0.3.118 → pyxllib-0.3.119}/LICENSE +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/MANIFEST.in +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/README.md +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/algo/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/algo/disjoint.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/algo/geo.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/algo/intervals.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/algo/matcher.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/algo/newbie.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/algo/pupil.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/algo/shapelylib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/algo/specialist.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/algo/stat.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/algo/treelib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/algo/unitlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/cv/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/cv/expert.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/cv/imfile.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/cv/imhash.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/cv/pupil.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/cv/rgbfmt.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/cv/trackbartools.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/cv/xlcvlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/cv/xlpillib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/data/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/data/echarts.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/data/jsonlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/data/oss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/data/pglib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/data/sqlite.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/data/sqllib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/JLineViewer.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/autogui/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/autogui/autogui.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/autogui/virtualkey.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/demolib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/old.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/qt.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/robustprocfile.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/seleniumlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/tk.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/unixlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/utools.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/webhook.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/win32lib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/ext/yuquelib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/docxlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/gitlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/libreoffice.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/movielib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/newbie.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/onenotelib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/packlib/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/packlib/zipfile.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/pdflib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/pupil.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/specialist/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/specialist/dirlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/specialist/download.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/file/xlsxlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/cachetools.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/deprecatedlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/ipyexec.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/multiprocs.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/newbie.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/pupil.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/scheduler.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/sitepackages.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/specialist/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/specialist/bc.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/specialist/browser.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/specialist/common.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/specialist/datetime.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/specialist/tictoc.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/specialist/xllog.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/prog/xlosenv.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/stdlib/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/stdlib/tablepyxl/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/stdlib/tablepyxl/style.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/stdlib/tablepyxl/tablepyxl.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/ahocorasick.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/charclasslib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/jiebalib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/jinjalib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/jscode.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/latex/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/levenshtein.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/nestenv.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/newbie.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/pupil/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/pupil/common.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/pupil/xlalign.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/pycode.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/specialist/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/specialist/common.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/specialist/ptag.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/spellchecker.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/vbacode.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/text/xmllib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/xl.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib/xlcv.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib.egg-info/SOURCES.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib.egg-info/dependency_links.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib.egg-info/requires.txt +13 -13
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxllib.egg-info/top_level.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ai/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ai/clientlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ai/specialist.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ai/torch_app.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ai/xlpaddle.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ai/xltorch.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/coco.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/datacls.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/datasets.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/gptlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/icdar/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/icdar/deteval.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/icdar/icdar2013.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/icdar/iou.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/icdar/rrc_evaluation_funcs_1_1.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/imtextline.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/labelme.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/removeline.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/specialist.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/data/tiktokenlib.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/eval/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/paddleocr.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/configs/rec/multi_language/generate_multi_language_configs.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/ColorJitter.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/copy_paste.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/east_process.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/gen_table_mask.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/iaa_augment.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/label_ops.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/make_border_map.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/make_pse_gt.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/make_shrink_map.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/operators.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/pg_process.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/randaugment.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/random_crop_data.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/rec_img_aug.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/sast_process.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/text_image_aug/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/text_image_aug/augment.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/imaug/text_image_aug/warp_mls.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/lmdb_dataset.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/pgnet_dataset.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/pubtab_dataset.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/data/simple_dataset.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/ace_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/basic_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/center_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/cls_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/combined_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/det_basic_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/det_db_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/det_east_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/det_pse_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/det_sast_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/distillation_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/e2e_pg_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/kie_sdmgr_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/rec_aster_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/rec_att_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/rec_ctc_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/rec_enhanced_ctc_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/rec_nrtr_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/rec_sar_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/rec_srn_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/losses/table_att_loss.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/metrics/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/metrics/cls_metric.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/metrics/det_metric.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/metrics/distillation_metric.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/metrics/e2e_metric.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/metrics/eval_det_iou.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/metrics/kie_metric.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/metrics/rec_metric.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/metrics/table_metric.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/architectures/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/architectures/base_model.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/architectures/distillation_model.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/det_mobilenet_v3.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd_sast.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/e2e_resnet_vd_pg.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/kie_unet_sdmgr.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/rec_mobilenet_v3.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/rec_mv1_enhance.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/rec_nrtr_mtb.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/rec_resnet_31.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/rec_resnet_aster.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/rec_resnet_fpn.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/backbones/rec_resnet_vd.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/cls_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/det_db_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/det_east_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/det_pse_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/det_sast_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/e2e_pg_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/kie_sdmgr_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/multiheadAttention.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/rec_aster_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/rec_att_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/rec_ctc_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/rec_nrtr_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/rec_sar_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/rec_srn_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/self_attention.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/heads/table_att_head.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/necks/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/necks/db_fpn.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/necks/east_fpn.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/necks/fpn.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/necks/pg_fpn.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/necks/rnn.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/necks/sast_fpn.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/necks/table_fpn.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/transforms/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/transforms/stn.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/transforms/tps.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/modeling/transforms/tps_spatial_transformer.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/optimizer/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/optimizer/learning_rate.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/optimizer/lr_scheduler.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/optimizer/optimizer.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/optimizer/regularizer.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/postprocess/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/postprocess/cls_postprocess.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/postprocess/db_postprocess.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/postprocess/east_postprocess.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/postprocess/locality_aware_nms.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/postprocess/pg_postprocess.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/postprocess/pse_postprocess/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/setup.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/postprocess/pse_postprocess/pse_postprocess.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/postprocess/rec_postprocess.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/postprocess/sast_postprocess.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/eval.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/export_center.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/export_model.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/infer/predict_cls.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/infer/predict_det.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/infer/predict_e2e.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/infer/predict_rec.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/infer/predict_system.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/infer/utility.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/infer_cls.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/infer_det.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/infer_e2e.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/infer_kie.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/infer_rec.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/infer_table.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/program.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/test_hubserving.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/train.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/tools/xlprog.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/EN_symbol_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/ar_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/arabic_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/be_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/bg_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/chinese_cht_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/cyrillic_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/devanagari_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/en_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/fa_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/french_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/german_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/hi_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/it_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/japan_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/ka_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/korean_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/latin_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/mr_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/ne_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/oc_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/pu_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/rs_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/rsc_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/ru_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/ta_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/table_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/table_structure_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/te_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/ug_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/uk_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/ur_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict/xi_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/dict90.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/e2e_metric/Deteval.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/e2e_metric/polygon_fast.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/e2e_utils/extract_batchsize.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_fast.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_slow.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/e2e_utils/pgnet_pp_utils.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/e2e_utils/visual.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/en_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/gen_label.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/ic15_dict.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/iou.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/logging.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/network.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/ppocr_keys_v1.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/profiler.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/save_load.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/stats.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppocr/utils/utility.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/predict_system.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/table/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/table/eval_table.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/table/matcher.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/table/predict_structure.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/table/predict_table.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/table/table_metric/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/table/table_metric/parallel.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/table/table_metric/table_metric.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/table/tablepyxl/__init__.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/table/tablepyxl/style.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/table/tablepyxl/tablepyxl.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/ppstructure/utility.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/pyxlpr/xlai.py +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/requirements.txt +0 -0
- {pyxllib-0.3.118 → pyxllib-0.3.119}/setup.cfg +0 -0
@@ -3,6 +3,7 @@
|
|
3
3
|
# @Author : 陈坤泽
|
4
4
|
# @Email : 877362867@qq.com
|
5
5
|
# @Date : 2024/04/12
|
6
|
+
import time
|
6
7
|
|
7
8
|
from pyxllib.prog.pupil import check_install_package
|
8
9
|
|
@@ -13,10 +14,42 @@ from urllib.parse import unquote
|
|
13
14
|
|
14
15
|
import DrissionPage
|
15
16
|
from DrissionPage import ChromiumPage
|
17
|
+
from DrissionPage._pages.chromium_base import ChromiumBase
|
18
|
+
from DrissionPage._pages.chromium_tab import ChromiumTab
|
16
19
|
from DrissionPage._base.base import BasePage, BaseElement
|
17
20
|
|
18
21
|
from pyxllib.prog.pupil import inject_members
|
19
22
|
from pyxllib.text.pupil import strfind
|
23
|
+
from pyxllib.file.specialist import GetEtag
|
24
|
+
|
25
|
+
|
26
|
+
def get_dp_page(dp_page=None) -> 'XlPage':
|
27
|
+
"""
|
28
|
+
|
29
|
+
:param dp_page:
|
30
|
+
默认None, 返回默认的page,一般就是当前页面
|
31
|
+
True, 新建一个page
|
32
|
+
str, 新建一个对应url的page
|
33
|
+
func(tab), 通过规则筛选tab,返回符合条件的第1个tab,否则新建一个tab
|
34
|
+
"""
|
35
|
+
|
36
|
+
if isinstance(dp_page, ChromiumPage):
|
37
|
+
return dp_page
|
38
|
+
elif isinstance(dp_page, ChromiumTab):
|
39
|
+
return dp_page.page
|
40
|
+
elif callable(dp_page):
|
41
|
+
page0 = ChromiumPage()
|
42
|
+
for tab in page0.get_tabs():
|
43
|
+
if dp_page(tab):
|
44
|
+
return tab.page
|
45
|
+
return page0.new_tab().page
|
46
|
+
elif dp_page is True:
|
47
|
+
return ChromiumPage().new_tab().page
|
48
|
+
elif isinstance(dp_page, str):
|
49
|
+
return ChromiumPage().new_tab(dp_page).page
|
50
|
+
else:
|
51
|
+
return ChromiumPage()
|
52
|
+
|
20
53
|
|
21
54
|
def get_latest_not_dev_tab(page=None):
|
22
55
|
""" 开发工具本身也会算一个tab,这个函数返回最新的一个不是开发工具的tab """
|
@@ -45,7 +78,7 @@ def search_download_file(file_name):
|
|
45
78
|
return file
|
46
79
|
|
47
80
|
|
48
|
-
class
|
81
|
+
class XlChromiumBase(ChromiumBase):
|
49
82
|
def get2(self, url, show_errmsg=False, retry=None, interval=None):
|
50
83
|
"""
|
51
84
|
240418周四21:57,DrissionPage-4.0.4.21 官方自带page.get,有时候会有bug,不会实际刷新url,这里加个代码进行fix
|
@@ -64,7 +97,7 @@ class XlBasePage(BasePage):
|
|
64
97
|
except DrissionPage.errors.ElementLostError:
|
65
98
|
return self
|
66
99
|
|
67
|
-
def get_download_files(self):
|
100
|
+
def get_download_files(self: ChromiumPage):
|
68
101
|
""" 获取下载列表
|
69
102
|
|
70
103
|
:param search_name: 搜索文件名,输入该参数时,只会从上往下找到第一个匹配的文件
|
@@ -90,14 +123,40 @@ class XlBasePage(BasePage):
|
|
90
123
|
|
91
124
|
return files
|
92
125
|
|
126
|
+
def wait_page_not_change(self, interval=3):
|
127
|
+
""" 等待直到页面内容不再变化
|
128
|
+
|
129
|
+
:param interval: 时间间隔,需要判断当前内容和interval秒后的内容,看内容是否欧发生改变
|
130
|
+
"""
|
131
|
+
last_html, last_etag = None, None
|
132
|
+
while True:
|
133
|
+
html = self.html
|
134
|
+
etag = GetEtag.from_text(html)
|
135
|
+
if etag == last_etag:
|
136
|
+
break
|
137
|
+
|
138
|
+
last_html, last_etag = html, etag
|
139
|
+
time.sleep(interval)
|
140
|
+
return last_html
|
141
|
+
|
142
|
+
def action_type(self, ele, text, clear=True):
|
143
|
+
""" 基于action实现的重写入,常用于日期相关操作
|
144
|
+
因为很多日期类组件,直接使用ele.input是不生效的,哪怕看似显示了文本,但其实并没有触发js改动,需要用动作链来实现
|
145
|
+
"""
|
146
|
+
from DrissionPage.common import Keys
|
147
|
+
if clear:
|
148
|
+
self.actions.click(ele).key_down(Keys.CTRL).type('a').key_up(Keys.CTRL).type(text)
|
149
|
+
else:
|
150
|
+
self.actions.click(ele).type(text)
|
151
|
+
|
93
152
|
|
94
|
-
inject_members(
|
153
|
+
inject_members(XlChromiumBase, ChromiumBase)
|
95
154
|
|
96
155
|
|
97
|
-
class
|
98
|
-
|
99
|
-
|
100
|
-
self.input(vals)
|
156
|
+
class XlPage(XlChromiumBase, ChromiumTab, ChromiumPage):
|
157
|
+
""" 只作为一个类型标记,无实质功能。在猴子补丁背景下,让ide能正确跳转函数定义。 """
|
158
|
+
pass
|
101
159
|
|
102
160
|
|
103
|
-
|
161
|
+
def wait_page_not_change(page, interval=3):
|
162
|
+
page.wait_page_not_change(interval)
|
@@ -883,10 +883,6 @@ class 网课考勤:
|
|
883
883
|
# 然后自己手动操作验证码
|
884
884
|
# 以及选择"店铺"
|
885
885
|
|
886
|
-
def 登录微信支付(self):
|
887
|
-
driver = self.ensure_driver()
|
888
|
-
driver.get('https://pay.weixin.qq.com/index.php/core/home/login')
|
889
|
-
|
890
886
|
def 下载课次考勤数据(self, 起始课=None, 终止课=None, 文件名前缀=''):
|
891
887
|
if 起始课 is None:
|
892
888
|
起始课 = max(1, self.结束课次)
|
@@ -944,16 +940,6 @@ class 网课考勤:
|
|
944
940
|
def 批量退款(self):
|
945
941
|
self.driver.get('https://pay.weixin.qq.com/index.php/xphp/cbatchrefund/batch_refund#/pages/index/index')
|
946
942
|
|
947
|
-
def 申请单条退款(self, 凭证号, 退款金额=0, 退款原因=''):
|
948
|
-
driver = self.ensure_driver()
|
949
|
-
driver.get('https://pay.weixin.qq.com/index.php/core/refundapply')
|
950
|
-
driver.locate('//*[@id="app"]/div/div[2]/div[2]/div[2]/div/span/input').send_keys(凭证号)
|
951
|
-
driver.click('//*[@id="applyRefundBtn"]') # 申请退款
|
952
|
-
driver.locate('//*[@id="app"]/div/div[2]/div[2]/div[3]/div[2]/div/div[1]/div/span[1]/input').send_keys(
|
953
|
-
str(退款金额))
|
954
|
-
driver.locate('//*[@id="textInput"]').send_keys(退款原因)
|
955
|
-
# driver.click('//*[@id="commitRefundApplyBtn"]') # 建议手动点"提交申请"
|
956
|
-
|
957
943
|
|
958
944
|
class 网课考勤2(网课考勤):
|
959
945
|
def login_xe(self):
|
@@ -1695,11 +1681,6 @@ def 下载课次考勤数据(课程链接, 检查文本=''):
|
|
1695
1681
|
driver.click('//*[@id="data-export-container"]/div/div[2]/div/div[2]/div[2]/button[2]/span/span') # 导出
|
1696
1682
|
|
1697
1683
|
|
1698
|
-
def 登录微信支付():
|
1699
|
-
driver = get_driver()
|
1700
|
-
driver.get('https://pay.weixin.qq.com/index.php/core/home/login')
|
1701
|
-
|
1702
|
-
|
1703
1684
|
def 聚合读取考勤数据(data_dir, name, judge_minute=30):
|
1704
1685
|
"""
|
1705
1686
|
1、在目录"data_folder"下,找前缀包含name的所有文件
|
@@ -1476,20 +1476,33 @@ class XlPath(type(pathlib.Path())):
|
|
1476
1476
|
else:
|
1477
1477
|
return shutil.copytree(self, dst)
|
1478
1478
|
|
1479
|
-
def move(self, dst, if_exists=None):
|
1479
|
+
def move(self, dst, *, cross_disk=False, if_exists=None):
|
1480
|
+
"""
|
1481
|
+
:param cross_disk: 是否可能涉及跨磁盘操作
|
1482
|
+
"""
|
1480
1483
|
if not self.exists():
|
1481
1484
|
return self
|
1482
1485
|
|
1483
|
-
|
1484
|
-
|
1485
|
-
|
1486
|
-
|
1487
|
-
|
1488
|
-
|
1489
|
-
|
1490
|
-
|
1491
|
-
|
1492
|
-
|
1486
|
+
if cross_disk: # 显式设置跨磁盘操作
|
1487
|
+
dst = self.copy(dst, if_exists=if_exists)
|
1488
|
+
self.delete()
|
1489
|
+
return dst
|
1490
|
+
|
1491
|
+
try:
|
1492
|
+
dst = XlPath(dst)
|
1493
|
+
if self == dst:
|
1494
|
+
# 同一个文件,可能是调整了大小写名称
|
1495
|
+
if self.as_posix() != dst.as_posix():
|
1496
|
+
tmp = self.tempfile(dir=self.parent) # self不一定是file,也可能是dir,但这个名称通用
|
1497
|
+
self.rename(tmp)
|
1498
|
+
self.delete()
|
1499
|
+
tmp.rename(dst)
|
1500
|
+
elif dst.exist_preprcs(if_exists):
|
1501
|
+
self.rename(dst)
|
1502
|
+
except OSError:
|
1503
|
+
# 有可能是跨磁盘操作,这个时候就只能先拷贝再删除了
|
1504
|
+
dst = self.copy(dst, if_exists=if_exists)
|
1505
|
+
self.delete()
|
1493
1506
|
return dst
|
1494
1507
|
|
1495
1508
|
def rename2(self, new_name, if_exists=None):
|
@@ -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.119', # 当前版本,每次更新上传到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
|
@@ -21,28 +21,28 @@ Jinja2
|
|
21
21
|
pandas>=0.23.4
|
22
22
|
|
23
23
|
[xlai]
|
24
|
-
opencv-python
|
25
|
-
opsdroid-get-image-size
|
26
|
-
pynvml
|
27
24
|
visdom
|
25
|
+
opencv-python
|
28
26
|
pillow
|
27
|
+
pynvml
|
28
|
+
opsdroid-get-image-size
|
29
29
|
|
30
30
|
[xlall]
|
31
|
-
flask-
|
32
|
-
ujson
|
31
|
+
flask-restful
|
33
32
|
flask-wtf
|
34
33
|
opencv-python
|
35
|
-
opsdroid-get-image-size
|
36
|
-
zhconv
|
37
|
-
html2text
|
38
|
-
xlrd
|
39
34
|
flask
|
40
|
-
|
41
|
-
|
42
|
-
flask-restful
|
35
|
+
flask-jwt-extended
|
36
|
+
xlrd
|
43
37
|
pillow
|
38
|
+
zhconv
|
39
|
+
ujson
|
40
|
+
flask-cors
|
41
|
+
sentencepiece
|
42
|
+
html2text
|
43
|
+
opsdroid-get-image-size
|
44
44
|
|
45
45
|
[xlcv]
|
46
|
+
pillow
|
46
47
|
opencv-python
|
47
48
|
opsdroid-get-image-size
|
48
|
-
pillow
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|