zhichyu commited on
Commit
1e39314
·
1 Parent(s): 760686a

Replace poetry with uv (#4471)

Browse files

### What problem does this PR solve?

Replace poetry with uv

### Type of change

- [x] Refactoring

.github/workflows/release.yml CHANGED
@@ -113,7 +113,7 @@ jobs:
113
  if: startsWith(github.ref, 'refs/tags/v')
114
  run: |
115
  cd sdk/python && \
116
- poetry build
117
 
118
  - name: Publish package distributions to PyPI
119
  if: startsWith(github.ref, 'refs/tags/v')
 
113
  if: startsWith(github.ref, 'refs/tags/v')
114
  run: |
115
  cd sdk/python && \
116
+ uv build
117
 
118
  - name: Publish package distributions to PyPI
119
  if: startsWith(github.ref, 'refs/tags/v')
.github/workflows/tests.yml CHANGED
@@ -89,7 +89,7 @@ jobs:
89
  echo "Waiting for service to be available..."
90
  sleep 5
91
  done
92
- cd sdk/python && poetry install && source .venv/bin/activate && cd test/test_sdk_api && pytest -s --tb=short get_email.py t_dataset.py t_chat.py t_session.py t_document.py t_chunk.py
93
 
94
  - name: Run frontend api tests against Elasticsearch
95
  run: |
@@ -99,7 +99,7 @@ jobs:
99
  echo "Waiting for service to be available..."
100
  sleep 5
101
  done
102
- cd sdk/python && poetry install && source .venv/bin/activate && cd test/test_frontend_api && pytest -s --tb=short get_email.py test_dataset.py
103
 
104
 
105
  - name: Stop ragflow:nightly
@@ -119,7 +119,7 @@ jobs:
119
  echo "Waiting for service to be available..."
120
  sleep 5
121
  done
122
- cd sdk/python && poetry install && source .venv/bin/activate && cd test/test_sdk_api && pytest -s --tb=short get_email.py t_dataset.py t_chat.py t_session.py t_document.py t_chunk.py
123
 
124
  - name: Run frontend api tests against Infinity
125
  run: |
@@ -129,7 +129,7 @@ jobs:
129
  echo "Waiting for service to be available..."
130
  sleep 5
131
  done
132
- cd sdk/python && poetry install && source .venv/bin/activate && cd test/test_frontend_api && pytest -s --tb=short get_email.py test_dataset.py
133
 
134
  - name: Stop ragflow:nightly
135
  if: always() # always run this step even if previous steps failed
 
89
  echo "Waiting for service to be available..."
90
  sleep 5
91
  done
92
+ cd sdk/python && uv sync --python 3.10 --frozen && uv pip install . && source .venv/bin/activate && cd test/test_sdk_api && pytest -s --tb=short get_email.py t_dataset.py t_chat.py t_session.py t_document.py t_chunk.py
93
 
94
  - name: Run frontend api tests against Elasticsearch
95
  run: |
 
99
  echo "Waiting for service to be available..."
100
  sleep 5
101
  done
102
+ cd sdk/python && uv sync --python 3.10 --frozen && uv pip install . && source .venv/bin/activate && cd test/test_frontend_api && pytest -s --tb=short get_email.py test_dataset.py
103
 
104
 
105
  - name: Stop ragflow:nightly
 
119
  echo "Waiting for service to be available..."
120
  sleep 5
121
  done
122
+ cd sdk/python && uv sync --python 3.10 --frozen && uv pip install . && source .venv/bin/activate && cd test/test_sdk_api && pytest -s --tb=short get_email.py t_dataset.py t_chat.py t_session.py t_document.py t_chunk.py
123
 
124
  - name: Run frontend api tests against Infinity
125
  run: |
 
129
  echo "Waiting for service to be available..."
130
  sleep 5
131
  done
132
+ cd sdk/python && uv sync --python 3.10 --frozen && uv pip install . && source .venv/bin/activate && cd test/test_frontend_api && pytest -s --tb=short get_email.py test_dataset.py
133
 
134
  - name: Stop ragflow:nightly
135
  if: always() # always run this step even if previous steps failed
Dockerfile CHANGED
@@ -64,19 +64,15 @@ RUN --mount=type=cache,id=ragflow_apt,target=/var/cache/apt,sharing=locked \
64
  RUN if [ "$NEED_MIRROR" == "1" ]; then \
65
  pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \
66
  pip3 config set global.trusted-host pypi.tuna.tsinghua.edu.cn; \
 
 
 
 
67
  fi; \
68
- pipx install poetry; \
69
- if [ "$NEED_MIRROR" == "1" ]; then \
70
- pipx inject poetry poetry-plugin-pypi-mirror; \
71
- fi
72
 
73
  ENV PYTHONDONTWRITEBYTECODE=1 DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
74
  ENV PATH=/root/.local/bin:$PATH
75
- # Configure Poetry
76
- ENV POETRY_NO_INTERACTION=1
77
- ENV POETRY_VIRTUALENVS_IN_PROJECT=true
78
- ENV POETRY_VIRTUALENVS_CREATE=true
79
- ENV POETRY_REQUESTS_TIMEOUT=15
80
 
81
  # nodejs 12.22 on Ubuntu 22.04 is too old
82
  RUN --mount=type=cache,id=ragflow_apt,target=/var/cache/apt,sharing=locked \
@@ -85,7 +81,7 @@ RUN --mount=type=cache,id=ragflow_apt,target=/var/cache/apt,sharing=locked \
85
  apt autoremove && \
86
  apt update && \
87
  apt install -y nodejs cargo
88
-
89
 
90
  # Add msssql ODBC driver
91
  # macOS ARM64 environment, install msodbcsql18.
@@ -131,17 +127,14 @@ USER root
131
 
132
  WORKDIR /ragflow
133
 
134
- # install dependencies from poetry.lock file
135
- COPY pyproject.toml poetry.toml poetry.lock ./
136
 
137
- RUN --mount=type=cache,id=ragflow_poetry,target=/root/.cache/pypoetry,sharing=locked \
138
- if [ "$NEED_MIRROR" == "1" ]; then \
139
- export POETRY_PYPI_MIRROR_URL=https://pypi.tuna.tsinghua.edu.cn/simple/; \
140
- fi; \
141
  if [ "$LIGHTEN" == "1" ]; then \
142
- poetry install --no-root; \
143
  else \
144
- poetry install --no-root --with=full; \
145
  fi
146
 
147
  COPY web web
@@ -180,7 +173,7 @@ COPY deepdoc deepdoc
180
  COPY rag rag
181
  COPY agent agent
182
  COPY graphrag graphrag
183
- COPY pyproject.toml poetry.toml poetry.lock ./
184
 
185
  COPY docker/service_conf.yaml.template ./conf/service_conf.yaml.template
186
  COPY docker/entrypoint.sh ./entrypoint.sh
 
64
  RUN if [ "$NEED_MIRROR" == "1" ]; then \
65
  pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \
66
  pip3 config set global.trusted-host pypi.tuna.tsinghua.edu.cn; \
67
+ mkdir -p /etc/uv && \
68
+ echo "[[index]]" > /etc/uv/uv.toml && \
69
+ echo 'url = "https://pypi.tuna.tsinghua.edu.cn/simple"' >> /etc/uv/uv.toml && \
70
+ echo "default = true" >> /etc/uv/uv.toml; \
71
  fi; \
72
+ pipx install uv
 
 
 
73
 
74
  ENV PYTHONDONTWRITEBYTECODE=1 DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
75
  ENV PATH=/root/.local/bin:$PATH
 
 
 
 
 
76
 
77
  # nodejs 12.22 on Ubuntu 22.04 is too old
78
  RUN --mount=type=cache,id=ragflow_apt,target=/var/cache/apt,sharing=locked \
 
81
  apt autoremove && \
82
  apt update && \
83
  apt install -y nodejs cargo
84
+
85
 
86
  # Add msssql ODBC driver
87
  # macOS ARM64 environment, install msodbcsql18.
 
127
 
128
  WORKDIR /ragflow
129
 
130
+ # install dependencies from uv.lock file
131
+ COPY pyproject.toml uv.lock ./
132
 
133
+ RUN --mount=type=cache,id=ragflow_uv,target=/root/.cache/uv,sharing=locked \
 
 
 
134
  if [ "$LIGHTEN" == "1" ]; then \
135
+ uv sync --python 3.10 --frozen; \
136
  else \
137
+ uv sync --python 3.10 --frozen --all-extras; \
138
  fi
139
 
140
  COPY web web
 
173
  COPY rag rag
174
  COPY agent agent
175
  COPY graphrag graphrag
176
+ COPY pyproject.toml uv.lock ./
177
 
178
  COPY docker/service_conf.yaml.template ./conf/service_conf.yaml.template
179
  COPY docker/entrypoint.sh ./entrypoint.sh
README.md CHANGED
@@ -280,17 +280,16 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
280
 
281
  ## 🔨 Launch service from source for development
282
 
283
- 1. Install Poetry, or skip this step if it is already installed:
284
  ```bash
285
- pipx install poetry
286
- export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
287
  ```
288
 
289
  2. Clone the source code and install Python dependencies:
290
  ```bash
291
  git clone https://github.com/infiniflow/ragflow.git
292
  cd ragflow/
293
- ~/.local/bin/poetry install --sync --no-root --with=full # install RAGFlow dependent python modules
294
  ```
295
 
296
  3. Launch the dependent services (MinIO, Elasticsearch, Redis, and MySQL) using Docker Compose:
 
280
 
281
  ## 🔨 Launch service from source for development
282
 
283
+ 1. Install uv, or skip this step if it is already installed:
284
  ```bash
285
+ pipx install uv
 
286
  ```
287
 
288
  2. Clone the source code and install Python dependencies:
289
  ```bash
290
  git clone https://github.com/infiniflow/ragflow.git
291
  cd ragflow/
292
+ uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
293
  ```
294
 
295
  3. Launch the dependent services (MinIO, Elasticsearch, Redis, and MySQL) using Docker Compose:
README_id.md CHANGED
@@ -249,17 +249,16 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
249
 
250
  ## 🔨 Menjalankan Aplikasi dari untuk Pengembangan
251
 
252
- 1. Instal Poetry, atau lewati langkah ini jika sudah terinstal:
253
  ```bash
254
- pipx install poetry
255
- export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
256
  ```
257
 
258
  2. Clone kode sumber dan instal dependensi Python:
259
  ```bash
260
  git clone https://github.com/infiniflow/ragflow.git
261
  cd ragflow/
262
- ~/.local/bin/poetry install --sync --no-root # install modul python RAGFlow
263
  ```
264
 
265
  3. Jalankan aplikasi yang diperlukan (MinIO, Elasticsearch, Redis, dan MySQL) menggunakan Docker Compose:
 
249
 
250
  ## 🔨 Menjalankan Aplikasi dari untuk Pengembangan
251
 
252
+ 1. Instal uv, atau lewati langkah ini jika sudah terinstal:
253
  ```bash
254
+ pipx install uv
 
255
  ```
256
 
257
  2. Clone kode sumber dan instal dependensi Python:
258
  ```bash
259
  git clone https://github.com/infiniflow/ragflow.git
260
  cd ragflow/
261
+ uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
262
  ```
263
 
264
  3. Jalankan aplikasi yang diperlukan (MinIO, Elasticsearch, Redis, dan MySQL) menggunakan Docker Compose:
README_ja.md CHANGED
@@ -245,17 +245,16 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
245
 
246
  ## 🔨 ソースコードからサービスを起動する方法
247
 
248
- 1. Poetry をインストールする。すでにインストールされている場合は、このステップをスキップしてください:
249
  ```bash
250
- pipx install poetry
251
- export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
252
  ```
253
 
254
  2. ソースコードをクローンし、Python の依存関係をインストールする:
255
  ```bash
256
  git clone https://github.com/infiniflow/ragflow.git
257
  cd ragflow/
258
- ~/.local/bin/poetry install --sync --no-root # install RAGFlow dependent python modules
259
  ```
260
 
261
  3. Docker Compose を使用して依存サービス(MinIO、Elasticsearch、Redis、MySQL)を起動する:
 
245
 
246
  ## 🔨 ソースコードからサービスを起動する方法
247
 
248
+ 1. uv をインストールする。すでにインストールされている場合は、このステップをスキップしてください:
249
  ```bash
250
+ pipx install uv
 
251
  ```
252
 
253
  2. ソースコードをクローンし、Python の依存関係をインストールする:
254
  ```bash
255
  git clone https://github.com/infiniflow/ragflow.git
256
  cd ragflow/
257
+ uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
258
  ```
259
 
260
  3. Docker Compose を使用して依存サービス(MinIO、Elasticsearch、Redis、MySQL)を起動する:
README_ko.md CHANGED
@@ -247,17 +247,16 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
247
 
248
  ## 🔨 소스 코드로 서비스를 시작합니다.
249
 
250
- 1. Poetry를 설치하거나 이미 설치된 경우 이 단계를 건너뜁니다:
251
  ```bash
252
- pipx install poetry
253
- export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
254
  ```
255
 
256
  2. 소스 코드를 클론하고 Python 의존성을 설치합니다:
257
  ```bash
258
  git clone https://github.com/infiniflow/ragflow.git
259
  cd ragflow/
260
- ~/.local/bin/poetry install --sync --no-root # install RAGFlow dependent python modules
261
  ```
262
 
263
  3. Docker Compose를 사용하여 의존 서비스(MinIO, Elasticsearch, Redis 및 MySQL)를 시작합니다:
 
247
 
248
  ## 🔨 소스 코드로 서비스를 시작합니다.
249
 
250
+ 1. uv를 설치하거나 이미 설치된 경우 이 단계를 건너뜁니다:
251
  ```bash
252
+ pipx install uv
 
253
  ```
254
 
255
  2. 소스 코드를 클론하고 Python 의존성을 설치합니다:
256
  ```bash
257
  git clone https://github.com/infiniflow/ragflow.git
258
  cd ragflow/
259
+ uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
260
  ```
261
 
262
  3. Docker Compose를 사용하여 의존 서비스(MinIO, Elasticsearch, Redis 및 MySQL)를 시작합니다:
README_zh.md CHANGED
@@ -258,19 +258,17 @@ docker build --build-arg NEED_MIRROR=1 -f Dockerfile -t infiniflow/ragflow:night
258
 
259
  ## 🔨 以源代码启动服务
260
 
261
- 1. 安装 Poetry。如已经安装,可跳过本步骤:
262
  ```bash
263
- pipx install poetry
264
- pipx inject poetry poetry-plugin-pypi-mirror
265
- export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
266
- export POETRY_PYPI_MIRROR_URL=https://pypi.tuna.tsinghua.edu.cn/simple/
267
  ```
268
 
269
  2. 下载源代码并安装 Python 依赖:
270
  ```bash
271
  git clone https://github.com/infiniflow/ragflow.git
272
  cd ragflow/
273
- ~/.local/bin/poetry install --sync --no-root # install RAGFlow dependent python modules
274
  ```
275
 
276
  3. 通过 Docker Compose 启动依赖的服务(MinIO, Elasticsearch, Redis, and MySQL):
 
258
 
259
  ## 🔨 以源代码启动服务
260
 
261
+ 1. 安装 uv。如已经安装,可跳过本步骤:
262
  ```bash
263
+ pipx install uv
264
+ export UV_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple
 
 
265
  ```
266
 
267
  2. 下载源代码并安装 Python 依赖:
268
  ```bash
269
  git clone https://github.com/infiniflow/ragflow.git
270
  cd ragflow/
271
+ uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
272
  ```
273
 
274
  3. 通过 Docker Compose 启动依赖的服务(MinIO, Elasticsearch, Redis, and MySQL):
docs/guides/develop/launch_ragflow_from_source.md CHANGED
@@ -35,26 +35,20 @@ cd ragflow/
35
 
36
  ### Install Python dependencies
37
 
38
- 1. Install Poetry:
39
 
40
  ```bash
41
- pipx install poetry
42
  ```
43
 
44
- 2. Configure Poetry:
45
-
46
- ```bash
47
- export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
48
- ```
49
-
50
- 3. Install Python dependencies:
51
  - slim:
52
  ```bash
53
- ~/.local/bin/poetry install --sync --no-root
54
  ```
55
  - full:
56
  ```bash
57
- ~/.local/bin/poetry install --sync --no-root --with full
58
  ```
59
  *A virtual environment named `.venv` is created, and all Python dependencies are installed into the new environment.*
60
 
 
35
 
36
  ### Install Python dependencies
37
 
38
+ 1. Install uv:
39
 
40
  ```bash
41
+ pipx install uv
42
  ```
43
 
44
+ 2. Install Python dependencies:
 
 
 
 
 
 
45
  - slim:
46
  ```bash
47
+ uv sync --python 3.10 # install RAGFlow dependent python modules
48
  ```
49
  - full:
50
  ```bash
51
+ uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
52
  ```
53
  *A virtual environment named `.venv` is created, and all Python dependencies are installed into the new environment.*
54
 
poetry.lock DELETED
The diff for this file is too large to render. See raw diff
 
poetry.toml DELETED
@@ -1,4 +0,0 @@
1
- [virtualenvs]
2
- in-project = true
3
- create = true
4
- prefer-active-python = true
 
 
 
 
 
pyproject.toml CHANGED
@@ -1,140 +1,134 @@
1
- [tool.poetry]
2
  name = "ragflow"
3
  version = "0.15.1"
4
  description = "[RAGFlow](https://ragflow.io/) is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding. It offers a streamlined RAG workflow for businesses of any scale, combining LLM (Large Language Models) to provide truthful question-answering capabilities, backed by well-founded citations from various complex formatted data."
5
- authors = ["Your Name <[email protected]>"]
6
- license = "https://github.com/infiniflow/ragflow/blob/main/LICENSE"
 
 
7
  readme = "README.md"
8
- package-mode = false
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
- [tool.poetry.dependencies]
11
- python = ">=3.10,<3.13"
12
- datrie = "0.8.2"
13
- akshare = "^1.14.81"
14
- azure-storage-blob = "12.22.0"
15
- azure-identity = "1.17.1"
16
- azure-storage-file-datalake = "12.16.0"
17
- anthropic = "=0.34.1"
18
- arxiv = "2.1.3"
19
- aspose-slides = { version = "^24.9.0", markers = "platform_machine == 'x86_64' or (sys_platform == 'darwin' and platform_machine == 'arm64') " }
20
- beartype = "^0.18.5"
21
- bio = "1.7.1"
22
- blinker = "1.7.0"
23
- boto3 = "1.34.140"
24
- botocore = "1.34.140"
25
- cachetools = "5.3.3"
26
- chardet = "5.2.0"
27
- cn2an = "0.5.22"
28
- cohere = "5.6.2"
29
- Crawl4AI = "0.3.8"
30
- dashscope = "1.20.11"
31
- deepl = "1.18.0"
32
- demjson3 = "3.0.6"
33
- discord-py = "2.3.2"
34
- duckduckgo-search = "~7.2.0"
35
- editdistance = "0.8.1"
36
- elastic-transport = "8.12.0"
37
- elasticsearch = "8.12.1"
38
- elasticsearch-dsl = "8.12.0"
39
- fasttext = "0.9.3"
40
- filelock = "3.15.4"
41
- flask = "3.0.3"
42
- flask-cors = "5.0.0"
43
- flask-login = "0.6.3"
44
- flask-session = "0.8.0"
45
- google-search-results = "2.4.2"
46
- groq = "0.9.0"
47
- hanziconv = "0.3.2"
48
- html-text = "0.6.2"
49
- httpx = "0.27.0"
50
- huggingface-hub = "^0.25.0"
51
- infinity-sdk = "0.6.0-dev1"
52
- infinity-emb = "^0.0.66"
53
- itsdangerous = "2.1.2"
54
- markdown = "3.6"
55
- markdown-to-json = "2.1.1"
56
- minio = "7.2.4"
57
- mistralai = "0.4.2"
58
- nltk = "3.9.1"
59
- numpy = "^1.26.0"
60
- ollama = "0.2.1"
61
- onnxruntime = "1.19.2"
62
- openai = "1.45.0"
63
- opencv-python = "4.10.0.84"
64
- opencv-python-headless = "4.10.0.84"
65
- openpyxl = "^3.1.0"
66
- ormsgpack = "1.5.0"
67
- pandas = "^2.2.0"
68
- pdfplumber = "0.10.4"
69
- peewee = "3.17.1"
70
- pillow = "10.4.0"
71
- protobuf = "5.27.2"
72
- psycopg2-binary = "2.9.9"
73
- pyclipper = "1.3.0.post5"
74
- pycryptodomex = "3.20.0"
75
- pypdf = "^5.0.0"
76
- pytest = "^8.3.0"
77
- python-dotenv = "1.0.1"
78
- python-dateutil = "2.8.2"
79
- python-pptx = "^1.0.2"
80
- pywencai = "0.12.2"
81
- qianfan = "0.4.6"
82
- ranx = "0.3.20"
83
- readability-lxml = "0.8.1"
84
- valkey = "6.0.2"
85
- requests = "2.32.2"
86
- replicate = "0.31.0"
87
- roman-numbers = "1.0.2"
88
- ruamel-base = "1.0.0"
89
- scholarly = "1.7.11"
90
- scikit-learn = "1.5.0"
91
- selenium = "4.22.0"
92
- selenium-wire = "5.1.0"
93
- setuptools = "^75.2.0"
94
- shapely = "2.0.5"
95
- six = "1.16.0"
96
- strenum = "0.4.15"
97
- tabulate = "0.9.0"
98
- tencentcloud-sdk-python = "3.0.1215"
99
- tika = "2.6.0"
100
- tiktoken = "0.7.0"
101
- umap_learn = "0.5.6"
102
- vertexai = "1.64.0"
103
- volcengine = "1.0.146"
104
- voyageai = "0.2.3"
105
- webdriver-manager = "4.0.1"
106
- werkzeug = "3.0.6"
107
- wikipedia = "1.4.0"
108
- word2number = "1.1"
109
- xgboost = "1.5.0"
110
- xpinyin = "0.7.6"
111
- yfinance = "0.1.96"
112
- zhipuai = "2.0.1"
113
- ruamel-yaml = "^0.18.6"
114
- google-generativeai = "^0.8.1"
115
- python-docx = "^1.1.2"
116
- pypdf2 = "^3.0.1"
117
- graspologic = "^3.4.1"
118
- pymysql = "^1.1.1"
119
- mini-racer = "^0.12.4"
120
- pyodbc = "^5.2.0"
121
- pyicu = "^2.13.1"
122
- flasgger = "^0.9.7.1"
123
- #polars = { version = "^1.9.0", markers = "platform_machine == 'x86_64'" }
124
- polars-lts-cpu = "^1.9.0"
125
- xxhash = "^3.5.0"
126
-
127
-
128
- [tool.poetry.group.full]
129
- optional = true
130
-
131
- [tool.poetry.group.full.dependencies]
132
- bcembedding = "0.1.3"
133
- fastembed = "^0.3.6"
134
- flagembedding = "1.2.10"
135
- torch = "2.3.0"
136
- transformers = "4.38.1"
137
-
138
- [build-system]
139
- requires = ["poetry-core"]
140
- build-backend = "poetry.core.masonry.api"
 
1
+ [project]
2
  name = "ragflow"
3
  version = "0.15.1"
4
  description = "[RAGFlow](https://ragflow.io/) is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding. It offers a streamlined RAG workflow for businesses of any scale, combining LLM (Large Language Models) to provide truthful question-answering capabilities, backed by well-founded citations from various complex formatted data."
5
+ authors = [
6
+ { name = "Zhichang Yu", email = "yuzhichang@gmail.com" }
7
+ ]
8
+ license = { file = "LICENSE" }
9
  readme = "README.md"
10
+ requires-python = ">=3.10,<3.13"
11
+ dependencies = [
12
+ "datrie==0.8.2",
13
+ "akshare>=1.14.81,<2.0.0",
14
+ "azure-storage-blob==12.22.0",
15
+ "azure-identity==1.17.1",
16
+ "azure-storage-file-datalake==12.16.0",
17
+ "anthropic==0.34.1",
18
+ "arxiv==2.1.3",
19
+ "aspose-slides>=24.9.0,<25.0.0; platform_machine == 'x86_64' or (sys_platform == 'darwin' and platform_machine == 'arm64')",
20
+ "beartype>=0.18.5,<0.19.0",
21
+ "bio==1.7.1",
22
+ "blinker==1.7.0",
23
+ "boto3==1.34.140",
24
+ "botocore==1.34.140",
25
+ "cachetools==5.3.3",
26
+ "chardet==5.2.0",
27
+ "cn2an==0.5.22",
28
+ "cohere==5.6.2",
29
+ "Crawl4AI==0.3.8",
30
+ "dashscope==1.20.11",
31
+ "deepl==1.18.0",
32
+ "demjson3==3.0.6",
33
+ "discord-py==2.3.2",
34
+ "duckduckgo-search>=7.2.0,<8.0.0",
35
+ "editdistance==0.8.1",
36
+ "elastic-transport==8.12.0",
37
+ "elasticsearch==8.12.1",
38
+ "elasticsearch-dsl==8.12.0",
39
+ "fasttext==0.9.3",
40
+ "filelock==3.15.4",
41
+ "flask==3.0.3",
42
+ "flask-cors==5.0.0",
43
+ "flask-login==0.6.3",
44
+ "flask-session==0.8.0",
45
+ "google-search-results==2.4.2",
46
+ "groq==0.9.0",
47
+ "hanziconv==0.3.2",
48
+ "html-text==0.6.2",
49
+ "httpx==0.27.0",
50
+ "huggingface-hub>=0.25.0,<0.26.0",
51
+ "infinity-sdk==0.6.0-dev1",
52
+ "infinity-emb>=0.0.66,<0.0.67",
53
+ "itsdangerous==2.1.2",
54
+ "markdown==3.6",
55
+ "markdown-to-json==2.1.1",
56
+ "minio==7.2.4",
57
+ "mistralai==0.4.2",
58
+ "nltk==3.9.1",
59
+ "numpy>=1.26.0,<2.0.0",
60
+ "ollama==0.2.1",
61
+ "onnxruntime==1.19.2",
62
+ "openai==1.45.0",
63
+ "opencv-python==4.10.0.84",
64
+ "opencv-python-headless==4.10.0.84",
65
+ "openpyxl>=3.1.0,<4.0.0",
66
+ "ormsgpack==1.5.0",
67
+ "pandas>=2.2.0,<3.0.0",
68
+ "pdfplumber==0.10.4",
69
+ "peewee==3.17.1",
70
+ "pillow==10.4.0",
71
+ "protobuf==5.27.2",
72
+ "psycopg2-binary==2.9.9",
73
+ "pyclipper==1.3.0.post5",
74
+ "pycryptodomex==3.20.0",
75
+ "pypdf>=5.0.0,<6.0.0",
76
+ "pytest>=8.3.0,<9.0.0",
77
+ "python-dotenv==1.0.1",
78
+ "python-dateutil==2.8.2",
79
+ "python-pptx>=1.0.2,<2.0.0",
80
+ "pywencai==0.12.2",
81
+ "qianfan==0.4.6",
82
+ "ranx==0.3.20",
83
+ "readability-lxml==0.8.1",
84
+ "valkey==6.0.2",
85
+ "requests==2.32.2",
86
+ "replicate==0.31.0",
87
+ "roman-numbers==1.0.2",
88
+ "ruamel-base==1.0.0",
89
+ "scholarly==1.7.11",
90
+ "scikit-learn==1.5.0",
91
+ "selenium==4.22.0",
92
+ "selenium-wire==5.1.0",
93
+ "setuptools>=75.2.0,<76.0.0",
94
+ "shapely==2.0.5",
95
+ "six==1.16.0",
96
+ "strenum==0.4.15",
97
+ "tabulate==0.9.0",
98
+ "tencentcloud-sdk-python==3.0.1215",
99
+ "tika==2.6.0",
100
+ "tiktoken==0.7.0",
101
+ "umap_learn==0.5.6",
102
+ "vertexai==1.64.0",
103
+ "volcengine==1.0.146",
104
+ "voyageai==0.2.3",
105
+ "webdriver-manager==4.0.1",
106
+ "werkzeug==3.0.6",
107
+ "wikipedia==1.4.0",
108
+ "word2number==1.1",
109
+ "xgboost==1.5.0",
110
+ "xpinyin==0.7.6",
111
+ "yfinance==0.1.96",
112
+ "zhipuai==2.0.1",
113
+ "ruamel-yaml>=0.18.6,<0.19.0",
114
+ "google-generativeai>=0.8.1,<0.9.0",
115
+ "python-docx>=1.1.2,<2.0.0",
116
+ "pypdf2>=3.0.1,<4.0.0",
117
+ "graspologic>=3.4.1,<4.0.0",
118
+ "pymysql>=1.1.1,<2.0.0",
119
+ "mini-racer>=0.12.4,<0.13.0",
120
+ "pyodbc>=5.2.0,<6.0.0",
121
+ "pyicu>=2.13.1,<3.0.0",
122
+ "flasgger>=0.9.7.1,<0.10.0",
123
+ "polars-lts-cpu>=1.9.0,<2.0.0",
124
+ "xxhash>=3.5.0,<4.0.0"
125
+ ]
126
 
127
+ [project.optional-dependencies]
128
+ full = [
129
+ "bcembedding==0.1.3",
130
+ "fastembed>=0.3.6,<0.4.0",
131
+ "flagembedding==1.2.10",
132
+ "torch==2.3.0",
133
+ "transformers==4.38.1"
134
+ ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
sdk/python/README.md CHANGED
@@ -3,7 +3,9 @@
3
  # build and publish python SDK to pypi.org
4
 
5
  ```shell
6
- poetry build
7
- poetry config pypi-token.pypi $YOUR_PYPI_API_TOKEN
8
- poetry publish
 
 
9
  ```
 
3
  # build and publish python SDK to pypi.org
4
 
5
  ```shell
6
+ uv build
7
+ uv pip install twine
8
+ export TWINE_USERNAME="__token__"
9
+ export TWINE_PASSWORD=$YOUR_PYPI_API_TOKEN
10
+ twine upload dist/*.whl
11
  ```
sdk/python/poetry.lock DELETED
@@ -1,342 +0,0 @@
1
- # This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand.
2
-
3
- [[package]]
4
- name = "beartype"
5
- version = "0.18.5"
6
- description = "Unbearably fast runtime type checking in pure Python."
7
- optional = false
8
- python-versions = ">=3.8.0"
9
- groups = ["main"]
10
- files = [
11
- {file = "beartype-0.18.5-py3-none-any.whl", hash = "sha256:5301a14f2a9a5540fe47ec6d34d758e9cd8331d36c4760fc7a5499ab86310089"},
12
- {file = "beartype-0.18.5.tar.gz", hash = "sha256:264ddc2f1da9ec94ff639141fbe33d22e12a9f75aa863b83b7046ffff1381927"},
13
- ]
14
-
15
- [package.extras]
16
- all = ["typing-extensions (>=3.10.0.0)"]
17
- dev = ["autoapi (>=0.9.0)", "coverage (>=5.5)", "equinox", "mypy (>=0.800)", "numpy", "pandera", "pydata-sphinx-theme (<=0.7.2)", "pytest (>=4.0.0)", "sphinx", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)", "tox (>=3.20.1)", "typing-extensions (>=3.10.0.0)"]
18
- doc-rtd = ["autoapi (>=0.9.0)", "pydata-sphinx-theme (<=0.7.2)", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)"]
19
- test-tox = ["equinox", "mypy (>=0.800)", "numpy", "pandera", "pytest (>=4.0.0)", "sphinx", "typing-extensions (>=3.10.0.0)"]
20
- test-tox-coverage = ["coverage (>=5.5)"]
21
-
22
- [[package]]
23
- name = "certifi"
24
- version = "2024.12.14"
25
- description = "Python package for providing Mozilla's CA Bundle."
26
- optional = false
27
- python-versions = ">=3.6"
28
- groups = ["main"]
29
- files = [
30
- {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"},
31
- {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"},
32
- ]
33
-
34
- [[package]]
35
- name = "charset-normalizer"
36
- version = "3.4.0"
37
- description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
38
- optional = false
39
- python-versions = ">=3.7.0"
40
- groups = ["main"]
41
- files = [
42
- {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"},
43
- {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"},
44
- {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"},
45
- {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"},
46
- {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"},
47
- {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"},
48
- {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"},
49
- {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"},
50
- {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"},
51
- {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"},
52
- {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"},
53
- {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"},
54
- {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"},
55
- {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"},
56
- {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"},
57
- {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"},
58
- {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"},
59
- {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"},
60
- {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"},
61
- {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"},
62
- {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"},
63
- {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"},
64
- {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"},
65
- {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"},
66
- {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"},
67
- {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"},
68
- {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"},
69
- {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"},
70
- {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"},
71
- {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"},
72
- {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"},
73
- {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"},
74
- {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"},
75
- {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"},
76
- {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"},
77
- {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"},
78
- {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"},
79
- {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"},
80
- {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"},
81
- {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"},
82
- {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"},
83
- {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"},
84
- {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"},
85
- {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"},
86
- {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"},
87
- {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"},
88
- {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"},
89
- {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"},
90
- {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"},
91
- {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"},
92
- {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"},
93
- {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"},
94
- {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"},
95
- {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"},
96
- {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"},
97
- {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"},
98
- {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"},
99
- {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"},
100
- {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"},
101
- {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"},
102
- {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"},
103
- {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"},
104
- {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"},
105
- {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"},
106
- {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"},
107
- {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"},
108
- {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"},
109
- {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"},
110
- {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"},
111
- {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"},
112
- {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"},
113
- {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"},
114
- {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"},
115
- {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"},
116
- {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"},
117
- {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"},
118
- {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"},
119
- {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"},
120
- {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"},
121
- {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"},
122
- {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"},
123
- {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"},
124
- {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"},
125
- {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"},
126
- {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"},
127
- {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"},
128
- {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"},
129
- {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"},
130
- {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"},
131
- {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"},
132
- {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"},
133
- {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"},
134
- {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"},
135
- {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"},
136
- {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"},
137
- {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"},
138
- {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"},
139
- {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"},
140
- {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"},
141
- {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"},
142
- {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"},
143
- {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"},
144
- {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"},
145
- {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"},
146
- {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"},
147
- ]
148
-
149
- [[package]]
150
- name = "colorama"
151
- version = "0.4.6"
152
- description = "Cross-platform colored terminal text."
153
- optional = false
154
- python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
155
- groups = ["main"]
156
- markers = "sys_platform == \"win32\""
157
- files = [
158
- {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
159
- {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
160
- ]
161
-
162
- [[package]]
163
- name = "exceptiongroup"
164
- version = "1.2.2"
165
- description = "Backport of PEP 654 (exception groups)"
166
- optional = false
167
- python-versions = ">=3.7"
168
- groups = ["main"]
169
- markers = "python_version < \"3.11\""
170
- files = [
171
- {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"},
172
- {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"},
173
- ]
174
-
175
- [package.extras]
176
- test = ["pytest (>=6)"]
177
-
178
- [[package]]
179
- name = "idna"
180
- version = "3.10"
181
- description = "Internationalized Domain Names in Applications (IDNA)"
182
- optional = false
183
- python-versions = ">=3.6"
184
- groups = ["main"]
185
- files = [
186
- {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
187
- {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
188
- ]
189
-
190
- [package.extras]
191
- all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
192
-
193
- [[package]]
194
- name = "iniconfig"
195
- version = "2.0.0"
196
- description = "brain-dead simple config-ini parsing"
197
- optional = false
198
- python-versions = ">=3.7"
199
- groups = ["main"]
200
- files = [
201
- {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
202
- {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
203
- ]
204
-
205
- [[package]]
206
- name = "packaging"
207
- version = "24.2"
208
- description = "Core utilities for Python packages"
209
- optional = false
210
- python-versions = ">=3.8"
211
- groups = ["main"]
212
- files = [
213
- {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
214
- {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
215
- ]
216
-
217
- [[package]]
218
- name = "pluggy"
219
- version = "1.5.0"
220
- description = "plugin and hook calling mechanisms for python"
221
- optional = false
222
- python-versions = ">=3.8"
223
- groups = ["main"]
224
- files = [
225
- {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"},
226
- {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"},
227
- ]
228
-
229
- [package.extras]
230
- dev = ["pre-commit", "tox"]
231
- testing = ["pytest", "pytest-benchmark"]
232
-
233
- [[package]]
234
- name = "pytest"
235
- version = "8.3.4"
236
- description = "pytest: simple powerful testing with Python"
237
- optional = false
238
- python-versions = ">=3.8"
239
- groups = ["main"]
240
- files = [
241
- {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"},
242
- {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"},
243
- ]
244
-
245
- [package.dependencies]
246
- colorama = {version = "*", markers = "sys_platform == \"win32\""}
247
- exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""}
248
- iniconfig = "*"
249
- packaging = "*"
250
- pluggy = ">=1.5,<2"
251
- tomli = {version = ">=1", markers = "python_version < \"3.11\""}
252
-
253
- [package.extras]
254
- dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
255
-
256
- [[package]]
257
- name = "requests"
258
- version = "2.32.3"
259
- description = "Python HTTP for Humans."
260
- optional = false
261
- python-versions = ">=3.8"
262
- groups = ["main"]
263
- files = [
264
- {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
265
- {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
266
- ]
267
-
268
- [package.dependencies]
269
- certifi = ">=2017.4.17"
270
- charset-normalizer = ">=2,<4"
271
- idna = ">=2.5,<4"
272
- urllib3 = ">=1.21.1,<3"
273
-
274
- [package.extras]
275
- socks = ["PySocks (>=1.5.6,!=1.5.7)"]
276
- use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
277
-
278
- [[package]]
279
- name = "tomli"
280
- version = "2.2.1"
281
- description = "A lil' TOML parser"
282
- optional = false
283
- python-versions = ">=3.8"
284
- groups = ["main"]
285
- markers = "python_version < \"3.11\""
286
- files = [
287
- {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"},
288
- {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"},
289
- {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"},
290
- {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"},
291
- {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"},
292
- {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"},
293
- {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"},
294
- {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"},
295
- {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"},
296
- {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"},
297
- {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"},
298
- {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"},
299
- {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"},
300
- {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"},
301
- {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"},
302
- {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"},
303
- {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"},
304
- {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"},
305
- {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"},
306
- {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"},
307
- {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"},
308
- {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"},
309
- {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"},
310
- {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"},
311
- {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"},
312
- {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"},
313
- {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"},
314
- {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"},
315
- {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"},
316
- {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"},
317
- {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"},
318
- {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"},
319
- ]
320
-
321
- [[package]]
322
- name = "urllib3"
323
- version = "2.2.3"
324
- description = "HTTP library with thread-safe connection pooling, file post, and more."
325
- optional = false
326
- python-versions = ">=3.8"
327
- groups = ["main"]
328
- files = [
329
- {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"},
330
- {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"},
331
- ]
332
-
333
- [package.extras]
334
- brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
335
- h2 = ["h2 (>=4,<5)"]
336
- socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
337
- zstd = ["zstandard (>=0.18.0)"]
338
-
339
- [metadata]
340
- lock-version = "2.1"
341
- python-versions = ">=3.10,<3.13"
342
- content-hash = "dbae1304e0358315b27e6165c39e999cb84e0650c0fd71ed32ab2ead6162b5c0"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
sdk/python/pyproject.toml CHANGED
@@ -1,19 +1,20 @@
1
- [tool.poetry]
2
  name = "ragflow-sdk"
3
  version = "0.15.1"
4
  description = "Python client sdk of [RAGFlow](https://github.com/infiniflow/ragflow). RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding."
5
- authors = ["Zhichang Yu <[email protected]>"]
6
- license = "Apache License, Version 2.0"
 
 
7
  readme = "README.md"
8
- package-mode = true
 
 
 
 
 
9
 
10
- [tool.poetry.dependencies]
11
- python = ">=3.10,<3.13"
12
- requests = "^2.30.0"
13
- beartype = "^0.18.5"
14
- pytest = "^8.0.0"
15
-
16
-
17
- [build-system]
18
- requires = ["poetry-core"]
19
- build-backend = "poetry.core.masonry.api"
 
1
+ [project]
2
  name = "ragflow-sdk"
3
  version = "0.15.1"
4
  description = "Python client sdk of [RAGFlow](https://github.com/infiniflow/ragflow). RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding."
5
+ authors = [
6
+ { name = "Zhichang Yu", email = "yuzhichang@gmail.com" }
7
+ ]
8
+ license = { text = "Apache License, Version 2.0" }
9
  readme = "README.md"
10
+ requires-python = ">=3.10,<3.13"
11
+ dependencies = [
12
+ "requests>=2.30.0,<3.0.0",
13
+ "beartype>=0.18.5,<0.19.0",
14
+ "pytest>=8.0.0,<9.0.0"
15
+ ]
16
 
17
+ [project.optional-dependencies]
18
+ test = [
19
+ "pytest>=8.0.0,<9.0.0"
20
+ ]
 
 
 
 
 
 
sdk/python/uv.lock ADDED
@@ -0,0 +1,215 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ version = 1
2
+ requires-python = ">=3.10, <3.13"
3
+
4
+ [[package]]
5
+ name = "beartype"
6
+ version = "0.18.5"
7
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
8
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/96/15/4e623478a9628ad4cee2391f19aba0b16c1dd6fedcb2a399f0928097b597/beartype-0.18.5.tar.gz", hash = "sha256:264ddc2f1da9ec94ff639141fbe33d22e12a9f75aa863b83b7046ffff1381927" }
9
+ wheels = [
10
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/64/43/7a1259741bd989723272ac7d381a43be932422abcff09a1d9f7ba212cb74/beartype-0.18.5-py3-none-any.whl", hash = "sha256:5301a14f2a9a5540fe47ec6d34d758e9cd8331d36c4760fc7a5499ab86310089" },
11
+ ]
12
+
13
+ [[package]]
14
+ name = "certifi"
15
+ version = "2024.12.14"
16
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
17
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db" }
18
+ wheels = [
19
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56" },
20
+ ]
21
+
22
+ [[package]]
23
+ name = "charset-normalizer"
24
+ version = "3.4.1"
25
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
26
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3" }
27
+ wheels = [
28
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/0d/58/5580c1716040bc89206c77d8f74418caf82ce519aae06450393ca73475d1/charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de" },
29
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/d0/11/00341177ae71c6f5159a08168bcb98c6e6d196d372c94511f9f6c9afe0c6/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176" },
30
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/01/09/11d684ea5819e5a8f5100fb0b38cf8d02b514746607934134d31233e02c8/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037" },
31
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/08/06/9f5a12939db324d905dc1f70591ae7d7898d030d7662f0d426e2286f68c9/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f" },
32
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/93/62/5e89cdfe04584cb7f4d36003ffa2936681b03ecc0754f8e969c2becb7e24/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a" },
33
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/a9/ac/ab729a15c516da2ab70a05f8722ecfccc3f04ed7a18e45c75bbbaa347d61/charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a" },
34
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/03/d2/3f392f23f042615689456e9a274640c1d2e5dd1d52de36ab8f7955f8f050/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247" },
35
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/f2/e3/e20aae5e1039a2cd9b08d9205f52142329f887f8cf70da3650326670bddf/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408" },
36
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/8d/af/779ad72a4da0aed925e1139d458adc486e61076d7ecdcc09e610ea8678db/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb" },
37
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/c2/b6/7aa450b278e7aa92cf7732140bfd8be21f5f29d5bf334ae987c945276639/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d" },
38
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/39/f4/d9f4f712d0951dcbfd42920d3db81b00dd23b6ab520419626f4023334056/charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807" },
39
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/49/2b/999d0314e4ee0cff3cb83e6bc9aeddd397eeed693edb4facb901eb8fbb69/charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f" },
40
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/2d/ce/3cbed41cff67e455a386fb5e5dd8906cdda2ed92fbc6297921f2e4419309/charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f" },
41
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/72/80/41ef5d5a7935d2d3a773e3eaebf0a9350542f2cab4eac59a7a4741fbbbbe/charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125" },
42
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/7a/28/0b9fefa7b8b080ec492110af6d88aa3dea91c464b17d53474b6e9ba5d2c5/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1" },
43
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/71/64/d24ab1a997efb06402e3fc07317e94da358e2585165930d9d59ad45fcae2/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3" },
44
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/37/ed/be39e5258e198655240db5e19e0b11379163ad7070962d6b0c87ed2c4d39/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd" },
45
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/88/83/489e9504711fa05d8dde1574996408026bdbdbd938f23be67deebb5eca92/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00" },
46
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/c6/c7/32da20821cf387b759ad24627a9aca289d2822de929b8a41b6241767b461/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12" },
47
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/68/85/f4288e96039abdd5aeb5c546fa20a37b50da71b5cf01e75e87f16cd43304/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77" },
48
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/28/a3/a42e70d03cbdabc18997baf4f0227c73591a08041c149e710045c281f97b/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146" },
49
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/85/e4/65699e8ab3014ecbe6f5c71d1a55d810fb716bbfd74f6283d5c2aa87febf/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd" },
50
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/b1/82/8e9fe624cc5374193de6860aba3ea8070f584c8565ee77c168ec13274bd2/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6" },
51
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/3d/7b/82865ba54c765560c8433f65e8acb9217cb839a9e32b42af4aa8e945870f/charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8" },
52
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/b5/b6/9674a4b7d4d99a0d2df9b215da766ee682718f88055751e1e5e753c82db0/charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b" },
53
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/1e/ab/45b180e175de4402dcf7547e4fb617283bae54ce35c27930a6f35b6bef15/charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76" },
54
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/0a/9a/dd1e1cdceb841925b7798369a09279bd1cf183cef0f9ddf15a3a6502ee45/charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545" },
55
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/d3/8c/90bfabf8c4809ecb648f39794cf2a84ff2e7d2a6cf159fe68d9a26160467/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7" },
56
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/ad/8f/e410d57c721945ea3b4f1a04b74f70ce8fa800d393d72899f0a40526401f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757" },
57
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/f0/b8/e6825e25deb691ff98cf5c9072ee0605dc2acfca98af70c2d1b1bc75190d/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa" },
58
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d" },
59
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/74/94/8a5277664f27c3c438546f3eb53b33f5b19568eb7424736bdc440a88a31f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616" },
60
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/7c/5f/6d352c51ee763623a98e31194823518e09bfa48be2a7e8383cf691bbb3d0/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b" },
61
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/78/d4/f5704cb629ba5ab16d1d3d741396aec6dc3ca2b67757c45b0599bb010478/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d" },
62
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/c5/96/64120b1d02b81785f222b976c0fb79a35875457fa9bb40827678e54d1bc8/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a" },
63
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/84/c9/98e3732278a99f47d487fd3468bc60b882920cef29d1fa6ca460a1fdf4e6/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9" },
64
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/13/0e/9c8d4cb99c98c1007cc11eda969ebfe837bbbd0acdb4736d228ccaabcd22/charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1" },
65
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/b2/21/2b6b5b860781a0b49427309cb8670785aa543fb2178de875b87b9cc97746/charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35" },
66
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/21/5b/1b390b03b1d16c7e382b561c5329f83cc06623916aab983e8ab9239c7d5c/charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f" },
67
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85" },
68
+ ]
69
+
70
+ [[package]]
71
+ name = "colorama"
72
+ version = "0.4.6"
73
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
74
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44" }
75
+ wheels = [
76
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6" },
77
+ ]
78
+
79
+ [[package]]
80
+ name = "exceptiongroup"
81
+ version = "1.2.2"
82
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
83
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/09/35/2495c4ac46b980e4ca1f6ad6db102322ef3ad2410b79fdde159a4b0f3b92/exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc" }
84
+ wheels = [
85
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/02/cc/b7e31358aac6ed1ef2bb790a9746ac2c69bcb3c8588b41616914eb106eaf/exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b" },
86
+ ]
87
+
88
+ [[package]]
89
+ name = "idna"
90
+ version = "3.10"
91
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
92
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9" }
93
+ wheels = [
94
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" },
95
+ ]
96
+
97
+ [[package]]
98
+ name = "iniconfig"
99
+ version = "2.0.0"
100
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
101
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3" }
102
+ wheels = [
103
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" },
104
+ ]
105
+
106
+ [[package]]
107
+ name = "packaging"
108
+ version = "24.2"
109
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
110
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f" }
111
+ wheels = [
112
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759" },
113
+ ]
114
+
115
+ [[package]]
116
+ name = "pluggy"
117
+ version = "1.5.0"
118
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
119
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1" }
120
+ wheels = [
121
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669" },
122
+ ]
123
+
124
+ [[package]]
125
+ name = "pytest"
126
+ version = "8.3.4"
127
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
128
+ dependencies = [
129
+ { name = "colorama", marker = "sys_platform == 'win32'" },
130
+ { name = "exceptiongroup", marker = "python_full_version < '3.11'" },
131
+ { name = "iniconfig" },
132
+ { name = "packaging" },
133
+ { name = "pluggy" },
134
+ { name = "tomli", marker = "python_full_version < '3.11'" },
135
+ ]
136
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/05/35/30e0d83068951d90a01852cb1cef56e5d8a09d20c7f511634cc2f7e0372a/pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761" }
137
+ wheels = [
138
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/11/92/76a1c94d3afee238333bc0a42b82935dd8f9cf8ce9e336ff87ee14d9e1cf/pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6" },
139
+ ]
140
+
141
+ [[package]]
142
+ name = "ragflow-sdk"
143
+ version = "0.15.1"
144
+ source = { virtual = "." }
145
+ dependencies = [
146
+ { name = "beartype" },
147
+ { name = "pytest" },
148
+ { name = "requests" },
149
+ ]
150
+
151
+ [package.optional-dependencies]
152
+ test = [
153
+ { name = "pytest" },
154
+ ]
155
+
156
+ [package.metadata]
157
+ requires-dist = [
158
+ { name = "beartype", specifier = ">=0.18.5,<0.19.0" },
159
+ { name = "pytest", specifier = ">=8.0.0,<9.0.0" },
160
+ { name = "pytest", marker = "extra == 'test'", specifier = ">=8.0.0,<9.0.0" },
161
+ { name = "requests", specifier = ">=2.30.0,<3.0.0" },
162
+ ]
163
+
164
+ [[package]]
165
+ name = "requests"
166
+ version = "2.32.3"
167
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
168
+ dependencies = [
169
+ { name = "certifi" },
170
+ { name = "charset-normalizer" },
171
+ { name = "idna" },
172
+ { name = "urllib3" },
173
+ ]
174
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760" }
175
+ wheels = [
176
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" },
177
+ ]
178
+
179
+ [[package]]
180
+ name = "tomli"
181
+ version = "2.2.1"
182
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
183
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff" }
184
+ wheels = [
185
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249" },
186
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6" },
187
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a" },
188
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee" },
189
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e" },
190
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4" },
191
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106" },
192
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8" },
193
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff" },
194
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b" },
195
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea" },
196
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8" },
197
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192" },
198
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222" },
199
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77" },
200
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6" },
201
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd" },
202
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e" },
203
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98" },
204
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4" },
205
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc" },
206
+ ]
207
+
208
+ [[package]]
209
+ name = "urllib3"
210
+ version = "2.3.0"
211
+ source = { registry = "https://mirrors.pku.edu.cn/pypi/web/simple" }
212
+ sdist = { url = "https://mirrors.pku.edu.cn/pypi/web/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d" }
213
+ wheels = [
214
+ { url = "https://mirrors.pku.edu.cn/pypi/web/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df" },
215
+ ]
uv.lock ADDED
The diff for this file is too large to render. See raw diff