Juan Salas commited on
Commit
2268733
·
1 Parent(s): 3a10eee

Improved setup for hf spaces

Browse files
Files changed (4) hide show
  1. .spacesignore +29 -0
  2. Dockerfile +25 -20
  3. pyproject.toml +9 -43
  4. uv.lock +2 -402
.spacesignore ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # HuggingFace Spaces ignore file - exclude unnecessary files
2
+ # Development files
3
+ tests/
4
+ scripts/
5
+ pytest.ini
6
+ pytest-e2e.ini
7
+ playwright.config.py
8
+ packages.txt
9
+ runtime.txt
10
+ dd_poc.egg-info/
11
+
12
+ # Local development
13
+ .venv/
14
+ .env
15
+ .env.*
16
+ .logs/
17
+ .pytest_cache/
18
+ .DS_Store
19
+ .claude/
20
+
21
+ # Git and build artifacts
22
+ .git/
23
+ __pycache__/
24
+ *.pyc
25
+ *.pyo
26
+ *.log
27
+
28
+ # Keep only essential streamlit config
29
+ .streamlit/secrets.toml
Dockerfile CHANGED
@@ -1,10 +1,9 @@
1
- # Use Python 3.13 base image
2
  FROM python:3.13-slim
3
 
4
- # Copy uv from the official image (much more efficient than installing)
5
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
6
 
7
- # Set working directory
8
  WORKDIR /app
9
 
10
  # Install system dependencies
@@ -16,29 +15,35 @@ RUN apt-get update && apt-get install -y \
16
  # Initialize Git LFS
17
  RUN git lfs install
18
 
19
- # Copy pyproject.toml and uv.lock for better caching
20
- COPY pyproject.toml uv.lock* ./
21
 
22
- # Install Python dependencies using uv
23
- RUN uv sync --frozen --no-dev
 
24
 
25
- # Copy the entire application
26
- COPY . .
 
 
 
 
 
 
 
27
 
28
- # Download and cache models on build (optional - can be done at runtime too)
29
- # RUN uv run python -c "from app.core.model_cache import get_cached_embeddings, get_cached_cross_encoder; get_cached_embeddings(); get_cached_cross_encoder()"
30
-
31
- # Expose the port Streamlit runs on (HuggingFace Spaces standard)
32
- EXPOSE 8501
33
-
34
- # Set environment variables for better performance
35
- ENV TOKENIZERS_PARALLELISM=true
36
  ENV STREAMLIT_SERVER_HEADLESS=true
37
  ENV STREAMLIT_SERVER_PORT=8501
38
  ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0
39
-
40
- # Disable uv cache for runtime to avoid permission issues
41
  ENV UV_NO_CACHE=1
42
 
