pyxllib 0.3.128__tar.gz → 0.3.130__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.130/PKG-INFO +86 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/algo/intervals.py +1 -1
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/algo/newbie.py +54 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/data/pglib.py +49 -46
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/yuquelib.py +2 -2
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/pupil.py +1 -1
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/specialist/filelib.py +1 -1
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/xlsxlib.py +1 -1
- pyxllib-0.3.130/pyxllib/file/xlsyncfile.py +316 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/specialist/__init__.py +2 -1
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/nestenv.py +1 -1
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/specialist/ptag.py +2 -2
- pyxllib-0.3.130/pyxllib.egg-info/PKG-INFO +86 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib.egg-info/SOURCES.txt +1 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib.egg-info/requires.txt +15 -14
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/openai2/_core/chat.py +45 -6
- {pyxllib-0.3.128 → pyxllib-0.3.130}/setup.py +3 -1
- pyxllib-0.3.128/PKG-INFO +0 -38
- pyxllib-0.3.128/pyxllib.egg-info/PKG-INFO +0 -38
- {pyxllib-0.3.128 → pyxllib-0.3.130}/LICENSE +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/MANIFEST.in +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/README.md +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/algo/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/algo/disjoint.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/algo/geo.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/algo/matcher.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/algo/pupil.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/algo/shapelylib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/algo/specialist.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/algo/stat.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/algo/treelib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/algo/unitlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/cv/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/cv/expert.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/cv/imfile.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/cv/imhash.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/cv/pupil.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/cv/rgbfmt.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/cv/trackbartools.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/cv/xlcvlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/cv/xlpillib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/data/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/data/echarts.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/data/jsonlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/data/oss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/data/sqlite.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/data/sqllib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/JLineViewer.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/autogui/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/autogui/autogui.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/autogui/virtualkey.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/demolib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/drissionlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/kq5034lib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/old.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/qt.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/robustprocfile.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/seleniumlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/tk.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/unixlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/utools.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/webhook.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/ext/win32lib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/docxlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/gitlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/libreoffice.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/movielib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/newbie.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/onenotelib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/packlib/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/packlib/zipfile.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/pdflib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/specialist/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/specialist/dirlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/file/specialist/download.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/cachetools.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/deprecatedlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/ipyexec.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/multiprocs.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/newbie.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/pupil.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/scheduler.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/sitepackages.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/specialist/bc.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/specialist/browser.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/specialist/common.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/specialist/datetime.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/specialist/tictoc.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/specialist/xllog.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/prog/xlosenv.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/stdlib/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/stdlib/tablepyxl/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/stdlib/tablepyxl/style.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/stdlib/tablepyxl/tablepyxl.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/ahocorasick.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/charclasslib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/jiebalib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/jinjalib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/jscode.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/latex/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/levenshtein.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/newbie.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/pupil/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/pupil/common.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/pupil/xlalign.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/pycode.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/specialist/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/specialist/common.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/spellchecker.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/templates/echart_base.html +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/templates/highlight_code.html +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/templates/latex_editor.html +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/vbacode.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/text/xmllib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/xl.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib/xlcv.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib.egg-info/dependency_links.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxllib.egg-info/top_level.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ai/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ai/clientlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ai/specialist.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ai/torch_app.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ai/xlpaddle.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ai/xltorch.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/coco.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/datacls.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/datasets.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/gptlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/icdar/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/icdar/deteval.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/icdar/icdar2013.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/icdar/iou.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/icdar/rrc_evaluation_funcs_1_1.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/imtextline.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/labelme.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/removeline.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/specialist.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/data/tiktokenlib.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/eval/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/openai2/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/openai2/_core/chat_in_cmd.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/openai2/_core/group_chat.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/openai2/openai2.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/paddleocr.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/configs/rec/multi_language/generate_multi_language_configs.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/ColorJitter.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/copy_paste.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/east_process.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/gen_table_mask.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/iaa_augment.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/label_ops.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/make_border_map.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/make_pse_gt.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/make_shrink_map.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/operators.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/pg_process.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/randaugment.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/random_crop_data.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/rec_img_aug.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/sast_process.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/text_image_aug/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/text_image_aug/augment.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/imaug/text_image_aug/warp_mls.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/lmdb_dataset.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/pgnet_dataset.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/pubtab_dataset.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/data/simple_dataset.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/ace_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/basic_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/center_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/cls_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/combined_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/det_basic_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/det_db_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/det_east_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/det_pse_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/det_sast_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/distillation_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/e2e_pg_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/kie_sdmgr_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/rec_aster_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/rec_att_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/rec_ctc_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/rec_enhanced_ctc_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/rec_nrtr_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/rec_sar_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/rec_srn_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/losses/table_att_loss.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/metrics/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/metrics/cls_metric.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/metrics/det_metric.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/metrics/distillation_metric.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/metrics/e2e_metric.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/metrics/eval_det_iou.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/metrics/kie_metric.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/metrics/rec_metric.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/metrics/table_metric.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/architectures/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/architectures/base_model.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/architectures/distillation_model.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/det_mobilenet_v3.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/det_resnet_vd_sast.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/e2e_resnet_vd_pg.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/kie_unet_sdmgr.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/rec_mobilenet_v3.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/rec_mv1_enhance.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/rec_nrtr_mtb.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/rec_resnet_31.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/rec_resnet_aster.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/rec_resnet_fpn.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/backbones/rec_resnet_vd.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/cls_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/det_db_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/det_east_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/det_pse_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/det_sast_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/e2e_pg_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/kie_sdmgr_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/multiheadAttention.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/rec_aster_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/rec_att_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/rec_ctc_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/rec_nrtr_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/rec_sar_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/rec_srn_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/self_attention.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/heads/table_att_head.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/necks/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/necks/db_fpn.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/necks/east_fpn.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/necks/fpn.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/necks/pg_fpn.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/necks/rnn.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/necks/sast_fpn.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/necks/table_fpn.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/transforms/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/transforms/stn.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/transforms/tps.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/modeling/transforms/tps_spatial_transformer.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/optimizer/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/optimizer/learning_rate.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/optimizer/lr_scheduler.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/optimizer/optimizer.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/optimizer/regularizer.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/postprocess/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/postprocess/cls_postprocess.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/postprocess/db_postprocess.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/postprocess/east_postprocess.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/postprocess/locality_aware_nms.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/postprocess/pg_postprocess.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/postprocess/pse_postprocess/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/postprocess/pse_postprocess/pse/setup.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/postprocess/pse_postprocess/pse_postprocess.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/postprocess/rec_postprocess.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/postprocess/sast_postprocess.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/eval.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/export_center.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/export_model.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/infer/predict_cls.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/infer/predict_det.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/infer/predict_e2e.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/infer/predict_rec.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/infer/predict_system.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/infer/utility.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/infer_cls.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/infer_det.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/infer_e2e.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/infer_kie.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/infer_rec.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/infer_table.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/program.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/test_hubserving.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/train.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/tools/xlprog.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/EN_symbol_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/ar_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/arabic_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/be_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/bg_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/chinese_cht_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/cyrillic_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/devanagari_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/en_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/fa_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/french_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/german_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/hi_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/it_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/japan_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/ka_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/korean_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/latin_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/mr_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/ne_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/oc_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/pu_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/rs_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/rsc_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/ru_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/ta_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/table_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/table_structure_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/te_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/ug_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/uk_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/ur_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict/xi_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/dict90.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/e2e_metric/Deteval.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/e2e_metric/polygon_fast.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/e2e_utils/extract_batchsize.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_fast.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/e2e_utils/extract_textpoint_slow.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/e2e_utils/pgnet_pp_utils.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/e2e_utils/visual.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/en_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/gen_label.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/ic15_dict.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/iou.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/logging.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/network.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/ppocr_keys_v1.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/profiler.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/save_load.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/stats.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppocr/utils/utility.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/predict_system.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/table/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/table/eval_table.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/table/matcher.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/table/predict_structure.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/table/predict_table.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/table/table_metric/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/table/table_metric/parallel.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/table/table_metric/table_metric.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/table/tablepyxl/__init__.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/table/tablepyxl/style.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/table/tablepyxl/tablepyxl.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/ppstructure/utility.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/pyxlpr/xlai.py +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/requirements.txt +0 -0
- {pyxllib-0.3.128 → pyxllib-0.3.130}/setup.cfg +0 -0
pyxllib-0.3.130/PKG-INFO
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: pyxllib
|
3
|
+
Version: 0.3.130
|
4
|
+
Summary: 厦门理工模式识别团队通用python代码工具库
|
5
|
+
Home-page: https://github.com/XLPRUtils/pyxllib
|
6
|
+
Author: code4101
|
7
|
+
Author-email: 877362867@qq.com
|
8
|
+
License: Apache License 2.0
|
9
|
+
Keywords: pyxllib,pyxlpr
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
11
|
+
Classifier: Intended Audience :: Developers
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
13
|
+
Classifier: Operating System :: OS Independent
|
14
|
+
Requires-Python: >=3.6
|
15
|
+
Description-Content-Type: text/markdown
|
16
|
+
License-File: LICENSE
|
17
|
+
Requires-Dist: arrow
|
18
|
+
Requires-Dist: charset-normalizer
|
19
|
+
Requires-Dist: requests
|
20
|
+
Requires-Dist: qiniu
|
21
|
+
Requires-Dist: pyyaml
|
22
|
+
Requires-Dist: loguru
|
23
|
+
Requires-Dist: humanfriendly
|
24
|
+
Requires-Dist: tqdm
|
25
|
+
Requires-Dist: ujson
|
26
|
+
Requires-Dist: Deprecated
|
27
|
+
Requires-Dist: pyperclip
|
28
|
+
Requires-Dist: envariable
|
29
|
+
Requires-Dist: decorator
|
30
|
+
Requires-Dist: more-itertools
|
31
|
+
Requires-Dist: fire
|
32
|
+
Requires-Dist: xlrd
|
33
|
+
Requires-Dist: pympler
|
34
|
+
Requires-Dist: lxml
|
35
|
+
Requires-Dist: beautifulsoup4
|
36
|
+
Requires-Dist: numpy
|
37
|
+
Requires-Dist: Jinja2
|
38
|
+
Requires-Dist: pandas>=0.23.4
|
39
|
+
Requires-Dist: pillow
|
40
|
+
Provides-Extra: xlcv
|
41
|
+
Requires-Dist: opencv-python; extra == "xlcv"
|
42
|
+
Requires-Dist: pillow; extra == "xlcv"
|
43
|
+
Requires-Dist: opsdroid-get-image-size; extra == "xlcv"
|
44
|
+
Provides-Extra: xlai
|
45
|
+
Requires-Dist: opsdroid-get-image-size; extra == "xlai"
|
46
|
+
Requires-Dist: pynvml; extra == "xlai"
|
47
|
+
Requires-Dist: opencv-python; extra == "xlai"
|
48
|
+
Requires-Dist: visdom; extra == "xlai"
|
49
|
+
Requires-Dist: pillow; extra == "xlai"
|
50
|
+
Provides-Extra: xlall
|
51
|
+
Requires-Dist: xlrd; extra == "xlall"
|
52
|
+
Requires-Dist: html2text; extra == "xlall"
|
53
|
+
Requires-Dist: flask-restful; extra == "xlall"
|
54
|
+
Requires-Dist: opsdroid-get-image-size; extra == "xlall"
|
55
|
+
Requires-Dist: flask-jwt-extended; extra == "xlall"
|
56
|
+
Requires-Dist: flask; extra == "xlall"
|
57
|
+
Requires-Dist: ujson; extra == "xlall"
|
58
|
+
Requires-Dist: arts; extra == "xlall"
|
59
|
+
Requires-Dist: flask-wtf; extra == "xlall"
|
60
|
+
Requires-Dist: opencv-python; extra == "xlall"
|
61
|
+
Requires-Dist: sentencepiece; extra == "xlall"
|
62
|
+
Requires-Dist: openai2; extra == "xlall"
|
63
|
+
Requires-Dist: fastapi; extra == "xlall"
|
64
|
+
Requires-Dist: zhconv; extra == "xlall"
|
65
|
+
Requires-Dist: pillow; extra == "xlall"
|
66
|
+
Requires-Dist: uvicorn; extra == "xlall"
|
67
|
+
Requires-Dist: flask-cors; extra == "xlall"
|
68
|
+
|
69
|
+
# 1 install
|
70
|
+
|
71
|
+
```
|
72
|
+
pip install pyxllib
|
73
|
+
```
|
74
|
+
|
75
|
+
more details: https://www.yuque.com/xlpr/pyxllib/install
|
76
|
+
|
77
|
+
# 2 document
|
78
|
+
|
79
|
+
document: https://www.yuque.com/xlpr/pyxllib.
|
80
|
+
Work hard to improve, welcome more assistant partners.
|
81
|
+
|
82
|
+
# 3 Acknowledge
|
83
|
+
|
84
|
+
This project uses PyCharm to develop.
|
85
|
+
Thanks to [JetBrains'](https://www.jetbrains.com/?from=pyxllib) support
|
86
|
+
of [free license for open sourse project development](https://pycharm.iswbm.com/c01/c01_05.html).
|
@@ -164,3 +164,57 @@ def cvsecs(time):
|
|
164
164
|
return time
|
165
165
|
|
166
166
|
return sum(mult * part for mult, part in zip(factors, reversed(time)))
|
167
|
+
|
168
|
+
|
169
|
+
def find_optimal_page_size(total_items, page_sizes, seen_items=0):
|
170
|
+
"""
|
171
|
+
找到最优的分页大小,使得最后一页的新样本数尽可能多,已见样本数尽可能少。
|
172
|
+
本函数由gpt-o1生成。
|
173
|
+
|
174
|
+
:param int total_items: 总的条目数(样本数)。
|
175
|
+
:param List[int] page_sizes: 可供选择的分页大小列表。
|
176
|
+
:param int seen_items: 已经看过的样本数,默认为0。
|
177
|
+
:return: Tuple[int, int, int], 包含最优的分页大小、最后一页的新样本数、最后一页的已见样本数。
|
178
|
+
|
179
|
+
>>> find_optimal_page_size(64, [2, 5, 10, 14, 20, 50, 100])
|
180
|
+
(100, 64, 0)
|
181
|
+
>>> find_optimal_page_size(64, [2, 5, 10, 14, 20, 50, 100], seen_items=55)
|
182
|
+
(50, 9, 5)
|
183
|
+
"""
|
184
|
+
page_sizes = sorted(set(page_sizes), reverse=True) # 去重并从大到小排序
|
185
|
+
max_new_items = -1
|
186
|
+
min_seen_items_in_page = total_items + 1 # 初始化为一个大于可能的最大值
|
187
|
+
optimal_page_size = None
|
188
|
+
total_new_items = total_items - seen_items # 总的新样本数
|
189
|
+
|
190
|
+
for page_size in page_sizes:
|
191
|
+
if page_size <= 0:
|
192
|
+
continue # 跳过非正整数的分页大小
|
193
|
+
|
194
|
+
total_pages = -(-total_items // page_size) # 等价于 math.ceil(total_items / page_size)
|
195
|
+
start_index = (total_pages - 1) * page_size + 1
|
196
|
+
end_index = min(total_pages * page_size, total_items)
|
197
|
+
last_page_indices = range(start_index, end_index + 1)
|
198
|
+
|
199
|
+
# 计算新样本数和已见样本数
|
200
|
+
new_items_in_page = len([i for i in last_page_indices if i > seen_items])
|
201
|
+
seen_items_in_page = len([i for i in last_page_indices if i <= seen_items])
|
202
|
+
|
203
|
+
# 更新最优分页大小
|
204
|
+
if new_items_in_page > max_new_items:
|
205
|
+
max_new_items = new_items_in_page
|
206
|
+
min_seen_items_in_page = seen_items_in_page
|
207
|
+
optimal_page_size = page_size
|
208
|
+
# 如果已达到最大可能的新样本数且已见样本数为 0,提前退出
|
209
|
+
if max_new_items == total_new_items and min_seen_items_in_page == 0:
|
210
|
+
break
|
211
|
+
elif new_items_in_page == max_new_items and seen_items_in_page < min_seen_items_in_page:
|
212
|
+
min_seen_items_in_page = seen_items_in_page
|
213
|
+
optimal_page_size = page_size
|
214
|
+
if min_seen_items_in_page == 0:
|
215
|
+
break
|
216
|
+
# 如果当前的 page_size 已经小于或等于最大新样本数,后续的 page_size 不会有更好的结果,可以退出循环
|
217
|
+
elif page_size <= max_new_items:
|
218
|
+
break
|
219
|
+
|
220
|
+
return optimal_page_size, max_new_items, min_seen_items_in_page
|
@@ -781,27 +781,30 @@ class XlprDb(Connection):
|
|
781
781
|
def pretty_val(v):
|
782
782
|
return round_int(v) if v > 100 else round(v, 2)
|
783
783
|
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
784
|
+
try:
|
785
|
+
chart = Line()
|
786
|
+
chart.set_title(title)
|
787
|
+
chart.options['xAxis'][0].update({'min': ls[0][0], 'type': 'time',
|
788
|
+
# 'minInterval': 3600 * 1000 * 24,
|
789
|
+
'name': '时间', 'nameGap': 50, 'nameLocation': 'middle'})
|
790
|
+
chart.options['yAxis'][0].update({'name': yaxis_name, 'nameGap': 50, 'nameLocation': 'middle'})
|
791
|
+
# 目前是比较暴力的方法调整排版,后续要研究是不是能更自动灵活些
|
792
|
+
chart.options['legend'][0].update({'top': '6%', 'icon': 'pin'})
|
793
|
+
chart.options['grid'] = [{'top': 55 + len(all_users_usaged) * 4, 'containLabel': True}]
|
794
|
+
chart.options['tooltip'].opts.update({'axisPointer': {'type': 'cross'}, 'trigger': 'item'})
|
795
|
+
|
796
|
+
chart.add_series(f'total{pretty_val(ls[0][1]):g}', to_list([x[1] for x in ls]), areaStyle={})
|
797
|
+
for user, usaged in all_users_usaged.most_common():
|
798
|
+
usaged = usaged / ((ls[-1][0] - ls[0][0]).total_seconds() / 3600 + 1e-9)
|
799
|
+
chart.add_series(f'{user}{pretty_val(usaged):g}',
|
800
|
+
to_list([x[2].get(user, 0) for x in ls]),
|
801
|
+
areaStyle={}, stack='Total', emphasis={'focus': 'series'})
|
802
|
+
|
803
|
+
return '<body>' + chart.render_embed() + '</body>', sum(all_users_usaged.values())
|
804
|
+
except Exception as e:
|
805
|
+
return str(e), 0
|
806
|
+
|
807
|
+
# cdx_edit
|
805
808
|
def _get_database_trace_total(self, title, yaxis_name, date_trunc, recent, link_name):
|
806
809
|
ls = self.execute(textwrap.dedent(f"""\
|
807
810
|
WITH cte1 AS(
|
@@ -817,7 +820,6 @@ class XlprDb(Connection):
|
|
817
820
|
ORDER BY ttime"""), ((utc_now(8) - recent).isoformat(timespec='seconds'),)).fetchall()
|
818
821
|
return self.database_create_stack_chart(title, ls, yaxis_name=yaxis_name)
|
819
822
|
|
820
|
-
|
821
823
|
def _get_database_trace_per_host(self, db, title, yaxis_name, date_trunc, recent, link_name):
|
822
824
|
ls = self.execute(textwrap.dedent(f"""\
|
823
825
|
WITH cte1 AS (
|
@@ -860,20 +862,20 @@ class XlprDb(Connection):
|
|
860
862
|
if k == '_total':
|
861
863
|
continue
|
862
864
|
all_database_usaged[k] += v * hours
|
863
|
-
|
865
|
+
|
864
866
|
for i, x in enumerate(ls):
|
865
867
|
ct = Counter()
|
866
868
|
for k, v in x[1].items():
|
867
869
|
ct[k] += v
|
868
870
|
ls[i] = (x[0], ct, int(x[2]))
|
869
|
-
|
871
|
+
|
870
872
|
# 2 转图表可视化
|
871
873
|
def to_list(values):
|
872
874
|
return [(x[0], v) for x, v in zip(ls, values)]
|
873
|
-
|
875
|
+
|
874
876
|
def pretty_val(v):
|
875
877
|
return round_int(v) if v > 100 else round(v, 2)
|
876
|
-
|
878
|
+
|
877
879
|
chart = Line()
|
878
880
|
chart.set_title(title)
|
879
881
|
chart.options['xAxis'][0].update({'min': ls[0][0], 'type': 'time',
|
@@ -882,51 +884,52 @@ class XlprDb(Connection):
|
|
882
884
|
chart.options['yAxis'][0].update({'name': yaxis_name, 'nameGap': 50, 'nameLocation': 'middle'})
|
883
885
|
# 目前是比较暴力的方法调整排版,后续要研究是不是能更自动灵活些
|
884
886
|
chart.options['legend'][0].update({'top': '6%', 'icon': 'pin'})
|
885
|
-
chart.options['grid'] = [{'top': 55 + len(all_database_usaged) * 4
|
887
|
+
chart.options['grid'] = [{'top': 55 + len(all_database_usaged) * 4, 'containLabel': True}]
|
886
888
|
chart.options['tooltip'].opts.update({'axisPointer': {'type': 'cross'}, 'trigger': 'item'})
|
887
|
-
|
888
|
-
chart.add_series(f'total {pretty_val(ls[0][2]/1024/1024/1024):g}',
|
889
|
+
|
890
|
+
#chart.add_series(f'total {pretty_val(ls[0][2] / 1024 / 1024 / 1024):g}',
|
891
|
+
# to_list([x[2] / 1024 / 1024 / 1024 for x in ls]), areaStyle={})
|
889
892
|
for database, usaged in all_database_usaged.most_common():
|
890
893
|
usaged = usaged / ((ls[-1][0] - ls[0][0]).total_seconds() / 3600 + 1e-9)
|
891
|
-
chart.add_series(f'{database} {pretty_val(usaged/1024/1024/1024):g}',
|
892
|
-
to_list([x[1].get(database, 0)/1024/1024/1024 for x in ls]),
|
894
|
+
chart.add_series(f'{database} {pretty_val(usaged / 1024 / 1024 / 1024):g}',
|
895
|
+
to_list([x[1].get(database, 0) / 1024 / 1024 / 1024 for x in ls]),
|
893
896
|
areaStyle={}, stack='Total', emphasis={'focus': 'series'})
|
894
897
|
return '<body>' + chart.render_embed() + '</body>'
|
895
898
|
|
896
|
-
def dbview_xldb1_memory(self,recent=datetime.timedelta(days=
|
899
|
+
def dbview_xldb1_memory(self, recent=datetime.timedelta(days=180), date_trunc='day'):
|
897
900
|
from pyxllib.data.echarts import render_echart_html
|
898
|
-
|
899
|
-
db_list = ['
|
901
|
+
|
902
|
+
db_list = ['stdata', 'xlpr', 'st', 'ckz']
|
900
903
|
args = ['数据库大小(GB)', date_trunc, recent, 'xldb1']
|
901
904
|
htmltexts = []
|
902
905
|
|
903
|
-
res = self._get_database_trace_total('
|
906
|
+
res = self._get_database_trace_total('xldb1数据库使用近况', *args)
|
904
907
|
htmltexts.append(res)
|
905
908
|
|
906
909
|
data_stats = []
|
907
|
-
for idx,db in enumerate(db_list,start=1):
|
908
|
-
data_stats.append(self._get_database_trace_per_host(db,f'{db}', *args))
|
910
|
+
for idx, db in enumerate(db_list, start=1):
|
911
|
+
data_stats.append(self._get_database_trace_per_host(db, f'{db}', *args))
|
909
912
|
htmltexts += data_stats
|
910
913
|
|
911
914
|
self.commit()
|
912
915
|
h = render_echart_html('database_cdx', body='<br/>'.join(htmltexts))
|
913
916
|
return h
|
914
|
-
|
915
|
-
def dbview_xldb2_memory(self, recent=datetime.timedelta(days=
|
917
|
+
|
918
|
+
def dbview_xldb2_memory(self, recent=datetime.timedelta(days=180), date_trunc='day'):
|
916
919
|
from pyxllib.data.echarts import render_echart_html
|
917
|
-
|
918
|
-
db_list = ['
|
920
|
+
|
921
|
+
db_list = ['ragdata', 'kq5034']
|
919
922
|
args = ['数据库大小(GB)', date_trunc, recent, 'xldb2']
|
920
923
|
htmltexts = []
|
921
|
-
|
922
|
-
res = self._get_database_trace_total('
|
924
|
+
|
925
|
+
res = self._get_database_trace_total('xldb2数据库使用近况', *args)
|
923
926
|
htmltexts.append(res)
|
924
|
-
|
927
|
+
|
925
928
|
data_stats = []
|
926
929
|
for idx, db in enumerate(db_list, start=1):
|
927
930
|
data_stats.append(self._get_database_trace_per_host(db, f'{db}', *args))
|
928
931
|
htmltexts += data_stats
|
929
|
-
|
932
|
+
|
930
933
|
self.commit()
|
931
934
|
h = render_echart_html('database_cdx', body='<br/>'.join(htmltexts))
|
932
935
|
return h
|
@@ -977,7 +980,7 @@ class XlprDb(Connection):
|
|
977
980
|
h = render_echart_html('cpu_memory', body='<br/>'.join(htmltexts))
|
978
981
|
return h
|
979
982
|
|
980
|
-
def dbview_disk_memory(self, recent=datetime.timedelta(days=
|
983
|
+
def dbview_disk_memory(self, recent=datetime.timedelta(days=360), date_trunc='day'):
|
981
984
|
""" 查看disk硬盘使用近况
|
982
985
|
"""
|
983
986
|
from pyxllib.data.echarts import render_echart_html
|
@@ -20,10 +20,10 @@ class Yuque:
|
|
20
20
|
语雀请求限制:每小时最多 5000 次请求,每秒最多 100 次请求
|
21
21
|
"""
|
22
22
|
|
23
|
-
def __init__(self, token, user_id=None):
|
23
|
+
def __init__(self, token=None, user_id=None):
|
24
24
|
self.base_url = "https://www.yuque.com/api/v2"
|
25
25
|
self.headers = {
|
26
|
-
"X-Auth-Token": token,
|
26
|
+
"X-Auth-Token": token or os.environ.get('YUQUE_TOKEN'),
|
27
27
|
"Content-Type": "application/json"
|
28
28
|
}
|
29
29
|
self._user_id = user_id
|
@@ -923,7 +923,7 @@ class XlPath(type(pathlib.Path())):
|
|
923
923
|
res.add(p.relative_to(self).as_posix())
|
924
924
|
return res
|
925
925
|
|
926
|
-
def relpath(self, ref_dir) ->
|
926
|
+
def relpath(self, ref_dir) -> 'XlPath':
|
927
927
|
r""" 当前路径,相对于ref_dir的路径位置
|
928
928
|
|
929
929
|
>>> File('C:/a/b/c.txt').relpath('C:/a/')
|
@@ -766,7 +766,7 @@ class XlCell(openpyxl.cell.cell.Cell): # 适用于 openpyxl.cell.cell.MergedCel
|
|
766
766
|
# openpyxl的机制,如果没有配置日期格式,读取到的是默认的'mm-dd-yy',其实在中文场景,默认格式应该是后者
|
767
767
|
if fmt == 'mm-dd-yy':
|
768
768
|
return 'yyyy/m/d' # 中文的默认日期格式
|
769
|
-
elif fmt == 'yyyy\-mm\-dd': # 不知道为什么会有提取到这种\的情况,先暴力替换了
|
769
|
+
elif fmt == r'yyyy\-mm\-dd': # 不知道为什么会有提取到这种\的情况,先暴力替换了
|
770
770
|
fmt = 'yyyy-mm-dd'
|
771
771
|
return fmt
|
772
772
|
|