├── .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 |

6 |
7 |
8 |
9 |
10 |
11 | # nonebot-plugin-whateat-pic
12 |
13 | _⭐基于Nonebot2的一款今天吃什么喝什么的插件⭐_
14 |
15 |
16 |
17 |
18 |
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
--------------------------------------------------------------------------------