43
- # Run the Streamlit app using uv (HuggingFace Spaces format)
 
 
 
 
 
 
44
  CMD ["uv", "run", "streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]
 
1
+ # HuggingFace Spaces Optimized Dockerfile
2
  FROM python:3.13-slim
3
 
4
+ # Copy UV from official image
5
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
6
 
 
7
  WORKDIR /app
8
 
9
  # Install system dependencies
 
15
  # Initialize Git LFS
16
  RUN git lfs install
17
 
18
+ # Copy Spaces-specific project file
19
+ COPY pyproject.spaces.toml ./pyproject.toml
20
 
21
+ # Generate requirements.txt and install (avoid package building)
22
+ RUN uv export --no-dev --no-hashes > requirements.txt && \
23
+ uv pip install -r requirements.txt
24
 
25
+ # Copy essential application files only
26
+ COPY app/ ./app/
27
+ COPY models/ ./models/
28
+ COPY data/ ./data/
29
+ COPY .cache/ ./.cache/
30
+ COPY .streamlit/config.toml ./.streamlit/config.toml
31
+ COPY checklist_scoring_analysis.json ./
32
+ COPY .gitattributes ./
33
+ COPY app.py ./
34
 
35
+ # HuggingFace Spaces environment variables
 
 
 
 
 
 
 
36
  ENV STREAMLIT_SERVER_HEADLESS=true
37
  ENV STREAMLIT_SERVER_PORT=8501
38
  ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0
39
+ ENV TOKENIZERS_PARALLELISM=true
 
40
  ENV UV_NO_CACHE=1
41
 
42
+ # Spaces-specific optimizations
43
+ ENV PYTHONUNBUFFERED=1
44
+ ENV PYTHONDONTWRITEBYTECODE=1
45
+
46
+ EXPOSE 8501
47
+
48
+ # Use UV for optimal performance
49
  CMD ["uv", "run", "streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]
pyproject.toml CHANGED
@@ -1,25 +1,21 @@
1
  [project]
2
- name = "dd-poc"
3
  version = "0.1.0"
4
- description = "AI-powered document analysis with citations"
5
  requires-python = ">=3.13"
6
  dependencies = [
7
- # Core dependencies - pinned for deployment
8
  "streamlit==1.49.1",
9
  "sentence-transformers==5.1.0",
10
  "numpy==2.3.2",
11
- # Document processing - pinned for deployment
12
  "pymupdf==1.24.14",
13
- # Environment and configuration - pinned for deployment
14
  "python-dotenv==1.1.1",
15
  "pydantic-settings>=2.10.1,<3.0.0",
16
- # Vector store - optimized CPU version
17
  "faiss-cpu==1.12.0",
18
- # CPU optimization libraries
19
- "accelerate",
20
- "optuna", # For hyperparameter optimization
21
- "memory-profiler", # For detailed memory profiling
22
- # AI Enhancement - LangChain packages pinned for deployment
23
  "langchain-anthropic==0.3.19",
24
  "langgraph==0.6.6",
25
  "langchain-core==0.3.75",
@@ -28,11 +24,10 @@ dependencies = [
28
  "langchain-huggingface==0.3.1",
29
  "tqdm>=4.67.1",
30
  "pydantic>=2.11.7",
31
- "pytest>=8.4.2",
32
  "huggingface-hub>=0.20.0",
33
  "pypdf>=6.0.0",
34
  "watchdog>=6.0.0",
35
- # Performance optimization libraries
36
  "diskcache>=5.6.0",
37
  "joblib>=1.4.0",
38
  "httpx>=0.25.0",
@@ -51,33 +46,4 @@ dependencies = [
51
  "yake>=0.6.0",
52
  ]
53
 
54
- [build-system]
55
- requires = ["setuptools", "wheel"]
56
- build-backend = "setuptools.build_meta"
57
-
58
- [dependency-groups]
59
- dev = [
60
- "autoflake>=2.3.1",
61
- "flake8>=7.3.0",
62
- # Testing dependencies
63
- "playwright>=1.55.0",
64
- "pytest>=7.4.0",
65
- "pytest-asyncio>=0.21.0",
66
- "pytest-cov>=4.1.0",
67
- "pytest-mock>=3.12.0",
68
- "pytest-playwright>=0.7.1",
69
- "pytest-xdist>=3.5.0",
70
- ]
71
-
72
- [tool.setuptools.packages.find]
73
- include = ["app*", "scripts*", ""]
74
-
75
- [project.scripts]
76
- download-models = "scripts.download_models:main"
77
- verify-test-coverage = "scripts.verify_test_coverage:main"
78
- build-indexes = "scripts.build_indexes:main"
79
- build-graphs = "scripts.build_knowledge_graphs:main"
80
- build = "scripts.build:main"
81
- start = "scripts.start:main"
82
- e2e-test = "scripts.run_e2e_tests:main"
83
-
 
1
  [project]
2
+ name = "dd-poc-spaces"
3
  version = "0.1.0"
4
+ description = "AI Due Diligence - HuggingFace Spaces Production"
5
  requires-python = ">=3.13"
6
  dependencies = [
7
+ # Core dependencies - production only
8
  "streamlit==1.49.1",
9
  "sentence-transformers==5.1.0",
10
  "numpy==2.3.2",
11
+ # Document processing
12
  "pymupdf==1.24.14",
13
+ # Configuration
14
  "python-dotenv==1.1.1",
15
  "pydantic-settings>=2.10.1,<3.0.0",
16
+ # Vector store - CPU optimized for Spaces
17
  "faiss-cpu==1.12.0",
18
+ # AI Enhancement - LangChain
 
 
 
 
19
  "langchain-anthropic==0.3.19",
20
  "langgraph==0.6.6",
21
  "langchain-core==0.3.75",
 
24
  "langchain-huggingface==0.3.1",
25
  "tqdm>=4.67.1",
26
  "pydantic>=2.11.7",
 
27
  "huggingface-hub>=0.20.0",
28
  "pypdf>=6.0.0",
29
  "watchdog>=6.0.0",
30
+ # Performance optimization
31
  "diskcache>=5.6.0",
32
  "joblib>=1.4.0",
33
  "httpx>=0.25.0",
 
46
  "yake>=0.6.0",
47
  ]
48
 
49
+ # No build system needed for Spaces - dependencies only
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
uv.lock CHANGED
@@ -2,24 +2,6 @@ version = 1
2
  revision = 3
3
  requires-python = ">=3.13"
4
 
5
- [[package]]
6
- name = "accelerate"
7
- version = "1.10.1"
8
- source = { registry = "https://pypi.org/simple" }
9
- dependencies = [
10
- { name = "huggingface-hub" },
11
- { name = "numpy" },
12
- { name = "packaging" },
13
- { name = "psutil" },
14
- { name = "pyyaml" },
15
- { name = "safetensors" },
16
- { name = "torch" },
17
- ]
18
- sdist = { url = "https://files.pythonhosted.org/packages/b1/72/ff3961c19ee395c3d30ac630ee77bfb0e1b46b87edc504d4f83bb4a89705/accelerate-1.10.1.tar.gz", hash = "sha256:3dea89e433420e4bfac0369cae7e36dcd6a56adfcfd38cdda145c6225eab5df8", size = 392446, upload-time = "2025-08-25T13:57:06.21Z" }
19
- wheels = [
20
- { url = "https://files.pythonhosted.org/packages/5f/a0/d9ef19f780f319c21ee90ecfef4431cbeeca95bec7f14071785c17b6029b/accelerate-1.10.1-py3-none-any.whl", hash = "sha256:3621cff60b9a27ce798857ece05e2b9f56fcc71631cfb31ccf71f0359c311f11", size = 374909, upload-time = "2025-08-25T13:57:04.55Z" },
21
- ]
22
-
23
  [[package]]
24
  name = "aiohappyeyeballs"
25
  version = "2.6.1"
@@ -75,20 +57,6 @@ wheels = [
75
  { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" },
76
  ]
77
 
78
- [[package]]
79
- name = "alembic"
80
- version = "1.16.5"
81
- source = { registry = "https://pypi.org/simple" }
82
- dependencies = [
83
- { name = "mako" },
84
- { name = "sqlalchemy" },
85
- { name = "typing-extensions" },
86
- ]
87
- sdist = { url = "https://files.pythonhosted.org/packages/9a/ca/4dc52902cf3491892d464f5265a81e9dff094692c8a049a3ed6a05fe7ee8/alembic-1.16.5.tar.gz", hash = "sha256:a88bb7f6e513bd4301ecf4c7f2206fe93f9913f9b48dac3b78babde2d6fe765e", size = 1969868, upload-time = "2025-08-27T18:02:05.668Z" }
88
- wheels = [
89
- { url = "https://files.pythonhosted.org/packages/39/4a/4c61d4c84cfd9befb6fa08a702535b27b21fff08c946bc2f6139decbf7f7/alembic-1.16.5-py3-none-any.whl", hash = "sha256:e845dfe090c5ffa7b92593ae6687c5cb1a101e91fa53868497dbd79847f9dbe3", size = 247355, upload-time = "2025-08-27T18:02:07.37Z" },
90
- ]
91
-
92
  [[package]]
93
  name = "altair"
94
  version = "5.5.0"
@@ -154,18 +122,6 @@ wheels = [
154
  { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload-time = "2025-03-13T11:10:21.14Z" },
155
  ]
156
 
157
- [[package]]
158
- name = "autoflake"
159
- version = "2.3.1"
160
- source = { registry = "https://pypi.org/simple" }
161
- dependencies = [
162
- { name = "pyflakes" },
163
- ]
164
- sdist = { url = "https://files.pythonhosted.org/packages/2a/cb/486f912d6171bc5748c311a2984a301f4e2d054833a1da78485866c71522/autoflake-2.3.1.tar.gz", hash = "sha256:c98b75dc5b0a86459c4f01a1d32ac7eb4338ec4317a4469515ff1e687ecd909e", size = 27642, upload-time = "2024-03-13T03:41:28.977Z" }
165
- wheels = [
166
- { url = "https://files.pythonhosted.org/packages/a2/ee/3fd29bf416eb4f1c5579cf12bf393ae954099258abd7bde03c4f9716ef6b/autoflake-2.3.1-py3-none-any.whl", hash = "sha256:3ae7495db9084b7b32818b4140e6dc4fc280b712fb414f5b8fe57b0a8e85a840", size = 32483, upload-time = "2024-03-13T03:41:26.969Z" },
167
- ]
168
-
169
  [[package]]
170
  name = "backoff"
171
  version = "2.2.1"
@@ -308,18 +264,6 @@ wheels = [
308
  { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
309
  ]
310
 
311
- [[package]]
312
- name = "colorlog"
313
- version = "6.9.0"
314
- source = { registry = "https://pypi.org/simple" }
315
- dependencies = [
316
- { name = "colorama", marker = "sys_platform == 'win32'" },
317
- ]
318
- sdist = { url = "https://files.pythonhosted.org/packages/d3/7a/359f4d5df2353f26172b3cc39ea32daa39af8de522205f512f458923e677/colorlog-6.9.0.tar.gz", hash = "sha256:bfba54a1b93b94f54e1f4fe48395725a3d92fd2a4af702f6bd70946bdc0c6ac2", size = 16624, upload-time = "2024-10-29T18:34:51.011Z" }
319
- wheels = [
320
- { url = "https://files.pythonhosted.org/packages/e3/51/9b208e85196941db2f0654ad0357ca6388ab3ed67efdbfc799f35d1f83aa/colorlog-6.9.0-py3-none-any.whl", hash = "sha256:5906e71acd67cb07a71e779c47c4bcb45fb8c2993eebe9e5adcd6a6f1b283eff", size = 11424, upload-time = "2024-10-29T18:34:49.815Z" },
321
- ]
322
-
323
  [[package]]
324
  name = "confection"
325
  version = "0.1.5"
@@ -342,59 +286,6 @@ wheels = [
342
  { url = "https://files.pythonhosted.org/packages/18/64/8f26d84f18c4d421cc7ca8f4b1dfd080ae14ba15a627277fbd63c11d652e/conllu-6.0.0-py3-none-any.whl", hash = "sha256:c47206a0912f768bfae429d3d3c2c7f5ed068babd2502663e865cfb21532cbcc", size = 16782, upload-time = "2024-10-13T21:44:52.254Z" },
343
  ]
344
 
345
- [[package]]
346
- name = "coverage"
347
- version = "7.10.6"
348
- source = { registry = "https://pypi.org/simple" }
349
- sdist = { url = "https://files.pythonhosted.org/packages/14/70/025b179c993f019105b79575ac6edb5e084fb0f0e63f15cdebef4e454fb5/coverage-7.10.6.tar.gz", hash = "sha256:f644a3ae5933a552a29dbb9aa2f90c677a875f80ebea028e5a52a4f429044b90", size = 823736, upload-time = "2025-08-29T15:35:16.668Z" }
350
- wheels = [
351
- { url = "https://files.pythonhosted.org/packages/bd/e7/917e5953ea29a28c1057729c1d5af9084ab6d9c66217523fd0e10f14d8f6/coverage-7.10.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ffea0575345e9ee0144dfe5701aa17f3ba546f8c3bb48db62ae101afb740e7d6", size = 217351, upload-time = "2025-08-29T15:33:45.438Z" },
352
- { url = "https://files.pythonhosted.org/packages/eb/86/2e161b93a4f11d0ea93f9bebb6a53f113d5d6e416d7561ca41bb0a29996b/coverage-7.10.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:95d91d7317cde40a1c249d6b7382750b7e6d86fad9d8eaf4fa3f8f44cf171e80", size = 217600, upload-time = "2025-08-29T15:33:47.269Z" },
353
- { url = "https://files.pythonhosted.org/packages/0e/66/d03348fdd8df262b3a7fb4ee5727e6e4936e39e2f3a842e803196946f200/coverage-7.10.6-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3e23dd5408fe71a356b41baa82892772a4cefcf758f2ca3383d2aa39e1b7a003", size = 248600, upload-time = "2025-08-29T15:33:48.953Z" },
354
- { url = "https://files.pythonhosted.org/packages/73/dd/508420fb47d09d904d962f123221bc249f64b5e56aa93d5f5f7603be475f/coverage-7.10.6-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0f3f56e4cb573755e96a16501a98bf211f100463d70275759e73f3cbc00d4f27", size = 251206, upload-time = "2025-08-29T15:33:50.697Z" },
355
- { url = "https://files.pythonhosted.org/packages/e9/1f/9020135734184f439da85c70ea78194c2730e56c2d18aee6e8ff1719d50d/coverage-7.10.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:db4a1d897bbbe7339946ffa2fe60c10cc81c43fab8b062d3fcb84188688174a4", size = 252478, upload-time = "2025-08-29T15:33:52.303Z" },
356
- { url = "https://files.pythonhosted.org/packages/a4/a4/3d228f3942bb5a2051fde28c136eea23a761177dc4ff4ef54533164ce255/coverage-7.10.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d8fd7879082953c156d5b13c74aa6cca37f6a6f4747b39538504c3f9c63d043d", size = 250637, upload-time = "2025-08-29T15:33:53.67Z" },
357
- { url = "https://files.pythonhosted.org/packages/36/e3/293dce8cdb9a83de971637afc59b7190faad60603b40e32635cbd15fbf61/coverage-7.10.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:28395ca3f71cd103b8c116333fa9db867f3a3e1ad6a084aa3725ae002b6583bc", size = 248529, upload-time = "2025-08-29T15:33:55.022Z" },
358
- { url = "https://files.pythonhosted.org/packages/90/26/64eecfa214e80dd1d101e420cab2901827de0e49631d666543d0e53cf597/coverage-7.10.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:61c950fc33d29c91b9e18540e1aed7d9f6787cc870a3e4032493bbbe641d12fc", size = 250143, upload-time = "2025-08-29T15:33:56.386Z" },
359
- { url = "https://files.pythonhosted.org/packages/3e/70/bd80588338f65ea5b0d97e424b820fb4068b9cfb9597fbd91963086e004b/coverage-7.10.6-cp313-cp313-win32.whl", hash = "sha256:160c00a5e6b6bdf4e5984b0ef21fc860bc94416c41b7df4d63f536d17c38902e", size = 219770, upload-time = "2025-08-29T15:33:58.063Z" },
360
- { url = "https://files.pythonhosted.org/packages/a7/14/0b831122305abcc1060c008f6c97bbdc0a913ab47d65070a01dc50293c2b/coverage-7.10.6-cp313-cp313-win_amd64.whl", hash = "sha256:628055297f3e2aa181464c3808402887643405573eb3d9de060d81531fa79d32", size = 220566, upload-time = "2025-08-29T15:33:59.766Z" },
361
- { url = "https://files.pythonhosted.org/packages/83/c6/81a83778c1f83f1a4a168ed6673eeedc205afb562d8500175292ca64b94e/coverage-7.10.6-cp313-cp313-win_arm64.whl", hash = "sha256:df4ec1f8540b0bcbe26ca7dd0f541847cc8a108b35596f9f91f59f0c060bfdd2", size = 219195, upload-time = "2025-08-29T15:34:01.191Z" },
362
- { url = "https://files.pythonhosted.org/packages/d7/1c/ccccf4bf116f9517275fa85047495515add43e41dfe8e0bef6e333c6b344/coverage-7.10.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:c9a8b7a34a4de3ed987f636f71881cd3b8339f61118b1aa311fbda12741bff0b", size = 218059, upload-time = "2025-08-29T15:34:02.91Z" },
363
- { url = "https://files.pythonhosted.org/packages/92/97/8a3ceff833d27c7492af4f39d5da6761e9ff624831db9e9f25b3886ddbca/coverage-7.10.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8dd5af36092430c2b075cee966719898f2ae87b636cefb85a653f1d0ba5d5393", size = 218287, upload-time = "2025-08-29T15:34:05.106Z" },
364
- { url = "https://files.pythonhosted.org/packages/92/d8/50b4a32580cf41ff0423777a2791aaf3269ab60c840b62009aec12d3970d/coverage-7.10.6-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:b0353b0f0850d49ada66fdd7d0c7cdb0f86b900bb9e367024fd14a60cecc1e27", size = 259625, upload-time = "2025-08-29T15:34:06.575Z" },
365
- { url = "https://files.pythonhosted.org/packages/7e/7e/6a7df5a6fb440a0179d94a348eb6616ed4745e7df26bf2a02bc4db72c421/coverage-7.10.6-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d6b9ae13d5d3e8aeca9ca94198aa7b3ebbc5acfada557d724f2a1f03d2c0b0df", size = 261801, upload-time = "2025-08-29T15:34:08.006Z" },
366
- { url = "https://files.pythonhosted.org/packages/3a/4c/a270a414f4ed5d196b9d3d67922968e768cd971d1b251e1b4f75e9362f75/coverage-7.10.6-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:675824a363cc05781b1527b39dc2587b8984965834a748177ee3c37b64ffeafb", size = 264027, upload-time = "2025-08-29T15:34:09.806Z" },
367
- { url = "https://files.pythonhosted.org/packages/9c/8b/3210d663d594926c12f373c5370bf1e7c5c3a427519a8afa65b561b9a55c/coverage-7.10.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:692d70ea725f471a547c305f0d0fc6a73480c62fb0da726370c088ab21aed282", size = 261576, upload-time = "2025-08-29T15:34:11.585Z" },
368
- { url = "https://files.pythonhosted.org/packages/72/d0/e1961eff67e9e1dba3fc5eb7a4caf726b35a5b03776892da8d79ec895775/coverage-7.10.6-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:851430a9a361c7a8484a36126d1d0ff8d529d97385eacc8dfdc9bfc8c2d2cbe4", size = 259341, upload-time = "2025-08-29T15:34:13.159Z" },
369
- { url = "https://files.pythonhosted.org/packages/3a/06/d6478d152cd189b33eac691cba27a40704990ba95de49771285f34a5861e/coverage-7.10.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d9369a23186d189b2fc95cc08b8160ba242057e887d766864f7adf3c46b2df21", size = 260468, upload-time = "2025-08-29T15:34:14.571Z" },
370
- { url = "https://files.pythonhosted.org/packages/ed/73/737440247c914a332f0b47f7598535b29965bf305e19bbc22d4c39615d2b/coverage-7.10.6-cp313-cp313t-win32.whl", hash = "sha256:92be86fcb125e9bda0da7806afd29a3fd33fdf58fba5d60318399adf40bf37d0", size = 220429, upload-time = "2025-08-29T15:34:16.394Z" },
371
- { url = "https://files.pythonhosted.org/packages/bd/76/b92d3214740f2357ef4a27c75a526eb6c28f79c402e9f20a922c295c05e2/coverage-7.10.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6b3039e2ca459a70c79523d39347d83b73f2f06af5624905eba7ec34d64d80b5", size = 221493, upload-time = "2025-08-29T15:34:17.835Z" },
372
- { url = "https://files.pythonhosted.org/packages/fc/8e/6dcb29c599c8a1f654ec6cb68d76644fe635513af16e932d2d4ad1e5ac6e/coverage-7.10.6-cp313-cp313t-win_arm64.whl", hash = "sha256:3fb99d0786fe17b228eab663d16bee2288e8724d26a199c29325aac4b0319b9b", size = 219757, upload-time = "2025-08-29T15:34:19.248Z" },
373
- { url = "https://files.pythonhosted.org/packages/d3/aa/76cf0b5ec00619ef208da4689281d48b57f2c7fde883d14bf9441b74d59f/coverage-7.10.6-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6008a021907be8c4c02f37cdc3ffb258493bdebfeaf9a839f9e71dfdc47b018e", size = 217331, upload-time = "2025-08-29T15:34:20.846Z" },
374
- { url = "https://files.pythonhosted.org/packages/65/91/8e41b8c7c505d398d7730206f3cbb4a875a35ca1041efc518051bfce0f6b/coverage-7.10.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5e75e37f23eb144e78940b40395b42f2321951206a4f50e23cfd6e8a198d3ceb", size = 217607, upload-time = "2025-08-29T15:34:22.433Z" },
375
- { url = "https://files.pythonhosted.org/packages/87/7f/f718e732a423d442e6616580a951b8d1ec3575ea48bcd0e2228386805e79/coverage-7.10.6-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0f7cb359a448e043c576f0da00aa8bfd796a01b06aa610ca453d4dde09cc1034", size = 248663, upload-time = "2025-08-29T15:34:24.425Z" },
376
- { url = "https://files.pythonhosted.org/packages/e6/52/c1106120e6d801ac03e12b5285e971e758e925b6f82ee9b86db3aa10045d/coverage-7.10.6-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c68018e4fc4e14b5668f1353b41ccf4bc83ba355f0e1b3836861c6f042d89ac1", size = 251197, upload-time = "2025-08-29T15:34:25.906Z" },
377
- { url = "https://files.pythonhosted.org/packages/3d/ec/3a8645b1bb40e36acde9c0609f08942852a4af91a937fe2c129a38f2d3f5/coverage-7.10.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cd4b2b0707fc55afa160cd5fc33b27ccbf75ca11d81f4ec9863d5793fc6df56a", size = 252551, upload-time = "2025-08-29T15:34:27.337Z" },
378
- { url = "https://files.pythonhosted.org/packages/a1/70/09ecb68eeb1155b28a1d16525fd3a9b65fbe75337311a99830df935d62b6/coverage-7.10.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4cec13817a651f8804a86e4f79d815b3b28472c910e099e4d5a0e8a3b6a1d4cb", size = 250553, upload-time = "2025-08-29T15:34:29.065Z" },
379
- { url = "https://files.pythonhosted.org/packages/c6/80/47df374b893fa812e953b5bc93dcb1427a7b3d7a1a7d2db33043d17f74b9/coverage-7.10.6-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:f2a6a8e06bbda06f78739f40bfb56c45d14eb8249d0f0ea6d4b3d48e1f7c695d", size = 248486, upload-time = "2025-08-29T15:34:30.897Z" },
380
- { url = "https://files.pythonhosted.org/packages/4a/65/9f98640979ecee1b0d1a7164b589de720ddf8100d1747d9bbdb84be0c0fb/coverage-7.10.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:081b98395ced0d9bcf60ada7661a0b75f36b78b9d7e39ea0790bb4ed8da14747", size = 249981, upload-time = "2025-08-29T15:34:32.365Z" },
381
- { url = "https://files.pythonhosted.org/packages/1f/55/eeb6603371e6629037f47bd25bef300387257ed53a3c5fdb159b7ac8c651/coverage-7.10.6-cp314-cp314-win32.whl", hash = "sha256:6937347c5d7d069ee776b2bf4e1212f912a9f1f141a429c475e6089462fcecc5", size = 220054, upload-time = "2025-08-29T15:34:34.124Z" },
382
- { url = "https://files.pythonhosted.org/packages/15/d1/a0912b7611bc35412e919a2cd59ae98e7ea3b475e562668040a43fb27897/coverage-7.10.6-cp314-cp314-win_amd64.whl", hash = "sha256:adec1d980fa07e60b6ef865f9e5410ba760e4e1d26f60f7e5772c73b9a5b0713", size = 220851, upload-time = "2025-08-29T15:34:35.651Z" },
383
- { url = "https://files.pythonhosted.org/packages/ef/2d/11880bb8ef80a45338e0b3e0725e4c2d73ffbb4822c29d987078224fd6a5/coverage-7.10.6-cp314-cp314-win_arm64.whl", hash = "sha256:a80f7aef9535442bdcf562e5a0d5a5538ce8abe6bb209cfbf170c462ac2c2a32", size = 219429, upload-time = "2025-08-29T15:34:37.16Z" },
384
- { url = "https://files.pythonhosted.org/packages/83/c0/1f00caad775c03a700146f55536ecd097a881ff08d310a58b353a1421be0/coverage-7.10.6-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:0de434f4fbbe5af4fa7989521c655c8c779afb61c53ab561b64dcee6149e4c65", size = 218080, upload-time = "2025-08-29T15:34:38.919Z" },
385
- { url = "https://files.pythonhosted.org/packages/a9/c4/b1c5d2bd7cc412cbeb035e257fd06ed4e3e139ac871d16a07434e145d18d/coverage-7.10.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6e31b8155150c57e5ac43ccd289d079eb3f825187d7c66e755a055d2c85794c6", size = 218293, upload-time = "2025-08-29T15:34:40.425Z" },
386
- { url = "https://files.pythonhosted.org/packages/3f/07/4468d37c94724bf6ec354e4ec2f205fda194343e3e85fd2e59cec57e6a54/coverage-7.10.6-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:98cede73eb83c31e2118ae8d379c12e3e42736903a8afcca92a7218e1f2903b0", size = 259800, upload-time = "2025-08-29T15:34:41.996Z" },
387
- { url = "https://files.pythonhosted.org/packages/82/d8/f8fb351be5fee31690cd8da768fd62f1cfab33c31d9f7baba6cd8960f6b8/coverage-7.10.6-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f863c08f4ff6b64fa8045b1e3da480f5374779ef187f07b82e0538c68cb4ff8e", size = 261965, upload-time = "2025-08-29T15:34:43.61Z" },
388
- { url = "https://files.pythonhosted.org/packages/e8/70/65d4d7cfc75c5c6eb2fed3ee5cdf420fd8ae09c4808723a89a81d5b1b9c3/coverage-7.10.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b38261034fda87be356f2c3f42221fdb4171c3ce7658066ae449241485390d5", size = 264220, upload-time = "2025-08-29T15:34:45.387Z" },
389
- { url = "https://files.pythonhosted.org/packages/98/3c/069df106d19024324cde10e4ec379fe2fb978017d25e97ebee23002fbadf/coverage-7.10.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0e93b1476b79eae849dc3872faeb0bf7948fd9ea34869590bc16a2a00b9c82a7", size = 261660, upload-time = "2025-08-29T15:34:47.288Z" },
390
- { url = "https://files.pythonhosted.org/packages/fc/8a/2974d53904080c5dc91af798b3a54a4ccb99a45595cc0dcec6eb9616a57d/coverage-7.10.6-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ff8a991f70f4c0cf53088abf1e3886edcc87d53004c7bb94e78650b4d3dac3b5", size = 259417, upload-time = "2025-08-29T15:34:48.779Z" },
391
- { url = "https://files.pythonhosted.org/packages/30/38/9616a6b49c686394b318974d7f6e08f38b8af2270ce7488e879888d1e5db/coverage-7.10.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ac765b026c9f33044419cbba1da913cfb82cca1b60598ac1c7a5ed6aac4621a0", size = 260567, upload-time = "2025-08-29T15:34:50.718Z" },
392
- { url = "https://files.pythonhosted.org/packages/76/16/3ed2d6312b371a8cf804abf4e14895b70e4c3491c6e53536d63fd0958a8d/coverage-7.10.6-cp314-cp314t-win32.whl", hash = "sha256:441c357d55f4936875636ef2cfb3bee36e466dcf50df9afbd398ce79dba1ebb7", size = 220831, upload-time = "2025-08-29T15:34:52.653Z" },
393
- { url = "https://files.pythonhosted.org/packages/d5/e5/d38d0cb830abede2adb8b147770d2a3d0e7fecc7228245b9b1ae6c24930a/coverage-7.10.6-cp314-cp314t-win_amd64.whl", hash = "sha256:073711de3181b2e204e4870ac83a7c4853115b42e9cd4d145f2231e12d670930", size = 221950, upload-time = "2025-08-29T15:34:54.212Z" },
394
- { url = "https://files.pythonhosted.org/packages/f4/51/e48e550f6279349895b0ffcd6d2a690e3131ba3a7f4eafccc141966d4dea/coverage-7.10.6-cp314-cp314t-win_arm64.whl", hash = "sha256:137921f2bac5559334ba66122b753db6dc5d1cf01eb7b64eb412bb0d064ef35b", size = 219969, upload-time = "2025-08-29T15:34:55.83Z" },
395
- { url = "https://files.pythonhosted.org/packages/44/0c/50db5379b615854b5cf89146f8f5bd1d5a9693d7f3a987e269693521c404/coverage-7.10.6-py3-none-any.whl", hash = "sha256:92c4ecf6bf11b2e85fd4d8204814dc26e6a19f0c9d938c207c5cb0eadfcabbe3", size = 208986, upload-time = "2025-08-29T15:35:14.506Z" },
396
- ]
397
-
398
  [[package]]
399
  name = "cymem"
400
  version = "2.0.11"
@@ -424,11 +315,10 @@ wheels = [
424
  ]
425
 
426
  [[package]]
427
- name = "dd-poc"
428
  version = "0.1.0"
429
- source = { editable = "." }
430
  dependencies = [
431
- { name = "accelerate" },
432
  { name = "backoff" },
433
  { name = "blackstone" },
434
  { name = "diskcache" },
@@ -443,17 +333,14 @@ dependencies = [
443
  { name = "langchain-huggingface" },
444
  { name = "langchain-text-splitters" },
445
  { name = "langgraph" },
446
- { name = "memory-profiler" },
447
  { name = "networkx" },
448
  { name = "numpy" },
449
- { name = "optuna" },
450
  { name = "plotly" },
451
  { name = "psutil" },
452
  { name = "pydantic" },
453
  { name = "pydantic-settings" },
454
  { name = "pymupdf" },
455
  { name = "pypdf" },
456
- { name = "pytest" },
457
  { name = "python-dotenv" },
458
  { name = "rank-bm25" },
459
  { name = "scikit-learn" },
@@ -468,22 +355,8 @@ dependencies = [
468
  { name = "yake" },
469
  ]
470
 
471
- [package.dev-dependencies]
472
- dev = [
473
- { name = "autoflake" },
474
- { name = "flake8" },
475
- { name = "playwright" },
476
- { name = "pytest" },
477
- { name = "pytest-asyncio" },
478
- { name = "pytest-cov" },
479
- { name = "pytest-mock" },
480
- { name = "pytest-playwright" },
481
- { name = "pytest-xdist" },
482
- ]
483
-
484
  [package.metadata]
485
  requires-dist = [
486
- { name = "accelerate" },
487
  { name = "backoff", specifier = ">=2.2.0" },
488
  { name = "blackstone", specifier = ">=0.1.14" },
489
  { name = "diskcache", specifier = ">=5.6.0" },
@@ -498,17 +371,14 @@ requires-dist = [
498
  { name = "langchain-huggingface", specifier = "==0.3.1" },
499
  { name = "langchain-text-splitters", specifier = "==0.3.11" },
500
  { name = "langgraph", specifier = "==0.6.6" },
501
- { name = "memory-profiler" },
502
  { name = "networkx", specifier = ">=3.5" },
503
  { name = "numpy", specifier = "==2.3.2" },
504
- { name = "optuna" },
505
  { name = "plotly", specifier = ">=6.3.0" },
506
  { name = "psutil", specifier = ">=5.9.0" },
507
  { name = "pydantic", specifier = ">=2.11.7" },
508
  { name = "pydantic-settings", specifier = ">=2.10.1,<3.0.0" },
509
  { name = "pymupdf", specifier = "==1.24.14" },
510
  { name = "pypdf", specifier = ">=6.0.0" },
511
- { name = "pytest", specifier = ">=8.4.2" },
512
  { name = "python-dotenv", specifier = "==1.1.1" },
513
  { name = "rank-bm25", specifier = ">=0.2.2" },
514
  { name = "scikit-learn", specifier = ">=1.7.1" },
@@ -523,19 +393,6 @@ requires-dist = [
523
  { name = "yake", specifier = ">=0.6.0" },
524
  ]
525
 
526
- [package.metadata.requires-dev]
527
- dev = [
528
- { name = "autoflake", specifier = ">=2.3.1" },
529
- { name = "flake8", specifier = ">=7.3.0" },
530
- { name = "playwright", specifier = ">=1.55.0" },
531
- { name = "pytest", specifier = ">=7.4.0" },
532
- { name = "pytest-asyncio", specifier = ">=0.21.0" },
533
- { name = "pytest-cov", specifier = ">=4.1.0" },
534
- { name = "pytest-mock", specifier = ">=3.12.0" },
535
- { name = "pytest-playwright", specifier = ">=0.7.1" },
536
- { name = "pytest-xdist", specifier = ">=3.5.0" },
537
- ]
538
-
539
  [[package]]
540
  name = "diskcache"
541
  version = "5.6.3"
@@ -554,15 +411,6 @@ wheels = [
554
  { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" },
555
  ]
556
 
557
- [[package]]
558
- name = "execnet"
559
- version = "2.1.1"
560
- source = { registry = "https://pypi.org/simple" }
561
- sdist = { url = "https://files.pythonhosted.org/packages/bb/ff/b4c0dc78fbe20c3e59c0c7334de0c27eb4001a2b2017999af398bf730817/execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3", size = 166524, upload-time = "2024-04-08T09:04:19.245Z" }
562
- wheels = [
563
- { url = "https://files.pythonhosted.org/packages/43/09/2aea36ff60d16dd8879bdb2f5b3ee0ba8d08cbbdcdfe870e695ce3784385/execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc", size = 40612, upload-time = "2024-04-08T09:04:17.414Z" },
564
- ]
565
-
566
  [[package]]
567
  name = "faiss-cpu"
568
  version = "1.12.0"
@@ -608,20 +456,6 @@ wheels = [
608
  { url = "https://files.pythonhosted.org/packages/42/14/42b2651a2f46b022ccd948bca9f2d5af0fd8929c4eec235b8d6d844fbe67/filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d", size = 15988, upload-time = "2025-08-14T16:56:01.633Z" },
609
  ]
610
 
611
- [[package]]
612
- name = "flake8"
613
- version = "7.3.0"
614
- source = { registry = "https://pypi.org/simple" }
615
- dependencies = [
616
- { name = "mccabe" },
617
- { name = "pycodestyle" },
618
- { name = "pyflakes" },
619
- ]
620
- sdist = { url = "https://files.pythonhosted.org/packages/9b/af/fbfe3c4b5a657d79e5c47a2827a362f9e1b763336a52f926126aa6dc7123/flake8-7.3.0.tar.gz", hash = "sha256:fe044858146b9fc69b551a4b490d69cf960fcb78ad1edcb84e7fbb1b4a8e3872", size = 48326, upload-time = "2025-06-20T19:31:35.838Z" }
621
- wheels = [
622
- { url = "https://files.pythonhosted.org/packages/9f/56/13ab06b4f93ca7cac71078fbe37fcea175d3216f31f85c3168a6bbd0bb9a/flake8-7.3.0-py2.py3-none-any.whl", hash = "sha256:b9696257b9ce8beb888cdbe31cf885c90d31928fe202be0889a7cdafad32f01e", size = 57922, upload-time = "2025-06-20T19:31:34.425Z" },
623
- ]
624
-
625
  [[package]]
626
  name = "frozenlist"
627
  version = "1.7.0"
@@ -823,15 +657,6 @@ wheels = [
823
  { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" },
824
  ]
825
 
826
- [[package]]
827
- name = "iniconfig"
828
- version = "2.1.0"
829
- source = { registry = "https://pypi.org/simple" }
830
- sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793, upload-time = "2025-03-19T20:09:59.721Z" }
831
- wheels = [
832
- { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" },
833
- ]
834
-
835
  [[package]]
836
  name = "jellyfish"
837
  version = "1.2.0"
@@ -1152,18 +977,6 @@ wheels = [
1152
  { url = "https://files.pythonhosted.org/packages/5d/e9/5a5ffd9b286db82be70d677d0a91e4d58f7912bb8dd026ddeeb4abe70679/language_data-1.3.0-py3-none-any.whl", hash = "sha256:e2ee943551b5ae5f89cd0e801d1fc3835bb0ef5b7e9c3a4e8e17b2b214548fbf", size = 5385760, upload-time = "2024-11-19T10:21:36.005Z" },
1153
  ]
1154
 
1155
- [[package]]
1156
- name = "mako"
1157
- version = "1.3.10"
1158
- source = { registry = "https://pypi.org/simple" }
1159
- dependencies = [
1160
- { name = "markupsafe" },
1161
- ]
1162
- sdist = { url = "https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28", size = 392474, upload-time = "2025-04-10T12:44:31.16Z" }
1163
- wheels = [
1164
- { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload-time = "2025-04-10T12:50:53.297Z" },
1165
- ]
1166
-
1167
  [[package]]
1168
  name = "marisa-trie"
1169
  version = "1.3.1"
@@ -1256,15 +1069,6 @@ wheels = [
1256
  { url = "https://files.pythonhosted.org/packages/34/75/51952c7b2d3873b44a0028b1bd26a25078c18f92f256608e8d1dc61b39fd/marshmallow-3.26.1-py3-none-any.whl", hash = "sha256:3350409f20a70a7e4e11a27661187b77cdcaeb20abca41c1454fe33636bea09c", size = 50878, upload-time = "2025-02-03T15:32:22.295Z" },
1257
  ]
1258
 
1259
- [[package]]
1260
- name = "mccabe"
1261
- version = "0.7.0"
1262
- source = { registry = "https://pypi.org/simple" }
1263
- sdist = { url = "https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", size = 9658, upload-time = "2022-01-24T01:14:51.113Z" }
1264
- wheels = [
1265
- { url = "https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e", size = 7350, upload-time = "2022-01-24T01:14:49.62Z" },
1266
- ]
1267
-
1268
  [[package]]
1269
  name = "mdurl"
1270
  version = "0.1.2"
@@ -1274,18 +1078,6 @@ wheels = [
1274
  { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" },
1275
  ]
1276
 
1277
- [[package]]
1278
- name = "memory-profiler"
1279
- version = "0.61.0"
1280
- source = { registry = "https://pypi.org/simple" }
1281
- dependencies = [
1282
- { name = "psutil" },
1283
- ]
1284
- sdist = { url = "https://files.pythonhosted.org/packages/b2/88/e1907e1ca3488f2d9507ca8b0ae1add7b1cd5d3ca2bc8e5b329382ea2c7b/memory_profiler-0.61.0.tar.gz", hash = "sha256:4e5b73d7864a1d1292fb76a03e82a3e78ef934d06828a698d9dada76da2067b0", size = 35935, upload-time = "2022-11-15T17:57:28.994Z" }
1285
- wheels = [
1286
- { url = "https://files.pythonhosted.org/packages/49/26/aaca612a0634ceede20682e692a6c55e35a94c21ba36b807cc40fe910ae1/memory_profiler-0.61.0-py3-none-any.whl", hash = "sha256:400348e61031e3942ad4d4109d18753b2fb08c2f6fb8290671c5513a34182d84", size = 31803, upload-time = "2022-11-15T17:57:27.031Z" },
1287
- ]
1288
-
1289
  [[package]]
1290
  name = "mpmath"
1291
  version = "1.3.0"
@@ -1560,24 +1352,6 @@ wheels = [
1560
  { url = "https://files.pythonhosted.org/packages/a2/eb/86626c1bbc2edb86323022371c39aa48df6fd8b0a1647bc274577f72e90b/nvidia_nvtx_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b17e2001cc0d751a5bc2c6ec6d26ad95913324a4adb86788c944f8ce9ba441f", size = 89954, upload-time = "2025-03-07T01:42:44.131Z" },
1561
  ]
1562
 
1563
- [[package]]
1564
- name = "optuna"
1565
- version = "4.5.0"
1566
- source = { registry = "https://pypi.org/simple" }
1567
- dependencies = [
1568
- { name = "alembic" },
1569
- { name = "colorlog" },
1570
- { name = "numpy" },
1571
- { name = "packaging" },
1572
- { name = "pyyaml" },
1573
- { name = "sqlalchemy" },
1574
- { name = "tqdm" },
1575
- ]
1576
- sdist = { url = "https://files.pythonhosted.org/packages/53/a3/bcd1e5500de6ec794c085a277e5b624e60b4fac1790681d7cdbde25b93a2/optuna-4.5.0.tar.gz", hash = "sha256:264844da16dad744dea295057d8bc218646129c47567d52c35a201d9f99942ba", size = 472338, upload-time = "2025-08-18T06:49:22.402Z" }
1577
- wheels = [
1578
- { url = "https://files.pythonhosted.org/packages/7f/12/cba81286cbaf0f0c3f0473846cfd992cb240bdcea816bf2ef7de8ed0f744/optuna-4.5.0-py3-none-any.whl", hash = "sha256:5b8a783e84e448b0742501bc27195344a28d2c77bd2feef5b558544d954851b0", size = 400872, upload-time = "2025-08-18T06:49:20.697Z" },
1579
- ]
1580
-
1581
  [[package]]
1582
  name = "orjson"
1583
  version = "3.11.3"
@@ -1719,25 +1493,6 @@ wheels = [
1719
  { url = "https://files.pythonhosted.org/packages/89/c7/5572fa4a3f45740eaab6ae86fcdf7195b55beac1371ac8c619d880cfe948/pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa", size = 2512835, upload-time = "2025-07-01T09:15:50.399Z" },
1720
  ]
1721
 
1722
- [[package]]
1723
- name = "playwright"
1724
- version = "1.55.0"
1725
- source = { registry = "https://pypi.org/simple" }
1726
- dependencies = [
1727
- { name = "greenlet" },
1728
- { name = "pyee" },
1729
- ]
1730
- wheels = [
1731
- { url = "https://files.pythonhosted.org/packages/80/3a/c81ff76df266c62e24f19718df9c168f49af93cabdbc4608ae29656a9986/playwright-1.55.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:d7da108a95001e412effca4f7610de79da1637ccdf670b1ae3fdc08b9694c034", size = 40428109, upload-time = "2025-08-28T15:46:20.357Z" },
1732
- { url = "https://files.pythonhosted.org/packages/cf/f5/bdb61553b20e907196a38d864602a9b4a461660c3a111c67a35179b636fa/playwright-1.55.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:8290cf27a5d542e2682ac274da423941f879d07b001f6575a5a3a257b1d4ba1c", size = 38687254, upload-time = "2025-08-28T15:46:23.925Z" },
1733
- { url = "https://files.pythonhosted.org/packages/4a/64/48b2837ef396487807e5ab53c76465747e34c7143fac4a084ef349c293a8/playwright-1.55.0-py3-none-macosx_11_0_universal2.whl", hash = "sha256:25b0d6b3fd991c315cca33c802cf617d52980108ab8431e3e1d37b5de755c10e", size = 40428108, upload-time = "2025-08-28T15:46:27.119Z" },
1734
- { url = "https://files.pythonhosted.org/packages/08/33/858312628aa16a6de97839adc2ca28031ebc5391f96b6fb8fdf1fcb15d6c/playwright-1.55.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:c6d4d8f6f8c66c483b0835569c7f0caa03230820af8e500c181c93509c92d831", size = 45905643, upload-time = "2025-08-28T15:46:30.312Z" },
1735
- { url = "https://files.pythonhosted.org/packages/83/83/b8d06a5b5721931aa6d5916b83168e28bd891f38ff56fe92af7bdee9860f/playwright-1.55.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29a0777c4ce1273acf90c87e4ae2fe0130182100d99bcd2ae5bf486093044838", size = 45296647, upload-time = "2025-08-28T15:46:33.221Z" },
1736
- { url = "https://files.pythonhosted.org/packages/06/2e/9db64518aebcb3d6ef6cd6d4d01da741aff912c3f0314dadb61226c6a96a/playwright-1.55.0-py3-none-win32.whl", hash = "sha256:29e6d1558ad9d5b5c19cbec0a72f6a2e35e6353cd9f262e22148685b86759f90", size = 35476046, upload-time = "2025-08-28T15:46:36.184Z" },
1737
- { url = "https://files.pythonhosted.org/packages/46/4f/9ba607fa94bb9cee3d4beb1c7b32c16efbfc9d69d5037fa85d10cafc618b/playwright-1.55.0-py3-none-win_amd64.whl", hash = "sha256:7eb5956473ca1951abb51537e6a0da55257bb2e25fc37c2b75af094a5c93736c", size = 35476048, upload-time = "2025-08-28T15:46:38.867Z" },
1738
- { url = "https://files.pythonhosted.org/packages/21/98/5ca173c8ec906abde26c28e1ecb34887343fd71cc4136261b90036841323/playwright-1.55.0-py3-none-win_arm64.whl", hash = "sha256:012dc89ccdcbd774cdde8aeee14c08e0dd52ddb9135bf10e9db040527386bd76", size = 31225543, upload-time = "2025-08-28T15:46:41.613Z" },
1739
- ]
1740
-
1741
  [[package]]
1742
  name = "plotly"
1743
  version = "6.3.0"
@@ -1751,15 +1506,6 @@ wheels = [
1751
  { url = "https://files.pythonhosted.org/packages/95/a9/12e2dc726ba1ba775a2c6922d5d5b4488ad60bdab0888c337c194c8e6de8/plotly-6.3.0-py3-none-any.whl", hash = "sha256:7ad806edce9d3cdd882eaebaf97c0c9e252043ed1ed3d382c3e3520ec07806d4", size = 9791257, upload-time = "2025-08-12T20:22:09.205Z" },
1752
  ]
1753
 
1754
- [[package]]
1755
- name = "pluggy"
1756
- version = "1.6.0"
1757
- source = { registry = "https://pypi.org/simple" }
1758
- sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" }
1759
- wheels = [
1760
- { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" },
1761
- ]
1762
-
1763
  [[package]]
1764
  name = "preshed"
1765
  version = "3.0.10"
@@ -1871,15 +1617,6 @@ wheels = [
1871
  { url = "https://files.pythonhosted.org/packages/e5/4e/519c1bc1876625fe6b71e9a28287c43ec2f20f73c658b9ae1d485c0c206e/pyarrow-21.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:222c39e2c70113543982c6b34f3077962b44fca38c0bd9e68bb6781534425c10", size = 26371006, upload-time = "2025-07-18T00:56:56.379Z" },
1872
  ]
1873
 
1874
- [[package]]
1875
- name = "pycodestyle"
1876
- version = "2.14.0"
1877
- source = { registry = "https://pypi.org/simple" }
1878
- sdist = { url = "https://files.pythonhosted.org/packages/11/e0/abfd2a0d2efe47670df87f3e3a0e2edda42f055053c85361f19c0e2c1ca8/pycodestyle-2.14.0.tar.gz", hash = "sha256:c4b5b517d278089ff9d0abdec919cd97262a3367449ea1c8b49b91529167b783", size = 39472, upload-time = "2025-06-20T18:49:48.75Z" }
1879
- wheels = [
1880
- { url = "https://files.pythonhosted.org/packages/d7/27/a58ddaf8c588a3ef080db9d0b7e0b97215cee3a45df74f3a94dbbf5c893a/pycodestyle-2.14.0-py2.py3-none-any.whl", hash = "sha256:dd6bf7cb4ee77f8e016f9c8e74a35ddd9f67e1d5fd4184d86c3b98e07099f42d", size = 31594, upload-time = "2025-06-20T18:49:47.491Z" },
1881
- ]
1882
-
1883
  [[package]]
1884
  name = "pydantic"
1885
  version = "2.11.7"
@@ -1950,27 +1687,6 @@ wheels = [
1950
  { url = "https://files.pythonhosted.org/packages/ab/4c/b888e6cf58bd9db9c93f40d1c6be8283ff49d88919231afe93a6bcf61626/pydeck-0.9.1-py2.py3-none-any.whl", hash = "sha256:b3f75ba0d273fc917094fa61224f3f6076ca8752b93d46faf3bcfd9f9d59b038", size = 6900403, upload-time = "2024-05-10T15:36:17.36Z" },
1951
  ]
1952
 
1953
- [[package]]
1954
- name = "pyee"
1955
- version = "13.0.0"
1956
- source = { registry = "https://pypi.org/simple" }
1957
- dependencies = [
1958
- { name = "typing-extensions" },
1959
- ]
1960
- sdist = { url = "https://files.pythonhosted.org/packages/95/03/1fd98d5841cd7964a27d729ccf2199602fe05eb7a405c1462eb7277945ed/pyee-13.0.0.tar.gz", hash = "sha256:b391e3c5a434d1f5118a25615001dbc8f669cf410ab67d04c4d4e07c55481c37", size = 31250, upload-time = "2025-03-17T18:53:15.955Z" }
1961
- wheels = [
1962
- { url = "https://files.pythonhosted.org/packages/9b/4d/b9add7c84060d4c1906abe9a7e5359f2a60f7a9a4f67268b2766673427d8/pyee-13.0.0-py3-none-any.whl", hash = "sha256:48195a3cddb3b1515ce0695ed76036b5ccc2ef3a9f963ff9f77aec0139845498", size = 15730, upload-time = "2025-03-17T18:53:14.532Z" },
1963
- ]
1964
-
1965
- [[package]]
1966
- name = "pyflakes"
1967
- version = "3.4.0"
1968
- source = { registry = "https://pypi.org/simple" }
1969
- sdist = { url = "https://files.pythonhosted.org/packages/45/dc/fd034dc20b4b264b3d015808458391acbf9df40b1e54750ef175d39180b1/pyflakes-3.4.0.tar.gz", hash = "sha256:b24f96fafb7d2ab0ec5075b7350b3d2d2218eab42003821c06344973d3ea2f58", size = 64669, upload-time = "2025-06-20T18:45:27.834Z" }
1970
- wheels = [
1971
- { url = "https://files.pythonhosted.org/packages/c2/2f/81d580a0fb83baeb066698975cb14a618bdbed7720678566f1b046a95fe8/pyflakes-3.4.0-py2.py3-none-any.whl", hash = "sha256:f742a7dbd0d9cb9ea41e9a24a918996e8170c799fa528688d40dd582c8265f4f", size = 63551, upload-time = "2025-06-20T18:45:26.937Z" },
1972
- ]
1973
-
1974
  [[package]]
1975
  name = "pygments"
1976
  version = "2.19.2"
@@ -2004,101 +1720,6 @@ wheels = [
2004
  { url = "https://files.pythonhosted.org/packages/2c/83/2cacc506eb322bb31b747bc06ccb82cc9aa03e19ee9c1245e538e49d52be/pypdf-6.0.0-py3-none-any.whl", hash = "sha256:56ea60100ce9f11fc3eec4f359da15e9aec3821b036c1f06d2b660d35683abb8", size = 310465, upload-time = "2025-08-11T14:22:00.481Z" },
2005
  ]
2006
 
2007
- [[package]]
2008
- name = "pytest"
2009
- version = "8.4.2"
2010
- source = { registry = "https://pypi.org/simple" }
2011
- dependencies = [
2012
- { name = "colorama", marker = "sys_platform == 'win32'" },
2013
- { name = "iniconfig" },
2014
- { name = "packaging" },
2015
- { name = "pluggy" },
2016
- { name = "pygments" },
2017
- ]
2018
- sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618, upload-time = "2025-09-04T14:34:22.711Z" }
2019
- wheels = [
2020
- { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365750, upload-time = "2025-09-04T14:34:20.226Z" },
2021
- ]
2022
-
2023
- [[package]]
2024
- name = "pytest-asyncio"
2025
- version = "1.1.0"
2026
- source = { registry = "https://pypi.org/simple" }
2027
- dependencies = [
2028
- { name = "pytest" },
2029
- ]
2030
- sdist = { url = "https://files.pythonhosted.org/packages/4e/51/f8794af39eeb870e87a8c8068642fc07bce0c854d6865d7dd0f2a9d338c2/pytest_asyncio-1.1.0.tar.gz", hash = "sha256:796aa822981e01b68c12e4827b8697108f7205020f24b5793b3c41555dab68ea", size = 46652, upload-time = "2025-07-16T04:29:26.393Z" }
2031
- wheels = [
2032
- { url = "https://files.pythonhosted.org/packages/c7/9d/bf86eddabf8c6c9cb1ea9a869d6873b46f105a5d292d3a6f7071f5b07935/pytest_asyncio-1.1.0-py3-none-any.whl", hash = "sha256:5fe2d69607b0bd75c656d1211f969cadba035030156745ee09e7d71740e58ecf", size = 15157, upload-time = "2025-07-16T04:29:24.929Z" },
2033
- ]
2034
-
2035
- [[package]]
2036
- name = "pytest-base-url"
2037
- version = "2.1.0"
2038
- source = { registry = "https://pypi.org/simple" }
2039
- dependencies = [
2040
- { name = "pytest" },
2041
- { name = "requests" },
2042
- ]
2043
- sdist = { url = "https://files.pythonhosted.org/packages/ae/1a/b64ac368de6b993135cb70ca4e5d958a5c268094a3a2a4cac6f0021b6c4f/pytest_base_url-2.1.0.tar.gz", hash = "sha256:02748589a54f9e63fcbe62301d6b0496da0d10231b753e950c63e03aee745d45", size = 6702, upload-time = "2024-01-31T22:43:00.81Z" }
2044
- wheels = [
2045
- { url = "https://files.pythonhosted.org/packages/98/1c/b00940ab9eb8ede7897443b771987f2f4a76f06be02f1b3f01eb7567e24a/pytest_base_url-2.1.0-py3-none-any.whl", hash = "sha256:3ad15611778764d451927b2a53240c1a7a591b521ea44cebfe45849d2d2812e6", size = 5302, upload-time = "2024-01-31T22:42:58.897Z" },
2046
- ]
2047
-
2048
- [[package]]
2049
- name = "pytest-cov"
2050
- version = "6.2.1"
2051
- source = { registry = "https://pypi.org/simple" }
2052
- dependencies = [
2053
- { name = "coverage" },
2054
- { name = "pluggy" },
2055
- { name = "pytest" },
2056
- ]
2057
- sdist = { url = "https://files.pythonhosted.org/packages/18/99/668cade231f434aaa59bbfbf49469068d2ddd945000621d3d165d2e7dd7b/pytest_cov-6.2.1.tar.gz", hash = "sha256:25cc6cc0a5358204b8108ecedc51a9b57b34cc6b8c967cc2c01a4e00d8a67da2", size = 69432, upload-time = "2025-06-12T10:47:47.684Z" }
2058
- wheels = [
2059
- { url = "https://files.pythonhosted.org/packages/bc/16/4ea354101abb1287856baa4af2732be351c7bee728065aed451b678153fd/pytest_cov-6.2.1-py3-none-any.whl", hash = "sha256:f5bc4c23f42f1cdd23c70b1dab1bbaef4fc505ba950d53e0081d0730dd7e86d5", size = 24644, upload-time = "2025-06-12T10:47:45.932Z" },
2060
- ]
2061
-
2062
- [[package]]
2063
- name = "pytest-mock"
2064
- version = "3.15.0"
2065
- source = { registry = "https://pypi.org/simple" }
2066
- dependencies = [
2067
- { name = "pytest" },
2068
- ]
2069
- sdist = { url = "https://files.pythonhosted.org/packages/61/99/3323ee5c16b3637b4d941c362182d3e749c11e400bea31018c42219f3a98/pytest_mock-3.15.0.tar.gz", hash = "sha256:ab896bd190316b9d5d87b277569dfcdf718b2d049a2ccff5f7aca279c002a1cf", size = 33838, upload-time = "2025-09-04T20:57:48.679Z" }
2070
- wheels = [
2071
- { url = "https://files.pythonhosted.org/packages/2b/b3/7fefc43fb706380144bcd293cc6e446e6f637ddfa8b83f48d1734156b529/pytest_mock-3.15.0-py3-none-any.whl", hash = "sha256:ef2219485fb1bd256b00e7ad7466ce26729b30eadfc7cbcdb4fa9a92ca68db6f", size = 10050, upload-time = "2025-09-04T20:57:47.274Z" },
2072
- ]
2073
-
2074
- [[package]]
2075
- name = "pytest-playwright"
2076
- version = "0.7.1"
2077
- source = { registry = "https://pypi.org/simple" }
2078
- dependencies = [
2079
- { name = "playwright" },
2080
- { name = "pytest" },
2081
- { name = "pytest-base-url" },
2082
- { name = "python-slugify" },
2083
- ]
2084
- sdist = { url = "https://files.pythonhosted.org/packages/a0/1e/9771990bad2b59d37728c4b6f28c234b3badbb2494bd72d54a6e2a988e23/pytest_playwright-0.7.1.tar.gz", hash = "sha256:94b551b2677ecdc16284fcd6a4f0045eafda47a60e74410f3fe4d8260e12cabf", size = 16769, upload-time = "2025-09-08T08:10:53.765Z" }
2085
- wheels = [
2086
- { url = "https://files.pythonhosted.org/packages/dd/59/373da90ce6a1a46ca6a449bf16cea11a3c6e269814eb60e7668526350b95/pytest_playwright-0.7.1-py3-none-any.whl", hash = "sha256:fcc46510fb75f8eba6df3bc8e84e4e902483d92be98075f20b9d160651a36d90", size = 16754, upload-time = "2025-09-08T08:10:55.92Z" },
2087
- ]
2088
-
2089
- [[package]]
2090
- name = "pytest-xdist"
2091
- version = "3.8.0"
2092
- source = { registry = "https://pypi.org/simple" }
2093
- dependencies = [
2094
- { name = "execnet" },
2095
- { name = "pytest" },
2096
- ]
2097
- sdist = { url = "https://files.pythonhosted.org/packages/78/b4/439b179d1ff526791eb921115fca8e44e596a13efeda518b9d845a619450/pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1", size = 88069, upload-time = "2025-07-01T13:30:59.346Z" }
2098
- wheels = [
2099
- { url = "https://files.pythonhosted.org/packages/ca/31/d4e37e9e550c2b92a9cbc2e4d0b7420a27224968580b5a447f420847c975/pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88", size = 46396, upload-time = "2025-07-01T13:30:56.632Z" },
2100
- ]
2101
-
2102
  [[package]]
2103
  name = "python-dateutil"
2104
  version = "2.9.0.post0"
@@ -2120,18 +1741,6 @@ wheels = [
2120
  { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556, upload-time = "2025-06-24T04:21:06.073Z" },
2121
  ]
2122
 
2123
- [[package]]
2124
- name = "python-slugify"
2125
- version = "8.0.4"
2126
- source = { registry = "https://pypi.org/simple" }
2127
- dependencies = [
2128
- { name = "text-unidecode" },
2129
- ]
2130
- sdist = { url = "https://files.pythonhosted.org/packages/87/c7/5e1547c44e31da50a460df93af11a535ace568ef89d7a811069ead340c4a/python-slugify-8.0.4.tar.gz", hash = "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856", size = 10921, upload-time = "2024-02-08T18:32:45.488Z" }
2131
- wheels = [
2132
- { url = "https://files.pythonhosted.org/packages/a4/62/02da182e544a51a5c3ccf4b03ab79df279f9c60c5e82d5e8bec7ca26ac11/python_slugify-8.0.4-py2.py3-none-any.whl", hash = "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8", size = 10051, upload-time = "2024-02-08T18:32:43.911Z" },
2133
- ]
2134
-
2135
  [[package]]
2136
  name = "pytz"
2137
  version = "2025.2"
@@ -2658,15 +2267,6 @@ wheels = [
2658
  { url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248, upload-time = "2025-04-02T08:25:07.678Z" },
2659
  ]
2660
 
2661
- [[package]]
2662
- name = "text-unidecode"
2663
- version = "1.3"
2664
- source = { registry = "https://pypi.org/simple" }
2665
- sdist = { url = "https://files.pythonhosted.org/packages/ab/e2/e9a00f0ccb71718418230718b3d900e71a5d16e701a3dae079a21e9cd8f8/text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93", size = 76885, upload-time = "2019-08-30T21:36:45.405Z" }
2666
- wheels = [
2667
- { url = "https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8", size = 78154, upload-time = "2019-08-30T21:37:03.543Z" },
2668
- ]
2669
-
2670
  [[package]]
2671
  name = "thinc"
2672
  version = "8.3.6"
 
2
  revision = 3
3
  requires-python = ">=3.13"
4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  [[package]]
6
  name = "aiohappyeyeballs"
7
  version = "2.6.1"
 
57
  { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" },
58
  ]
59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  [[package]]
61
  name = "altair"
62
  version = "5.5.0"
 
122
  { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload-time = "2025-03-13T11:10:21.14Z" },
123
  ]
124
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  [[package]]
126
  name = "backoff"
127
  version = "2.2.1"
 
264
  { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
265
  ]
266
 
 
 
 
 
 
 
 
 
 
 
 
 
267
  [[package]]
268
  name = "confection"
269
  version = "0.1.5"
 
286
  { url = "https://files.pythonhosted.org/packages/18/64/8f26d84f18c4d421cc7ca8f4b1dfd080ae14ba15a627277fbd63c11d652e/conllu-6.0.0-py3-none-any.whl", hash = "sha256:c47206a0912f768bfae429d3d3c2c7f5ed068babd2502663e865cfb21532cbcc", size = 16782, upload-time = "2024-10-13T21:44:52.254Z" },
287
  ]
288
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
289
  [[package]]
290
  name = "cymem"
291
  version = "2.0.11"
 
315
  ]
316
 
317
  [[package]]
318
+ name = "dd-poc-spaces"
319
  version = "0.1.0"
320
+ source = { virtual = "." }
321
  dependencies = [
 
322
  { name = "backoff" },
323
  { name = "blackstone" },
324
  { name = "diskcache" },
 
333
  { name = "langchain-huggingface" },
334
  { name = "langchain-text-splitters" },
335
  { name = "langgraph" },
 
336
  { name = "networkx" },
337
  { name = "numpy" },
 
338
  { name = "plotly" },
339
  { name = "psutil" },
340
  { name = "pydantic" },
341
  { name = "pydantic-settings" },
342
  { name = "pymupdf" },
343
  { name = "pypdf" },
 
344
  { name = "python-dotenv" },
345
  { name = "rank-bm25" },
346
  { name = "scikit-learn" },
 
355
  { name = "yake" },
356
  ]
357
 
 
 
 
 
 
 
 
 
 
 
 
 
 
358
  [package.metadata]
359
  requires-dist = [
 
360
  { name = "backoff", specifier = ">=2.2.0" },
361
  { name = "blackstone", specifier = ">=0.1.14" },
362
  { name = "diskcache", specifier = ">=5.6.0" },
 
371
  { name = "langchain-huggingface", specifier = "==0.3.1" },
372
  { name = "langchain-text-splitters", specifier = "==0.3.11" },
373
  { name = "langgraph", specifier = "==0.6.6" },
 
374
  { name = "networkx", specifier = ">=3.5" },
375
  { name = "numpy", specifier = "==2.3.2" },
 
376
  { name = "plotly", specifier = ">=6.3.0" },
377
  { name = "psutil", specifier = ">=5.9.0" },
378
  { name = "pydantic", specifier = ">=2.11.7" },
379
  { name = "pydantic-settings", specifier = ">=2.10.1,<3.0.0" },
380
  { name = "pymupdf", specifier = "==1.24.14" },
381
  { name = "pypdf", specifier = ">=6.0.0" },
 
382
  { name = "python-dotenv", specifier = "==1.1.1" },
383
  { name = "rank-bm25", specifier = ">=0.2.2" },
384
  { name = "scikit-learn", specifier = ">=1.7.1" },
 
393
  { name = "yake", specifier = ">=0.6.0" },
394
  ]
395
 
 
 
 
 
 
 
 
 
 
 
 
 
 
396
  [[package]]
397
  name = "diskcache"
398
  version = "5.6.3"
 
411
  { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" },
412
  ]
413
 
 
 
 
 
 
 
 
 
 
414
  [[package]]
415
  name = "faiss-cpu"
416
  version = "1.12.0"
 
456
  { url = "https://files.pythonhosted.org/packages/42/14/42b2651a2f46b022ccd948bca9f2d5af0fd8929c4eec235b8d6d844fbe67/filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d", size = 15988, upload-time = "2025-08-14T16:56:01.633Z" },
457
  ]
458
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
459
  [[package]]
460
  name = "frozenlist"
461
  version = "1.7.0"
 
657
  { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" },
658
  ]
659
 
 
 
 
 
 
 
 
 
 
660
  [[package]]
661
  name = "jellyfish"
662
  version = "1.2.0"
 
977
  { url = "https://files.pythonhosted.org/packages/5d/e9/5a5ffd9b286db82be70d677d0a91e4d58f7912bb8dd026ddeeb4abe70679/language_data-1.3.0-py3-none-any.whl", hash = "sha256:e2ee943551b5ae5f89cd0e801d1fc3835bb0ef5b7e9c3a4e8e17b2b214548fbf", size = 5385760, upload-time = "2024-11-19T10:21:36.005Z" },
978
  ]
979
 
 
 
 
 
 
 
 
 
 
 
 
 
980
  [[package]]
981
  name = "marisa-trie"
982
  version = "1.3.1"
 
1069
  { url = "https://files.pythonhosted.org/packages/34/75/51952c7b2d3873b44a0028b1bd26a25078c18f92f256608e8d1dc61b39fd/marshmallow-3.26.1-py3-none-any.whl", hash = "sha256:3350409f20a70a7e4e11a27661187b77cdcaeb20abca41c1454fe33636bea09c", size = 50878, upload-time = "2025-02-03T15:32:22.295Z" },
1070
  ]
1071
 
 
 
 
 
 
 
 
 
 
1072
  [[package]]
1073
  name = "mdurl"
1074
  version = "0.1.2"
 
1078
  { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" },
1079
  ]
1080
 
 
 
 
 
 
 
 
 
 
 
 
 
1081
  [[package]]
1082
  name = "mpmath"
1083
  version = "1.3.0"
 
1352
  { url = "https://files.pythonhosted.org/packages/a2/eb/86626c1bbc2edb86323022371c39aa48df6fd8b0a1647bc274577f72e90b/nvidia_nvtx_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b17e2001cc0d751a5bc2c6ec6d26ad95913324a4adb86788c944f8ce9ba441f", size = 89954, upload-time = "2025-03-07T01:42:44.131Z" },
1353
  ]
1354
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1355
  [[package]]
1356
  name = "orjson"
1357
  version = "3.11.3"
 
1493
  { url = "https://files.pythonhosted.org/packages/89/c7/5572fa4a3f45740eaab6ae86fcdf7195b55beac1371ac8c619d880cfe948/pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa", size = 2512835, upload-time = "2025-07-01T09:15:50.399Z" },
1494
  ]
1495
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1496
  [[package]]
1497
  name = "plotly"
1498
  version = "6.3.0"
 
1506
  { url = "https://files.pythonhosted.org/packages/95/a9/12e2dc726ba1ba775a2c6922d5d5b4488ad60bdab0888c337c194c8e6de8/plotly-6.3.0-py3-none-any.whl", hash = "sha256:7ad806edce9d3cdd882eaebaf97c0c9e252043ed1ed3d382c3e3520ec07806d4", size = 9791257, upload-time = "2025-08-12T20:22:09.205Z" },
1507
  ]
1508
 
 
 
 
 
 
 
 
 
 
1509
  [[package]]
1510
  name = "preshed"
1511
  version = "3.0.10"
 
1617
  { url = "https://files.pythonhosted.org/packages/e5/4e/519c1bc1876625fe6b71e9a28287c43ec2f20f73c658b9ae1d485c0c206e/pyarrow-21.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:222c39e2c70113543982c6b34f3077962b44fca38c0bd9e68bb6781534425c10", size = 26371006, upload-time = "2025-07-18T00:56:56.379Z" },
1618
  ]
1619
 
 
 
 
 
 
 
 
 
 
1620
  [[package]]
1621
  name = "pydantic"
1622
  version = "2.11.7"
 
1687
  { url = "https://files.pythonhosted.org/packages/ab/4c/b888e6cf58bd9db9c93f40d1c6be8283ff49d88919231afe93a6bcf61626/pydeck-0.9.1-py2.py3-none-any.whl", hash = "sha256:b3f75ba0d273fc917094fa61224f3f6076ca8752b93d46faf3bcfd9f9d59b038", size = 6900403, upload-time = "2024-05-10T15:36:17.36Z" },
1688
  ]
1689
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1690
  [[package]]
1691
  name = "pygments"
1692
  version = "2.19.2"
 
1720
  { url = "https://files.pythonhosted.org/packages/2c/83/2cacc506eb322bb31b747bc06ccb82cc9aa03e19ee9c1245e538e49d52be/pypdf-6.0.0-py3-none-any.whl", hash = "sha256:56ea60100ce9f11fc3eec4f359da15e9aec3821b036c1f06d2b660d35683abb8", size = 310465, upload-time = "2025-08-11T14:22:00.481Z" },
1721
  ]
1722
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1723
  [[package]]
1724
  name = "python-dateutil"
1725
  version = "2.9.0.post0"
 
1741
  { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556, upload-time = "2025-06-24T04:21:06.073Z" },
1742
  ]
1743
 
 
 
 
 
 
 
 
 
 
 
 
 
1744
  [[package]]
1745
  name = "pytz"
1746
  version = "2025.2"
 
2267
  { url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248, upload-time = "2025-04-02T08:25:07.678Z" },
2268
  ]
2269
 
 
 
 
 
 
 
 
 
 
2270
  [[package]]
2271
  name = "thinc"
2272
  version = "8.3.6"