├── .deepsource.toml ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── custom.md │ └── feature_request.md └── workflows │ ├── python-check.yml │ ├── python-publish.yml │ └── ruff-check.yml ├── .gitignore ├── .pdm-python ├── .pre-commit-config.yaml ├── .ruff.toml ├── LICENSE ├── README.md ├── nonebot_plugin_whateat_pic ├── __init__.py ├── check_on_statup.py ├── check_user_data.py ├── config.py ├── files.py ├── matcher.py ├── menu.py ├── menu_res │ ├── FZSJ-QINGCRJ.TTF │ └── menu_bg.jpg └── random_pic.py ├── pdm.lock ├── pyproject.toml ├── res ├── download_list.json ├── drink_pic │ ├── 书亦烧仙草.jpg │ ├── 冰摇桃桃乌龙茶.jpg │ ├── 冰摇红莓黑加仑茶.jpg │ ├── 冰摇芒果花草茶.jpg │ ├── 冰淇淋红茶.jpg │ ├── 冰鲜柠檬水.jpg │ ├── 冷萃浮乐朵.jpg │ ├── 凉白开.jpg │ ├── 卡布奇诺.jpg │ ├── 双拼奶茶.jpg │ ├── 可口可乐.jpg │ ├── 吃土摇摇奶昔.jpg │ ├── 喜茶轻芒芒甘露.jpg │ ├── 四季春燕麦奶茶.jpg │ ├── 四季春珍珠奶茶.jpg │ ├── 四季春茶.jpg │ ├── 奥利奥味雪王大圣代.jpg │ ├── 奥利奥大圣代.jpg │ ├── 抹茶星冰乐.jpg │ ├── 抹茶红豆拿铁.jpg │ ├── 招牌芋圆奶茶.png │ ├── 摩卡.jpg │ ├── 摩卡可可碎片星冰乐.jpg │ ├── 摩卡星冰乐.jpg │ ├── 晨露抹茶.jpg │ ├── 杨枝甘露.jpg │ ├── 杨枝甘露烧仙草.jpg │ ├── 柠檬红茶.jpg │ ├── 柠檬芦荟茶.jpg │ ├── 桂花酒酿.png │ ├── 桃气乌龙奶芙.jpg │ ├── 桃气乌龙豆乳.jpg │ ├── 梨光清润路芭茶.png │ ├── 棒打鲜橙.jpg │ ├── 椰乳芋泥茫茫.jpg │ ├── 榛果风味拿铁.jpg │ ├── 橙柚派对.jpg │ ├── 气炫冰山美式.jpg │ ├── 浓缩咖啡.jpg │ ├── 满杯橙海粒.jpg │ ├── 烤奶珍珠奶茶.jpg │ ├── 焦糖浓缩咖啡星冰乐.jpg │ ├── 焦糖玛奇朵.jpg │ ├── 焦糖珍珠.jpg │ ├── 牛魔王黑砖奶茶.jpg │ ├── 珍珠奶茶.jpg │ ├── 百事可乐.jpg │ ├── 百香凤梨.jpg │ ├── 百香金菠萝.png │ ├── 皇家九号奶茶.jpg │ ├── 红茶.jpg │ ├── 红豆奶茶.jpg │ ├── 绿茶.jpg │ ├── 美式咖啡.jpg │ ├── 芋泥厚厚牛乳.jpg │ ├── 芒果西番莲果茶星冰乐.jpg │ ├── 芝士四季春.jpg │ ├── 芝士奶盖四季春.jpg │ ├── 芝士奶盖绿茶.jpg │ ├── 芝士抹茶.jpg │ ├── 芝士鲜红茶.jpg │ ├── 芝士鲜绿茶.jpg │ ├── 草莓味雪王大圣代.jpg │ ├── 草莓雪王大圣代.jpg │ ├── 葡萄柚绿茶.png │ ├── 蓝莓味雪王大圣代.jpg │ ├── 蓝莓大圣代.jpg │ ├── 蓝莓摇摇奶昔.jpg │ ├── 蓝莓果粒茶.jpg │ ├── 蜂蜜柚子茶.jpg │ ├── 西北风.png │ ├── 豆乳绵绵奶茶.jpg │ ├── 酒香沁乌龙.jpg │ ├── 酸柠浮冷萃.jpg │ ├── 醋意桃桃.jpg │ ├── 阿馥奇朵.jpg │ ├── 香草风味拿铁.jpg │ ├── 馥芮白.jpg │ ├── 马来西亚白咖啡.jpg │ ├── 鲜橙葡萄柚.jpg │ ├── 鲜芒果绿茶.png │ ├── 鹿丸可可鲜奶.jpg │ ├── 麦芽雪冷萃.jpg │ ├── 黑巧橙香乌龙.jpg │ └── 黑糖珍珠奶茶.jpg ├── eat_pic │ ├── 凉皮.jpg │ ├── 卤粉.jpg │ ├── 台湾卤肉饭.jpg │ ├── 咖喱饭.jpg │ ├── 咸肉菜饭.jpg │ ├── 嫩牛五方.jpg │ ├── 寿司.jpg │ ├── 新疆炒米粉.jpg │ ├── 日式拉面.jpg │ ├── 日式烧肉饭.jpg │ ├── 杀猪粉.jpg │ ├── 板栗焖饭.jpg │ ├── 桥头排骨.jpg │ ├── 水煮肉片.jpg │ ├── 水饺.jpg │ ├── 汉堡薯条.jpg │ ├── 油炸烧烤.jpg │ ├── 泡面.jpg │ ├── 浏阳蒸菜.jpg │ ├── 海南椰子鸡.jpg │ ├── 潮汕砂锅粥.jpg │ ├── 火腿鹿茸菇炒荷兰豆.jpg │ ├── 火锅.jpg │ ├── 火锅鸡.jpg │ ├── 炒粉.jpg │ ├── 炒饭.jpg │ ├── 烤冷面.jpg │ ├── 烤肉拌饭.jpg │ ├── 烧腊饭.jpg │ ├── 煎饺.jpg │ ├── 煎饼果子.jpg │ ├── 牛丼饭.jpg │ ├── 牛肉焗米粉.jpg │ ├── 牛肉粉.jpg │ ├── 牛肉面.jpg │ ├── 猪肚鸡.jpg │ ├── 猪脚饭.jpg │ ├── 白萝卜焖牛排骨.jpg │ ├── 盖码饭.jpg │ ├── 肉夹馍.jpg │ ├── 肉汁拌饭.jpg │ ├── 肠粉.jpg │ ├── 臭豆腐.jpg │ ├── 茴香肉包.jpg │ ├── 葱油拌面.jpg │ ├── 葱花饼.jpg │ ├── 蒸饺.jpg │ ├── 蛋包饭.jpg │ ├── 蛋挞.jpg │ ├── 蛋炒饭.jpg │ ├── 螺蛳粉.jpg │ ├── 辣椒炒肉.jpg │ ├── 过桥米线.jpg │ ├── 酸菜鱼.jpg │ ├── 重庆小面.jpg │ ├── 锅盔.jpg │ ├── 韩式炸鸡.jpg │ ├── 韩式烤肉.jpg │ ├── 韩式部队火锅.jpg │ ├── 馄饨.jpg │ ├── 鲜肉馄饨.jpg │ ├── 鸭血粉丝.jpg │ ├── 麻婆豆腐.jpg │ ├── 麻辣烫.jpg │ ├── 麻辣香锅.jpg │ └── 黄焖鸡.jpg ├── ico.jpg └── write_into_json.py ├── src └── nonebot_plugin_whateat_pic │ └── __init__.py └── tests └── __init__.py /.deepsource.toml: -------------------------------------------------------------------------------- 1 | version = 1 2 | 3 | [[analyzers]] 4 | name = "python" 5 | 6 | [analyzers.meta] 7 | runtime_version = "3.x.x" 8 | 9 | [[transformers]] 10 | name = "ruff" 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Custom issue template 3 | about: Describe this issue template's purpose here. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/workflows/python-check.yml: -------------------------------------------------------------------------------- 1 | # This workflow will install Python dependencies, run tests and lint with a variety of Python versions 2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python 3 | 4 | name: Python application 5 | 6 | on: 7 | push: 8 | branches: [ "*" ] 9 | pull_request: 10 | branches: [ "*" ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | strategy: 17 | fail-fast: false 18 | matrix: 19 | python-version: ["3.8", "3.9", "3.10"] 20 | 21 | steps: 22 | - uses: actions/checkout@v3 23 | - name: Set up Python ${{ matrix.python-version }} 24 | uses: actions/setup-python@v3 25 | with: 26 | python-version: ${{ matrix.python-version }} 27 | - name: Install dependencies 28 | run: | 29 | python -m pip install --upgrade pip 30 | python -m pip install flake8 pytest 31 | python -m pip install pdm 32 | if [ -f requirements.txt ]; then pip install -r requirements.txt; fi 33 | - name: Lint with flake8 34 | run: | 35 | # stop the build if there are Python syntax errors or undefined names 36 | flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics 37 | # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide 38 | flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics 39 | - name: Install prerequisites 40 | run: pdm install 41 | -------------------------------------------------------------------------------- /.github/workflows/python-publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish package to PyPI 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'v*' # 匹配"v1.0.0"、"v1.0.0-alpha"等发布标签 7 | 8 | permissions: 9 | contents: write # 如果您的包发布到 GitHub Packages,则需要此权限 10 | packages: write # 如果您的包发布到 GitHub Packages,则需要此权限 11 | 12 | jobs: 13 | deploy: 14 | runs-on: ubuntu-latest 15 | 16 | steps: 17 | - uses: actions/checkout@v4 18 | - name: Set up Python 19 | uses: actions/setup-python@v3 20 | with: 21 | python-version: '3.x' 22 | - name: Install dependencies 23 | run: | 24 | python -m pip install --upgrade pip 25 | pip install build 26 | - name: Build package 27 | run: python -m build 28 | - name: Publish package 29 | uses: pypa/gh-action-pypi-publish@release/v1 # 使用一个稳定的版本标签,而不是具体的提交哈希 30 | with: 31 | user: __token__ 32 | password: ${{ secrets.PYPI_API_TOKEN }} 33 | -------------------------------------------------------------------------------- /.github/workflows/ruff-check.yml: -------------------------------------------------------------------------------- 1 | 2 | name: Ruff Check 3 | 4 | on: 5 | push: 6 | branches: [ "*" ] 7 | pull_request: 8 | paths: 9 | - "nonebot_plugin_whateat_pic/**" 10 | 11 | 12 | jobs: 13 | ruff: 14 | name: Ruff Lint 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: actions/checkout@v4 18 | 19 | - name: Run Ruff Lint 20 | uses: chartboost/ruff-action@v1 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.toptal.com/developers/gitignore/api/python 2 | # Edit at https://www.toptal.com/developers/gitignore?templates=python 3 | 4 | ### Python ### 5 | # Byte-compiled / optimized / DLL files 6 | __pycache__/ 7 | *.py[cod] 8 | *$py.class 9 | 10 | # C extensions 11 | *.so 12 | 13 | # Distribution / packaging 14 | .Python 15 | build/ 16 | develop-eggs/ 17 | dist/ 18 | downloads/ 19 | eggs/ 20 | .eggs/ 21 | lib/ 22 | lib64/ 23 | parts/ 24 | sdist/ 25 | var/ 26 | wheels/ 27 | share/python-wheels/ 28 | *.egg-info/ 29 | .installed.cfg 30 | *.egg 31 | MANIFEST 32 | 33 | # PyInstaller 34 | # Usually these files are written by a python script from a template 35 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 36 | *.manifest 37 | *.spec 38 | 39 | # Installer logs 40 | pip-log.txt 41 | pip-delete-this-directory.txt 42 | 43 | # Unit test / coverage reports 44 | htmlcov/ 45 | .tox/ 46 | .nox/ 47 | .coverage 48 | .coverage.* 49 | .cache 50 | nosetests.xml 51 | coverage.xml 52 | *.cover 53 | *.py,cover 54 | .hypothesis/ 55 | .pytest_cache/ 56 | cover/ 57 | 58 | # Translations 59 | *.mo 60 | *.pot 61 | 62 | # Django stuff: 63 | *.log 64 | local_settings.py 65 | db.sqlite3 66 | db.sqlite3-journal 67 | 68 | # Flask stuff: 69 | instance/ 70 | .webassets-cache 71 | 72 | # Scrapy stuff: 73 | .scrapy 74 | 75 | # Sphinx documentation 76 | docs/_build/ 77 | 78 | # PyBuilder 79 | .pybuilder/ 80 | target/ 81 | 82 | # Jupyter Notebook 83 | .ipynb_checkpoints 84 | 85 | # IPython 86 | profile_default/ 87 | ipython_config.py 88 | 89 | # pyenv 90 | # For a library or package, you might want to ignore these files since the code is 91 | # intended to run in multiple environments; otherwise, check them in: 92 | # .python-version 93 | 94 | # pipenv 95 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 96 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 97 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 98 | # install all needed dependencies. 99 | #Pipfile.lock 100 | 101 | # poetry 102 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 103 | # This is especially recommended for binary packages to ensure reproducibility, and is more 104 | # commonly ignored for libraries. 105 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 106 | #poetry.lock 107 | 108 | # pdm 109 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 110 | #pdm.lock 111 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 112 | # in version control. 113 | # https://pdm.fming.dev/#use-with-ide 114 | .pdm.toml 115 | 116 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 117 | __pypackages__/ 118 | 119 | # Celery stuff 120 | celerybeat-schedule 121 | celerybeat.pid 122 | 123 | # SageMath parsed files 124 | *.sage.py 125 | 126 | # Environments 127 | .env 128 | .venv 129 | env/ 130 | venv/ 131 | ENV/ 132 | env.bak/ 133 | venv.bak/ 134 | 135 | # Spyder project settings 136 | .spyderproject 137 | .spyproject 138 | 139 | # Rope project settings 140 | .ropeproject 141 | 142 | # mkdocs documentation 143 | /site 144 | 145 | # mypy 146 | .mypy_cache/ 147 | .dmypy.json 148 | dmypy.json 149 | 150 | # Pyre type checker 151 | .pyre/ 152 | 153 | # pytype static type analyzer 154 | .pytype/ 155 | 156 | # Cython debug symbols 157 | cython_debug/ 158 | 159 | # PyCharm 160 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 161 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 162 | # and can be added to the global gitignore or merged into this file. For a more nuclear 163 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 164 | #.idea/ 165 | 166 | ### Python Patch ### 167 | # Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration 168 | poetry.toml 169 | 170 | # ruff 171 | .ruff_cache/ 172 | 173 | # LSP config files 174 | pyrightconfig.json 175 | 176 | # End of https://www.toptal.com/developers/gitignore/api/python 177 | -------------------------------------------------------------------------------- /.pdm-python: -------------------------------------------------------------------------------- 1 | E:/nb-plugin/nonebot-plugin-whateat-pic/.venv/Scripts/python.EXE 2 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/pre-commit/pre-commit-hooks 3 | rev: v5.0.0 # 选择最新的稳定版本 4 | hooks: 5 | - id: trailing-whitespace # 去除多余的空格 6 | - id: end-of-file-fixer # 确保文件以空行结束 7 | - id: check-yaml # 检查 YAML 文件格式 8 | - id: check-added-large-files # 检查提交中是否包含过大的文件 9 | 10 | - repo: https://github.com/astral-sh/ruff-pre-commit 11 | rev: v0.8.6 12 | hooks: 13 | # Run the linter. 14 | - id: ruff 15 | args: [ --fix ] 16 | # Run the formatter. 17 | - id: ruff-format 18 | -------------------------------------------------------------------------------- /.ruff.toml: -------------------------------------------------------------------------------- 1 | [lint] 2 | select = [ 3 | "F", # Pyflakes 4 | "E", # pycodestyle error 5 | "W", # pycodestyle warning 6 | "I", # isort 7 | "UP", # pyupgrade 8 | "ASYNC", # fflake8-async 9 | "S", # flake8-bandit 10 | "B", # flake8-bugbear 11 | "C4", # flake8-comprehensions 12 | "ISC", # flake8-implicit-str-concat 13 | "PIE", # flake8-pie 14 | "T20", # flake8-print 15 | "PYI", # flake8-pyi 16 | "PT", # flake8-pytest-style 17 | "Q", # flake8-quotes 18 | "RSE", # flake8-raise 19 | "RET", # flake8-return 20 | "SLOT", # flake8-slots 21 | "SIM", # flake8-simplify 22 | "TID", # flake8-tidy-imports 23 | "TCH", # flake8-type-checking 24 | "ARG", # flake8-unused-arguments 25 | "PTH", # flake8-use-pathlib 26 | "ERA", # eradicate 27 | "PL", # Pylint 28 | "TRY", # tryceratops 29 | "PERF", # Perflint 30 | # "FURB", # refurb 31 | "RUF", # Ruff-specific rules 32 | ] 33 | ignore = [ 34 | "E402", # module-import-not-at-top-of-file 35 | "E501", # line-too-long 36 | "B009", # get-attr-with-constant 37 | "B010", # set-attr-with-constant 38 | "PLC0414", # useless-import-alias 39 | "PLR0913", # too-many-arguments 40 | "TRY003", # raise-vanilla-args 41 | "RUF001", # ambiguous-unicode-character-string 42 | "RUF002", # ambiguous-unicode-character-docstring 43 | "RUF003", # ambiguous-unicode-character-comment 44 | 45 | # Avoid formatter conflicts, see https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules 46 | "W191", # tab-indentation 47 | "E111", # indentation-with-invalid-multiple 48 | "E114", # indentation-with-invalid-multiple-comment 49 | "E117", # over-indented 50 | "D206", # indent-with-spaces 51 | "D300", # triple-single-quotes 52 | "Q000", # bad-quotes-inline-string 53 | "Q001", # bad-quotes-multiline-string 54 | "Q002", # bad-quotes-docstring 55 | "Q003", # avoidable-escaped-quote 56 | "COM812", # missing-trailing-comma 57 | "COM819", # prohibited-trailing-comma 58 | "ISC001", # single-line-implicit-string-concatenation 59 | "ISC002", # multi-line-implicit-string-concatenation 60 | ] 61 | unfixable = [ 62 | "F401", # unused-import 63 | "F841", # unused-variable 64 | "ERA001", # commented-out-code 65 | ] 66 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 divandia 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | NoneBotPluginLogo 6 | 7 |
8 | 9 |
10 | 11 | # nonebot-plugin-whateat-pic 12 | 13 | _⭐基于Nonebot2的一款今天吃什么喝什么的插件⭐_ 14 | 15 | 16 |
17 | 18 |
19 | 20 |
21 | 22 | 23 | ## ⭐ 介绍 24 | 25 | 一款离线版决定今天吃喝什么的nb2插件,功能及其简单。 26 | ~~抄袭~~改编自hosinoBot的插件[今天吃什么](https://github.com/A-kirami/whattoeat) 27 | 有不足的地方还请指出 28 | 29 | 30 |
31 | 32 | ### 或者你有啥关于该插件的新想法的,可以提issue或者pr (>A<) 33 | 34 |
35 | 36 | ## 💿 安装 37 | 38 |
39 | 安装 40 | 41 | pip 安装 42 | 43 | ``` 44 | pip install nonebot-plugin-whateat-pic 45 | ``` 46 | 47 | nb-cli安装 48 | 49 | ``` 50 | nb plugin install nonebot-plugin-whateat-pic --upgrade 51 | ``` 52 | 53 |
54 | 55 |
56 | 注意 57 | 58 | 由于包含有图片,包容量较大,推荐镜像站下载 59 | 60 | 清华源```https://pypi.tuna.tsinghua.edu.cn/simple``` 61 | 62 | 阿里源```https://mirrors.aliyun.com/pypi/simple/``` 63 | 64 |
65 | 66 | 67 | ## ⚙️ 配置 68 | ### 在env.中添加以下配置 69 | 70 | |名称|类型|默认值|范围|说明| 71 | |:-----:|:----:|:----:|:------:|:------| 72 | |whateat_cd|int|10|0-9999|内置触发cd| 73 | |whateat_max|int|0|0-9999|每日用户触发的最大次数,默认0时为无上限| 74 | 75 | 76 | > 机器的名字“脑积水”是默认值,(我不相信有人不会配置nonebot2的nick_name) 77 | 78 | ## ⭐ 使用 79 | 80 | ### 指令: 81 | | 指令 | 需要@ | 范围 | 说明 |权限| 82 | |:-----:|:----:|:----:|:----:|:----:| 83 | |今天早上吃什么|否|私聊、群聊|随机发送食物|任何| 84 | |今天早上喝什么|否|私聊、群聊|随机发送饮品|任何| 85 | |查看全部菜单|否|私聊、群聊|查看全部菜单|任何| 86 | |查看菜单|否|私聊、群聊|查看指定菜单|任何| 87 | |添加菜单|否|私聊、群聊|自定义添加菜单|群主,超管,管理员| 88 | |删除菜单|否|私聊、群聊|自定义删除菜单|群主,超管,管理员| 89 | 90 | **注意** 91 | 92 | 默认情况下, 您应该在指令前加上命令前缀, 通常是 / 93 | 94 | ## 🌙 未来 95 | - [x] 或许添加更多的美食图片吧…… 96 | - [x] 添加更多功能 97 | - [x] 自定义添加菜单,饮品(~~我懒,或者帮我写个?~~)QwQ(~~最后还是自己写~~) 98 | - [x] 图片化```全部菜单``` 99 | - [x] 细化分类菜单,饮料(懒癌患者,>a<) 100 | 101 | --- 喜欢记得点个star⭐--- 102 | -------------------------------------------------------------------------------- /nonebot_plugin_whateat_pic/__init__.py: -------------------------------------------------------------------------------- 1 | from nonebot import require 2 | from nonebot.plugin import PluginMetadata, inherit_supported_adapters 3 | 4 | require("nonebot_plugin_alconna") 5 | require("nonebot_plugin_apscheduler") 6 | 7 | from . import check_on_statup as _ 8 | from . import matcher as _ # noqa 9 | 10 | __plugin_meta__ = PluginMetadata( 11 | name="今天吃什么(图片版)", 12 | description="随机发送吃的或者喝的图片", 13 | usage=""" 14 | 今天吃什么 15 | 今天喝什么 16 | 添加菜单 17 | 删除菜单 18 | 查看菜单 19 | """, 20 | type="application", 21 | homepage="https://github.com/Cvandia/nonebot-plugin-whateat-pic", 22 | supported_adapters=inherit_supported_adapters("nonebot_plugin_alconna"), 23 | ) 24 | -------------------------------------------------------------------------------- /nonebot_plugin_whateat_pic/check_on_statup.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | import json 3 | from pathlib import Path 4 | 5 | import httpx 6 | from nonebot import get_driver 7 | from nonebot.log import logger 8 | from rich.progress import Progress 9 | 10 | from .config import config 11 | 12 | available_urls = [ 13 | "https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/", 14 | "https://fastly.jsdelivr.net/gh/Cvandia/nonebot-plugin-whateat-pic@", 15 | "https://raw.gitmirror.com/Cvandia/nonebot-plugin-whateat-pic/", 16 | "https://ghproxy.cfd/https:/raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/", 17 | "https://ghfast.top/https:/raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/", 18 | ] 19 | 20 | 21 | async def check_resource(): 22 | semaphore = asyncio.Semaphore(10) 23 | 24 | async def _download(client: httpx.AsyncClient, name: str): 25 | async with semaphore: 26 | for base_url in available_urls: 27 | url = base_url + "refs/heads/main/res/" + name 28 | try: 29 | resp = await client.get(url, timeout=20, follow_redirects=True) 30 | if resp.raise_for_status(): 31 | logger.debug(f"{url} download success!") 32 | return resp.content 33 | except httpx.HTTPError: 34 | pass 35 | logger.warning(f"{url} download failed!") 36 | return None 37 | 38 | # 下载资源列表 39 | async with httpx.AsyncClient() as client: 40 | try: 41 | if content := await _download(client, "download_list.json"): 42 | resource_list = json.loads(content.decode("utf-8")) 43 | else: 44 | logger.warning("download_list.json not found!") 45 | return 46 | except json.decoder.JSONDecodeError: 47 | logger.warning("download_list.json is not a valid json file!") 48 | return 49 | 50 | # 检查资源目录下文件是否完整 51 | drink_pic_path = Path(config.whatpic_res_path) / "drink_pic" # 本地资源目录 52 | eat_pic_path = Path(config.whatpic_res_path) / "eat_pic" # 本地资源目录 53 | # TODO: 检查文件是否完整 54 | 55 | # 创建下载任务列表 56 | download_list: list[tuple[Path, str]] = [] 57 | 58 | # 添加下载任务 59 | for item in resource_list["drink_pic"]: 60 | path_name = ( 61 | "drink_pic/" + item["name"] 62 | ) # 在线资源路径: github.com/Cvandia/nonebot-plugin-whateat-pic/main/res/+ path_name 63 | download_list.append((drink_pic_path / item["name"], path_name)) 64 | for item in resource_list["eat_pic"]: 65 | path_name = "eat_pic/" + item["name"] # 在线资源路径 66 | download_list.append((eat_pic_path / item["name"], path_name)) 67 | 68 | if download_list: 69 | logger.info("Downloading images ...") 70 | else: 71 | return 72 | 73 | # 下载资源 74 | async with httpx.AsyncClient() as client: 75 | exist_count = 0 76 | 77 | async def download_image(file_path: Path, file_name: str): 78 | if file_path.exists(): 79 | logger.debug(f"{file_path} already exists, skipping download.") 80 | nonlocal exist_count 81 | exist_count += 1 82 | return 83 | if content := await _download(client, file_name): 84 | file_path.parent.mkdir(parents=True, exist_ok=True) 85 | with file_path.open("wb") as f: 86 | f.write(content) 87 | 88 | with Progress( 89 | *Progress.get_default_columns(), "[yellow]{task.completed}/{task.total}" 90 | ) as progress: 91 | progress_task = progress.add_task( 92 | "[green]Downloading pic...", total=len(download_list) 93 | ) 94 | tasks = [ 95 | download_image(file_path, file_name) 96 | for file_path, file_name in download_list 97 | ] 98 | for task in asyncio.as_completed(tasks): 99 | await task 100 | progress.update(progress_task, advance=1) 101 | 102 | logger.info(f"Downloaded {len(download_list) - exist_count} images.") 103 | 104 | 105 | driver = get_driver() 106 | 107 | 108 | @driver.on_startup 109 | async def on_startup(): 110 | logger.info("Checking resources...") 111 | task = asyncio.create_task(check_resource()) 112 | await task 113 | 114 | 115 | # 测试代码 116 | -------------------------------------------------------------------------------- /nonebot_plugin_whateat_pic/check_user_data.py: -------------------------------------------------------------------------------- 1 | import time 2 | 3 | from nonebot.adapters import Event 4 | 5 | from .config import config 6 | 7 | cd = config.whateat_cd 8 | max_count = config.whateat_max 9 | 10 | 11 | def check_iscd(last_time: float) -> tuple[bool, float, float]: 12 | """ 13 | 判断是否在冷却时间内 14 | 15 | Args: 16 | last_time(float): 上次使用时间 17 | 18 | Returns: 19 | - tuple[bool, float, float]: 是否在冷却时间内, 剩余冷却时间, 当前时间 20 | """ 21 | now_time = time.time() 22 | if now_time - last_time < cd: 23 | return True, cd - (now_time - last_time), last_time 24 | return False, 0, now_time 25 | 26 | 27 | def check_ismax(message: Event, user_count: dict) -> tuple[bool, dict]: 28 | """ 29 | 判断是否达到最大次数 30 | 31 | Args: 32 | message(Event): 消息事件 33 | user_count(dict): 用户使用次数记录 34 | 35 | Returns: 36 | - tuple[bool, dict]: 是否达到最大次数, 用户使用次数记录 37 | """ 38 | user_id = message.get_user_id() 39 | if max_count == 0: 40 | return False, {} 41 | if user_id not in user_count: 42 | user_count[f"{user_id}"] = 0 43 | if user_count[f"{user_id}"] < max_count: 44 | user_count[f"{user_id}"] += 1 45 | return False, user_count 46 | return True, user_count 47 | -------------------------------------------------------------------------------- /nonebot_plugin_whateat_pic/config.py: -------------------------------------------------------------------------------- 1 | from nonebot.plugin import get_plugin_config 2 | from pydantic import BaseModel 3 | 4 | 5 | class Config(BaseModel): 6 | whateat_cd: int = 10 7 | whateat_max: int = 0 8 | whatpic_res_path: str = "./data/whateat_pic" 9 | 10 | 11 | config = get_plugin_config(Config) 12 | -------------------------------------------------------------------------------- /nonebot_plugin_whateat_pic/files.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | from nonebot.log import logger 4 | 5 | from .config import config 6 | 7 | 8 | def save_pic(img: bytes, img_type: str, name: str) -> None: 9 | """ 10 | 保存图片 11 | """ 12 | save_path = Path(config.whatpic_res_path) / f"{img_type}_pic" / (name + ".jpg") 13 | if isinstance(img, bytes): 14 | with Path.open(save_path, "wb") as f: 15 | f.write(img) 16 | else: 17 | logger.error(f"img must be bytes, but got {type(img)}") 18 | raise TypeError("img must be bytes") 19 | 20 | 21 | def delete_pic(img_type: str, name: str) -> None: 22 | """ 23 | 删除图片 24 | """ 25 | delete_path = Path(config.whatpic_res_path) / f"{img_type}_pic" / (name + ".jpg") 26 | if delete_path.exists(): 27 | try: 28 | delete_path.unlink() 29 | except OSError as e: 30 | logger.error(f"Error: {e}") 31 | raise 32 | else: 33 | raise FileNotFoundError(f"{delete_path} not found") 34 | -------------------------------------------------------------------------------- /nonebot_plugin_whateat_pic/matcher.py: -------------------------------------------------------------------------------- 1 | import io 2 | import secrets 3 | 4 | from nonebot import get_driver 5 | from nonebot.adapters import Event 6 | from nonebot.log import logger 7 | from nonebot.permission import SUPERUSER 8 | from nonebot_plugin_alconna import Alconna, Args, Match, on_alconna 9 | from nonebot_plugin_alconna.uniseg import Image, Text, UniMessage 10 | from nonebot_plugin_alconna.uniseg.tools import image_fetch 11 | from nonebot_plugin_apscheduler import scheduler 12 | 13 | from .check_user_data import check_iscd, check_ismax 14 | from .files import delete_pic, save_pic 15 | from .menu import Menu 16 | from .random_pic import random_pic 17 | 18 | NICKNAME = list(get_driver().config.nickname) 19 | BOT_NAME = NICKNAME[0] if NICKNAME else "脑积水" 20 | 21 | TIME = 0.0 22 | USER_DATA = {} 23 | MAX_MSG = [ 24 | "你今天吃的够多了!不许再吃了(´-ωก`)", 25 | "吃吃吃,就知道吃,你都吃饱了!明天再来(▼皿▼#)", 26 | "(*`へ´*)你猜我会不会再给你发好吃的图片", 27 | f"没得吃的了,{BOT_NAME}的食物都被你这坏蛋吃光了!", 28 | "你在等我给你发好吃的?做梦哦!你都吃那么多了,不许再吃了!ヽ(≧Д≦)ノ", 29 | ] 30 | 31 | eat_pic_matcher = on_alconna( 32 | Alconna("今天吃什么"), 33 | use_cmd_start=True, 34 | ) 35 | 36 | drink_pic_matcher = on_alconna( 37 | Alconna("今天喝什么"), 38 | use_cmd_start=True, 39 | ) 40 | 41 | view_menu_matcher = on_alconna( 42 | Alconna("全部菜单", Args["img_type?", str]), 43 | use_cmd_start=True, 44 | aliases=("查看菜单", "查看菜品"), 45 | ) 46 | 47 | add_menu_matcher = on_alconna( 48 | Alconna( 49 | "添加菜单", Args["name?", str], Args["img_type?", str], Args["img?", Image] 50 | ), 51 | use_cmd_start=True, 52 | permission=SUPERUSER, 53 | ) 54 | 55 | del_menu_matcher = on_alconna( 56 | Alconna("删除菜单", Args["name?", str], Args["img_type?", str]), 57 | use_cmd_start=True, 58 | permission=SUPERUSER, 59 | ) 60 | 61 | 62 | eat_pic_matcher.shortcut( 63 | r"^[今|明|后]?[天|日]?(早|中|晚)?(上|午|餐|饭|夜宵|宵夜|早|晚)吃(什么|啥|点啥)$", 64 | fuzzy=False, 65 | prefix=True, 66 | ) 67 | drink_pic_matcher.shortcut( 68 | r"^[今|明|后]?[天|日]?(早|中|晚)?(上|午|餐|饭|夜宵|宵夜|早|晚)喝(什么|啥|点啥)$", 69 | fuzzy=False, 70 | prefix=True, 71 | ) 72 | 73 | 74 | @eat_pic_matcher.handle() 75 | async def handle_eat_pic(event: Event): 76 | global TIME 77 | global USER_DATA 78 | check_max_result, USER_DATA = check_ismax(event, USER_DATA) 79 | check_result, remain_time, TIME = check_iscd(TIME) 80 | if check_max_result: 81 | await UniMessage.text(secrets.choice(MAX_MSG)).finish() 82 | elif check_result: 83 | await UniMessage.text(f"cd冷却中,还有{remain_time:.2f}秒").finish() 84 | else: 85 | pic_path, pic_name = random_pic("eat") 86 | send_msg = UniMessage(Text(f"🎉{BOT_NAME}建议你吃🎉\n{pic_name}")) 87 | send_msg.append(Image(path=pic_path)) 88 | await send_msg.finish() 89 | 90 | 91 | @drink_pic_matcher.handle() 92 | async def handle_drink_pic(event: Event): 93 | global TIME 94 | global USER_DATA 95 | check_max_result, USER_DATA = check_ismax(event, USER_DATA) 96 | check_result, remain_time, TIME = check_iscd(TIME) 97 | if check_max_result: 98 | await UniMessage.text(secrets.choice(MAX_MSG)).finish() 99 | elif check_result: 100 | await UniMessage.text(f"cd冷却中,还有{remain_time:.2f}秒").finish() 101 | else: 102 | pic_path, pic_name = random_pic("drink") 103 | send_msg = UniMessage(Text(f"🎉{BOT_NAME}建议你喝🎉\n{pic_name}")) 104 | send_msg.append(Image(path=pic_path)) 105 | await send_msg.finish() 106 | 107 | 108 | @view_menu_matcher.handle() 109 | async def handle_view_menu(img_type: Match[str]): 110 | if img_type.available: 111 | view_menu_matcher.set_path_arg("img_type", img_type.result) 112 | 113 | 114 | @view_menu_matcher.got_path("img_type", prompt=f"请告诉{BOT_NAME}具体菜单类型吧") 115 | async def _(img_type: str): 116 | menu_type = img_type.strip() 117 | if menu_type in ["菜单", "菜品"]: 118 | menu_type = "eat" 119 | elif menu_type in ["饮料", "饮品"]: 120 | menu_type = "drink" 121 | else: 122 | await UniMessage.text("菜单类型错误,请重新输入").finish() 123 | 124 | try: 125 | menu = Menu(menu_type) 126 | send_msg_list = UniMessage(Text("菜单如下:")) 127 | for img in menu.draw_menu(): 128 | img_bytesio = io.BytesIO() 129 | img.save(img_bytesio, format="JPEG") 130 | send_msg_list.append(Image(raw=img_bytesio)) # type: ignore 131 | await send_msg_list.finish() 132 | except OSError as e: 133 | await UniMessage.text(f"没有找到菜单,请稍后重试\n{e}").finish() 134 | 135 | 136 | @add_menu_matcher.handle() 137 | async def _(name: Match[str], img_type: Match[str]): 138 | if name.available: 139 | add_menu_matcher.set_path_arg("name", name.result) 140 | if img_type.available: 141 | add_menu_matcher.set_path_arg("img_type", img_type.result) 142 | 143 | 144 | @add_menu_matcher.got_path("name", prompt=f"请告诉{BOT_NAME}具体菜名或者饮品名吧") 145 | async def _(name: str): 146 | if not name: 147 | await UniMessage.text("菜名不能为空,请重新输入").finish() 148 | 149 | 150 | @add_menu_matcher.got_path("img_type", prompt=f"请告诉{BOT_NAME}具体菜单类型吧") 151 | async def _(img_type: str): 152 | if img_type in ["菜品", "菜单"]: 153 | add_menu_matcher.set_path_arg("img_type", "eat") 154 | elif img_type in ["饮料", "饮品"]: 155 | add_menu_matcher.set_path_arg("img_type", "drink") 156 | else: 157 | await UniMessage.text("菜单类型错误,请重新输入").finish() 158 | 159 | 160 | @add_menu_matcher.got_path( 161 | "img", prompt=f"请告诉{BOT_NAME}图片吧", middleware=image_fetch 162 | ) 163 | async def _( 164 | name: str, 165 | img_type: str, 166 | img: bytes, 167 | ): 168 | if not img: 169 | await UniMessage.text("图片不能为空,请重新输入").finish() 170 | try: 171 | save_pic(img, img_type=img_type, name=name) 172 | await UniMessage.text(f"成功添加{name}").finish() 173 | except OSError as e: 174 | await UniMessage.text(f"添加失败,请稍后重试\n{e}").finish() 175 | 176 | 177 | @del_menu_matcher.handle() 178 | async def _(name: Match[str], img_type: Match[str]): 179 | if name.available: 180 | del_menu_matcher.set_path_arg("name", name.result) 181 | if img_type.available: 182 | del_menu_matcher.set_path_arg("img_type", img_type.result) 183 | 184 | 185 | @del_menu_matcher.got_path("name", prompt=f"请告诉{BOT_NAME}具体菜名或者饮品名吧") 186 | async def _(name: str): 187 | if not name: 188 | await UniMessage.text("菜名不能为空,请重新输入").finish() 189 | 190 | 191 | @del_menu_matcher.got_path("img_type", prompt=f"请告诉{BOT_NAME}具体菜单类型吧") 192 | async def _(img_type: str, name: str): 193 | if img_type in ["菜品", "菜单"]: 194 | img_type = "eat" 195 | elif img_type in ["饮料", "饮品"]: 196 | img_type = "drink" 197 | else: 198 | await UniMessage.text("菜单类型错误,请重新输入").finish() 199 | try: 200 | delete_pic(img_type, name) # type: ignore 201 | await UniMessage.text(f"成功删除{name}").finish() 202 | except FileNotFoundError as e: 203 | await UniMessage.text(f"删除失败, {e}").finish() 204 | 205 | 206 | # 每日8点清空用户数据 207 | @scheduler.scheduled_job("cron", hour=8) 208 | async def _(): 209 | USER_DATA.clear() 210 | logger.info("已清空用户数据") 211 | -------------------------------------------------------------------------------- /nonebot_plugin_whateat_pic/menu.py: -------------------------------------------------------------------------------- 1 | from collections.abc import Iterator 2 | from pathlib import Path 3 | from typing import Literal 4 | 5 | from PIL import Image, ImageDraw, ImageFont 6 | 7 | from .config import config 8 | 9 | 10 | class Menu: 11 | """ 12 | 生成菜单的类 13 | """ 14 | 15 | dish_path: Path # 菜品图片的路径 16 | menu_background: Image.Image # 菜单背景图 17 | menu_font: ImageFont.FreeTypeFont # 菜单字体 18 | 19 | def __init__(self, menu_type: Literal["drink", "eat"]) -> None: 20 | # 菜单图片的路径 21 | self.dish_path = Path(config.whatpic_res_path) / f"{menu_type}_pic" 22 | # 获取所有菜品的名字 23 | self.all_dish_name = [i.stem for i in self.dish_path.iterdir()] 24 | # 菜单背景图 25 | self.menu_background = Image.open( 26 | Path(__file__).parent / "menu_res" / "menu_bg.jpg" 27 | ) 28 | # 字体大小 29 | self.font_size = 30 30 | # 加载字体 31 | self.menu_font = ImageFont.truetype( 32 | str(Path(__file__).parent / "menu_res" / "msyh.ttc"), self.font_size 33 | ) 34 | 35 | @property 36 | def menu_bg_size(self) -> tuple: 37 | """ 38 | 获取菜单背景图的大小 39 | """ 40 | return self.menu_background.size 41 | 42 | # 生成迭代器用于for循环遍历所有的生成的菜单 43 | def draw_menu(self) -> Iterator[Image.Image]: 44 | # 每个菜单的行数: 背景图高度 - 200(上下边距) // (字体大小+10(行间距)) = 菜单行数 45 | line_num = (self.menu_bg_size[1] - 150) // (self.font_size + 10) 46 | # 总共需要合成的图片数量 47 | img_num = len(self.all_dish_name) // line_num + 1 48 | # 生成所有菜单的图片 49 | for i in range(img_num): 50 | # 生成一张背景图的副本 51 | menu_img = self.menu_background.copy() 52 | # 生成draw对象 53 | draw = ImageDraw.Draw(menu_img) 54 | # 生成菜单的名字 55 | for j in range(line_num): 56 | # 如果菜单名字已经全部生成完毕 57 | if i * line_num + j >= len(self.all_dish_name): 58 | break 59 | # 生成菜单序号+名字,(居中显示) 60 | draw.text( 61 | ((self.menu_bg_size[0] - 300) // 2, 75 + j * (self.font_size + 10)), 62 | f"{i * line_num + j + 1}.{self.all_dish_name[i * line_num + j]}", 63 | font=self.menu_font, 64 | fill="black", 65 | ) 66 | yield menu_img 67 | 68 | 69 | # 测试程序 70 | -------------------------------------------------------------------------------- /nonebot_plugin_whateat_pic/menu_res/FZSJ-QINGCRJ.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/nonebot_plugin_whateat_pic/menu_res/FZSJ-QINGCRJ.TTF -------------------------------------------------------------------------------- /nonebot_plugin_whateat_pic/menu_res/menu_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/nonebot_plugin_whateat_pic/menu_res/menu_bg.jpg -------------------------------------------------------------------------------- /nonebot_plugin_whateat_pic/random_pic.py: -------------------------------------------------------------------------------- 1 | import secrets 2 | from pathlib import Path 3 | from typing import Literal 4 | 5 | from .config import config 6 | 7 | 8 | def random_pic(menu_type: Literal["drink", "eat"]) -> tuple[Path, str]: 9 | """ 10 | 随机获取一张图片 11 | """ 12 | if menu_type not in ["drink", "eat"]: 13 | raise ValueError("menu_type must be 'drink' or 'eat'") 14 | 15 | menu_dir = Path(config.whatpic_res_path) / f"{menu_type}_pic" 16 | pic_list = [entry.name for entry in menu_dir.iterdir() if entry.is_file()] 17 | 18 | pic_name = secrets.choice(pic_list) 19 | pic_path = Path(config.whatpic_res_path) / f"{menu_type}_pic" / pic_name 20 | return pic_path, pic_name.split(".")[0] 21 | -------------------------------------------------------------------------------- /pdm.lock: -------------------------------------------------------------------------------- 1 | # This file is @generated by PDM. 2 | # It is not intended for manual editing. 3 | 4 | [metadata] 5 | groups = ["default", "dev"] 6 | strategy = ["inherit_metadata"] 7 | lock_version = "4.5.0" 8 | content_hash = "sha256:28b9918d1f83bc8ad59e242c0637f71ea4cc271aff1f8cd8e7992955d40566fc" 9 | 10 | [[metadata.targets]] 11 | requires_python = "~=3.9" 12 | 13 | [[package]] 14 | name = "annotated-types" 15 | version = "0.7.0" 16 | requires_python = ">=3.8" 17 | summary = "Reusable constraint types to use with typing.Annotated" 18 | groups = ["default"] 19 | dependencies = [ 20 | "typing-extensions>=4.0.0; python_version < \"3.9\"", 21 | ] 22 | files = [ 23 | {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, 24 | {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, 25 | ] 26 | 27 | [[package]] 28 | name = "anyio" 29 | version = "4.6.2.post1" 30 | requires_python = ">=3.9" 31 | summary = "High level compatibility layer for multiple asynchronous event loop implementations" 32 | groups = ["default"] 33 | dependencies = [ 34 | "exceptiongroup>=1.0.2; python_version < \"3.11\"", 35 | "idna>=2.8", 36 | "sniffio>=1.1", 37 | "typing-extensions>=4.1; python_version < \"3.11\"", 38 | ] 39 | files = [ 40 | {file = "anyio-4.6.2.post1-py3-none-any.whl", hash = "sha256:6d170c36fba3bdd840c73d3868c1e777e33676a69c3a72cf0a0d5d6d8009b61d"}, 41 | {file = "anyio-4.6.2.post1.tar.gz", hash = "sha256:4c8bc31ccdb51c7f7bd251f51c609e038d63e34219b44aa86e47576389880b4c"}, 42 | ] 43 | 44 | [[package]] 45 | name = "apscheduler" 46 | version = "3.11.0" 47 | requires_python = ">=3.8" 48 | summary = "In-process task scheduler with Cron-like capabilities" 49 | groups = ["default"] 50 | dependencies = [ 51 | "backports-zoneinfo; python_version < \"3.9\"", 52 | "tzlocal>=3.0", 53 | ] 54 | files = [ 55 | {file = "APScheduler-3.11.0-py3-none-any.whl", hash = "sha256:fc134ca32e50f5eadcc4938e3a4545ab19131435e851abb40b34d63d5141c6da"}, 56 | {file = "apscheduler-3.11.0.tar.gz", hash = "sha256:4c622d250b0955a65d5d0eb91c33e6d43fd879834bf541e0a18661ae60460133"}, 57 | ] 58 | 59 | [[package]] 60 | name = "arclet-alconna" 61 | version = "1.8.34" 62 | requires_python = ">=3.9" 63 | summary = "A High-performance, Generality, Humane Command Line Arguments Parser Library." 64 | groups = ["default"] 65 | dependencies = [ 66 | "nepattern<1.0.0,>=0.7.7", 67 | "tarina<0.7.0,>=0.6.1", 68 | "typing-extensions>=4.5.0", 69 | ] 70 | files = [ 71 | {file = "arclet_alconna-1.8.34-py3-none-any.whl", hash = "sha256:8406ffbdfe4230c636360b42508e13b867ebb372a0c6a86cb165a6bfd58a2c1b"}, 72 | {file = "arclet_alconna-1.8.34.tar.gz", hash = "sha256:93f7c5f9072aaf1bbf23bad6bacbd4251580694fd2850ff77981fff689933c4b"}, 73 | ] 74 | 75 | [[package]] 76 | name = "arclet-alconna-tools" 77 | version = "0.7.10" 78 | requires_python = ">=3.9" 79 | summary = "Builtin Tools for Alconna" 80 | groups = ["default"] 81 | dependencies = [ 82 | "arclet-alconna>=1.8.31", 83 | "nepattern<1.0.0,>=0.7.3", 84 | ] 85 | files = [ 86 | {file = "arclet_alconna_tools-0.7.10-py3-none-any.whl", hash = "sha256:50e8b2f433fbc612dc8b99f4f5410006dcb1ef406c971c795071117a4eab8e20"}, 87 | {file = "arclet_alconna_tools-0.7.10.tar.gz", hash = "sha256:446a63a9c56886c23fb44548bb9a18655e0ba5b5dd80cc87915b858dfb02554c"}, 88 | ] 89 | 90 | [[package]] 91 | name = "black" 92 | version = "22.12.0" 93 | requires_python = ">=3.7" 94 | summary = "The uncompromising code formatter." 95 | groups = ["dev"] 96 | dependencies = [ 97 | "click>=8.0.0", 98 | "mypy-extensions>=0.4.3", 99 | "pathspec>=0.9.0", 100 | "platformdirs>=2", 101 | "tomli>=1.1.0; python_full_version < \"3.11.0a7\"", 102 | "typed-ast>=1.4.2; python_version < \"3.8\" and implementation_name == \"cpython\"", 103 | "typing-extensions>=3.10.0.0; python_version < \"3.10\"", 104 | ] 105 | files = [ 106 | {file = "black-22.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d"}, 107 | {file = "black-22.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351"}, 108 | {file = "black-22.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f"}, 109 | {file = "black-22.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4"}, 110 | {file = "black-22.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320"}, 111 | {file = "black-22.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148"}, 112 | {file = "black-22.12.0-py3-none-any.whl", hash = "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf"}, 113 | {file = "black-22.12.0.tar.gz", hash = "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f"}, 114 | ] 115 | 116 | [[package]] 117 | name = "certifi" 118 | version = "2024.8.30" 119 | requires_python = ">=3.6" 120 | summary = "Python package for providing Mozilla's CA Bundle." 121 | groups = ["default"] 122 | files = [ 123 | {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, 124 | {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, 125 | ] 126 | 127 | [[package]] 128 | name = "cfgv" 129 | version = "3.4.0" 130 | requires_python = ">=3.8" 131 | summary = "Validate configuration and produce human readable error messages." 132 | groups = ["dev"] 133 | files = [ 134 | {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, 135 | {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, 136 | ] 137 | 138 | [[package]] 139 | name = "click" 140 | version = "8.1.7" 141 | requires_python = ">=3.7" 142 | summary = "Composable command line interface toolkit" 143 | groups = ["dev"] 144 | dependencies = [ 145 | "colorama; platform_system == \"Windows\"", 146 | "importlib-metadata; python_version < \"3.8\"", 147 | ] 148 | files = [ 149 | {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, 150 | {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, 151 | ] 152 | 153 | [[package]] 154 | name = "colorama" 155 | version = "0.4.6" 156 | requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" 157 | summary = "Cross-platform colored terminal text." 158 | groups = ["default", "dev"] 159 | marker = "sys_platform == \"win32\" or platform_system == \"Windows\"" 160 | files = [ 161 | {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, 162 | {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, 163 | ] 164 | 165 | [[package]] 166 | name = "distlib" 167 | version = "0.3.9" 168 | summary = "Distribution utilities" 169 | groups = ["dev"] 170 | files = [ 171 | {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, 172 | {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, 173 | ] 174 | 175 | [[package]] 176 | name = "exceptiongroup" 177 | version = "1.2.2" 178 | requires_python = ">=3.7" 179 | summary = "Backport of PEP 654 (exception groups)" 180 | groups = ["default"] 181 | files = [ 182 | {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, 183 | {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, 184 | ] 185 | 186 | [[package]] 187 | name = "filelock" 188 | version = "3.16.1" 189 | requires_python = ">=3.8" 190 | summary = "A platform independent file lock." 191 | groups = ["dev"] 192 | files = [ 193 | {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, 194 | {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, 195 | ] 196 | 197 | [[package]] 198 | name = "h11" 199 | version = "0.14.0" 200 | requires_python = ">=3.7" 201 | summary = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" 202 | groups = ["default"] 203 | dependencies = [ 204 | "typing-extensions; python_version < \"3.8\"", 205 | ] 206 | files = [ 207 | {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, 208 | {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, 209 | ] 210 | 211 | [[package]] 212 | name = "httpcore" 213 | version = "1.0.7" 214 | requires_python = ">=3.8" 215 | summary = "A minimal low-level HTTP client." 216 | groups = ["default"] 217 | dependencies = [ 218 | "certifi", 219 | "h11<0.15,>=0.13", 220 | ] 221 | files = [ 222 | {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, 223 | {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, 224 | ] 225 | 226 | [[package]] 227 | name = "httpx" 228 | version = "0.28.0" 229 | requires_python = ">=3.8" 230 | summary = "The next generation HTTP client." 231 | groups = ["default"] 232 | dependencies = [ 233 | "anyio", 234 | "certifi", 235 | "httpcore==1.*", 236 | "idna", 237 | ] 238 | files = [ 239 | {file = "httpx-0.28.0-py3-none-any.whl", hash = "sha256:dc0b419a0cfeb6e8b34e85167c0da2671206f5095f1baa9663d23bcfd6b535fc"}, 240 | {file = "httpx-0.28.0.tar.gz", hash = "sha256:0858d3bab51ba7e386637f22a61d8ccddaeec5f3fe4209da3a6168dbb91573e0"}, 241 | ] 242 | 243 | [[package]] 244 | name = "identify" 245 | version = "2.6.3" 246 | requires_python = ">=3.9" 247 | summary = "File identification library for Python" 248 | groups = ["dev"] 249 | files = [ 250 | {file = "identify-2.6.3-py2.py3-none-any.whl", hash = "sha256:9edba65473324c2ea9684b1f944fe3191db3345e50b6d04571d10ed164f8d7bd"}, 251 | {file = "identify-2.6.3.tar.gz", hash = "sha256:62f5dae9b5fef52c84cc188514e9ea4f3f636b1d8799ab5ebc475471f9e47a02"}, 252 | ] 253 | 254 | [[package]] 255 | name = "idna" 256 | version = "3.10" 257 | requires_python = ">=3.6" 258 | summary = "Internationalized Domain Names in Applications (IDNA)" 259 | groups = ["default"] 260 | files = [ 261 | {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, 262 | {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, 263 | ] 264 | 265 | [[package]] 266 | name = "importlib-metadata" 267 | version = "8.5.0" 268 | requires_python = ">=3.8" 269 | summary = "Read metadata from Python packages" 270 | groups = ["default"] 271 | dependencies = [ 272 | "typing-extensions>=3.6.4; python_version < \"3.8\"", 273 | "zipp>=3.20", 274 | ] 275 | files = [ 276 | {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"}, 277 | {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"}, 278 | ] 279 | 280 | [[package]] 281 | name = "loguru" 282 | version = "0.7.2" 283 | requires_python = ">=3.5" 284 | summary = "Python logging made (stupidly) simple" 285 | groups = ["default"] 286 | dependencies = [ 287 | "aiocontextvars>=0.2.0; python_version < \"3.7\"", 288 | "colorama>=0.3.4; sys_platform == \"win32\"", 289 | "win32-setctime>=1.0.0; sys_platform == \"win32\"", 290 | ] 291 | files = [ 292 | {file = "loguru-0.7.2-py3-none-any.whl", hash = "sha256:003d71e3d3ed35f0f8984898359d65b79e5b21943f78af86aa5491210429b8eb"}, 293 | {file = "loguru-0.7.2.tar.gz", hash = "sha256:e671a53522515f34fd406340ee968cb9ecafbc4b36c679da03c18fd8d0bd51ac"}, 294 | ] 295 | 296 | [[package]] 297 | name = "markdown-it-py" 298 | version = "3.0.0" 299 | requires_python = ">=3.8" 300 | summary = "Python port of markdown-it. Markdown parsing, done right!" 301 | groups = ["default"] 302 | dependencies = [ 303 | "mdurl~=0.1", 304 | ] 305 | files = [ 306 | {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, 307 | {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, 308 | ] 309 | 310 | [[package]] 311 | name = "mdurl" 312 | version = "0.1.2" 313 | requires_python = ">=3.7" 314 | summary = "Markdown URL utilities" 315 | groups = ["default"] 316 | files = [ 317 | {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, 318 | {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, 319 | ] 320 | 321 | [[package]] 322 | name = "multidict" 323 | version = "6.1.0" 324 | requires_python = ">=3.8" 325 | summary = "multidict implementation" 326 | groups = ["default"] 327 | dependencies = [ 328 | "typing-extensions>=4.1.0; python_version < \"3.11\"", 329 | ] 330 | files = [ 331 | {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, 332 | {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, 333 | {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, 334 | {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, 335 | {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, 336 | {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, 337 | {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, 338 | {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, 339 | {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, 340 | {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, 341 | {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, 342 | {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, 343 | {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, 344 | {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, 345 | {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, 346 | {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, 347 | {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, 348 | {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, 349 | {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, 350 | {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, 351 | {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, 352 | {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, 353 | {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, 354 | {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, 355 | {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, 356 | {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, 357 | {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, 358 | {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, 359 | {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, 360 | {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, 361 | {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, 362 | {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, 363 | {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, 364 | {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, 365 | {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, 366 | {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, 367 | {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, 368 | {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, 369 | {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, 370 | {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, 371 | {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, 372 | {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, 373 | {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, 374 | {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, 375 | {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, 376 | {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, 377 | {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, 378 | {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, 379 | {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, 380 | {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, 381 | {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, 382 | {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, 383 | {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, 384 | {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, 385 | {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, 386 | {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, 387 | {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, 388 | {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, 389 | {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, 390 | {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, 391 | {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, 392 | {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, 393 | {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, 394 | {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, 395 | {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, 396 | {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, 397 | {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, 398 | {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, 399 | {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, 400 | {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, 401 | {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, 402 | {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, 403 | {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, 404 | {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, 405 | {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, 406 | {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, 407 | {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, 408 | ] 409 | 410 | [[package]] 411 | name = "mypy-extensions" 412 | version = "1.0.0" 413 | requires_python = ">=3.5" 414 | summary = "Type system extensions for programs checked with the mypy type checker." 415 | groups = ["dev"] 416 | files = [ 417 | {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, 418 | {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, 419 | ] 420 | 421 | [[package]] 422 | name = "nepattern" 423 | version = "0.7.7" 424 | requires_python = ">=3.8" 425 | summary = "a complex pattern, support typing" 426 | groups = ["default"] 427 | dependencies = [ 428 | "tarina>=0.5.1", 429 | "typing-extensions>=4.5.0", 430 | ] 431 | files = [ 432 | {file = "nepattern-0.7.7-py3-none-any.whl", hash = "sha256:2d66f964333f42df7971390da4fb98dfed1e8b769236f305c28a83c0bcda849a"}, 433 | {file = "nepattern-0.7.7.tar.gz", hash = "sha256:6667f888457e78937998f9412eb70ad16d220464d2d77850dd2b05e9ecfb3207"}, 434 | ] 435 | 436 | [[package]] 437 | name = "nodeenv" 438 | version = "1.9.1" 439 | requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" 440 | summary = "Node.js virtual environment builder" 441 | groups = ["dev"] 442 | files = [ 443 | {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, 444 | {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, 445 | ] 446 | 447 | [[package]] 448 | name = "nonebot-plugin-alconna" 449 | version = "0.54.0" 450 | requires_python = ">=3.9" 451 | summary = "Alconna Adapter for Nonebot" 452 | groups = ["default"] 453 | dependencies = [ 454 | "arclet-alconna-tools>=0.7.10", 455 | "arclet-alconna<2.0,>=1.8.34", 456 | "importlib-metadata>=4.13.0", 457 | "nepattern<1.0,>=0.7.7", 458 | "nonebot-plugin-waiter>=0.6.0", 459 | "nonebot2>=2.3.0", 460 | "tarina<0.7,>=0.6.3", 461 | ] 462 | files = [ 463 | {file = "nonebot_plugin_alconna-0.54.0-py3-none-any.whl", hash = "sha256:d117c6e2906a7ca27e004ac21b6c7ce96e3a7a4903b0fddd879358a1d690b49c"}, 464 | {file = "nonebot_plugin_alconna-0.54.0.tar.gz", hash = "sha256:3e80ff59e997b386af65785b7d37b56ebabe7cd52236d603bbdf97b85f8151d6"}, 465 | ] 466 | 467 | [[package]] 468 | name = "nonebot-plugin-apscheduler" 469 | version = "0.5.0" 470 | requires_python = "<4.0,>=3.9" 471 | summary = "APScheduler Support for NoneBot2" 472 | groups = ["default"] 473 | dependencies = [ 474 | "apscheduler<4.0.0,>=3.7.0", 475 | "nonebot2<3.0.0,>=2.2.0", 476 | "pydantic!=2.5.0,!=2.5.1,<3.0.0,>=1.10.0", 477 | ] 478 | files = [ 479 | {file = "nonebot_plugin_apscheduler-0.5.0-py3-none-any.whl", hash = "sha256:8b99b5ee60c4bc195d4df2fd27dab3d6963691e3332f6cee31a06eb4277c307f"}, 480 | {file = "nonebot_plugin_apscheduler-0.5.0.tar.gz", hash = "sha256:6c0230e99765f275dc83d6639ff33bd6f71203fa10cd1b8a204b0f95530cda86"}, 481 | ] 482 | 483 | [[package]] 484 | name = "nonebot-plugin-waiter" 485 | version = "0.8.0" 486 | requires_python = ">=3.9" 487 | summary = "An alternative for got-and-reject in Nonebot" 488 | groups = ["default"] 489 | dependencies = [ 490 | "nonebot2>=2.3.0", 491 | ] 492 | files = [ 493 | {file = "nonebot_plugin_waiter-0.8.0-py3-none-any.whl", hash = "sha256:eabf284f783a1e534591a552139a747623e621453a790b554854bc8a386f783f"}, 494 | {file = "nonebot_plugin_waiter-0.8.0.tar.gz", hash = "sha256:b750f2a3b255ebe9ab7ce75056c1e829281d898c6da8d81552147df2b1686270"}, 495 | ] 496 | 497 | [[package]] 498 | name = "nonebot2" 499 | version = "2.4.0" 500 | requires_python = "<4.0,>=3.9" 501 | summary = "An asynchronous python bot framework." 502 | groups = ["default"] 503 | dependencies = [ 504 | "anyio<5.0.0,>=4.4.0", 505 | "exceptiongroup<2.0.0,>=1.2.2", 506 | "loguru<1.0.0,>=0.6.0", 507 | "pydantic!=2.5.0,!=2.5.1,<3.0.0,>=1.10.0", 508 | "pygtrie<3.0.0,>=2.4.1", 509 | "python-dotenv<2.0.0,>=0.21.0", 510 | "tomli<3.0.0,>=2.0.1; python_version < \"3.11\"", 511 | "typing-extensions<5.0.0,>=4.4.0", 512 | "yarl<2.0.0,>=1.7.2", 513 | ] 514 | files = [ 515 | {file = "nonebot2-2.4.0-py3-none-any.whl", hash = "sha256:7c712e05561afa4795c9135a5b27a43d076220f4538ffec518e68c344e3e51d4"}, 516 | {file = "nonebot2-2.4.0.tar.gz", hash = "sha256:4b10e33d389847500c9bde9ef3c5533b604a90ca1529750245f1aaf82b28f1e1"}, 517 | ] 518 | 519 | [[package]] 520 | name = "pathspec" 521 | version = "0.12.1" 522 | requires_python = ">=3.8" 523 | summary = "Utility library for gitignore style pattern matching of file paths." 524 | groups = ["dev"] 525 | files = [ 526 | {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, 527 | {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, 528 | ] 529 | 530 | [[package]] 531 | name = "pillow" 532 | version = "11.0.0" 533 | requires_python = ">=3.9" 534 | summary = "Python Imaging Library (Fork)" 535 | groups = ["default"] 536 | files = [ 537 | {file = "pillow-11.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947"}, 538 | {file = "pillow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba"}, 539 | {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086"}, 540 | {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9"}, 541 | {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488"}, 542 | {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f"}, 543 | {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb"}, 544 | {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97"}, 545 | {file = "pillow-11.0.0-cp310-cp310-win32.whl", hash = "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50"}, 546 | {file = "pillow-11.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c"}, 547 | {file = "pillow-11.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1"}, 548 | {file = "pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc"}, 549 | {file = "pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a"}, 550 | {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3"}, 551 | {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5"}, 552 | {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b"}, 553 | {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa"}, 554 | {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306"}, 555 | {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9"}, 556 | {file = "pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5"}, 557 | {file = "pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291"}, 558 | {file = "pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9"}, 559 | {file = "pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923"}, 560 | {file = "pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903"}, 561 | {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4"}, 562 | {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f"}, 563 | {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9"}, 564 | {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7"}, 565 | {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6"}, 566 | {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc"}, 567 | {file = "pillow-11.0.0-cp312-cp312-win32.whl", hash = "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6"}, 568 | {file = "pillow-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47"}, 569 | {file = "pillow-11.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25"}, 570 | {file = "pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699"}, 571 | {file = "pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38"}, 572 | {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2"}, 573 | {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2"}, 574 | {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527"}, 575 | {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa"}, 576 | {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f"}, 577 | {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb"}, 578 | {file = "pillow-11.0.0-cp313-cp313-win32.whl", hash = "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798"}, 579 | {file = "pillow-11.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de"}, 580 | {file = "pillow-11.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84"}, 581 | {file = "pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b"}, 582 | {file = "pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003"}, 583 | {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2"}, 584 | {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a"}, 585 | {file = "pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8"}, 586 | {file = "pillow-11.0.0-cp313-cp313t-win32.whl", hash = "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8"}, 587 | {file = "pillow-11.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904"}, 588 | {file = "pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3"}, 589 | {file = "pillow-11.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2e46773dc9f35a1dd28bd6981332fd7f27bec001a918a72a79b4133cf5291dba"}, 590 | {file = "pillow-11.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2679d2258b7f1192b378e2893a8a0a0ca472234d4c2c0e6bdd3380e8dfa21b6a"}, 591 | {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eda2616eb2313cbb3eebbe51f19362eb434b18e3bb599466a1ffa76a033fb916"}, 592 | {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ec184af98a121fb2da42642dea8a29ec80fc3efbaefb86d8fdd2606619045d"}, 593 | {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:8594f42df584e5b4bb9281799698403f7af489fba84c34d53d1c4bfb71b7c4e7"}, 594 | {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:c12b5ae868897c7338519c03049a806af85b9b8c237b7d675b8c5e089e4a618e"}, 595 | {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:70fbbdacd1d271b77b7721fe3cdd2d537bbbd75d29e6300c672ec6bb38d9672f"}, 596 | {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5178952973e588b3f1360868847334e9e3bf49d19e169bbbdfaf8398002419ae"}, 597 | {file = "pillow-11.0.0-cp39-cp39-win32.whl", hash = "sha256:8c676b587da5673d3c75bd67dd2a8cdfeb282ca38a30f37950511766b26858c4"}, 598 | {file = "pillow-11.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:94f3e1780abb45062287b4614a5bc0874519c86a777d4a7ad34978e86428b8dd"}, 599 | {file = "pillow-11.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:290f2cc809f9da7d6d622550bbf4c1e57518212da51b6a30fe8e0a270a5b78bd"}, 600 | {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2"}, 601 | {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2"}, 602 | {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b"}, 603 | {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2"}, 604 | {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830"}, 605 | {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734"}, 606 | {file = "pillow-11.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316"}, 607 | {file = "pillow-11.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5bd2d3bdb846d757055910f0a59792d33b555800813c3b39ada1829c372ccb06"}, 608 | {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:375b8dd15a1f5d2feafff536d47e22f69625c1aa92f12b339ec0b2ca40263273"}, 609 | {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:daffdf51ee5db69a82dd127eabecce20729e21f7a3680cf7cbb23f0829189790"}, 610 | {file = "pillow-11.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7326a1787e3c7b0429659e0a944725e1b03eeaa10edd945a86dead1913383944"}, 611 | {file = "pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739"}, 612 | ] 613 | 614 | [[package]] 615 | name = "platformdirs" 616 | version = "4.3.6" 617 | requires_python = ">=3.8" 618 | summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." 619 | groups = ["dev"] 620 | files = [ 621 | {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, 622 | {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, 623 | ] 624 | 625 | [[package]] 626 | name = "pre-commit" 627 | version = "4.0.1" 628 | requires_python = ">=3.9" 629 | summary = "A framework for managing and maintaining multi-language pre-commit hooks." 630 | groups = ["dev"] 631 | dependencies = [ 632 | "cfgv>=2.0.0", 633 | "identify>=1.0.0", 634 | "nodeenv>=0.11.1", 635 | "pyyaml>=5.1", 636 | "virtualenv>=20.10.0", 637 | ] 638 | files = [ 639 | {file = "pre_commit-4.0.1-py2.py3-none-any.whl", hash = "sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878"}, 640 | {file = "pre_commit-4.0.1.tar.gz", hash = "sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2"}, 641 | ] 642 | 643 | [[package]] 644 | name = "propcache" 645 | version = "0.2.1" 646 | requires_python = ">=3.9" 647 | summary = "Accelerated property cache" 648 | groups = ["default"] 649 | files = [ 650 | {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, 651 | {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, 652 | {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, 653 | {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, 654 | {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, 655 | {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, 656 | {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, 657 | {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, 658 | {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, 659 | {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, 660 | {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, 661 | {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, 662 | {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, 663 | {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, 664 | {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, 665 | {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, 666 | {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, 667 | {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, 668 | {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, 669 | {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, 670 | {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, 671 | {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, 672 | {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, 673 | {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, 674 | {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, 675 | {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, 676 | {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, 677 | {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, 678 | {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, 679 | {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, 680 | {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, 681 | {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, 682 | {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, 683 | {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, 684 | {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, 685 | {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, 686 | {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, 687 | {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, 688 | {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, 689 | {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, 690 | {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, 691 | {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, 692 | {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, 693 | {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, 694 | {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, 695 | {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, 696 | {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, 697 | {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, 698 | {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, 699 | {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, 700 | {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, 701 | {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, 702 | {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, 703 | {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, 704 | {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, 705 | {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, 706 | {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, 707 | {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, 708 | {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, 709 | {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, 710 | {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, 711 | {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, 712 | {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, 713 | {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, 714 | {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, 715 | {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, 716 | {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, 717 | {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, 718 | {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, 719 | {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, 720 | {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, 721 | {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, 722 | {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, 723 | {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, 724 | {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, 725 | {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, 726 | {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, 727 | {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, 728 | {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, 729 | {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, 730 | {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, 731 | {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, 732 | ] 733 | 734 | [[package]] 735 | name = "pydantic" 736 | version = "2.10.3" 737 | requires_python = ">=3.8" 738 | summary = "Data validation using Python type hints" 739 | groups = ["default"] 740 | dependencies = [ 741 | "annotated-types>=0.6.0", 742 | "pydantic-core==2.27.1", 743 | "typing-extensions>=4.12.2", 744 | ] 745 | files = [ 746 | {file = "pydantic-2.10.3-py3-none-any.whl", hash = "sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d"}, 747 | {file = "pydantic-2.10.3.tar.gz", hash = "sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9"}, 748 | ] 749 | 750 | [[package]] 751 | name = "pydantic-core" 752 | version = "2.27.1" 753 | requires_python = ">=3.8" 754 | summary = "Core functionality for Pydantic validation and serialization" 755 | groups = ["default"] 756 | dependencies = [ 757 | "typing-extensions!=4.7.0,>=4.6.0", 758 | ] 759 | files = [ 760 | {file = "pydantic_core-2.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a"}, 761 | {file = "pydantic_core-2.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b"}, 762 | {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:121ceb0e822f79163dd4699e4c54f5ad38b157084d97b34de8b232bcaad70278"}, 763 | {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4603137322c18eaf2e06a4495f426aa8d8388940f3c457e7548145011bb68e05"}, 764 | {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a33cd6ad9017bbeaa9ed78a2e0752c5e250eafb9534f308e7a5f7849b0b1bfb4"}, 765 | {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15cc53a3179ba0fcefe1e3ae50beb2784dede4003ad2dfd24f81bba4b23a454f"}, 766 | {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d9c5eb9273aa50999ad6adc6be5e0ecea7e09dbd0d31bd0c65a55a2592ca08"}, 767 | {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bf7b66ce12a2ac52d16f776b31d16d91033150266eb796967a7e4621707e4f6"}, 768 | {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807"}, 769 | {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c"}, 770 | {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206"}, 771 | {file = "pydantic_core-2.27.1-cp310-none-win32.whl", hash = "sha256:f5a823165e6d04ccea61a9f0576f345f8ce40ed533013580e087bd4d7442b52c"}, 772 | {file = "pydantic_core-2.27.1-cp310-none-win_amd64.whl", hash = "sha256:57866a76e0b3823e0b56692d1a0bf722bffb324839bb5b7226a7dbd6c9a40b17"}, 773 | {file = "pydantic_core-2.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8"}, 774 | {file = "pydantic_core-2.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330"}, 775 | {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52"}, 776 | {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bed0f8a0eeea9fb72937ba118f9db0cb7e90773462af7962d382445f3005e5a4"}, 777 | {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3cb37038123447cf0f3ea4c74751f6a9d7afef0eb71aa07bf5f652b5e6a132c"}, 778 | {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84286494f6c5d05243456e04223d5a9417d7f443c3b76065e75001beb26f88de"}, 779 | {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acc07b2cfc5b835444b44a9956846b578d27beeacd4b52e45489e93276241025"}, 780 | {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fefee876e07a6e9aad7a8c8c9f85b0cdbe7df52b8a9552307b09050f7512c7e"}, 781 | {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919"}, 782 | {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c"}, 783 | {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc"}, 784 | {file = "pydantic_core-2.27.1-cp311-none-win32.whl", hash = "sha256:2cdf7d86886bc6982354862204ae3b2f7f96f21a3eb0ba5ca0ac42c7b38598b9"}, 785 | {file = "pydantic_core-2.27.1-cp311-none-win_amd64.whl", hash = "sha256:3af385b0cee8df3746c3f406f38bcbfdc9041b5c2d5ce3e5fc6637256e60bbc5"}, 786 | {file = "pydantic_core-2.27.1-cp311-none-win_arm64.whl", hash = "sha256:81f2ec23ddc1b476ff96563f2e8d723830b06dceae348ce02914a37cb4e74b89"}, 787 | {file = "pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f"}, 788 | {file = "pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02"}, 789 | {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c"}, 790 | {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac"}, 791 | {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb"}, 792 | {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529"}, 793 | {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35"}, 794 | {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089"}, 795 | {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381"}, 796 | {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb"}, 797 | {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae"}, 798 | {file = "pydantic_core-2.27.1-cp312-none-win32.whl", hash = "sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c"}, 799 | {file = "pydantic_core-2.27.1-cp312-none-win_amd64.whl", hash = "sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16"}, 800 | {file = "pydantic_core-2.27.1-cp312-none-win_arm64.whl", hash = "sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e"}, 801 | {file = "pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073"}, 802 | {file = "pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08"}, 803 | {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf"}, 804 | {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737"}, 805 | {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2"}, 806 | {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107"}, 807 | {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51"}, 808 | {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a"}, 809 | {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc"}, 810 | {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960"}, 811 | {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23"}, 812 | {file = "pydantic_core-2.27.1-cp313-none-win32.whl", hash = "sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05"}, 813 | {file = "pydantic_core-2.27.1-cp313-none-win_amd64.whl", hash = "sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337"}, 814 | {file = "pydantic_core-2.27.1-cp313-none-win_arm64.whl", hash = "sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5"}, 815 | {file = "pydantic_core-2.27.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e9386266798d64eeb19dd3677051f5705bf873e98e15897ddb7d76f477131967"}, 816 | {file = "pydantic_core-2.27.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4228b5b646caa73f119b1ae756216b59cc6e2267201c27d3912b592c5e323b60"}, 817 | {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3dfe500de26c52abe0477dde16192ac39c98f05bf2d80e76102d394bd13854"}, 818 | {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aee66be87825cdf72ac64cb03ad4c15ffef4143dbf5c113f64a5ff4f81477bf9"}, 819 | {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b748c44bb9f53031c8cbc99a8a061bc181c1000c60a30f55393b6e9c45cc5bd"}, 820 | {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ca038c7f6a0afd0b2448941b6ef9d5e1949e999f9e5517692eb6da58e9d44be"}, 821 | {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e0bd57539da59a3e4671b90a502da9a28c72322a4f17866ba3ac63a82c4498e"}, 822 | {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac6c2c45c847bbf8f91930d88716a0fb924b51e0c6dad329b793d670ec5db792"}, 823 | {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b94d4ba43739bbe8b0ce4262bcc3b7b9f31459ad120fb595627eaeb7f9b9ca01"}, 824 | {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:00e6424f4b26fe82d44577b4c842d7df97c20be6439e8e685d0d715feceb9fb9"}, 825 | {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:38de0a70160dd97540335b7ad3a74571b24f1dc3ed33f815f0880682e6880131"}, 826 | {file = "pydantic_core-2.27.1-cp39-none-win32.whl", hash = "sha256:7ccebf51efc61634f6c2344da73e366c75e735960b5654b63d7e6f69a5885fa3"}, 827 | {file = "pydantic_core-2.27.1-cp39-none-win_amd64.whl", hash = "sha256:a57847b090d7892f123726202b7daa20df6694cbd583b67a592e856bff603d6c"}, 828 | {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6"}, 829 | {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676"}, 830 | {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d"}, 831 | {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a3d637bd387c41d46b002f0e49c52642281edacd2740e5a42f7017feea3f2c"}, 832 | {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:161c27ccce13b6b0c8689418da3885d3220ed2eae2ea5e9b2f7f3d48f1d52c27"}, 833 | {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f"}, 834 | {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed"}, 835 | {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f"}, 836 | {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:981fb88516bd1ae8b0cbbd2034678a39dedc98752f264ac9bc5839d3923fa04c"}, 837 | {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5fde892e6c697ce3e30c61b239330fc5d569a71fefd4eb6512fc6caec9dd9e2f"}, 838 | {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:816f5aa087094099fff7edabb5e01cc370eb21aa1a1d44fe2d2aefdfb5599b31"}, 839 | {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c10c309e18e443ddb108f0ef64e8729363adbfd92d6d57beec680f6261556f3"}, 840 | {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98476c98b02c8e9b2eec76ac4156fd006628b1b2d0ef27e548ffa978393fd154"}, 841 | {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3027001c28434e7ca5a6e1e527487051136aa81803ac812be51802150d880dd"}, 842 | {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:7699b1df36a48169cdebda7ab5a2bac265204003f153b4bd17276153d997670a"}, 843 | {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1c39b07d90be6b48968ddc8c19e7585052088fd7ec8d568bb31ff64c70ae3c97"}, 844 | {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:46ccfe3032b3915586e469d4972973f893c0a2bb65669194a5bdea9bacc088c2"}, 845 | {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:62ba45e21cf6571d7f716d903b5b7b6d2617e2d5d67c0923dc47b9d41369f840"}, 846 | {file = "pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235"}, 847 | ] 848 | 849 | [[package]] 850 | name = "pygments" 851 | version = "2.18.0" 852 | requires_python = ">=3.8" 853 | summary = "Pygments is a syntax highlighting package written in Python." 854 | groups = ["default"] 855 | files = [ 856 | {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, 857 | {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, 858 | ] 859 | 860 | [[package]] 861 | name = "pygtrie" 862 | version = "2.5.0" 863 | summary = "A pure Python trie data structure implementation." 864 | groups = ["default"] 865 | files = [ 866 | {file = "pygtrie-2.5.0-py3-none-any.whl", hash = "sha256:8795cda8105493d5ae159a5bef313ff13156c5d4d72feddefacaad59f8c8ce16"}, 867 | {file = "pygtrie-2.5.0.tar.gz", hash = "sha256:203514ad826eb403dab1d2e2ddd034e0d1534bbe4dbe0213bb0593f66beba4e2"}, 868 | ] 869 | 870 | [[package]] 871 | name = "python-dotenv" 872 | version = "1.0.1" 873 | requires_python = ">=3.8" 874 | summary = "Read key-value pairs from a .env file and set them as environment variables" 875 | groups = ["default"] 876 | files = [ 877 | {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, 878 | {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, 879 | ] 880 | 881 | [[package]] 882 | name = "pyyaml" 883 | version = "6.0.2" 884 | requires_python = ">=3.8" 885 | summary = "YAML parser and emitter for Python" 886 | groups = ["dev"] 887 | files = [ 888 | {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, 889 | {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, 890 | {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, 891 | {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, 892 | {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, 893 | {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, 894 | {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, 895 | {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, 896 | {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, 897 | {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, 898 | {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, 899 | {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, 900 | {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, 901 | {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, 902 | {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, 903 | {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, 904 | {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, 905 | {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, 906 | {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, 907 | {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, 908 | {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, 909 | {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, 910 | {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, 911 | {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, 912 | {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, 913 | {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, 914 | {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, 915 | {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, 916 | {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, 917 | {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, 918 | {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, 919 | {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, 920 | {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, 921 | {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, 922 | {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, 923 | {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, 924 | {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, 925 | {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, 926 | {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, 927 | {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, 928 | {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, 929 | {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, 930 | {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, 931 | {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, 932 | {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, 933 | {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, 934 | ] 935 | 936 | [[package]] 937 | name = "rich" 938 | version = "13.9.4" 939 | requires_python = ">=3.8.0" 940 | summary = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" 941 | groups = ["default"] 942 | dependencies = [ 943 | "markdown-it-py>=2.2.0", 944 | "pygments<3.0.0,>=2.13.0", 945 | "typing-extensions<5.0,>=4.0.0; python_version < \"3.11\"", 946 | ] 947 | files = [ 948 | {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, 949 | {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, 950 | ] 951 | 952 | [[package]] 953 | name = "ruff" 954 | version = "0.8.1" 955 | requires_python = ">=3.7" 956 | summary = "An extremely fast Python linter and code formatter, written in Rust." 957 | groups = ["dev"] 958 | files = [ 959 | {file = "ruff-0.8.1-py3-none-linux_armv6l.whl", hash = "sha256:fae0805bd514066f20309f6742f6ee7904a773eb9e6c17c45d6b1600ca65c9b5"}, 960 | {file = "ruff-0.8.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b8a4f7385c2285c30f34b200ca5511fcc865f17578383db154e098150ce0a087"}, 961 | {file = "ruff-0.8.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cd054486da0c53e41e0086e1730eb77d1f698154f910e0cd9e0d64274979a209"}, 962 | {file = "ruff-0.8.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2029b8c22da147c50ae577e621a5bfbc5d1fed75d86af53643d7a7aee1d23871"}, 963 | {file = "ruff-0.8.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2666520828dee7dfc7e47ee4ea0d928f40de72056d929a7c5292d95071d881d1"}, 964 | {file = "ruff-0.8.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:333c57013ef8c97a53892aa56042831c372e0bb1785ab7026187b7abd0135ad5"}, 965 | {file = "ruff-0.8.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:288326162804f34088ac007139488dcb43de590a5ccfec3166396530b58fb89d"}, 966 | {file = "ruff-0.8.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b12c39b9448632284561cbf4191aa1b005882acbc81900ffa9f9f471c8ff7e26"}, 967 | {file = "ruff-0.8.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:364e6674450cbac8e998f7b30639040c99d81dfb5bbc6dfad69bc7a8f916b3d1"}, 968 | {file = "ruff-0.8.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b22346f845fec132aa39cd29acb94451d030c10874408dbf776af3aaeb53284c"}, 969 | {file = "ruff-0.8.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b2f2f7a7e7648a2bfe6ead4e0a16745db956da0e3a231ad443d2a66a105c04fa"}, 970 | {file = "ruff-0.8.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:adf314fc458374c25c5c4a4a9270c3e8a6a807b1bec018cfa2813d6546215540"}, 971 | {file = "ruff-0.8.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a885d68342a231b5ba4d30b8c6e1b1ee3a65cf37e3d29b3c74069cdf1ee1e3c9"}, 972 | {file = "ruff-0.8.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d2c16e3508c8cc73e96aa5127d0df8913d2290098f776416a4b157657bee44c5"}, 973 | {file = "ruff-0.8.1-py3-none-win32.whl", hash = "sha256:93335cd7c0eaedb44882d75a7acb7df4b77cd7cd0d2255c93b28791716e81790"}, 974 | {file = "ruff-0.8.1-py3-none-win_amd64.whl", hash = "sha256:2954cdbe8dfd8ab359d4a30cd971b589d335a44d444b6ca2cb3d1da21b75e4b6"}, 975 | {file = "ruff-0.8.1-py3-none-win_arm64.whl", hash = "sha256:55873cc1a473e5ac129d15eccb3c008c096b94809d693fc7053f588b67822737"}, 976 | {file = "ruff-0.8.1.tar.gz", hash = "sha256:3583db9a6450364ed5ca3f3b4225958b24f78178908d5c4bc0f46251ccca898f"}, 977 | ] 978 | 979 | [[package]] 980 | name = "sniffio" 981 | version = "1.3.1" 982 | requires_python = ">=3.7" 983 | summary = "Sniff out which async library your code is running under" 984 | groups = ["default"] 985 | files = [ 986 | {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, 987 | {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, 988 | ] 989 | 990 | [[package]] 991 | name = "tarina" 992 | version = "0.6.7" 993 | requires_python = ">=3.9" 994 | summary = "A collection of common utils for Arclet" 995 | groups = ["default"] 996 | dependencies = [ 997 | "typing-extensions>=4.4.0", 998 | ] 999 | files = [ 1000 | {file = "tarina-0.6.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a54c0dd2a8213eef78ae9229f8214e497a012a7c3da25423a239e417e39b0775"}, 1001 | {file = "tarina-0.6.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e3106022d5655bc142b5766f17620c0f9a6ba5a0036c482f9e9c6156ce3ac738"}, 1002 | {file = "tarina-0.6.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d3cae2e29c3d57c81cca84b99e634ef9633e92f2d6c41b564c1af9ec05a71c47"}, 1003 | {file = "tarina-0.6.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3c47ab9ad835807d357fbbd6ad158a36e9a4944c4edda0e46f9a3bfb5b75ea9"}, 1004 | {file = "tarina-0.6.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:32639e1197a9c54b8dcfc4cef5de01af64f874e99ec842172ed256a1b821594b"}, 1005 | {file = "tarina-0.6.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a0c3a50094dd2d6271e79775462a9a253c9bf49c42769edd7ce173ee250e9a4b"}, 1006 | {file = "tarina-0.6.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c239b48dc82c0be24c55a92d261268cb890737ecf8024ea260e635cdb2a0650"}, 1007 | {file = "tarina-0.6.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c6669c78be73cf2f1b89e60e2e3b2946f03c9eaf69dcfe4ea747a8e1f2d7290"}, 1008 | {file = "tarina-0.6.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b5f3303be5ef3d41325902d907a726eb008dde485ea8946dd47fe00d160c2ec6"}, 1009 | {file = "tarina-0.6.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:177a29a5184ac52a6cc79f201eecd7e70159dfdfb270fd2c0f35d78ce9082094"}, 1010 | {file = "tarina-0.6.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:de3ff80d7d8014799f157b8bf3e0836ee93ce0e79eb978b1211a43599a675518"}, 1011 | {file = "tarina-0.6.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:b402eafdfe455eab55db7a6c2884a555e4c212c23a84b69fb0202781ed3587a4"}, 1012 | {file = "tarina-0.6.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f91b737345e703c18f3fc7b802b5b8437636282f893ca0ebca08a9322d8433fc"}, 1013 | {file = "tarina-0.6.7-cp310-cp310-win32.whl", hash = "sha256:8d4622952c44c26efd9752edad46689eaf0ff720f538a9de6d44fb8fc3c0b09b"}, 1014 | {file = "tarina-0.6.7-cp310-cp310-win_amd64.whl", hash = "sha256:68871b82399e5afe6f2bab0d2e15868e632d53470a51b7c99c7b24aff25f9fc1"}, 1015 | {file = "tarina-0.6.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b9057930edad8e7ab3395acfed3eb740b55f0f531e3c7759b52ff88bba1f76f7"}, 1016 | {file = "tarina-0.6.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:549f3eea41e61e5ffbb3bcac190b9cf23f2d0679622df789d314bdec456064b2"}, 1017 | {file = "tarina-0.6.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e792d0c6a73c02590ee9ad8903ad5314805bc9952b8dbf4a56f08b8d863c664"}, 1018 | {file = "tarina-0.6.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee0a3af2f1cf6c8c97a692e5dd4bc1bc42ebd09101e2e2ba8dfbc31de7c37afd"}, 1019 | {file = "tarina-0.6.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f2875d1eab24c658e84a9dfd26ed04bb4f1ec629b6842544968a76641176693f"}, 1020 | {file = "tarina-0.6.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d49d17d25eab0961b3130436252b7e570fb1131e866a268e18c84a4bc284ae56"}, 1021 | {file = "tarina-0.6.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f0da6676a438547d126446a0b66df3d4aee864efe7b6329c882d928ca1fad9"}, 1022 | {file = "tarina-0.6.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb7a52b2bd8a0df8e69eabd5701a0080e874363c37c6eb283c8a908977ea042b"}, 1023 | {file = "tarina-0.6.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e42fbeef636fce7ad2893a6d2c66f4370ea6acc696b6e5e45a99b776a14b6f97"}, 1024 | {file = "tarina-0.6.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:40adb6061171d1f28a29f88542cc3d6473cdd8b628c8ee6082437003af06211d"}, 1025 | {file = "tarina-0.6.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f5b801343ee24f709aee5fe1d233c7ec4e12e560d61ce4a85b03a62c42aa1ffd"}, 1026 | {file = "tarina-0.6.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d25f6f6509eacf70764cd9f9441ba5354030e3024225f21c04132966804c349d"}, 1027 | {file = "tarina-0.6.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74cc5cbbe005bef865c62ed1b416e46e713f49ed539e9ea3efa203985019d0aa"}, 1028 | {file = "tarina-0.6.7-cp311-cp311-win32.whl", hash = "sha256:f0035391edbe0e3a0e6936a43ad26ba4231aeed9764307b60bf88d74793f11b5"}, 1029 | {file = "tarina-0.6.7-cp311-cp311-win_amd64.whl", hash = "sha256:e96485bdb994ea46cd9d9112f034a03873f774e8e82cd47d4741d6c2e34bc83d"}, 1030 | {file = "tarina-0.6.7-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e67ba4557f47baee42cababc59910e26ed0d1462e2ffc93cbb67bf8a536dd157"}, 1031 | {file = "tarina-0.6.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8a44a6c51a80ce6b1b0dd1329c1c8fcfa318110da815e89e273c932c30e0bc26"}, 1032 | {file = "tarina-0.6.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:67eda037393ef8c930ea9ff12c0eb606a64c4ed5d5c2043afa6d61f77afd648d"}, 1033 | {file = "tarina-0.6.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d676af1e8ccbc6289c815359492fb85c31628274a356a965de87ba5c130d135"}, 1034 | {file = "tarina-0.6.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69c8675605d52b6698587d107041d63b2c8a08a3fc893a274fce6d66d1df8160"}, 1035 | {file = "tarina-0.6.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a3be97e27613d7063b815e137fd044ca89b4d3216bc6d5ac3cc8a610b24df237"}, 1036 | {file = "tarina-0.6.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7272f37c95fed555846bfa7f3cd51c13597d67bedf0f9715ecb4e95fc02dc1ea"}, 1037 | {file = "tarina-0.6.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42227541d5fe23180bb80ac997a305876872b6d73bd03d1d3edc835f71a63f23"}, 1038 | {file = "tarina-0.6.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b6c1e0bb0900cb16a15dc7f3e2798522bebb28e45e16ae6d70384057ebf1b878"}, 1039 | {file = "tarina-0.6.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:22e3073b825ffd84bbc0bb01e2a8086837f50ed2f446193fdc1d0d93fed71330"}, 1040 | {file = "tarina-0.6.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d3dd51630b4e31b21ef58ef02392bf723f5005d921e7df0beea40c29f0462113"}, 1041 | {file = "tarina-0.6.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f17a0f91fd8c3ddbbb190012fe214434a8ece9b6959c7f3116b5a4500ff58882"}, 1042 | {file = "tarina-0.6.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:63d2f39942ac717f64755a148eca0cf4893c1ea88ee6bfbadd61332d53b50315"}, 1043 | {file = "tarina-0.6.7-cp312-cp312-win32.whl", hash = "sha256:ad268fb4b27cf2569382bea33fb1174f72c6c687d776807bdd5fce9939a2762f"}, 1044 | {file = "tarina-0.6.7-cp312-cp312-win_amd64.whl", hash = "sha256:5b5b400574c47b865927d9999e5aff19500188fc2e2aa28148bd603aacd0d292"}, 1045 | {file = "tarina-0.6.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b4a64041f26bf85f6513aecc9f9ee5f5a3e6c02311af31a62508136e747655ef"}, 1046 | {file = "tarina-0.6.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5fd6428f1fd5e2b697dc187e4afaea469e5feb0abd3ebe7287a5f66e72892451"}, 1047 | {file = "tarina-0.6.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:29b48578fa77b683582772edf775a08e0525f7d3691db50cef94eee596a296bc"}, 1048 | {file = "tarina-0.6.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97dd4afb6b1913088a37bc225b774cc963d752a843c9369d635f41582f94310f"}, 1049 | {file = "tarina-0.6.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1548653c7be058ccc42018b831a9dc7c3a27072d874c930e5eef09976cbe810b"}, 1050 | {file = "tarina-0.6.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d05d7cc5b8ac50ea0d9f43d4ae03da81d5aa3bfe73bf5c8d9c352f5d404e7547"}, 1051 | {file = "tarina-0.6.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7f938b400d3b6bd67706943311208c44b681e615d8aadecf2fc4a76958a08ba"}, 1052 | {file = "tarina-0.6.7-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5236595ba59208369b36dc4cad566712257317c3e1fa054216967cf7afd4c674"}, 1053 | {file = "tarina-0.6.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d7e1111585c9c9d0e8bd1cad618bd3cd07beefdb5f4cc26c63776a1f3549038e"}, 1054 | {file = "tarina-0.6.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0891713041066787ced4489909ec46744d1ee3a540e7bc87ece7a0aac86b1ba3"}, 1055 | {file = "tarina-0.6.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:44699bbca310bac434f3cf55a2ee776a3bd590b87b2d9a82916791fee01f00ea"}, 1056 | {file = "tarina-0.6.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:031d80b07526b6ff96b9d08b0e51039b2749c24ffc607443a19318861a579f18"}, 1057 | {file = "tarina-0.6.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0fc26864184b4358e3c880fc63541a0d058161885e7c37a7194e08313d1ba6c0"}, 1058 | {file = "tarina-0.6.7-cp313-cp313-win32.whl", hash = "sha256:d8ef824db2ea175b5b00b30efcbabdee54f1e83f24f980ceeb1f067577096743"}, 1059 | {file = "tarina-0.6.7-cp313-cp313-win_amd64.whl", hash = "sha256:55d3d79a2f5dc58372cdb7afef2e8d140aab36f86b95ff5805b5344e58f763df"}, 1060 | {file = "tarina-0.6.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:30451271eadd9fc0e7271ad810559f63a2213a1c43c52cec3f1cff445d959140"}, 1061 | {file = "tarina-0.6.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:43be241118a2a813324d7adfe16fcedb5d3ec411a8a010f68e4ffd034d584aa1"}, 1062 | {file = "tarina-0.6.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ac6971cd82dbd07e01b76498c94cc4d7311eca36c8fe854503b4ff6eb52c1db2"}, 1063 | {file = "tarina-0.6.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11192123e86a747ce6fb9367edeeccaf1ba8dc0d2a695e0f2695c5fb96c2cdf1"}, 1064 | {file = "tarina-0.6.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa7409f81a8f3c00fe45831f9f6028fde428068993934b7988b9ee7aff3a96d1"}, 1065 | {file = "tarina-0.6.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6714c74e0ff041d851050e2f8cf70ddc16b460d98587d68e474d25dc2110ace4"}, 1066 | {file = "tarina-0.6.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:888917801e905652b89ea0c4d778cce8d46a0d1deea6707e8082a25eb67cdceb"}, 1067 | {file = "tarina-0.6.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f3b2826136f34d7ad582c02cb00494f8b2f32ed012d70c813c96218f68bb110"}, 1068 | {file = "tarina-0.6.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6d43395792afc505d08068f55b18958a756a00d048ac6803cd5b0c2a9f1790ed"}, 1069 | {file = "tarina-0.6.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3f6419375a8707cb8794c9871c723ebdcf4781e1ec5bb08d7dea2d824871a7bc"}, 1070 | {file = "tarina-0.6.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:e8c43c3385b32fb667cfbd5ea1056f788895bb50243b2e3857c1363ef0b598cd"}, 1071 | {file = "tarina-0.6.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:e2fa7019bb3f6bd1019ae4a967b300d4e874deda303c750ca7128b552c8b8fe8"}, 1072 | {file = "tarina-0.6.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5569da8e59e0ff15d518191bb3e2e102a89227d292788ef487afa963670a5472"}, 1073 | {file = "tarina-0.6.7-cp39-cp39-win32.whl", hash = "sha256:545936c84824194800564199fe52411641785d1dfcd41efa54a1a97b8d634903"}, 1074 | {file = "tarina-0.6.7-cp39-cp39-win_amd64.whl", hash = "sha256:3795a1ee986952157bae2061e764cbf9c5898d6c56096f7760a2bedaf1ef1373"}, 1075 | {file = "tarina-0.6.7-py3-none-any.whl", hash = "sha256:fa440f0c6f262675ad23eb3743cdf80e12fd3819632f4c3f7eec7a3fc686c55a"}, 1076 | {file = "tarina-0.6.7.tar.gz", hash = "sha256:c990cb7bd7e76dbd10772a97c82450d176e66aab81890da11c650aec43657b6c"}, 1077 | ] 1078 | 1079 | [[package]] 1080 | name = "tomli" 1081 | version = "2.2.1" 1082 | requires_python = ">=3.8" 1083 | summary = "A lil' TOML parser" 1084 | groups = ["default", "dev"] 1085 | marker = "python_version < \"3.11\"" 1086 | files = [ 1087 | {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, 1088 | {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, 1089 | {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, 1090 | {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, 1091 | {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, 1092 | {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, 1093 | {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, 1094 | {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, 1095 | {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, 1096 | {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, 1097 | {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, 1098 | {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, 1099 | {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, 1100 | {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, 1101 | {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, 1102 | {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, 1103 | {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, 1104 | {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, 1105 | {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, 1106 | {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, 1107 | {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, 1108 | {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, 1109 | {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, 1110 | {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, 1111 | {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, 1112 | {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, 1113 | {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, 1114 | {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, 1115 | {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, 1116 | {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, 1117 | {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, 1118 | {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, 1119 | ] 1120 | 1121 | [[package]] 1122 | name = "typing-extensions" 1123 | version = "4.12.2" 1124 | requires_python = ">=3.8" 1125 | summary = "Backported and Experimental Type Hints for Python 3.8+" 1126 | groups = ["default", "dev"] 1127 | files = [ 1128 | {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, 1129 | {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, 1130 | ] 1131 | 1132 | [[package]] 1133 | name = "tzdata" 1134 | version = "2024.2" 1135 | requires_python = ">=2" 1136 | summary = "Provider of IANA time zone data" 1137 | groups = ["default"] 1138 | marker = "platform_system == \"Windows\"" 1139 | files = [ 1140 | {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, 1141 | {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, 1142 | ] 1143 | 1144 | [[package]] 1145 | name = "tzlocal" 1146 | version = "5.2" 1147 | requires_python = ">=3.8" 1148 | summary = "tzinfo object for the local timezone" 1149 | groups = ["default"] 1150 | dependencies = [ 1151 | "backports-zoneinfo; python_version < \"3.9\"", 1152 | "tzdata; platform_system == \"Windows\"", 1153 | ] 1154 | files = [ 1155 | {file = "tzlocal-5.2-py3-none-any.whl", hash = "sha256:49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8"}, 1156 | {file = "tzlocal-5.2.tar.gz", hash = "sha256:8d399205578f1a9342816409cc1e46a93ebd5755e39ea2d85334bea911bf0e6e"}, 1157 | ] 1158 | 1159 | [[package]] 1160 | name = "virtualenv" 1161 | version = "20.28.0" 1162 | requires_python = ">=3.8" 1163 | summary = "Virtual Python Environment builder" 1164 | groups = ["dev"] 1165 | dependencies = [ 1166 | "distlib<1,>=0.3.7", 1167 | "filelock<4,>=3.12.2", 1168 | "importlib-metadata>=6.6; python_version < \"3.8\"", 1169 | "platformdirs<5,>=3.9.1", 1170 | ] 1171 | files = [ 1172 | {file = "virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0"}, 1173 | {file = "virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa"}, 1174 | ] 1175 | 1176 | [[package]] 1177 | name = "win32-setctime" 1178 | version = "1.1.0" 1179 | requires_python = ">=3.5" 1180 | summary = "A small Python utility to set file creation time on Windows" 1181 | groups = ["default"] 1182 | marker = "sys_platform == \"win32\"" 1183 | files = [ 1184 | {file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"}, 1185 | {file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"}, 1186 | ] 1187 | 1188 | [[package]] 1189 | name = "yarl" 1190 | version = "1.18.3" 1191 | requires_python = ">=3.9" 1192 | summary = "Yet another URL library" 1193 | groups = ["default"] 1194 | dependencies = [ 1195 | "idna>=2.0", 1196 | "multidict>=4.0", 1197 | "propcache>=0.2.0", 1198 | ] 1199 | files = [ 1200 | {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, 1201 | {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, 1202 | {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, 1203 | {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, 1204 | {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, 1205 | {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, 1206 | {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, 1207 | {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, 1208 | {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, 1209 | {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, 1210 | {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, 1211 | {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, 1212 | {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, 1213 | {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, 1214 | {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, 1215 | {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, 1216 | {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, 1217 | {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, 1218 | {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, 1219 | {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, 1220 | {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, 1221 | {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, 1222 | {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, 1223 | {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, 1224 | {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, 1225 | {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, 1226 | {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, 1227 | {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, 1228 | {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, 1229 | {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, 1230 | {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, 1231 | {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, 1232 | {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, 1233 | {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, 1234 | {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, 1235 | {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, 1236 | {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, 1237 | {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, 1238 | {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, 1239 | {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, 1240 | {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, 1241 | {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, 1242 | {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, 1243 | {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, 1244 | {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, 1245 | {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, 1246 | {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, 1247 | {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, 1248 | {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, 1249 | {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, 1250 | {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, 1251 | {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, 1252 | {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, 1253 | {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, 1254 | {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, 1255 | {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, 1256 | {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, 1257 | {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, 1258 | {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, 1259 | {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, 1260 | {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, 1261 | {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, 1262 | {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, 1263 | {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, 1264 | {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, 1265 | {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, 1266 | {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, 1267 | {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, 1268 | {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, 1269 | {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, 1270 | {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, 1271 | {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, 1272 | {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, 1273 | {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, 1274 | {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, 1275 | {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, 1276 | {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, 1277 | {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, 1278 | {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, 1279 | {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, 1280 | {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, 1281 | {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, 1282 | ] 1283 | 1284 | [[package]] 1285 | name = "zipp" 1286 | version = "3.21.0" 1287 | requires_python = ">=3.9" 1288 | summary = "Backport of pathlib-compatible object wrapper for zip files" 1289 | groups = ["default"] 1290 | files = [ 1291 | {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, 1292 | {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, 1293 | ] 1294 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.pdm] 2 | distribution = true 3 | 4 | [tool.pdm.build] 5 | includes = ["nonebot_plugin_whateat_pic"] 6 | [build-system] 7 | requires = ["pdm-backend"] 8 | build-backend = "pdm.backend" 9 | 10 | 11 | [project] 12 | name = "nonebot-plugin-whateat-pic" 13 | version = "1.5.5" 14 | description = "基于Nonebot2的今天吃什么(离线版)" 15 | authors = [ 16 | {name = "Cvandia", email = "106718176+Cvandia@users.noreply.github.com"}, 17 | {name = "Cvandia"}, 18 | ] 19 | dependencies = [ 20 | "nonebot2>=2.0.0", 21 | "httpx>=0.19.0", 22 | "pillow>=10.4.0", 23 | "nonebot-plugin-alconna<1.0.0,>=0.53.1", 24 | "rich<14.0.0,>=13.9.4", 25 | "nonebot-plugin-apscheduler>=0.5.0", 26 | ] 27 | requires-python = "<4,>=3.9" 28 | readme = "README.md" 29 | license = {text = "MIT"} 30 | 31 | [project.urls] 32 | homepage = "https://github.com/Cvandia/nonebot-plugin-whateat-pic" 33 | repository = "https://github.com/Cvandia/nonebot-plugin-whateat-pic" 34 | 35 | [dependency-groups] 36 | dev = ["black<23.0.0,>=22.1.0", "ruff>=0.8.1", "pre-commit>=4.0.1"] 37 | -------------------------------------------------------------------------------- /res/download_list.json: -------------------------------------------------------------------------------- 1 | { 2 | "drink_pic": [ 3 | { 4 | "name": "书亦烧仙草.jpg" 5 | }, 6 | { 7 | "name": "冰摇桃桃乌龙茶.jpg" 8 | }, 9 | { 10 | "name": "冰摇红莓黑加仑茶.jpg" 11 | }, 12 | { 13 | "name": "冰摇芒果花草茶.jpg" 14 | }, 15 | { 16 | "name": "冰淇淋红茶.jpg" 17 | }, 18 | { 19 | "name": "冰鲜柠檬水.jpg" 20 | }, 21 | { 22 | "name": "冷萃浮乐朵.jpg" 23 | }, 24 | { 25 | "name": "凉白开.jpg" 26 | }, 27 | { 28 | "name": "卡布奇诺.jpg" 29 | }, 30 | { 31 | "name": "双拼奶茶.jpg" 32 | }, 33 | { 34 | "name": "可口可乐.jpg" 35 | }, 36 | { 37 | "name": "吃土摇摇奶昔.jpg" 38 | }, 39 | { 40 | "name": "喜茶轻芒芒甘露.jpg" 41 | }, 42 | { 43 | "name": "四季春燕麦奶茶.jpg" 44 | }, 45 | { 46 | "name": "四季春珍珠奶茶.jpg" 47 | }, 48 | { 49 | "name": "四季春茶.jpg" 50 | }, 51 | { 52 | "name": "奥利奥味雪王大圣代.jpg" 53 | }, 54 | { 55 | "name": "奥利奥大圣代.jpg" 56 | }, 57 | { 58 | "name": "抹茶星冰乐.jpg" 59 | }, 60 | { 61 | "name": "抹茶红豆拿铁.jpg" 62 | }, 63 | { 64 | "name": "招牌芋圆奶茶.png" 65 | }, 66 | { 67 | "name": "摩卡.jpg" 68 | }, 69 | { 70 | "name": "摩卡可可碎片星冰乐.jpg" 71 | }, 72 | { 73 | "name": "摩卡星冰乐.jpg" 74 | }, 75 | { 76 | "name": "晨露抹茶.jpg" 77 | }, 78 | { 79 | "name": "杨枝甘露.jpg" 80 | }, 81 | { 82 | "name": "杨枝甘露烧仙草.jpg" 83 | }, 84 | { 85 | "name": "柠檬红茶.jpg" 86 | }, 87 | { 88 | "name": "柠檬芦荟茶.jpg" 89 | }, 90 | { 91 | "name": "桂花酒酿.png" 92 | }, 93 | { 94 | "name": "桃气乌龙奶芙.jpg" 95 | }, 96 | { 97 | "name": "桃气乌龙豆乳.jpg" 98 | }, 99 | { 100 | "name": "梨光清润路芭茶.png" 101 | }, 102 | { 103 | "name": "棒打鲜橙.jpg" 104 | }, 105 | { 106 | "name": "椰乳芋泥茫茫.jpg" 107 | }, 108 | { 109 | "name": "榛果风味拿铁.jpg" 110 | }, 111 | { 112 | "name": "橙柚派对.jpg" 113 | }, 114 | { 115 | "name": "气炫冰山美式.jpg" 116 | }, 117 | { 118 | "name": "浓缩咖啡.jpg" 119 | }, 120 | { 121 | "name": "满杯橙海粒.jpg" 122 | }, 123 | { 124 | "name": "烤奶珍珠奶茶.jpg" 125 | }, 126 | { 127 | "name": "焦糖浓缩咖啡星冰乐.jpg" 128 | }, 129 | { 130 | "name": "焦糖玛奇朵.jpg" 131 | }, 132 | { 133 | "name": "焦糖珍珠.jpg" 134 | }, 135 | { 136 | "name": "牛魔王黑砖奶茶.jpg" 137 | }, 138 | { 139 | "name": "珍珠奶茶.jpg" 140 | }, 141 | { 142 | "name": "百事可乐.jpg" 143 | }, 144 | { 145 | "name": "百香凤梨.jpg" 146 | }, 147 | { 148 | "name": "百香金菠萝.png" 149 | }, 150 | { 151 | "name": "皇家九号奶茶.jpg" 152 | }, 153 | { 154 | "name": "红茶.jpg" 155 | }, 156 | { 157 | "name": "红豆奶茶.jpg" 158 | }, 159 | { 160 | "name": "绿茶.jpg" 161 | }, 162 | { 163 | "name": "美式咖啡.jpg" 164 | }, 165 | { 166 | "name": "芋泥厚厚牛乳.jpg" 167 | }, 168 | { 169 | "name": "芒果西番莲果茶星冰乐.jpg" 170 | }, 171 | { 172 | "name": "芝士四季春.jpg" 173 | }, 174 | { 175 | "name": "芝士奶盖四季春.jpg" 176 | }, 177 | { 178 | "name": "芝士奶盖绿茶.jpg" 179 | }, 180 | { 181 | "name": "芝士抹茶.jpg" 182 | }, 183 | { 184 | "name": "芝士鲜红茶.jpg" 185 | }, 186 | { 187 | "name": "芝士鲜绿茶.jpg" 188 | }, 189 | { 190 | "name": "草莓味雪王大圣代.jpg" 191 | }, 192 | { 193 | "name": "草莓雪王大圣代.jpg" 194 | }, 195 | { 196 | "name": "葡萄柚绿茶.png" 197 | }, 198 | { 199 | "name": "蓝莓味雪王大圣代.jpg" 200 | }, 201 | { 202 | "name": "蓝莓大圣代.jpg" 203 | }, 204 | { 205 | "name": "蓝莓摇摇奶昔.jpg" 206 | }, 207 | { 208 | "name": "蓝莓果粒茶.jpg" 209 | }, 210 | { 211 | "name": "蜂蜜柚子茶.jpg" 212 | }, 213 | { 214 | "name": "西北风.png" 215 | }, 216 | { 217 | "name": "豆乳绵绵奶茶.jpg" 218 | }, 219 | { 220 | "name": "酒香沁乌龙.jpg" 221 | }, 222 | { 223 | "name": "酸柠浮冷萃.jpg" 224 | }, 225 | { 226 | "name": "醋意桃桃.jpg" 227 | }, 228 | { 229 | "name": "阿馥奇朵.jpg" 230 | }, 231 | { 232 | "name": "香草风味拿铁.jpg" 233 | }, 234 | { 235 | "name": "馥芮白.jpg" 236 | }, 237 | { 238 | "name": "马来西亚白咖啡.jpg" 239 | }, 240 | { 241 | "name": "鲜橙葡萄柚.jpg" 242 | }, 243 | { 244 | "name": "鲜芒果绿茶.png" 245 | }, 246 | { 247 | "name": "鹿丸可可鲜奶.jpg" 248 | }, 249 | { 250 | "name": "麦芽雪冷萃.jpg" 251 | }, 252 | { 253 | "name": "黑巧橙香乌龙.jpg" 254 | }, 255 | { 256 | "name": "黑糖珍珠奶茶.jpg" 257 | } 258 | ], 259 | "eat_pic": [ 260 | { 261 | "name": "凉皮.jpg" 262 | }, 263 | { 264 | "name": "卤粉.jpg" 265 | }, 266 | { 267 | "name": "台湾卤肉饭.jpg" 268 | }, 269 | { 270 | "name": "咖喱饭.jpg" 271 | }, 272 | { 273 | "name": "咸肉菜饭.jpg" 274 | }, 275 | { 276 | "name": "嫩牛五方.jpg" 277 | }, 278 | { 279 | "name": "寿司.jpg" 280 | }, 281 | { 282 | "name": "新疆炒米粉.jpg" 283 | }, 284 | { 285 | "name": "日式拉面.jpg" 286 | }, 287 | { 288 | "name": "日式烧肉饭.jpg" 289 | }, 290 | { 291 | "name": "杀猪粉.jpg" 292 | }, 293 | { 294 | "name": "板栗焖饭.jpg" 295 | }, 296 | { 297 | "name": "桥头排骨.jpg" 298 | }, 299 | { 300 | "name": "水煮肉片.jpg" 301 | }, 302 | { 303 | "name": "水饺.jpg" 304 | }, 305 | { 306 | "name": "汉堡薯条.jpg" 307 | }, 308 | { 309 | "name": "油炸烧烤.jpg" 310 | }, 311 | { 312 | "name": "泡面.jpg" 313 | }, 314 | { 315 | "name": "浏阳蒸菜.jpg" 316 | }, 317 | { 318 | "name": "海南椰子鸡.jpg" 319 | }, 320 | { 321 | "name": "潮汕砂锅粥.jpg" 322 | }, 323 | { 324 | "name": "火腿鹿茸菇炒荷兰豆.jpg" 325 | }, 326 | { 327 | "name": "火锅.jpg" 328 | }, 329 | { 330 | "name": "火锅鸡.jpg" 331 | }, 332 | { 333 | "name": "炒粉.jpg" 334 | }, 335 | { 336 | "name": "炒饭.jpg" 337 | }, 338 | { 339 | "name": "烤冷面.jpg" 340 | }, 341 | { 342 | "name": "烤肉拌饭.jpg" 343 | }, 344 | { 345 | "name": "烧腊饭.jpg" 346 | }, 347 | { 348 | "name": "煎饺.jpg" 349 | }, 350 | { 351 | "name": "煎饼果子.jpg" 352 | }, 353 | { 354 | "name": "牛丼饭.jpg" 355 | }, 356 | { 357 | "name": "牛肉焗米粉.jpg" 358 | }, 359 | { 360 | "name": "牛肉粉.jpg" 361 | }, 362 | { 363 | "name": "牛肉面.jpg" 364 | }, 365 | { 366 | "name": "猪肚鸡.jpg" 367 | }, 368 | { 369 | "name": "猪脚饭.jpg" 370 | }, 371 | { 372 | "name": "白萝卜焖牛排骨.jpg" 373 | }, 374 | { 375 | "name": "盖码饭.jpg" 376 | }, 377 | { 378 | "name": "肉夹馍.jpg" 379 | }, 380 | { 381 | "name": "肉汁拌饭.jpg" 382 | }, 383 | { 384 | "name": "肠粉.jpg" 385 | }, 386 | { 387 | "name": "臭豆腐.jpg" 388 | }, 389 | { 390 | "name": "茴香肉包.jpg" 391 | }, 392 | { 393 | "name": "葱油拌面.jpg" 394 | }, 395 | { 396 | "name": "葱花饼.jpg" 397 | }, 398 | { 399 | "name": "蒸饺.jpg" 400 | }, 401 | { 402 | "name": "蛋包饭.jpg" 403 | }, 404 | { 405 | "name": "蛋挞.jpg" 406 | }, 407 | { 408 | "name": "蛋炒饭.jpg" 409 | }, 410 | { 411 | "name": "螺蛳粉.jpg" 412 | }, 413 | { 414 | "name": "辣椒炒肉.jpg" 415 | }, 416 | { 417 | "name": "过桥米线.jpg" 418 | }, 419 | { 420 | "name": "酸菜鱼.jpg" 421 | }, 422 | { 423 | "name": "重庆小面.jpg" 424 | }, 425 | { 426 | "name": "锅盔.jpg" 427 | }, 428 | { 429 | "name": "韩式炸鸡.jpg" 430 | }, 431 | { 432 | "name": "韩式烤肉.jpg" 433 | }, 434 | { 435 | "name": "韩式部队火锅.jpg" 436 | }, 437 | { 438 | "name": "馄饨.jpg" 439 | }, 440 | { 441 | "name": "鲜肉馄饨.jpg" 442 | }, 443 | { 444 | "name": "鸭血粉丝.jpg" 445 | }, 446 | { 447 | "name": "麻婆豆腐.jpg" 448 | }, 449 | { 450 | "name": "麻辣烫.jpg" 451 | }, 452 | { 453 | "name": "麻辣香锅.jpg" 454 | }, 455 | { 456 | "name": "黄焖鸡.jpg" 457 | } 458 | ] 459 | } 460 | -------------------------------------------------------------------------------- /res/drink_pic/书亦烧仙草.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/书亦烧仙草.jpg -------------------------------------------------------------------------------- /res/drink_pic/冰摇桃桃乌龙茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/冰摇桃桃乌龙茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/冰摇红莓黑加仑茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/冰摇红莓黑加仑茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/冰摇芒果花草茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/冰摇芒果花草茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/冰淇淋红茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/冰淇淋红茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/冰鲜柠檬水.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/冰鲜柠檬水.jpg -------------------------------------------------------------------------------- /res/drink_pic/冷萃浮乐朵.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/冷萃浮乐朵.jpg -------------------------------------------------------------------------------- /res/drink_pic/凉白开.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/凉白开.jpg -------------------------------------------------------------------------------- /res/drink_pic/卡布奇诺.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/卡布奇诺.jpg -------------------------------------------------------------------------------- /res/drink_pic/双拼奶茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/双拼奶茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/可口可乐.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/可口可乐.jpg -------------------------------------------------------------------------------- /res/drink_pic/吃土摇摇奶昔.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/吃土摇摇奶昔.jpg -------------------------------------------------------------------------------- /res/drink_pic/喜茶轻芒芒甘露.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/喜茶轻芒芒甘露.jpg -------------------------------------------------------------------------------- /res/drink_pic/四季春燕麦奶茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/四季春燕麦奶茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/四季春珍珠奶茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/四季春珍珠奶茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/四季春茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/四季春茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/奥利奥味雪王大圣代.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/奥利奥味雪王大圣代.jpg -------------------------------------------------------------------------------- /res/drink_pic/奥利奥大圣代.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/奥利奥大圣代.jpg -------------------------------------------------------------------------------- /res/drink_pic/抹茶星冰乐.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/抹茶星冰乐.jpg -------------------------------------------------------------------------------- /res/drink_pic/抹茶红豆拿铁.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/抹茶红豆拿铁.jpg -------------------------------------------------------------------------------- /res/drink_pic/招牌芋圆奶茶.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/招牌芋圆奶茶.png -------------------------------------------------------------------------------- /res/drink_pic/摩卡.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/摩卡.jpg -------------------------------------------------------------------------------- /res/drink_pic/摩卡可可碎片星冰乐.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/摩卡可可碎片星冰乐.jpg -------------------------------------------------------------------------------- /res/drink_pic/摩卡星冰乐.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/摩卡星冰乐.jpg -------------------------------------------------------------------------------- /res/drink_pic/晨露抹茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/晨露抹茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/杨枝甘露.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/杨枝甘露.jpg -------------------------------------------------------------------------------- /res/drink_pic/杨枝甘露烧仙草.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/杨枝甘露烧仙草.jpg -------------------------------------------------------------------------------- /res/drink_pic/柠檬红茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/柠檬红茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/柠檬芦荟茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/柠檬芦荟茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/桂花酒酿.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/桂花酒酿.png -------------------------------------------------------------------------------- /res/drink_pic/桃气乌龙奶芙.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/桃气乌龙奶芙.jpg -------------------------------------------------------------------------------- /res/drink_pic/桃气乌龙豆乳.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/桃气乌龙豆乳.jpg -------------------------------------------------------------------------------- /res/drink_pic/梨光清润路芭茶.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/梨光清润路芭茶.png -------------------------------------------------------------------------------- /res/drink_pic/棒打鲜橙.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/棒打鲜橙.jpg -------------------------------------------------------------------------------- /res/drink_pic/椰乳芋泥茫茫.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/椰乳芋泥茫茫.jpg -------------------------------------------------------------------------------- /res/drink_pic/榛果风味拿铁.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/榛果风味拿铁.jpg -------------------------------------------------------------------------------- /res/drink_pic/橙柚派对.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/橙柚派对.jpg -------------------------------------------------------------------------------- /res/drink_pic/气炫冰山美式.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/气炫冰山美式.jpg -------------------------------------------------------------------------------- /res/drink_pic/浓缩咖啡.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/浓缩咖啡.jpg -------------------------------------------------------------------------------- /res/drink_pic/满杯橙海粒.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/满杯橙海粒.jpg -------------------------------------------------------------------------------- /res/drink_pic/烤奶珍珠奶茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/烤奶珍珠奶茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/焦糖浓缩咖啡星冰乐.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/焦糖浓缩咖啡星冰乐.jpg -------------------------------------------------------------------------------- /res/drink_pic/焦糖玛奇朵.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/焦糖玛奇朵.jpg -------------------------------------------------------------------------------- /res/drink_pic/焦糖珍珠.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/焦糖珍珠.jpg -------------------------------------------------------------------------------- /res/drink_pic/牛魔王黑砖奶茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/牛魔王黑砖奶茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/珍珠奶茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/珍珠奶茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/百事可乐.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/百事可乐.jpg -------------------------------------------------------------------------------- /res/drink_pic/百香凤梨.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/百香凤梨.jpg -------------------------------------------------------------------------------- /res/drink_pic/百香金菠萝.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/百香金菠萝.png -------------------------------------------------------------------------------- /res/drink_pic/皇家九号奶茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/皇家九号奶茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/红茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/红茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/红豆奶茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/红豆奶茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/绿茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/绿茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/美式咖啡.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/美式咖啡.jpg -------------------------------------------------------------------------------- /res/drink_pic/芋泥厚厚牛乳.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/芋泥厚厚牛乳.jpg -------------------------------------------------------------------------------- /res/drink_pic/芒果西番莲果茶星冰乐.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/芒果西番莲果茶星冰乐.jpg -------------------------------------------------------------------------------- /res/drink_pic/芝士四季春.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/芝士四季春.jpg -------------------------------------------------------------------------------- /res/drink_pic/芝士奶盖四季春.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/芝士奶盖四季春.jpg -------------------------------------------------------------------------------- /res/drink_pic/芝士奶盖绿茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/芝士奶盖绿茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/芝士抹茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/芝士抹茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/芝士鲜红茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/芝士鲜红茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/芝士鲜绿茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/芝士鲜绿茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/草莓味雪王大圣代.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/草莓味雪王大圣代.jpg -------------------------------------------------------------------------------- /res/drink_pic/草莓雪王大圣代.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/草莓雪王大圣代.jpg -------------------------------------------------------------------------------- /res/drink_pic/葡萄柚绿茶.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/葡萄柚绿茶.png -------------------------------------------------------------------------------- /res/drink_pic/蓝莓味雪王大圣代.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/蓝莓味雪王大圣代.jpg -------------------------------------------------------------------------------- /res/drink_pic/蓝莓大圣代.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/蓝莓大圣代.jpg -------------------------------------------------------------------------------- /res/drink_pic/蓝莓摇摇奶昔.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/蓝莓摇摇奶昔.jpg -------------------------------------------------------------------------------- /res/drink_pic/蓝莓果粒茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/蓝莓果粒茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/蜂蜜柚子茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/蜂蜜柚子茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/西北风.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/西北风.png -------------------------------------------------------------------------------- /res/drink_pic/豆乳绵绵奶茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/豆乳绵绵奶茶.jpg -------------------------------------------------------------------------------- /res/drink_pic/酒香沁乌龙.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/酒香沁乌龙.jpg -------------------------------------------------------------------------------- /res/drink_pic/酸柠浮冷萃.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/酸柠浮冷萃.jpg -------------------------------------------------------------------------------- /res/drink_pic/醋意桃桃.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/醋意桃桃.jpg -------------------------------------------------------------------------------- /res/drink_pic/阿馥奇朵.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/阿馥奇朵.jpg -------------------------------------------------------------------------------- /res/drink_pic/香草风味拿铁.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/香草风味拿铁.jpg -------------------------------------------------------------------------------- /res/drink_pic/馥芮白.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/馥芮白.jpg -------------------------------------------------------------------------------- /res/drink_pic/马来西亚白咖啡.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/马来西亚白咖啡.jpg -------------------------------------------------------------------------------- /res/drink_pic/鲜橙葡萄柚.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/鲜橙葡萄柚.jpg -------------------------------------------------------------------------------- /res/drink_pic/鲜芒果绿茶.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/鲜芒果绿茶.png -------------------------------------------------------------------------------- /res/drink_pic/鹿丸可可鲜奶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/鹿丸可可鲜奶.jpg -------------------------------------------------------------------------------- /res/drink_pic/麦芽雪冷萃.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/麦芽雪冷萃.jpg -------------------------------------------------------------------------------- /res/drink_pic/黑巧橙香乌龙.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/黑巧橙香乌龙.jpg -------------------------------------------------------------------------------- /res/drink_pic/黑糖珍珠奶茶.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/drink_pic/黑糖珍珠奶茶.jpg -------------------------------------------------------------------------------- /res/eat_pic/凉皮.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/凉皮.jpg -------------------------------------------------------------------------------- /res/eat_pic/卤粉.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/卤粉.jpg -------------------------------------------------------------------------------- /res/eat_pic/台湾卤肉饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/台湾卤肉饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/咖喱饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/咖喱饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/咸肉菜饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/咸肉菜饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/嫩牛五方.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/嫩牛五方.jpg -------------------------------------------------------------------------------- /res/eat_pic/寿司.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/寿司.jpg -------------------------------------------------------------------------------- /res/eat_pic/新疆炒米粉.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/新疆炒米粉.jpg -------------------------------------------------------------------------------- /res/eat_pic/日式拉面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/日式拉面.jpg -------------------------------------------------------------------------------- /res/eat_pic/日式烧肉饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/日式烧肉饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/杀猪粉.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/杀猪粉.jpg -------------------------------------------------------------------------------- /res/eat_pic/板栗焖饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/板栗焖饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/桥头排骨.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/桥头排骨.jpg -------------------------------------------------------------------------------- /res/eat_pic/水煮肉片.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/水煮肉片.jpg -------------------------------------------------------------------------------- /res/eat_pic/水饺.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/水饺.jpg -------------------------------------------------------------------------------- /res/eat_pic/汉堡薯条.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/汉堡薯条.jpg -------------------------------------------------------------------------------- /res/eat_pic/油炸烧烤.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/油炸烧烤.jpg -------------------------------------------------------------------------------- /res/eat_pic/泡面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/泡面.jpg -------------------------------------------------------------------------------- /res/eat_pic/浏阳蒸菜.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/浏阳蒸菜.jpg -------------------------------------------------------------------------------- /res/eat_pic/海南椰子鸡.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/海南椰子鸡.jpg -------------------------------------------------------------------------------- /res/eat_pic/潮汕砂锅粥.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/潮汕砂锅粥.jpg -------------------------------------------------------------------------------- /res/eat_pic/火腿鹿茸菇炒荷兰豆.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/火腿鹿茸菇炒荷兰豆.jpg -------------------------------------------------------------------------------- /res/eat_pic/火锅.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/火锅.jpg -------------------------------------------------------------------------------- /res/eat_pic/火锅鸡.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/火锅鸡.jpg -------------------------------------------------------------------------------- /res/eat_pic/炒粉.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/炒粉.jpg -------------------------------------------------------------------------------- /res/eat_pic/炒饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/炒饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/烤冷面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/烤冷面.jpg -------------------------------------------------------------------------------- /res/eat_pic/烤肉拌饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/烤肉拌饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/烧腊饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/烧腊饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/煎饺.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/煎饺.jpg -------------------------------------------------------------------------------- /res/eat_pic/煎饼果子.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/煎饼果子.jpg -------------------------------------------------------------------------------- /res/eat_pic/牛丼饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/牛丼饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/牛肉焗米粉.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/牛肉焗米粉.jpg -------------------------------------------------------------------------------- /res/eat_pic/牛肉粉.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/牛肉粉.jpg -------------------------------------------------------------------------------- /res/eat_pic/牛肉面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/牛肉面.jpg -------------------------------------------------------------------------------- /res/eat_pic/猪肚鸡.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/猪肚鸡.jpg -------------------------------------------------------------------------------- /res/eat_pic/猪脚饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/猪脚饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/白萝卜焖牛排骨.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/白萝卜焖牛排骨.jpg -------------------------------------------------------------------------------- /res/eat_pic/盖码饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/盖码饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/肉夹馍.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/肉夹馍.jpg -------------------------------------------------------------------------------- /res/eat_pic/肉汁拌饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/肉汁拌饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/肠粉.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/肠粉.jpg -------------------------------------------------------------------------------- /res/eat_pic/臭豆腐.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/臭豆腐.jpg -------------------------------------------------------------------------------- /res/eat_pic/茴香肉包.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/茴香肉包.jpg -------------------------------------------------------------------------------- /res/eat_pic/葱油拌面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/葱油拌面.jpg -------------------------------------------------------------------------------- /res/eat_pic/葱花饼.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/葱花饼.jpg -------------------------------------------------------------------------------- /res/eat_pic/蒸饺.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/蒸饺.jpg -------------------------------------------------------------------------------- /res/eat_pic/蛋包饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/蛋包饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/蛋挞.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/蛋挞.jpg -------------------------------------------------------------------------------- /res/eat_pic/蛋炒饭.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/蛋炒饭.jpg -------------------------------------------------------------------------------- /res/eat_pic/螺蛳粉.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/螺蛳粉.jpg -------------------------------------------------------------------------------- /res/eat_pic/辣椒炒肉.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/辣椒炒肉.jpg -------------------------------------------------------------------------------- /res/eat_pic/过桥米线.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/过桥米线.jpg -------------------------------------------------------------------------------- /res/eat_pic/酸菜鱼.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/酸菜鱼.jpg -------------------------------------------------------------------------------- /res/eat_pic/重庆小面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/重庆小面.jpg -------------------------------------------------------------------------------- /res/eat_pic/锅盔.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/锅盔.jpg -------------------------------------------------------------------------------- /res/eat_pic/韩式炸鸡.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/韩式炸鸡.jpg -------------------------------------------------------------------------------- /res/eat_pic/韩式烤肉.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/韩式烤肉.jpg -------------------------------------------------------------------------------- /res/eat_pic/韩式部队火锅.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/韩式部队火锅.jpg -------------------------------------------------------------------------------- /res/eat_pic/馄饨.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/馄饨.jpg -------------------------------------------------------------------------------- /res/eat_pic/鲜肉馄饨.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/鲜肉馄饨.jpg -------------------------------------------------------------------------------- /res/eat_pic/鸭血粉丝.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/鸭血粉丝.jpg -------------------------------------------------------------------------------- /res/eat_pic/麻婆豆腐.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/麻婆豆腐.jpg -------------------------------------------------------------------------------- /res/eat_pic/麻辣烫.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/麻辣烫.jpg -------------------------------------------------------------------------------- /res/eat_pic/麻辣香锅.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/麻辣香锅.jpg -------------------------------------------------------------------------------- /res/eat_pic/黄焖鸡.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/eat_pic/黄焖鸡.jpg -------------------------------------------------------------------------------- /res/ico.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/res/ico.jpg -------------------------------------------------------------------------------- /res/write_into_json.py: -------------------------------------------------------------------------------- 1 | import json 2 | from pathlib import Path 3 | 4 | # 把./drink_pic/下的所有图片和./eat_pic/下的所有图片的文件名写入到./downloaded.json中 5 | 6 | 7 | def get_file_names(directory: Path): 8 | """获取给定目录中的文件名列表。""" 9 | return [{"name": entry.name} for entry in directory.iterdir() if entry.is_file()] 10 | 11 | 12 | def main(): 13 | """主函数,将文件名写入 JSON 文件。""" 14 | current_directory = Path(__file__).resolve().parent 15 | drink_pic_files = get_file_names(current_directory / "drink_pic") 16 | eat_pic_files = get_file_names(current_directory / "eat_pic") 17 | 18 | data = {"drink_pic": drink_pic_files, "eat_pic": eat_pic_files} 19 | 20 | output_file = current_directory / "download_list.json" 21 | with Path.open(output_file, "w", encoding="utf-8") as f: 22 | json.dump(data, f, ensure_ascii=False, indent=4) 23 | 24 | 25 | if __name__ == "__main__": 26 | main() 27 | -------------------------------------------------------------------------------- /src/nonebot_plugin_whateat_pic/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/src/nonebot_plugin_whateat_pic/__init__.py -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cvandia/nonebot-plugin-whateat-pic/3992865f773c38d4425ba75b4d2ce036d502d8ac/tests/__init__.py --------------------------------------------------------------------------------