mseep-dify-mcp-server 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mseep_dify_mcp_server-0.1.1/.gitignore +14 -0
- mseep_dify_mcp_server-0.1.1/.python-version +1 -0
- mseep_dify_mcp_server-0.1.1/Dockerfile +26 -0
- mseep_dify_mcp_server-0.1.1/PKG-INFO +170 -0
- mseep_dify_mcp_server-0.1.1/README.md +157 -0
- mseep_dify_mcp_server-0.1.1/pyproject.toml +28 -0
- mseep_dify_mcp_server-0.1.1/setup.py +20 -0
- mseep_dify_mcp_server-0.1.1/smithery.yaml +17 -0
- mseep_dify_mcp_server-0.1.1/src/dify_mcp_server/__init__.py +9 -0
- mseep_dify_mcp_server-0.1.1/src/dify_mcp_server/server.py +281 -0
- mseep_dify_mcp_server-0.1.1/uv.lock +445 -0
@@ -0,0 +1 @@
|
|
1
|
+
3.12
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile
|
2
|
+
# Use a Python image
|
3
|
+
FROM python:3.12-slim
|
4
|
+
|
5
|
+
# Set the working directory
|
6
|
+
WORKDIR /app
|
7
|
+
|
8
|
+
# Copy pyproject.toml and uv.lock to the working directory
|
9
|
+
COPY pyproject.toml uv.lock /app/
|
10
|
+
|
11
|
+
# Install the project's dependencies using a package manager that understands pyproject.toml
|
12
|
+
RUN pip install --no-cache-dir hatchling && hatch build && pip install --no-cache-dir dist/*.whl
|
13
|
+
|
14
|
+
# Copy the source files to the container
|
15
|
+
COPY src/dify_mcp_server /app/src/dify_mcp_server
|
16
|
+
|
17
|
+
# Set environment variables, you should provide CONFIG_PATH during container run
|
18
|
+
ENV DIFY_BASE_URL="https://cloud.dify.ai/v1"
|
19
|
+
ENV DIFY_APP_SKS="app-sk1,app-sk2"
|
20
|
+
# ENV CONFIG_PATH=/path/to/config.yaml
|
21
|
+
|
22
|
+
# Set the entrypoint
|
23
|
+
ENTRYPOINT ["dify_mcp_server"]
|
24
|
+
|
25
|
+
# The command to run the server
|
26
|
+
CMD ["run"]
|
@@ -0,0 +1,170 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: mseep-dify-mcp-server
|
3
|
+
Version: 0.1.1
|
4
|
+
Summary: Add your description here
|
5
|
+
Requires-Python: >=3.10
|
6
|
+
Requires-Dist: httpx>=0.28.1
|
7
|
+
Requires-Dist: mcp>=1.1.2
|
8
|
+
Requires-Dist: omegaconf>=2.3.0
|
9
|
+
Requires-Dist: pip>=24.3.1
|
10
|
+
Requires-Dist: python-dotenv>=1.0.1
|
11
|
+
Requires-Dist: requests
|
12
|
+
Description-Content-Type: text/markdown
|
13
|
+
|
14
|
+
# Model Context Protocol (MCP) Server for dify workflows
|
15
|
+
A simple implementation of an MCP server for using [dify](https://github.com/langgenius/dify). It achieves the invocation of the Dify workflow by calling the tools of MCP.
|
16
|
+
## 📰 News
|
17
|
+
* [2025/4/15] zNow supports directly using environment variables to pass `base_url` and `app_sks`, making it more convenient to use with cloud-hosted platforms.
|
18
|
+
|
19
|
+
|
20
|
+
## 🔨Installation
|
21
|
+
The server can be installed via [Smithery](https://smithery.ai/server/dify-mcp-server) or manually.
|
22
|
+
|
23
|
+
### Step1: prepare config.yaml or enviroments
|
24
|
+
You can configure the server using either environment variables or a `config.yaml` file.
|
25
|
+
|
26
|
+
#### Method 1: Using Environment Variables (Recommended for Cloud Platforms)
|
27
|
+
|
28
|
+
Set the following environment variables:
|
29
|
+
|
30
|
+
```shell
|
31
|
+
export DIFY_BASE_URL="https://cloud.dify.ai/v1"
|
32
|
+
export DIFY_APP_SKS="app-sk1,app-sk2" # Comma-separated list of your Dify App SKs
|
33
|
+
```
|
34
|
+
|
35
|
+
* `DIFY_BASE_URL`: The base URL for your Dify API.
|
36
|
+
* `DIFY_APP_SKS`: A comma-separated list of your Dify App Secret Keys (SKs). Each SK typically corresponds to a different Dify workflow you want to make available via MCP.
|
37
|
+
|
38
|
+
#### Method 2: Using `config.yaml`
|
39
|
+
|
40
|
+
Create a `config.yaml` file to store your Dify base URL and App SKs.
|
41
|
+
|
42
|
+
Example `config.yaml`:
|
43
|
+
|
44
|
+
```yaml
|
45
|
+
dify_base_url: "https://cloud.dify.ai/v1"
|
46
|
+
dify_app_sks:
|
47
|
+
- "app-sk1" # SK for workflow 1
|
48
|
+
- "app-sk2" # SK for workflow 2
|
49
|
+
# Add more SKs as needed
|
50
|
+
```
|
51
|
+
|
52
|
+
* `dify_base_url`: The base URL for your Dify API.
|
53
|
+
* `dify_app_sks`: A list of your Dify App Secret Keys (SKs). Each SK typically corresponds to a different Dify workflow.
|
54
|
+
|
55
|
+
You can create this file quickly using the following command (adjust the path and values as needed):
|
56
|
+
|
57
|
+
```bash
|
58
|
+
# Create a directory if it doesn't exist
|
59
|
+
mkdir -p ~/.config/dify-mcp-server
|
60
|
+
|
61
|
+
# Create the config file
|
62
|
+
cat > ~/.config/dify-mcp-server/config.yaml <<EOF
|
63
|
+
dify_base_url: "https://cloud.dify.ai/v1"
|
64
|
+
dify_app_sks:
|
65
|
+
- "app-your-sk-1"
|
66
|
+
- "app-your-sk-2"
|
67
|
+
EOF
|
68
|
+
|
69
|
+
echo "Configuration file created at ~/.config/dify-mcp-server/config.yaml"
|
70
|
+
```
|
71
|
+
|
72
|
+
When running the server (as shown in Step 2), you will need to provide the path to this `config.yaml` file via the `CONFIG_PATH` environment variable if you choose this method.
|
73
|
+
|
74
|
+
### Step2: Installation on your client
|
75
|
+
❓ If you haven't installed uv or uvx yet, you can do it quickly with the following command:
|
76
|
+
```
|
77
|
+
curl -Ls https://astral.sh/uv/install.sh | sh
|
78
|
+
```
|
79
|
+
|
80
|
+
#### ✅ Method 1: Use uvx (no need to clone code, recommended)
|
81
|
+
|
82
|
+
```json
|
83
|
+
{
|
84
|
+
"mcpServers": {
|
85
|
+
"dify-mcp-server": {
|
86
|
+
"command": "uvx",
|
87
|
+
"args": [
|
88
|
+
"--from","git+https://github.com/YanxingLiu/dify-mcp-server","dify_mcp_server"
|
89
|
+
],
|
90
|
+
"env": {
|
91
|
+
"DIFY_BASE_URL": "https://cloud.dify.ai/v1",
|
92
|
+
"DIFY_APP_SKS": "app-sk1,app-sk2",
|
93
|
+
}
|
94
|
+
}
|
95
|
+
}
|
96
|
+
}
|
97
|
+
```
|
98
|
+
or
|
99
|
+
```json
|
100
|
+
{
|
101
|
+
"mcpServers": {
|
102
|
+
"dify-mcp-server": {
|
103
|
+
"command": "uvx",
|
104
|
+
"args": [
|
105
|
+
"--from","git+https://github.com/YanxingLiu/dify-mcp-server","dify_mcp_server"
|
106
|
+
],
|
107
|
+
"env": {
|
108
|
+
"CONFIG_PATH": "/Users/lyx/Downloads/config.yaml"
|
109
|
+
}
|
110
|
+
}
|
111
|
+
}
|
112
|
+
}
|
113
|
+
```
|
114
|
+
|
115
|
+
#### ✅ Method 2: Use uv (local clone + uv start)
|
116
|
+
|
117
|
+
You can also run the dify mcp server manually in your clients. The config of client should like the following format:
|
118
|
+
```json
|
119
|
+
{
|
120
|
+
"mcpServers": {
|
121
|
+
"mcp-server-rag-web-browser": {
|
122
|
+
"command": "uv",
|
123
|
+
"args": [
|
124
|
+
"--directory", "${DIFY_MCP_SERVER_PATH}",
|
125
|
+
"run", "dify_mcp_server"
|
126
|
+
],
|
127
|
+
"env": {
|
128
|
+
"CONFIG_PATH": "$CONFIG_PATH"
|
129
|
+
}
|
130
|
+
}
|
131
|
+
}
|
132
|
+
}
|
133
|
+
```
|
134
|
+
or
|
135
|
+
```json
|
136
|
+
{
|
137
|
+
"mcpServers": {
|
138
|
+
"mcp-server-rag-web-browser": {
|
139
|
+
"command": "uv",
|
140
|
+
"args": [
|
141
|
+
"--directory", "${DIFY_MCP_SERVER_PATH}",
|
142
|
+
"run", "dify_mcp_server"
|
143
|
+
],
|
144
|
+
"env": {
|
145
|
+
"CONFIG_PATH": "$CONFIG_PATH"
|
146
|
+
}
|
147
|
+
}
|
148
|
+
}
|
149
|
+
}
|
150
|
+
```
|
151
|
+
Example config:
|
152
|
+
```json
|
153
|
+
{
|
154
|
+
"mcpServers": {
|
155
|
+
"dify-mcp-server": {
|
156
|
+
"command": "uv",
|
157
|
+
"args": [
|
158
|
+
"--directory", "/Users/lyx/Downloads/dify-mcp-server",
|
159
|
+
"run", "dify_mcp_server"
|
160
|
+
],
|
161
|
+
"env": {
|
162
|
+
"DIFY_BASE_URL": "https://cloud.dify.ai/v1",
|
163
|
+
"DIFY_APP_SKS": "app-sk1,app-sk2",
|
164
|
+
}
|
165
|
+
}
|
166
|
+
}
|
167
|
+
}
|
168
|
+
```
|
169
|
+
### Enjoy it
|
170
|
+
At last, you can use dify tools in any client who supports mcp.
|
@@ -0,0 +1,157 @@
|
|
1
|
+
# Model Context Protocol (MCP) Server for dify workflows
|
2
|
+
A simple implementation of an MCP server for using [dify](https://github.com/langgenius/dify). It achieves the invocation of the Dify workflow by calling the tools of MCP.
|
3
|
+
## 📰 News
|
4
|
+
* [2025/4/15] zNow supports directly using environment variables to pass `base_url` and `app_sks`, making it more convenient to use with cloud-hosted platforms.
|
5
|
+
|
6
|
+
|
7
|
+
## 🔨Installation
|
8
|
+
The server can be installed via [Smithery](https://smithery.ai/server/dify-mcp-server) or manually.
|
9
|
+
|
10
|
+
### Step1: prepare config.yaml or enviroments
|
11
|
+
You can configure the server using either environment variables or a `config.yaml` file.
|
12
|
+
|
13
|
+
#### Method 1: Using Environment Variables (Recommended for Cloud Platforms)
|
14
|
+
|
15
|
+
Set the following environment variables:
|
16
|
+
|
17
|
+
```shell
|
18
|
+
export DIFY_BASE_URL="https://cloud.dify.ai/v1"
|
19
|
+
export DIFY_APP_SKS="app-sk1,app-sk2" # Comma-separated list of your Dify App SKs
|
20
|
+
```
|
21
|
+
|
22
|
+
* `DIFY_BASE_URL`: The base URL for your Dify API.
|
23
|
+
* `DIFY_APP_SKS`: A comma-separated list of your Dify App Secret Keys (SKs). Each SK typically corresponds to a different Dify workflow you want to make available via MCP.
|
24
|
+
|
25
|
+
#### Method 2: Using `config.yaml`
|
26
|
+
|
27
|
+
Create a `config.yaml` file to store your Dify base URL and App SKs.
|
28
|
+
|
29
|
+
Example `config.yaml`:
|
30
|
+
|
31
|
+
```yaml
|
32
|
+
dify_base_url: "https://cloud.dify.ai/v1"
|
33
|
+
dify_app_sks:
|
34
|
+
- "app-sk1" # SK for workflow 1
|
35
|
+
- "app-sk2" # SK for workflow 2
|
36
|
+
# Add more SKs as needed
|
37
|
+
```
|
38
|
+
|
39
|
+
* `dify_base_url`: The base URL for your Dify API.
|
40
|
+
* `dify_app_sks`: A list of your Dify App Secret Keys (SKs). Each SK typically corresponds to a different Dify workflow.
|
41
|
+
|
42
|
+
You can create this file quickly using the following command (adjust the path and values as needed):
|
43
|
+
|
44
|
+
```bash
|
45
|
+
# Create a directory if it doesn't exist
|
46
|
+
mkdir -p ~/.config/dify-mcp-server
|
47
|
+
|
48
|
+
# Create the config file
|
49
|
+
cat > ~/.config/dify-mcp-server/config.yaml <<EOF
|
50
|
+
dify_base_url: "https://cloud.dify.ai/v1"
|
51
|
+
dify_app_sks:
|
52
|
+
- "app-your-sk-1"
|
53
|
+
- "app-your-sk-2"
|
54
|
+
EOF
|
55
|
+
|
56
|
+
echo "Configuration file created at ~/.config/dify-mcp-server/config.yaml"
|
57
|
+
```
|
58
|
+
|
59
|
+
When running the server (as shown in Step 2), you will need to provide the path to this `config.yaml` file via the `CONFIG_PATH` environment variable if you choose this method.
|
60
|
+
|
61
|
+
### Step2: Installation on your client
|
62
|
+
❓ If you haven't installed uv or uvx yet, you can do it quickly with the following command:
|
63
|
+
```
|
64
|
+
curl -Ls https://astral.sh/uv/install.sh | sh
|
65
|
+
```
|
66
|
+
|
67
|
+
#### ✅ Method 1: Use uvx (no need to clone code, recommended)
|
68
|
+
|
69
|
+
```json
|
70
|
+
{
|
71
|
+
"mcpServers": {
|
72
|
+
"dify-mcp-server": {
|
73
|
+
"command": "uvx",
|
74
|
+
"args": [
|
75
|
+
"--from","git+https://github.com/YanxingLiu/dify-mcp-server","dify_mcp_server"
|
76
|
+
],
|
77
|
+
"env": {
|
78
|
+
"DIFY_BASE_URL": "https://cloud.dify.ai/v1",
|
79
|
+
"DIFY_APP_SKS": "app-sk1,app-sk2",
|
80
|
+
}
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
84
|
+
```
|
85
|
+
or
|
86
|
+
```json
|
87
|
+
{
|
88
|
+
"mcpServers": {
|
89
|
+
"dify-mcp-server": {
|
90
|
+
"command": "uvx",
|
91
|
+
"args": [
|
92
|
+
"--from","git+https://github.com/YanxingLiu/dify-mcp-server","dify_mcp_server"
|
93
|
+
],
|
94
|
+
"env": {
|
95
|
+
"CONFIG_PATH": "/Users/lyx/Downloads/config.yaml"
|
96
|
+
}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
}
|
100
|
+
```
|
101
|
+
|
102
|
+
#### ✅ Method 2: Use uv (local clone + uv start)
|
103
|
+
|
104
|
+
You can also run the dify mcp server manually in your clients. The config of client should like the following format:
|
105
|
+
```json
|
106
|
+
{
|
107
|
+
"mcpServers": {
|
108
|
+
"mcp-server-rag-web-browser": {
|
109
|
+
"command": "uv",
|
110
|
+
"args": [
|
111
|
+
"--directory", "${DIFY_MCP_SERVER_PATH}",
|
112
|
+
"run", "dify_mcp_server"
|
113
|
+
],
|
114
|
+
"env": {
|
115
|
+
"CONFIG_PATH": "$CONFIG_PATH"
|
116
|
+
}
|
117
|
+
}
|
118
|
+
}
|
119
|
+
}
|
120
|
+
```
|
121
|
+
or
|
122
|
+
```json
|
123
|
+
{
|
124
|
+
"mcpServers": {
|
125
|
+
"mcp-server-rag-web-browser": {
|
126
|
+
"command": "uv",
|
127
|
+
"args": [
|
128
|
+
"--directory", "${DIFY_MCP_SERVER_PATH}",
|
129
|
+
"run", "dify_mcp_server"
|
130
|
+
],
|
131
|
+
"env": {
|
132
|
+
"CONFIG_PATH": "$CONFIG_PATH"
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}
|
136
|
+
}
|
137
|
+
```
|
138
|
+
Example config:
|
139
|
+
```json
|
140
|
+
{
|
141
|
+
"mcpServers": {
|
142
|
+
"dify-mcp-server": {
|
143
|
+
"command": "uv",
|
144
|
+
"args": [
|
145
|
+
"--directory", "/Users/lyx/Downloads/dify-mcp-server",
|
146
|
+
"run", "dify_mcp_server"
|
147
|
+
],
|
148
|
+
"env": {
|
149
|
+
"DIFY_BASE_URL": "https://cloud.dify.ai/v1",
|
150
|
+
"DIFY_APP_SKS": "app-sk1,app-sk2",
|
151
|
+
}
|
152
|
+
}
|
153
|
+
}
|
154
|
+
}
|
155
|
+
```
|
156
|
+
### Enjoy it
|
157
|
+
At last, you can use dify tools in any client who supports mcp.
|
@@ -0,0 +1,28 @@
|
|
1
|
+
[project]
|
2
|
+
name = "mseep-dify-mcp-server"
|
3
|
+
version = "0.1.1"
|
4
|
+
description = "Add your description here"
|
5
|
+
readme = "README.md"
|
6
|
+
requires-python = ">=3.10"
|
7
|
+
dependencies = [
|
8
|
+
"httpx>=0.28.1",
|
9
|
+
"mcp>=1.1.2",
|
10
|
+
"omegaconf>=2.3.0",
|
11
|
+
"pip>=24.3.1",
|
12
|
+
"python-dotenv>=1.0.1",
|
13
|
+
"requests",
|
14
|
+
]
|
15
|
+
|
16
|
+
[project.scripts]
|
17
|
+
dify_mcp_server = "dify_mcp_server:main"
|
18
|
+
|
19
|
+
[build-system]
|
20
|
+
requires = [
|
21
|
+
"hatchling",
|
22
|
+
]
|
23
|
+
build-backend = "hatchling.build"
|
24
|
+
|
25
|
+
[tool.hatch.build.targets.wheel]
|
26
|
+
packages = [
|
27
|
+
"src",
|
28
|
+
]
|
@@ -0,0 +1,20 @@
|
|
1
|
+
|
2
|
+
from setuptools import setup, find_packages
|
3
|
+
|
4
|
+
setup(
|
5
|
+
name="mseep-dify-mcp-server",
|
6
|
+
version="0.1.1",
|
7
|
+
description="Add your description here",
|
8
|
+
author="mseep",
|
9
|
+
author_email="support@skydeck.ai",
|
10
|
+
url="",
|
11
|
+
packages=find_packages(),
|
12
|
+
classifiers=[
|
13
|
+
"Programming Language :: Python :: 3",
|
14
|
+
"License :: OSI Approved :: MIT License",
|
15
|
+
"Operating System :: OS Independent",
|
16
|
+
],
|
17
|
+
python_requires=">=3.6",
|
18
|
+
install_requires=['httpx>=0.28.1', 'mcp>=1.1.2', 'omegaconf>=2.3.0', 'pip>=24.3.1', 'python-dotenv>=1.0.1', 'requests'],
|
19
|
+
keywords=["mseep"] + [],
|
20
|
+
)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml
|
2
|
+
|
3
|
+
startCommand:
|
4
|
+
type: stdio
|
5
|
+
configSchema:
|
6
|
+
# JSON Schema defining the configuration options for the MCP.
|
7
|
+
type: object
|
8
|
+
required:
|
9
|
+
- configPath
|
10
|
+
properties:
|
11
|
+
configPath:
|
12
|
+
type: string
|
13
|
+
description: The file path to the configuration YAML file.
|
14
|
+
commandFunction:
|
15
|
+
# A function that produces the CLI command to start the MCP on stdio.
|
16
|
+
|-
|
17
|
+
(config) => ({ command: 'uv', args: ['--directory', '.', 'run', 'dify_mcp_server'], env: { CONFIG_PATH: config.configPath } })
|
@@ -0,0 +1,281 @@
|
|
1
|
+
import asyncio
|
2
|
+
import json
|
3
|
+
import os
|
4
|
+
from abc import ABC
|
5
|
+
|
6
|
+
import mcp.server.stdio
|
7
|
+
import mcp.types as types
|
8
|
+
import requests
|
9
|
+
from mcp.server import NotificationOptions, Server
|
10
|
+
from mcp.server.models import InitializationOptions
|
11
|
+
from omegaconf import OmegaConf
|
12
|
+
|
13
|
+
|
14
|
+
def get_app_info():
|
15
|
+
config_path = os.getenv("CONFIG_PATH")
|
16
|
+
base_url = os.getenv("DIFY_BASE_URL")
|
17
|
+
dify_app_sks = os.getenv("DIFY_APP_SKS")
|
18
|
+
if config_path is not None:
|
19
|
+
print(f"Loading config from {config_path}")
|
20
|
+
config = OmegaConf.load(config_path)
|
21
|
+
dify_base_url = config.get('dify_base_url', "https://api.dify.ai/v1")
|
22
|
+
dify_app_sks = config.get('dify_app_sks', [])
|
23
|
+
return dify_base_url, dify_app_sks
|
24
|
+
elif base_url is not None and dify_app_sks is not None:
|
25
|
+
print(f"Loading config from env variables")
|
26
|
+
dify_base_url = base_url
|
27
|
+
dify_app_sks = dify_app_sks.split(",")
|
28
|
+
return dify_base_url, dify_app_sks
|
29
|
+
|
30
|
+
class DifyAPI(ABC):
|
31
|
+
def __init__(self,
|
32
|
+
base_url: str,
|
33
|
+
dify_app_sks: list,
|
34
|
+
user="default_user"):
|
35
|
+
# dify configs
|
36
|
+
self.dify_base_url = base_url
|
37
|
+
self.dify_app_sks = dify_app_sks
|
38
|
+
self.user = user
|
39
|
+
|
40
|
+
# dify app infos
|
41
|
+
dify_app_infos = []
|
42
|
+
dify_app_params = []
|
43
|
+
dify_app_metas = []
|
44
|
+
for key in self.dify_app_sks:
|
45
|
+
dify_app_infos.append(self.get_app_info(key))
|
46
|
+
dify_app_params.append(self.get_app_parameters(key))
|
47
|
+
dify_app_metas.append(self.get_app_meta(key))
|
48
|
+
self.dify_app_infos = dify_app_infos
|
49
|
+
self.dify_app_params = dify_app_params
|
50
|
+
self.dify_app_metas = dify_app_metas
|
51
|
+
self.dify_app_names = [x['name'] for x in dify_app_infos]
|
52
|
+
|
53
|
+
def chat_message(
|
54
|
+
self,
|
55
|
+
api_key,
|
56
|
+
inputs={},
|
57
|
+
response_mode="streaming",
|
58
|
+
conversation_id=None,
|
59
|
+
user="default_user",
|
60
|
+
files=None,):
|
61
|
+
url = f"{self.dify_base_url}/workflows/run"
|
62
|
+
headers = {
|
63
|
+
"Authorization": f"Bearer {api_key}",
|
64
|
+
"Content-Type": "application/json"
|
65
|
+
}
|
66
|
+
data = {
|
67
|
+
"inputs": inputs,
|
68
|
+
"response_mode": response_mode,
|
69
|
+
"user": user,
|
70
|
+
}
|
71
|
+
if conversation_id:
|
72
|
+
data["conversation_id"] = conversation_id
|
73
|
+
if files:
|
74
|
+
files_data = []
|
75
|
+
for file_info in files:
|
76
|
+
file_path = file_info.get('path')
|
77
|
+
transfer_method = file_info.get('transfer_method')
|
78
|
+
if transfer_method == 'local_file':
|
79
|
+
files_data.append(('file', open(file_path, 'rb')))
|
80
|
+
elif transfer_method == 'remote_url':
|
81
|
+
pass
|
82
|
+
response = requests.post(
|
83
|
+
url, headers=headers, data=data, files=files_data, stream=response_mode == "streaming")
|
84
|
+
else:
|
85
|
+
response = requests.post(
|
86
|
+
url, headers=headers, json=data, stream=response_mode == "streaming")
|
87
|
+
response.raise_for_status()
|
88
|
+
if response_mode == "streaming":
|
89
|
+
for line in response.iter_lines():
|
90
|
+
if line:
|
91
|
+
if line.startswith(b'data:'):
|
92
|
+
try:
|
93
|
+
json_data = json.loads(line[5:].decode('utf-8'))
|
94
|
+
yield json_data
|
95
|
+
except json.JSONDecodeError:
|
96
|
+
print(f"Error decoding JSON: {line}")
|
97
|
+
else:
|
98
|
+
return response.json()
|
99
|
+
|
100
|
+
def upload_file(
|
101
|
+
self,
|
102
|
+
api_key,
|
103
|
+
file_path,
|
104
|
+
user="default_user"):
|
105
|
+
|
106
|
+
url = f"{self.dify_base_url}/files/upload"
|
107
|
+
headers = {
|
108
|
+
"Authorization": f"Bearer {api_key}"
|
109
|
+
}
|
110
|
+
files = {
|
111
|
+
"file": open(file_path, "rb")
|
112
|
+
}
|
113
|
+
data = {
|
114
|
+
"user": user
|
115
|
+
}
|
116
|
+
response = requests.post(url, headers=headers, files=files, data=data)
|
117
|
+
response.raise_for_status()
|
118
|
+
return response.json()
|
119
|
+
|
120
|
+
def stop_response(
|
121
|
+
self,
|
122
|
+
api_key,
|
123
|
+
task_id,
|
124
|
+
user="default_user"):
|
125
|
+
|
126
|
+
url = f"{self.dify_base_url}/chat-messages/{task_id}/stop"
|
127
|
+
headers = {
|
128
|
+
"Authorization": f"Bearer {api_key}",
|
129
|
+
"Content-Type": "application/json"
|
130
|
+
}
|
131
|
+
data = {
|
132
|
+
"user": user
|
133
|
+
}
|
134
|
+
response = requests.post(url, headers=headers, json=data)
|
135
|
+
response.raise_for_status()
|
136
|
+
return response.json()
|
137
|
+
|
138
|
+
def get_app_info(
|
139
|
+
self,
|
140
|
+
api_key,
|
141
|
+
user="default_user"):
|
142
|
+
|
143
|
+
url = f"{self.dify_base_url}/info"
|
144
|
+
headers = {
|
145
|
+
"Authorization": f"Bearer {api_key}"
|
146
|
+
}
|
147
|
+
params = {
|
148
|
+
"user": user
|
149
|
+
}
|
150
|
+
response = requests.get(url, headers=headers, params=params)
|
151
|
+
response.raise_for_status()
|
152
|
+
return response.json()
|
153
|
+
|
154
|
+
def get_app_parameters(
|
155
|
+
self,
|
156
|
+
api_key,
|
157
|
+
user="default_user"):
|
158
|
+
url = f"{self.dify_base_url}/parameters"
|
159
|
+
headers = {
|
160
|
+
"Authorization": f"Bearer {api_key}"
|
161
|
+
}
|
162
|
+
params = {
|
163
|
+
"user": user
|
164
|
+
}
|
165
|
+
response = requests.get(url, headers=headers, params=params)
|
166
|
+
response.raise_for_status()
|
167
|
+
return response.json()
|
168
|
+
|
169
|
+
def get_app_meta(
|
170
|
+
self,
|
171
|
+
api_key,
|
172
|
+
user="default_user"):
|
173
|
+
url = f"{self.dify_base_url}/meta"
|
174
|
+
headers = {
|
175
|
+
"Authorization": f"Bearer {api_key}"
|
176
|
+
}
|
177
|
+
params = {
|
178
|
+
"user": user
|
179
|
+
}
|
180
|
+
response = requests.get(url, headers=headers, params=params)
|
181
|
+
response.raise_for_status()
|
182
|
+
return response.json()
|
183
|
+
|
184
|
+
|
185
|
+
base_url, dify_app_sks = get_app_info()
|
186
|
+
server = Server("dify_mcp_server")
|
187
|
+
dify_api = DifyAPI(base_url, dify_app_sks)
|
188
|
+
|
189
|
+
|
190
|
+
@server.list_tools()
|
191
|
+
async def handle_list_tools() -> list[types.Tool]:
|
192
|
+
"""
|
193
|
+
List available tools.
|
194
|
+
Each tool specifies its arguments using JSON Schema validation.
|
195
|
+
"""
|
196
|
+
tools = []
|
197
|
+
tool_names = dify_api.dify_app_names
|
198
|
+
tool_infos = dify_api.dify_app_infos
|
199
|
+
tool_params = dify_api.dify_app_params
|
200
|
+
tool_num = len(tool_names)
|
201
|
+
for i in range(tool_num):
|
202
|
+
# 0. load app info for each tool
|
203
|
+
app_info = tool_infos[i]
|
204
|
+
# 1. load app param for each tool
|
205
|
+
inputSchema = dict(
|
206
|
+
type="object",
|
207
|
+
properties={},
|
208
|
+
required=[],
|
209
|
+
)
|
210
|
+
app_param = tool_params[i]
|
211
|
+
property_num = len(app_param['user_input_form'])
|
212
|
+
if property_num > 0:
|
213
|
+
for j in range(property_num):
|
214
|
+
param = app_param['user_input_form'][j]
|
215
|
+
# TODO: Add readme about strange dify user input param format
|
216
|
+
param_type = list(param.keys())[0]
|
217
|
+
param_info = param[param_type]
|
218
|
+
property_name = param_info['variable']
|
219
|
+
inputSchema["properties"][property_name] = dict(
|
220
|
+
type=param_type,
|
221
|
+
description=param_info['label'],
|
222
|
+
)
|
223
|
+
if param_info['required']:
|
224
|
+
inputSchema['required'].append(property_name)
|
225
|
+
|
226
|
+
tools.append(
|
227
|
+
types.Tool(
|
228
|
+
name=app_info['name'],
|
229
|
+
description=app_info['description'],
|
230
|
+
inputSchema=inputSchema,
|
231
|
+
)
|
232
|
+
)
|
233
|
+
return tools
|
234
|
+
|
235
|
+
|
236
|
+
@server.call_tool()
|
237
|
+
async def handle_call_tool(
|
238
|
+
name: str, arguments: dict | None
|
239
|
+
) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]:
|
240
|
+
tool_names = dify_api.dify_app_names
|
241
|
+
if name in tool_names:
|
242
|
+
tool_idx = tool_names.index(name)
|
243
|
+
tool_sk = dify_api.dify_app_sks[tool_idx]
|
244
|
+
responses = dify_api.chat_message(
|
245
|
+
tool_sk,
|
246
|
+
arguments,
|
247
|
+
)
|
248
|
+
for res in responses:
|
249
|
+
if res['event'] == 'workflow_finished':
|
250
|
+
outputs = res['data']['outputs']
|
251
|
+
mcp_out = []
|
252
|
+
for _, v in outputs.items():
|
253
|
+
mcp_out.append(
|
254
|
+
types.TextContent(
|
255
|
+
type='text',
|
256
|
+
text=v
|
257
|
+
)
|
258
|
+
)
|
259
|
+
return mcp_out
|
260
|
+
else:
|
261
|
+
raise ValueError(f"Unknown tool: {name}")
|
262
|
+
|
263
|
+
|
264
|
+
async def main():
|
265
|
+
# Run the server using stdin/stdout streams
|
266
|
+
async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
|
267
|
+
await server.run(
|
268
|
+
read_stream,
|
269
|
+
write_stream,
|
270
|
+
InitializationOptions(
|
271
|
+
server_name="dify_mcp_server",
|
272
|
+
server_version="0.1.0",
|
273
|
+
capabilities=server.get_capabilities(
|
274
|
+
notification_options=NotificationOptions(),
|
275
|
+
experimental_capabilities={},
|
276
|
+
),
|
277
|
+
),
|
278
|
+
)
|
279
|
+
|
280
|
+
if __name__ == "__main__":
|
281
|
+
asyncio.run(main())
|
@@ -0,0 +1,445 @@
|
|
1
|
+
version = 1
|
2
|
+
requires-python = ">=3.10"
|
3
|
+
|
4
|
+
[[package]]
|
5
|
+
name = "annotated-types"
|
6
|
+
version = "0.7.0"
|
7
|
+
source = { registry = "https://pypi.org/simple" }
|
8
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 }
|
9
|
+
wheels = [
|
10
|
+
{ url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 },
|
11
|
+
]
|
12
|
+
|
13
|
+
[[package]]
|
14
|
+
name = "antlr4-python3-runtime"
|
15
|
+
version = "4.9.3"
|
16
|
+
source = { registry = "https://pypi.org/simple" }
|
17
|
+
sdist = { url = "https://files.pythonhosted.org/packages/3e/38/7859ff46355f76f8d19459005ca000b6e7012f2f1ca597746cbcd1fbfe5e/antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b", size = 117034 }
|
18
|
+
|
19
|
+
[[package]]
|
20
|
+
name = "anyio"
|
21
|
+
version = "4.7.0"
|
22
|
+
source = { registry = "https://pypi.org/simple" }
|
23
|
+
dependencies = [
|
24
|
+
{ name = "exceptiongroup", marker = "python_full_version < '3.11'" },
|
25
|
+
{ name = "idna" },
|
26
|
+
{ name = "sniffio" },
|
27
|
+
{ name = "typing-extensions", marker = "python_full_version < '3.13'" },
|
28
|
+
]
|
29
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f6/40/318e58f669b1a9e00f5c4453910682e2d9dd594334539c7b7817dabb765f/anyio-4.7.0.tar.gz", hash = "sha256:2f834749c602966b7d456a7567cafcb309f96482b5081d14ac93ccd457f9dd48", size = 177076 }
|
30
|
+
wheels = [
|
31
|
+
{ url = "https://files.pythonhosted.org/packages/a0/7a/4daaf3b6c08ad7ceffea4634ec206faeff697526421c20f07628c7372156/anyio-4.7.0-py3-none-any.whl", hash = "sha256:ea60c3723ab42ba6fff7e8ccb0488c898ec538ff4df1f1d5e642c3601d07e352", size = 93052 },
|
32
|
+
]
|
33
|
+
|
34
|
+
[[package]]
|
35
|
+
name = "certifi"
|
36
|
+
version = "2024.12.14"
|
37
|
+
source = { registry = "https://pypi.org/simple" }
|
38
|
+
sdist = { url = "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", size = 166010 }
|
39
|
+
wheels = [
|
40
|
+
{ url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", size = 164927 },
|
41
|
+
]
|
42
|
+
|
43
|
+
[[package]]
|
44
|
+
name = "charset-normalizer"
|
45
|
+
version = "3.4.0"
|
46
|
+
source = { registry = "https://pypi.org/simple" }
|
47
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", size = 106620 }
|
48
|
+
wheels = [
|
49
|
+
{ url = "https://files.pythonhosted.org/packages/69/8b/825cc84cf13a28bfbcba7c416ec22bf85a9584971be15b21dd8300c65b7f/charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6", size = 196363 },
|
50
|
+
{ url = "https://files.pythonhosted.org/packages/23/81/d7eef6a99e42c77f444fdd7bc894b0ceca6c3a95c51239e74a722039521c/charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b", size = 125639 },
|
51
|
+
{ url = "https://files.pythonhosted.org/packages/21/67/b4564d81f48042f520c948abac7079356e94b30cb8ffb22e747532cf469d/charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99", size = 120451 },
|
52
|
+
{ url = "https://files.pythonhosted.org/packages/c2/72/12a7f0943dd71fb5b4e7b55c41327ac0a1663046a868ee4d0d8e9c369b85/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca", size = 140041 },
|
53
|
+
{ url = "https://files.pythonhosted.org/packages/67/56/fa28c2c3e31217c4c52158537a2cf5d98a6c1e89d31faf476c89391cd16b/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d", size = 150333 },
|
54
|
+
{ url = "https://files.pythonhosted.org/packages/f9/d2/466a9be1f32d89eb1554cf84073a5ed9262047acee1ab39cbaefc19635d2/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7", size = 142921 },
|
55
|
+
{ url = "https://files.pythonhosted.org/packages/f8/01/344ec40cf5d85c1da3c1f57566c59e0c9b56bcc5566c08804a95a6cc8257/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3", size = 144785 },
|
56
|
+
{ url = "https://files.pythonhosted.org/packages/73/8b/2102692cb6d7e9f03b9a33a710e0164cadfce312872e3efc7cfe22ed26b4/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907", size = 146631 },
|
57
|
+
{ url = "https://files.pythonhosted.org/packages/d8/96/cc2c1b5d994119ce9f088a9a0c3ebd489d360a2eb058e2c8049f27092847/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b", size = 140867 },
|
58
|
+
{ url = "https://files.pythonhosted.org/packages/c9/27/cde291783715b8ec30a61c810d0120411844bc4c23b50189b81188b273db/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912", size = 149273 },
|
59
|
+
{ url = "https://files.pythonhosted.org/packages/3a/a4/8633b0fc1a2d1834d5393dafecce4a1cc56727bfd82b4dc18fc92f0d3cc3/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95", size = 152437 },
|
60
|
+
{ url = "https://files.pythonhosted.org/packages/64/ea/69af161062166b5975ccbb0961fd2384853190c70786f288684490913bf5/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e", size = 150087 },
|
61
|
+
{ url = "https://files.pythonhosted.org/packages/3b/fd/e60a9d9fd967f4ad5a92810138192f825d77b4fa2a557990fd575a47695b/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe", size = 145142 },
|
62
|
+
{ url = "https://files.pythonhosted.org/packages/6d/02/8cb0988a1e49ac9ce2eed1e07b77ff118f2923e9ebd0ede41ba85f2dcb04/charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc", size = 94701 },
|
63
|
+
{ url = "https://files.pythonhosted.org/packages/d6/20/f1d4670a8a723c46be695dff449d86d6092916f9e99c53051954ee33a1bc/charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749", size = 102191 },
|
64
|
+
{ url = "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", size = 193339 },
|
65
|
+
{ url = "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", size = 124366 },
|
66
|
+
{ url = "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", size = 118874 },
|
67
|
+
{ url = "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", size = 138243 },
|
68
|
+
{ url = "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", size = 148676 },
|
69
|
+
{ url = "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", size = 141289 },
|
70
|
+
{ url = "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", size = 142585 },
|
71
|
+
{ url = "https://files.pythonhosted.org/packages/3b/a0/a68980ab8a1f45a36d9745d35049c1af57d27255eff8c907e3add84cf68f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", size = 144408 },
|
72
|
+
{ url = "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", size = 139076 },
|
73
|
+
{ url = "https://files.pythonhosted.org/packages/fb/9d/9c13753a5a6e0db4a0a6edb1cef7aee39859177b64e1a1e748a6e3ba62c2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", size = 146874 },
|
74
|
+
{ url = "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", size = 150871 },
|
75
|
+
{ url = "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", size = 148546 },
|
76
|
+
{ url = "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", size = 143048 },
|
77
|
+
{ url = "https://files.pythonhosted.org/packages/01/f8/38842422988b795220eb8038745d27a675ce066e2ada79516c118f291f07/charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", size = 94389 },
|
78
|
+
{ url = "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", size = 101752 },
|
79
|
+
{ url = "https://files.pythonhosted.org/packages/d3/0b/4b7a70987abf9b8196845806198975b6aab4ce016632f817ad758a5aa056/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", size = 194445 },
|
80
|
+
{ url = "https://files.pythonhosted.org/packages/50/89/354cc56cf4dd2449715bc9a0f54f3aef3dc700d2d62d1fa5bbea53b13426/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", size = 125275 },
|
81
|
+
{ url = "https://files.pythonhosted.org/packages/fa/44/b730e2a2580110ced837ac083d8ad222343c96bb6b66e9e4e706e4d0b6df/charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", size = 119020 },
|
82
|
+
{ url = "https://files.pythonhosted.org/packages/9d/e4/9263b8240ed9472a2ae7ddc3e516e71ef46617fe40eaa51221ccd4ad9a27/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", size = 139128 },
|
83
|
+
{ url = "https://files.pythonhosted.org/packages/6b/e3/9f73e779315a54334240353eaea75854a9a690f3f580e4bd85d977cb2204/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", size = 149277 },
|
84
|
+
{ url = "https://files.pythonhosted.org/packages/1a/cf/f1f50c2f295312edb8a548d3fa56a5c923b146cd3f24114d5adb7e7be558/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", size = 142174 },
|
85
|
+
{ url = "https://files.pythonhosted.org/packages/16/92/92a76dc2ff3a12e69ba94e7e05168d37d0345fa08c87e1fe24d0c2a42223/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", size = 143838 },
|
86
|
+
{ url = "https://files.pythonhosted.org/packages/a4/01/2117ff2b1dfc61695daf2babe4a874bca328489afa85952440b59819e9d7/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", size = 146149 },
|
87
|
+
{ url = "https://files.pythonhosted.org/packages/f6/9b/93a332b8d25b347f6839ca0a61b7f0287b0930216994e8bf67a75d050255/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", size = 140043 },
|
88
|
+
{ url = "https://files.pythonhosted.org/packages/ab/f6/7ac4a01adcdecbc7a7587767c776d53d369b8b971382b91211489535acf0/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", size = 148229 },
|
89
|
+
{ url = "https://files.pythonhosted.org/packages/9d/be/5708ad18161dee7dc6a0f7e6cf3a88ea6279c3e8484844c0590e50e803ef/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", size = 151556 },
|
90
|
+
{ url = "https://files.pythonhosted.org/packages/5a/bb/3d8bc22bacb9eb89785e83e6723f9888265f3a0de3b9ce724d66bd49884e/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", size = 149772 },
|
91
|
+
{ url = "https://files.pythonhosted.org/packages/f7/fa/d3fc622de05a86f30beea5fc4e9ac46aead4731e73fd9055496732bcc0a4/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", size = 144800 },
|
92
|
+
{ url = "https://files.pythonhosted.org/packages/9a/65/bdb9bc496d7d190d725e96816e20e2ae3a6fa42a5cac99c3c3d6ff884118/charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", size = 94836 },
|
93
|
+
{ url = "https://files.pythonhosted.org/packages/3e/67/7b72b69d25b89c0b3cea583ee372c43aa24df15f0e0f8d3982c57804984b/charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", size = 102187 },
|
94
|
+
{ url = "https://files.pythonhosted.org/packages/f3/89/68a4c86f1a0002810a27f12e9a7b22feb198c59b2f05231349fbce5c06f4/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", size = 194617 },
|
95
|
+
{ url = "https://files.pythonhosted.org/packages/4f/cd/8947fe425e2ab0aa57aceb7807af13a0e4162cd21eee42ef5b053447edf5/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", size = 125310 },
|
96
|
+
{ url = "https://files.pythonhosted.org/packages/5b/f0/b5263e8668a4ee9becc2b451ed909e9c27058337fda5b8c49588183c267a/charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", size = 119126 },
|
97
|
+
{ url = "https://files.pythonhosted.org/packages/ff/6e/e445afe4f7fda27a533f3234b627b3e515a1b9429bc981c9a5e2aa5d97b6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", size = 139342 },
|
98
|
+
{ url = "https://files.pythonhosted.org/packages/a1/b2/4af9993b532d93270538ad4926c8e37dc29f2111c36f9c629840c57cd9b3/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", size = 149383 },
|
99
|
+
{ url = "https://files.pythonhosted.org/packages/fb/6f/4e78c3b97686b871db9be6f31d64e9264e889f8c9d7ab33c771f847f79b7/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", size = 142214 },
|
100
|
+
{ url = "https://files.pythonhosted.org/packages/2b/c9/1c8fe3ce05d30c87eff498592c89015b19fade13df42850aafae09e94f35/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", size = 144104 },
|
101
|
+
{ url = "https://files.pythonhosted.org/packages/ee/68/efad5dcb306bf37db7db338338e7bb8ebd8cf38ee5bbd5ceaaaa46f257e6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", size = 146255 },
|
102
|
+
{ url = "https://files.pythonhosted.org/packages/0c/75/1ed813c3ffd200b1f3e71121c95da3f79e6d2a96120163443b3ad1057505/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", size = 140251 },
|
103
|
+
{ url = "https://files.pythonhosted.org/packages/7d/0d/6f32255c1979653b448d3c709583557a4d24ff97ac4f3a5be156b2e6a210/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", size = 148474 },
|
104
|
+
{ url = "https://files.pythonhosted.org/packages/ac/a0/c1b5298de4670d997101fef95b97ac440e8c8d8b4efa5a4d1ef44af82f0d/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", size = 151849 },
|
105
|
+
{ url = "https://files.pythonhosted.org/packages/04/4f/b3961ba0c664989ba63e30595a3ed0875d6790ff26671e2aae2fdc28a399/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", size = 149781 },
|
106
|
+
{ url = "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482", size = 144970 },
|
107
|
+
{ url = "https://files.pythonhosted.org/packages/cc/67/e5e7e0cbfefc4ca79025238b43cdf8a2037854195b37d6417f3d0895c4c2/charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", size = 94973 },
|
108
|
+
{ url = "https://files.pythonhosted.org/packages/65/97/fc9bbc54ee13d33dc54a7fcf17b26368b18505500fc01e228c27b5222d80/charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", size = 102308 },
|
109
|
+
{ url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 },
|
110
|
+
]
|
111
|
+
|
112
|
+
[[package]]
|
113
|
+
name = "dify-mcp-server"
|
114
|
+
version = "0.1.0"
|
115
|
+
source = { editable = "." }
|
116
|
+
dependencies = [
|
117
|
+
{ name = "httpx" },
|
118
|
+
{ name = "mcp" },
|
119
|
+
{ name = "omegaconf" },
|
120
|
+
{ name = "pip" },
|
121
|
+
{ name = "python-dotenv" },
|
122
|
+
{ name = "requests" },
|
123
|
+
]
|
124
|
+
|
125
|
+
[package.metadata]
|
126
|
+
requires-dist = [
|
127
|
+
{ name = "httpx", specifier = ">=0.28.1" },
|
128
|
+
{ name = "mcp", specifier = ">=1.1.2" },
|
129
|
+
{ name = "omegaconf", specifier = ">=2.3.0" },
|
130
|
+
{ name = "pip", specifier = ">=24.3.1" },
|
131
|
+
{ name = "python-dotenv", specifier = ">=1.0.1" },
|
132
|
+
{ name = "requests" },
|
133
|
+
]
|
134
|
+
|
135
|
+
[[package]]
|
136
|
+
name = "exceptiongroup"
|
137
|
+
version = "1.2.2"
|
138
|
+
source = { registry = "https://pypi.org/simple" }
|
139
|
+
sdist = { url = "https://files.pythonhosted.org/packages/09/35/2495c4ac46b980e4ca1f6ad6db102322ef3ad2410b79fdde159a4b0f3b92/exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc", size = 28883 }
|
140
|
+
wheels = [
|
141
|
+
{ url = "https://files.pythonhosted.org/packages/02/cc/b7e31358aac6ed1ef2bb790a9746ac2c69bcb3c8588b41616914eb106eaf/exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b", size = 16453 },
|
142
|
+
]
|
143
|
+
|
144
|
+
[[package]]
|
145
|
+
name = "h11"
|
146
|
+
version = "0.14.0"
|
147
|
+
source = { registry = "https://pypi.org/simple" }
|
148
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f5/38/3af3d3633a34a3316095b39c8e8fb4853a28a536e55d347bd8d8e9a14b03/h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d", size = 100418 }
|
149
|
+
wheels = [
|
150
|
+
{ url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", size = 58259 },
|
151
|
+
]
|
152
|
+
|
153
|
+
[[package]]
|
154
|
+
name = "httpcore"
|
155
|
+
version = "1.0.7"
|
156
|
+
source = { registry = "https://pypi.org/simple" }
|
157
|
+
dependencies = [
|
158
|
+
{ name = "certifi" },
|
159
|
+
{ name = "h11" },
|
160
|
+
]
|
161
|
+
sdist = { url = "https://files.pythonhosted.org/packages/6a/41/d7d0a89eb493922c37d343b607bc1b5da7f5be7e383740b4753ad8943e90/httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c", size = 85196 }
|
162
|
+
wheels = [
|
163
|
+
{ url = "https://files.pythonhosted.org/packages/87/f5/72347bc88306acb359581ac4d52f23c0ef445b57157adedb9aee0cd689d2/httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd", size = 78551 },
|
164
|
+
]
|
165
|
+
|
166
|
+
[[package]]
|
167
|
+
name = "httpx"
|
168
|
+
version = "0.28.1"
|
169
|
+
source = { registry = "https://pypi.org/simple" }
|
170
|
+
dependencies = [
|
171
|
+
{ name = "anyio" },
|
172
|
+
{ name = "certifi" },
|
173
|
+
{ name = "httpcore" },
|
174
|
+
{ name = "idna" },
|
175
|
+
]
|
176
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 }
|
177
|
+
wheels = [
|
178
|
+
{ url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 },
|
179
|
+
]
|
180
|
+
|
181
|
+
[[package]]
|
182
|
+
name = "httpx-sse"
|
183
|
+
version = "0.4.0"
|
184
|
+
source = { registry = "https://pypi.org/simple" }
|
185
|
+
sdist = { url = "https://files.pythonhosted.org/packages/4c/60/8f4281fa9bbf3c8034fd54c0e7412e66edbab6bc74c4996bd616f8d0406e/httpx-sse-0.4.0.tar.gz", hash = "sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721", size = 12624 }
|
186
|
+
wheels = [
|
187
|
+
{ url = "https://files.pythonhosted.org/packages/e1/9b/a181f281f65d776426002f330c31849b86b31fc9d848db62e16f03ff739f/httpx_sse-0.4.0-py3-none-any.whl", hash = "sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f", size = 7819 },
|
188
|
+
]
|
189
|
+
|
190
|
+
[[package]]
|
191
|
+
name = "idna"
|
192
|
+
version = "3.10"
|
193
|
+
source = { registry = "https://pypi.org/simple" }
|
194
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 }
|
195
|
+
wheels = [
|
196
|
+
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
|
197
|
+
]
|
198
|
+
|
199
|
+
[[package]]
|
200
|
+
name = "mcp"
|
201
|
+
version = "1.1.2"
|
202
|
+
source = { registry = "https://pypi.org/simple" }
|
203
|
+
dependencies = [
|
204
|
+
{ name = "anyio" },
|
205
|
+
{ name = "httpx" },
|
206
|
+
{ name = "httpx-sse" },
|
207
|
+
{ name = "pydantic" },
|
208
|
+
{ name = "sse-starlette" },
|
209
|
+
{ name = "starlette" },
|
210
|
+
]
|
211
|
+
sdist = { url = "https://files.pythonhosted.org/packages/9b/f3/5cf212e60681ea6da0dbb6e0d1bc0ab2dbf5eebc749b69663d46f114fea1/mcp-1.1.2.tar.gz", hash = "sha256:694aa9df7a8641b24953c935eb72c63136dc948981021525a0add199bdfee402", size = 57628 }
|
212
|
+
wheels = [
|
213
|
+
{ url = "https://files.pythonhosted.org/packages/df/40/9883eac3718b860d4006eba1920bfcb628f0a1fe37fac46a4f4e391edca6/mcp-1.1.2-py3-none-any.whl", hash = "sha256:a4d32d60fd80a1702440ba4751b847a8a88957a1f7b059880953143e9759965a", size = 36652 },
|
214
|
+
]
|
215
|
+
|
216
|
+
[[package]]
|
217
|
+
name = "omegaconf"
|
218
|
+
version = "2.3.0"
|
219
|
+
source = { registry = "https://pypi.org/simple" }
|
220
|
+
dependencies = [
|
221
|
+
{ name = "antlr4-python3-runtime" },
|
222
|
+
{ name = "pyyaml" },
|
223
|
+
]
|
224
|
+
sdist = { url = "https://files.pythonhosted.org/packages/09/48/6388f1bb9da707110532cb70ec4d2822858ddfb44f1cdf1233c20a80ea4b/omegaconf-2.3.0.tar.gz", hash = "sha256:d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7", size = 3298120 }
|
225
|
+
wheels = [
|
226
|
+
{ url = "https://files.pythonhosted.org/packages/e3/94/1843518e420fa3ed6919835845df698c7e27e183cb997394e4a670973a65/omegaconf-2.3.0-py3-none-any.whl", hash = "sha256:7b4df175cdb08ba400f45cae3bdcae7ba8365db4d165fc65fd04b050ab63b46b", size = 79500 },
|
227
|
+
]
|
228
|
+
|
229
|
+
[[package]]
|
230
|
+
name = "pip"
|
231
|
+
version = "24.3.1"
|
232
|
+
source = { registry = "https://pypi.org/simple" }
|
233
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f4/b1/b422acd212ad7eedddaf7981eee6e5de085154ff726459cf2da7c5a184c1/pip-24.3.1.tar.gz", hash = "sha256:ebcb60557f2aefabc2e0f918751cd24ea0d56d8ec5445fe1807f1d2109660b99", size = 1931073 }
|
234
|
+
wheels = [
|
235
|
+
{ url = "https://files.pythonhosted.org/packages/ef/7d/500c9ad20238fcfcb4cb9243eede163594d7020ce87bd9610c9e02771876/pip-24.3.1-py3-none-any.whl", hash = "sha256:3790624780082365f47549d032f3770eeb2b1e8bd1f7b2e02dace1afa361b4ed", size = 1822182 },
|
236
|
+
]
|
237
|
+
|
238
|
+
[[package]]
|
239
|
+
name = "pydantic"
|
240
|
+
version = "2.10.4"
|
241
|
+
source = { registry = "https://pypi.org/simple" }
|
242
|
+
dependencies = [
|
243
|
+
{ name = "annotated-types" },
|
244
|
+
{ name = "pydantic-core" },
|
245
|
+
{ name = "typing-extensions" },
|
246
|
+
]
|
247
|
+
sdist = { url = "https://files.pythonhosted.org/packages/70/7e/fb60e6fee04d0ef8f15e4e01ff187a196fa976eb0f0ab524af4599e5754c/pydantic-2.10.4.tar.gz", hash = "sha256:82f12e9723da6de4fe2ba888b5971157b3be7ad914267dea8f05f82b28254f06", size = 762094 }
|
248
|
+
wheels = [
|
249
|
+
{ url = "https://files.pythonhosted.org/packages/f3/26/3e1bbe954fde7ee22a6e7d31582c642aad9e84ffe4b5fb61e63b87cd326f/pydantic-2.10.4-py3-none-any.whl", hash = "sha256:597e135ea68be3a37552fb524bc7d0d66dcf93d395acd93a00682f1efcb8ee3d", size = 431765 },
|
250
|
+
]
|
251
|
+
|
252
|
+
[[package]]
|
253
|
+
name = "pydantic-core"
|
254
|
+
version = "2.27.2"
|
255
|
+
source = { registry = "https://pypi.org/simple" }
|
256
|
+
dependencies = [
|
257
|
+
{ name = "typing-extensions" },
|
258
|
+
]
|
259
|
+
sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443 }
|
260
|
+
wheels = [
|
261
|
+
{ url = "https://files.pythonhosted.org/packages/3a/bc/fed5f74b5d802cf9a03e83f60f18864e90e3aed7223adaca5ffb7a8d8d64/pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa", size = 1895938 },
|
262
|
+
{ url = "https://files.pythonhosted.org/packages/71/2a/185aff24ce844e39abb8dd680f4e959f0006944f4a8a0ea372d9f9ae2e53/pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c", size = 1815684 },
|
263
|
+
{ url = "https://files.pythonhosted.org/packages/c3/43/fafabd3d94d159d4f1ed62e383e264f146a17dd4d48453319fd782e7979e/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a", size = 1829169 },
|
264
|
+
{ url = "https://files.pythonhosted.org/packages/a2/d1/f2dfe1a2a637ce6800b799aa086d079998959f6f1215eb4497966efd2274/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5", size = 1867227 },
|
265
|
+
{ url = "https://files.pythonhosted.org/packages/7d/39/e06fcbcc1c785daa3160ccf6c1c38fea31f5754b756e34b65f74e99780b5/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c", size = 2037695 },
|
266
|
+
{ url = "https://files.pythonhosted.org/packages/7a/67/61291ee98e07f0650eb756d44998214231f50751ba7e13f4f325d95249ab/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7", size = 2741662 },
|
267
|
+
{ url = "https://files.pythonhosted.org/packages/32/90/3b15e31b88ca39e9e626630b4c4a1f5a0dfd09076366f4219429e6786076/pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a", size = 1993370 },
|
268
|
+
{ url = "https://files.pythonhosted.org/packages/ff/83/c06d333ee3a67e2e13e07794995c1535565132940715931c1c43bfc85b11/pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236", size = 1996813 },
|
269
|
+
{ url = "https://files.pythonhosted.org/packages/7c/f7/89be1c8deb6e22618a74f0ca0d933fdcb8baa254753b26b25ad3acff8f74/pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962", size = 2005287 },
|
270
|
+
{ url = "https://files.pythonhosted.org/packages/b7/7d/8eb3e23206c00ef7feee17b83a4ffa0a623eb1a9d382e56e4aa46fd15ff2/pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9", size = 2128414 },
|
271
|
+
{ url = "https://files.pythonhosted.org/packages/4e/99/fe80f3ff8dd71a3ea15763878d464476e6cb0a2db95ff1c5c554133b6b83/pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af", size = 2155301 },
|
272
|
+
{ url = "https://files.pythonhosted.org/packages/2b/a3/e50460b9a5789ca1451b70d4f52546fa9e2b420ba3bfa6100105c0559238/pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4", size = 1816685 },
|
273
|
+
{ url = "https://files.pythonhosted.org/packages/57/4c/a8838731cb0f2c2a39d3535376466de6049034d7b239c0202a64aaa05533/pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31", size = 1982876 },
|
274
|
+
{ url = "https://files.pythonhosted.org/packages/c2/89/f3450af9d09d44eea1f2c369f49e8f181d742f28220f88cc4dfaae91ea6e/pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc", size = 1893421 },
|
275
|
+
{ url = "https://files.pythonhosted.org/packages/9e/e3/71fe85af2021f3f386da42d291412e5baf6ce7716bd7101ea49c810eda90/pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7", size = 1814998 },
|
276
|
+
{ url = "https://files.pythonhosted.org/packages/a6/3c/724039e0d848fd69dbf5806894e26479577316c6f0f112bacaf67aa889ac/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15", size = 1826167 },
|
277
|
+
{ url = "https://files.pythonhosted.org/packages/2b/5b/1b29e8c1fb5f3199a9a57c1452004ff39f494bbe9bdbe9a81e18172e40d3/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306", size = 1865071 },
|
278
|
+
{ url = "https://files.pythonhosted.org/packages/89/6c/3985203863d76bb7d7266e36970d7e3b6385148c18a68cc8915fd8c84d57/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99", size = 2036244 },
|
279
|
+
{ url = "https://files.pythonhosted.org/packages/0e/41/f15316858a246b5d723f7d7f599f79e37493b2e84bfc789e58d88c209f8a/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459", size = 2737470 },
|
280
|
+
{ url = "https://files.pythonhosted.org/packages/a8/7c/b860618c25678bbd6d1d99dbdfdf0510ccb50790099b963ff78a124b754f/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048", size = 1992291 },
|
281
|
+
{ url = "https://files.pythonhosted.org/packages/bf/73/42c3742a391eccbeab39f15213ecda3104ae8682ba3c0c28069fbcb8c10d/pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d", size = 1994613 },
|
282
|
+
{ url = "https://files.pythonhosted.org/packages/94/7a/941e89096d1175d56f59340f3a8ebaf20762fef222c298ea96d36a6328c5/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b", size = 2002355 },
|
283
|
+
{ url = "https://files.pythonhosted.org/packages/6e/95/2359937a73d49e336a5a19848713555605d4d8d6940c3ec6c6c0ca4dcf25/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474", size = 2126661 },
|
284
|
+
{ url = "https://files.pythonhosted.org/packages/2b/4c/ca02b7bdb6012a1adef21a50625b14f43ed4d11f1fc237f9d7490aa5078c/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6", size = 2153261 },
|
285
|
+
{ url = "https://files.pythonhosted.org/packages/72/9d/a241db83f973049a1092a079272ffe2e3e82e98561ef6214ab53fe53b1c7/pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c", size = 1812361 },
|
286
|
+
{ url = "https://files.pythonhosted.org/packages/e8/ef/013f07248041b74abd48a385e2110aa3a9bbfef0fbd97d4e6d07d2f5b89a/pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc", size = 1982484 },
|
287
|
+
{ url = "https://files.pythonhosted.org/packages/10/1c/16b3a3e3398fd29dca77cea0a1d998d6bde3902fa2706985191e2313cc76/pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4", size = 1867102 },
|
288
|
+
{ url = "https://files.pythonhosted.org/packages/d6/74/51c8a5482ca447871c93e142d9d4a92ead74de6c8dc5e66733e22c9bba89/pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0", size = 1893127 },
|
289
|
+
{ url = "https://files.pythonhosted.org/packages/d3/f3/c97e80721735868313c58b89d2de85fa80fe8dfeeed84dc51598b92a135e/pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef", size = 1811340 },
|
290
|
+
{ url = "https://files.pythonhosted.org/packages/9e/91/840ec1375e686dbae1bd80a9e46c26a1e0083e1186abc610efa3d9a36180/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7", size = 1822900 },
|
291
|
+
{ url = "https://files.pythonhosted.org/packages/f6/31/4240bc96025035500c18adc149aa6ffdf1a0062a4b525c932065ceb4d868/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934", size = 1869177 },
|
292
|
+
{ url = "https://files.pythonhosted.org/packages/fa/20/02fbaadb7808be578317015c462655c317a77a7c8f0ef274bc016a784c54/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6", size = 2038046 },
|
293
|
+
{ url = "https://files.pythonhosted.org/packages/06/86/7f306b904e6c9eccf0668248b3f272090e49c275bc488a7b88b0823444a4/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c", size = 2685386 },
|
294
|
+
{ url = "https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2", size = 1997060 },
|
295
|
+
{ url = "https://files.pythonhosted.org/packages/0d/0f/943b4af7cd416c477fd40b187036c4f89b416a33d3cc0ab7b82708a667aa/pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4", size = 2004870 },
|
296
|
+
{ url = "https://files.pythonhosted.org/packages/35/40/aea70b5b1a63911c53a4c8117c0a828d6790483f858041f47bab0b779f44/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3", size = 1999822 },
|
297
|
+
{ url = "https://files.pythonhosted.org/packages/f2/b3/807b94fd337d58effc5498fd1a7a4d9d59af4133e83e32ae39a96fddec9d/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4", size = 2130364 },
|
298
|
+
{ url = "https://files.pythonhosted.org/packages/fc/df/791c827cd4ee6efd59248dca9369fb35e80a9484462c33c6649a8d02b565/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57", size = 2158303 },
|
299
|
+
{ url = "https://files.pythonhosted.org/packages/9b/67/4e197c300976af185b7cef4c02203e175fb127e414125916bf1128b639a9/pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc", size = 1834064 },
|
300
|
+
{ url = "https://files.pythonhosted.org/packages/1f/ea/cd7209a889163b8dcca139fe32b9687dd05249161a3edda62860430457a5/pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9", size = 1989046 },
|
301
|
+
{ url = "https://files.pythonhosted.org/packages/bc/49/c54baab2f4658c26ac633d798dab66b4c3a9bbf47cff5284e9c182f4137a/pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b", size = 1885092 },
|
302
|
+
{ url = "https://files.pythonhosted.org/packages/41/b1/9bc383f48f8002f99104e3acff6cba1231b29ef76cfa45d1506a5cad1f84/pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b", size = 1892709 },
|
303
|
+
{ url = "https://files.pythonhosted.org/packages/10/6c/e62b8657b834f3eb2961b49ec8e301eb99946245e70bf42c8817350cbefc/pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154", size = 1811273 },
|
304
|
+
{ url = "https://files.pythonhosted.org/packages/ba/15/52cfe49c8c986e081b863b102d6b859d9defc63446b642ccbbb3742bf371/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9", size = 1823027 },
|
305
|
+
{ url = "https://files.pythonhosted.org/packages/b1/1c/b6f402cfc18ec0024120602bdbcebc7bdd5b856528c013bd4d13865ca473/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9", size = 1868888 },
|
306
|
+
{ url = "https://files.pythonhosted.org/packages/bd/7b/8cb75b66ac37bc2975a3b7de99f3c6f355fcc4d89820b61dffa8f1e81677/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1", size = 2037738 },
|
307
|
+
{ url = "https://files.pythonhosted.org/packages/c8/f1/786d8fe78970a06f61df22cba58e365ce304bf9b9f46cc71c8c424e0c334/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a", size = 2685138 },
|
308
|
+
{ url = "https://files.pythonhosted.org/packages/a6/74/d12b2cd841d8724dc8ffb13fc5cef86566a53ed358103150209ecd5d1999/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e", size = 1997025 },
|
309
|
+
{ url = "https://files.pythonhosted.org/packages/a0/6e/940bcd631bc4d9a06c9539b51f070b66e8f370ed0933f392db6ff350d873/pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4", size = 2004633 },
|
310
|
+
{ url = "https://files.pythonhosted.org/packages/50/cc/a46b34f1708d82498c227d5d80ce615b2dd502ddcfd8376fc14a36655af1/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27", size = 1999404 },
|
311
|
+
{ url = "https://files.pythonhosted.org/packages/ca/2d/c365cfa930ed23bc58c41463bae347d1005537dc8db79e998af8ba28d35e/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee", size = 2130130 },
|
312
|
+
{ url = "https://files.pythonhosted.org/packages/f4/d7/eb64d015c350b7cdb371145b54d96c919d4db516817f31cd1c650cae3b21/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1", size = 2157946 },
|
313
|
+
{ url = "https://files.pythonhosted.org/packages/a4/99/bddde3ddde76c03b65dfd5a66ab436c4e58ffc42927d4ff1198ffbf96f5f/pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130", size = 1834387 },
|
314
|
+
{ url = "https://files.pythonhosted.org/packages/71/47/82b5e846e01b26ac6f1893d3c5f9f3a2eb6ba79be26eef0b759b4fe72946/pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee", size = 1990453 },
|
315
|
+
{ url = "https://files.pythonhosted.org/packages/51/b2/b2b50d5ecf21acf870190ae5d093602d95f66c9c31f9d5de6062eb329ad1/pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b", size = 1885186 },
|
316
|
+
{ url = "https://files.pythonhosted.org/packages/46/72/af70981a341500419e67d5cb45abe552a7c74b66326ac8877588488da1ac/pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e", size = 1891159 },
|
317
|
+
{ url = "https://files.pythonhosted.org/packages/ad/3d/c5913cccdef93e0a6a95c2d057d2c2cba347815c845cda79ddd3c0f5e17d/pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8", size = 1768331 },
|
318
|
+
{ url = "https://files.pythonhosted.org/packages/f6/f0/a3ae8fbee269e4934f14e2e0e00928f9346c5943174f2811193113e58252/pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3", size = 1822467 },
|
319
|
+
{ url = "https://files.pythonhosted.org/packages/d7/7a/7bbf241a04e9f9ea24cd5874354a83526d639b02674648af3f350554276c/pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f", size = 1979797 },
|
320
|
+
{ url = "https://files.pythonhosted.org/packages/4f/5f/4784c6107731f89e0005a92ecb8a2efeafdb55eb992b8e9d0a2be5199335/pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133", size = 1987839 },
|
321
|
+
{ url = "https://files.pythonhosted.org/packages/6d/a7/61246562b651dff00de86a5f01b6e4befb518df314c54dec187a78d81c84/pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc", size = 1998861 },
|
322
|
+
{ url = "https://files.pythonhosted.org/packages/86/aa/837821ecf0c022bbb74ca132e117c358321e72e7f9702d1b6a03758545e2/pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50", size = 2116582 },
|
323
|
+
{ url = "https://files.pythonhosted.org/packages/81/b0/5e74656e95623cbaa0a6278d16cf15e10a51f6002e3ec126541e95c29ea3/pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9", size = 2151985 },
|
324
|
+
{ url = "https://files.pythonhosted.org/packages/63/37/3e32eeb2a451fddaa3898e2163746b0cffbbdbb4740d38372db0490d67f3/pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151", size = 2004715 },
|
325
|
+
]
|
326
|
+
|
327
|
+
[[package]]
|
328
|
+
name = "python-dotenv"
|
329
|
+
version = "1.0.1"
|
330
|
+
source = { registry = "https://pypi.org/simple" }
|
331
|
+
sdist = { url = "https://files.pythonhosted.org/packages/bc/57/e84d88dfe0aec03b7a2d4327012c1627ab5f03652216c63d49846d7a6c58/python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca", size = 39115 }
|
332
|
+
wheels = [
|
333
|
+
{ url = "https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a", size = 19863 },
|
334
|
+
]
|
335
|
+
|
336
|
+
[[package]]
|
337
|
+
name = "pyyaml"
|
338
|
+
version = "6.0.2"
|
339
|
+
source = { registry = "https://pypi.org/simple" }
|
340
|
+
sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 }
|
341
|
+
wheels = [
|
342
|
+
{ url = "https://files.pythonhosted.org/packages/9b/95/a3fac87cb7158e231b5a6012e438c647e1a87f09f8e0d123acec8ab8bf71/PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", size = 184199 },
|
343
|
+
{ url = "https://files.pythonhosted.org/packages/c7/7a/68bd47624dab8fd4afbfd3c48e3b79efe09098ae941de5b58abcbadff5cb/PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", size = 171758 },
|
344
|
+
{ url = "https://files.pythonhosted.org/packages/49/ee/14c54df452143b9ee9f0f29074d7ca5516a36edb0b4cc40c3f280131656f/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", size = 718463 },
|
345
|
+
{ url = "https://files.pythonhosted.org/packages/4d/61/de363a97476e766574650d742205be468921a7b532aa2499fcd886b62530/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", size = 719280 },
|
346
|
+
{ url = "https://files.pythonhosted.org/packages/6b/4e/1523cb902fd98355e2e9ea5e5eb237cbc5f3ad5f3075fa65087aa0ecb669/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", size = 751239 },
|
347
|
+
{ url = "https://files.pythonhosted.org/packages/b7/33/5504b3a9a4464893c32f118a9cc045190a91637b119a9c881da1cf6b7a72/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", size = 695802 },
|
348
|
+
{ url = "https://files.pythonhosted.org/packages/5c/20/8347dcabd41ef3a3cdc4f7b7a2aff3d06598c8779faa189cdbf878b626a4/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", size = 720527 },
|
349
|
+
{ url = "https://files.pythonhosted.org/packages/be/aa/5afe99233fb360d0ff37377145a949ae258aaab831bde4792b32650a4378/PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", size = 144052 },
|
350
|
+
{ url = "https://files.pythonhosted.org/packages/b5/84/0fa4b06f6d6c958d207620fc60005e241ecedceee58931bb20138e1e5776/PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", size = 161774 },
|
351
|
+
{ url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612 },
|
352
|
+
{ url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040 },
|
353
|
+
{ url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829 },
|
354
|
+
{ url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167 },
|
355
|
+
{ url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952 },
|
356
|
+
{ url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301 },
|
357
|
+
{ url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638 },
|
358
|
+
{ url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850 },
|
359
|
+
{ url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980 },
|
360
|
+
{ url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 },
|
361
|
+
{ url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 },
|
362
|
+
{ url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 },
|
363
|
+
{ url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 },
|
364
|
+
{ url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 },
|
365
|
+
{ url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 },
|
366
|
+
{ url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 },
|
367
|
+
{ url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 },
|
368
|
+
{ url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 },
|
369
|
+
{ url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 },
|
370
|
+
{ url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 },
|
371
|
+
{ url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 },
|
372
|
+
{ url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 },
|
373
|
+
{ url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 },
|
374
|
+
{ url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 },
|
375
|
+
{ url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 },
|
376
|
+
{ url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 },
|
377
|
+
{ url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 },
|
378
|
+
]
|
379
|
+
|
380
|
+
[[package]]
|
381
|
+
name = "requests"
|
382
|
+
version = "2.32.3"
|
383
|
+
source = { registry = "https://pypi.org/simple" }
|
384
|
+
dependencies = [
|
385
|
+
{ name = "certifi" },
|
386
|
+
{ name = "charset-normalizer" },
|
387
|
+
{ name = "idna" },
|
388
|
+
{ name = "urllib3" },
|
389
|
+
]
|
390
|
+
sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 }
|
391
|
+
wheels = [
|
392
|
+
{ url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 },
|
393
|
+
]
|
394
|
+
|
395
|
+
[[package]]
|
396
|
+
name = "sniffio"
|
397
|
+
version = "1.3.1"
|
398
|
+
source = { registry = "https://pypi.org/simple" }
|
399
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 }
|
400
|
+
wheels = [
|
401
|
+
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
|
402
|
+
]
|
403
|
+
|
404
|
+
[[package]]
|
405
|
+
name = "sse-starlette"
|
406
|
+
version = "2.2.0"
|
407
|
+
source = { registry = "https://pypi.org/simple" }
|
408
|
+
dependencies = [
|
409
|
+
{ name = "anyio" },
|
410
|
+
{ name = "starlette" },
|
411
|
+
]
|
412
|
+
sdist = { url = "https://files.pythonhosted.org/packages/81/71/7532e5d872a19a2d43c47999b5bb602ddf43d0d5bafa2fb7c0ed35cdf5bc/sse_starlette-2.2.0.tar.gz", hash = "sha256:2be010484d29a0a1ac6b5ae72610ada3bb00f1be0ef0048a8b87f9dba1e99fcb", size = 20584 }
|
413
|
+
wheels = [
|
414
|
+
{ url = "https://files.pythonhosted.org/packages/d4/ba/2a9b98ee28333c32172ccd29c71134b5bee523c7cd55427ed73da403155c/sse_starlette-2.2.0-py3-none-any.whl", hash = "sha256:b923c0417f96061c4cbf67ebb9f0ae178264abfb6a07c28e1ca8192e18e0361c", size = 10098 },
|
415
|
+
]
|
416
|
+
|
417
|
+
[[package]]
|
418
|
+
name = "starlette"
|
419
|
+
version = "0.42.0"
|
420
|
+
source = { registry = "https://pypi.org/simple" }
|
421
|
+
dependencies = [
|
422
|
+
{ name = "anyio" },
|
423
|
+
]
|
424
|
+
sdist = { url = "https://files.pythonhosted.org/packages/3e/ae/0c98794b248370ce30f71018d0f39889f1d90c73a631e68e2f47e5efda2f/starlette-0.42.0.tar.gz", hash = "sha256:91f1fbd612f3e3d821a8a5f46bf381afe2a9722a7b8bbde1c07fb83384c2882a", size = 2575136 }
|
425
|
+
wheels = [
|
426
|
+
{ url = "https://files.pythonhosted.org/packages/c0/38/f790c69b2cbfe9cd4a8a89db1ef50d0a10e5121c07ff8b1d7c16d7807f41/starlette-0.42.0-py3-none-any.whl", hash = "sha256:02f877201a3d6d301714b5c72f15cac305ea5cc9e213c4b46a5af7eecad0d625", size = 73356 },
|
427
|
+
]
|
428
|
+
|
429
|
+
[[package]]
|
430
|
+
name = "typing-extensions"
|
431
|
+
version = "4.12.2"
|
432
|
+
source = { registry = "https://pypi.org/simple" }
|
433
|
+
sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 }
|
434
|
+
wheels = [
|
435
|
+
{ url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 },
|
436
|
+
]
|
437
|
+
|
438
|
+
[[package]]
|
439
|
+
name = "urllib3"
|
440
|
+
version = "2.3.0"
|
441
|
+
source = { registry = "https://pypi.org/simple" }
|
442
|
+
sdist = { url = "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d", size = 307268 }
|
443
|
+
wheels = [
|
444
|
+
{ url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", size = 128369 },
|
445
|
+
]
|