Metadata-Version: 2.4
Name: pyxllib
Version: 3.221
Summary: 厦门理工模式识别团队通用python代码工具库
Project-URL: Source, https://github.com/XLPRUtils/pyxllib
Project-URL: Documentation, https://www.yuque.com/xlpr/pyxllib
Author-email: code4101 <877362867@qq.com>
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: <3.13,>=3.6
Provides-Extra: advance
Requires-Dist: anytree; extra == 'advance'
Requires-Dist: beautifulsoup4; extra == 'advance'
Requires-Dist: cached-property; extra == 'advance'
Requires-Dist: cachetools; extra == 'advance'
Requires-Dist: charset-normalizer; extra == 'advance'
Requires-Dist: deprecated; extra == 'advance'
Requires-Dist: disjoint-set; extra == 'advance'
Requires-Dist: drissionpage>=4.1.0.17; extra == 'advance'
Requires-Dist: fastcore>=1.8.1; extra == 'advance'
Requires-Dist: filetype; extra == 'advance'
Requires-Dist: fire; extra == 'advance'
Requires-Dist: humanfriendly; extra == 'advance'
Requires-Dist: imagehash; extra == 'advance'
Requires-Dist: jinja2; extra == 'advance'
Requires-Dist: jmespath; extra == 'advance'
Requires-Dist: joblib>=1.3.2; extra == 'advance'
Requires-Dist: jsonpickle; extra == 'advance'
Requires-Dist: keyboard; extra == 'advance'
Requires-Dist: klembord; extra == 'advance'
Requires-Dist: loguru; extra == 'advance'
Requires-Dist: lxml; extra == 'advance'
Requires-Dist: more-itertools; extra == 'advance'
Requires-Dist: mss; extra == 'advance'
Requires-Dist: numpy; extra == 'advance'
Requires-Dist: opencv-python; extra == 'advance'
Requires-Dist: openpyxl==3.1.5; extra == 'advance'
Requires-Dist: pandas>=0.23.4; extra == 'advance'
Requires-Dist: pillow; extra == 'advance'
Requires-Dist: premailer; extra == 'advance'
Requires-Dist: psutil; extra == 'advance'
Requires-Dist: psycopg[binary]; extra == 'advance'
Requires-Dist: pyautogui; extra == 'advance'
Requires-Dist: pyecharts; extra == 'advance'
Requires-Dist: pympler; extra == 'advance'
Requires-Dist: pynput; extra == 'advance'
Requires-Dist: pyperclip; extra == 'advance'
Requires-Dist: python-dotenv; extra == 'advance'
Requires-Dist: python-levenshtein; extra == 'advance'
Requires-Dist: pywin32; (sys_platform == 'win32') and extra == 'advance'
Requires-Dist: pyyaml; extra == 'advance'
Requires-Dist: qiniu; extra == 'advance'
Requires-Dist: requests; extra == 'advance'
Requires-Dist: tqdm; extra == 'advance'
Requires-Dist: uiautomation; (sys_platform == 'win32') and extra == 'advance'
Requires-Dist: ujson; extra == 'advance'
Requires-Dist: wxauto; (sys_platform == 'win32') and extra == 'advance'
Requires-Dist: xlrd; extra == 'advance'
Requires-Dist: xlsxwriter; extra == 'advance'
Requires-Dist: xpath-parser; extra == 'advance'
Requires-Dist: yattag; extra == 'advance'
Provides-Extra: algo
Requires-Dist: anytree; extra == 'algo'
Requires-Dist: disjoint-set; extra == 'algo'
Requires-Dist: xlsxwriter; extra == 'algo'
Provides-Extra: autogui
Requires-Dist: keyboard; extra == 'autogui'
Requires-Dist: klembord; extra == 'autogui'
Requires-Dist: mss; extra == 'autogui'
Requires-Dist: psutil; extra == 'autogui'
Requires-Dist: pyautogui; extra == 'autogui'
Requires-Dist: pynput; extra == 'autogui'
Requires-Dist: pyperclip; extra == 'autogui'
Requires-Dist: pywin32; (sys_platform == 'win32') and extra == 'autogui'
Requires-Dist: uiautomation; (sys_platform == 'win32') and extra == 'autogui'
Requires-Dist: wxauto; (sys_platform == 'win32') and extra == 'autogui'
Provides-Extra: basic
Requires-Dist: anytree; extra == 'basic'
Requires-Dist: beautifulsoup4; extra == 'basic'
Requires-Dist: cached-property; extra == 'basic'
Requires-Dist: cachetools; extra == 'basic'
Requires-Dist: charset-normalizer; extra == 'basic'
Requires-Dist: deprecated; extra == 'basic'
Requires-Dist: disjoint-set; extra == 'basic'
Requires-Dist: drissionpage>=4.1.0.17; extra == 'basic'
Requires-Dist: fastcore>=1.8.1; extra == 'basic'
Requires-Dist: filetype; extra == 'basic'
Requires-Dist: fire; extra == 'basic'
Requires-Dist: humanfriendly; extra == 'basic'
Requires-Dist: jinja2; extra == 'basic'
Requires-Dist: jmespath; extra == 'basic'
Requires-Dist: joblib>=1.3.2; extra == 'basic'
Requires-Dist: loguru; extra == 'basic'
Requires-Dist: lxml; extra == 'basic'
Requires-Dist: more-itertools; extra == 'basic'
Requires-Dist: numpy; extra == 'basic'
Requires-Dist: pandas>=0.23.4; extra == 'basic'
Requires-Dist: psycopg[binary]; extra == 'basic'
Requires-Dist: pyecharts; extra == 'basic'
Requires-Dist: pympler; extra == 'basic'
Requires-Dist: python-dotenv; extra == 'basic'
Requires-Dist: python-levenshtein; extra == 'basic'
Requires-Dist: pyyaml; extra == 'basic'
Requires-Dist: qiniu; extra == 'basic'
Requires-Dist: requests; extra == 'basic'
Requires-Dist: tqdm; extra == 'basic'
Requires-Dist: ujson; extra == 'basic'
Requires-Dist: xlsxwriter; extra == 'basic'
Requires-Dist: xpath-parser; extra == 'basic'
Provides-Extra: data
Requires-Dist: jmespath; extra == 'data'
Requires-Dist: numpy; extra == 'data'
Requires-Dist: pandas>=0.23.4; extra == 'data'
Requires-Dist: psycopg[binary]; extra == 'data'
Requires-Dist: pyecharts; extra == 'data'
Provides-Extra: ext-algo
Requires-Dist: pint; extra == 'ext-algo'
Requires-Dist: shapely; extra == 'ext-algo'
Provides-Extra: ext-file
Requires-Dist: gitpython; extra == 'ext-file'
Requires-Dist: moviepy; extra == 'ext-file'
Requires-Dist: python-docx; extra == 'ext-file'
Provides-Extra: ext-text
Requires-Dist: pyahocorasick; extra == 'ext-text'
Requires-Dist: pyspellchecker; extra == 'ext-text'
Provides-Extra: file
Requires-Dist: charset-normalizer; extra == 'file'
Requires-Dist: filetype; extra == 'file'
Requires-Dist: pyyaml; extra == 'file'
Requires-Dist: qiniu; extra == 'file'
Requires-Dist: ujson; extra == 'file'
Provides-Extra: flask
Requires-Dist: flask; extra == 'flask'
Requires-Dist: flask-cors; extra == 'flask'
Requires-Dist: flask-jwt-extended; extra == 'flask'
Requires-Dist: flask-restful; extra == 'flask'
Requires-Dist: flask-wtf; extra == 'flask'
Provides-Extra: full
Requires-Dist: anytree; extra == 'full'
Requires-Dist: apscheduler; extra == 'full'
Requires-Dist: arts==2024.9.14; extra == 'full'
Requires-Dist: baidu-aip; extra == 'full'
Requires-Dist: beautifulsoup4; extra == 'full'
Requires-Dist: cached-property; extra == 'full'
Requires-Dist: cachetools; extra == 'full'
Requires-Dist: charset-normalizer; extra == 'full'
Requires-Dist: croniter; extra == 'full'
Requires-Dist: deprecated; extra == 'full'
Requires-Dist: disjoint-set; extra == 'full'
Requires-Dist: drissionpage>=4.1.0.17; extra == 'full'
Requires-Dist: fabric; extra == 'full'
Requires-Dist: fastapi; extra == 'full'
Requires-Dist: fastcore>=1.8.1; extra == 'full'
Requires-Dist: filetype; extra == 'full'
Requires-Dist: fire; extra == 'full'
Requires-Dist: flask; extra == 'full'
Requires-Dist: flask-cors; extra == 'full'
Requires-Dist: flask-jwt-extended; extra == 'full'
Requires-Dist: flask-restful; extra == 'full'
Requires-Dist: flask-wtf; extra == 'full'
Requires-Dist: gitpython; extra == 'full'
Requires-Dist: humanfriendly; extra == 'full'
Requires-Dist: imagehash; extra == 'full'
Requires-Dist: jinja2; extra == 'full'
Requires-Dist: jmespath; extra == 'full'
Requires-Dist: joblib>=1.3.2; extra == 'full'
Requires-Dist: jsonpickle; extra == 'full'
Requires-Dist: keyboard; extra == 'full'
Requires-Dist: klembord; extra == 'full'
Requires-Dist: loguru; extra == 'full'
Requires-Dist: lxml; extra == 'full'
Requires-Dist: more-itertools; extra == 'full'
Requires-Dist: moviepy; extra == 'full'
Requires-Dist: mss; extra == 'full'
Requires-Dist: numpy; extra == 'full'
Requires-Dist: opencv-python; extra == 'full'
Requires-Dist: openpyxl==3.1.5; extra == 'full'
Requires-Dist: pandas>=0.23.4; extra == 'full'
Requires-Dist: paramiko; extra == 'full'
Requires-Dist: pillow; extra == 'full'
Requires-Dist: pint; extra == 'full'
Requires-Dist: premailer; extra == 'full'
Requires-Dist: psutil; extra == 'full'
Requires-Dist: psycopg[binary]; extra == 'full'
Requires-Dist: pyahocorasick; extra == 'full'
Requires-Dist: pyautogui; extra == 'full'
Requires-Dist: pyecharts; extra == 'full'
Requires-Dist: pympler; extra == 'full'
Requires-Dist: pynput; extra == 'full'
Requires-Dist: pynvml; extra == 'full'
Requires-Dist: pyperclip; extra == 'full'
Requires-Dist: pyqt6; (sys_platform == 'win32') and extra == 'full'
Requires-Dist: pyside6; (sys_platform == 'win32') and extra == 'full'
Requires-Dist: pyspellchecker; extra == 'full'
Requires-Dist: python-docx; extra == 'full'
Requires-Dist: python-dotenv; extra == 'full'
Requires-Dist: python-levenshtein; extra == 'full'
Requires-Dist: python-multipart; extra == 'full'
Requires-Dist: pywin32; (sys_platform == 'win32') and extra == 'full'
Requires-Dist: pyyaml; extra == 'full'
Requires-Dist: qiniu; extra == 'full'
Requires-Dist: requests; extra == 'full'
Requires-Dist: scikit-learn; extra == 'full'
Requires-Dist: scp; extra == 'full'
Requires-Dist: shapely; extra == 'full'
Requires-Dist: tiktoken; extra == 'full'
Requires-Dist: tqdm; extra == 'full'
Requires-Dist: uiautomation; (sys_platform == 'win32') and extra == 'full'
Requires-Dist: ujson; extra == 'full'
Requires-Dist: uvicorn; extra == 'full'
Requires-Dist: visdom; extra == 'full'
Requires-Dist: visualdl; extra == 'full'
Requires-Dist: wxauto; (sys_platform == 'win32') and extra == 'full'
Requires-Dist: xlrd; extra == 'full'
Requires-Dist: xlsxwriter; extra == 'full'
Requires-Dist: xpath-parser; extra == 'full'
Requires-Dist: yattag; extra == 'full'
Provides-Extra: net
Requires-Dist: drissionpage>=4.1.0.17; extra == 'net'
Requires-Dist: requests; extra == 'net'
Provides-Extra: prog
Requires-Dist: cached-property; extra == 'prog'
Requires-Dist: cachetools; extra == 'prog'
Requires-Dist: deprecated; extra == 'prog'
Requires-Dist: fastcore>=1.8.1; extra == 'prog'
Requires-Dist: fire; extra == 'prog'
Requires-Dist: humanfriendly; extra == 'prog'
Requires-Dist: joblib>=1.3.2; extra == 'prog'
Requires-Dist: loguru; extra == 'prog'
Requires-Dist: more-itertools; extra == 'prog'
Requires-Dist: pympler; extra == 'prog'
Requires-Dist: python-dotenv; extra == 'prog'
Requires-Dist: tqdm; extra == 'prog'
Provides-Extra: pyqt
Requires-Dist: pyqt6; (sys_platform == 'win32') and extra == 'pyqt'
Requires-Dist: pyside6; (sys_platform == 'win32') and extra == 'pyqt'
Provides-Extra: text
Requires-Dist: beautifulsoup4; extra == 'text'
Requires-Dist: jinja2; extra == 'text'
Requires-Dist: lxml; extra == 'text'
Requires-Dist: python-levenshtein; extra == 'text'
Requires-Dist: xpath-parser; extra == 'text'
Provides-Extra: unix
Requires-Dist: fabric; extra == 'unix'
Requires-Dist: paramiko; extra == 'unix'
Requires-Dist: scp; extra == 'unix'
Provides-Extra: xlai
Requires-Dist: pynvml; extra == 'xlai'
Requires-Dist: scikit-learn; extra == 'xlai'
Requires-Dist: visdom; extra == 'xlai'
Provides-Extra: xlapi
Requires-Dist: arts==2024.9.14; extra == 'xlapi'
Requires-Dist: baidu-aip; extra == 'xlapi'
Provides-Extra: xlcv
Requires-Dist: imagehash; extra == 'xlcv'
Requires-Dist: opencv-python; extra == 'xlcv'
Requires-Dist: pillow; extra == 'xlcv'
Provides-Extra: xlpr
Requires-Dist: tiktoken; extra == 'xlpr'
Requires-Dist: visualdl; extra == 'xlpr'
Provides-Extra: xlserver
Requires-Dist: apscheduler; extra == 'xlserver'
Requires-Dist: croniter; extra == 'xlserver'
Requires-Dist: fastapi; extra == 'xlserver'
Requires-Dist: python-multipart; extra == 'xlserver'
Requires-Dist: uvicorn; extra == 'xlserver'
Provides-Extra: xlsx
Requires-Dist: jsonpickle; extra == 'xlsx'
Requires-Dist: openpyxl==3.1.5; extra == 'xlsx'
Requires-Dist: premailer; extra == 'xlsx'
Requires-Dist: xlrd; extra == 'xlsx'
Requires-Dist: yattag; extra == 'xlsx'
Description-Content-Type: text/markdown

# 1 安装

推荐使用uv环境管理工具，使用uv时，以下pip要改为"uv pip"
，更多uv工具使用技巧见：[uv环境管理工具](https://www.yuque.com/xlpr/pyxllib/uv)。

```shell
# 这样可以安装纯净版pyxllib源码，不附带任何其他三方库依赖。
# 在很清楚自己仅需要什么小功能组件，做简单任务，或者为了打包精简的exe时很有用。
pip install pyxllib

# 常规情况下建议使用basic版基础依赖，目前basic还不算很轻量，项目在不断迭代优化中。
pip install pyxllib[basic]

# 有需要再额外补充一些组件的写法，比如autogui是windows上ui自动化操作相关系列功能
pip install pyxllib[basic,autogui]

# 不怕重依赖，清楚自己在干什么的情况下，可以使用下述配置
pip install pyxllib[advance]
pip install pyxllib[full]
```

pyxllib支持的依赖分组情况，请直接看项目的pyproject.toml配置文件。

大家在使用中有发现依赖使用不流畅，不舒服，反人性的地方，欢迎狠狠来怼我。

# 2 文档

本库的完整介绍文档在语雀: https://www.yuque.com/xlpr/pyxllib
