Spaces:
Sleeping
Sleeping
tidy: ruff autofixes
Browse files- TODO.md +1 -2
- app.py +9 -18
- pstuts_rag/pstuts_rag/datastore.py +9 -15
- pstuts_rag/pstuts_rag/evaluator_utils.py +9 -12
- pstuts_rag/pstuts_rag/nodes.py +11 -16
- pstuts_rag/pstuts_rag/rag_for_transcripts.py +7 -16
- pstuts_rag/pstuts_rag/state.py +4 -4
- pstuts_rag/pstuts_rag/utils.py +8 -19
- pyproject.toml +6 -11
- uv.lock +2 -73
TODO.md
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
# π TODOs in Codebase
|
2 |
|
3 |
-
- `./app.py:
|
4 |
-
- `./app.py:254:# TODO: This should be fixed - new comment`
|
5 |
|
6 |
Keep up the great work! π
|
|
|
1 |
# π TODOs in Codebase
|
2 |
|
3 |
+
- `./app.py:245:# TODO: Clean up imports.`
|
|
|
4 |
|
5 |
Keep up the great work! π
|
app.py
CHANGED
@@ -1,26 +1,22 @@
|
|
1 |
-
from pstuts_rag.configuration import Configuration
|
2 |
import asyncio
|
3 |
-
|
4 |
import signal
|
|
|
5 |
from datetime import datetime
|
|
|
|
|
6 |
|
7 |
import chainlit as cl
|
|
|
|
|
8 |
from dotenv import load_dotenv
|
9 |
-
|
10 |
-
from langgraph.checkpoint.memory import MemorySaver
|
11 |
-
|
12 |
from langchain_core.runnables import Runnable
|
|
|
13 |
|
|
|
14 |
from pstuts_rag.datastore import Datastore
|
15 |
from pstuts_rag.nodes import FinalAnswer, TutorialState, initialize
|
16 |
-
|
17 |
-
import nest_asyncio
|
18 |
-
from uuid import uuid4
|
19 |
-
|
20 |
-
import logging
|
21 |
-
|
22 |
from pstuts_rag.utils import get_unique
|
23 |
-
import httpx
|
24 |
|
25 |
# Track the single active session
|
26 |
active_session = {"id": None, "timestamp": None}
|
@@ -113,7 +109,7 @@ def format_video_reference(doc: Document):
|
|
113 |
display="side",
|
114 |
)
|
115 |
video_message = cl.Message(
|
116 |
-
content=f
|
117 |
elements=[video_link],
|
118 |
)
|
119 |
|
@@ -246,14 +242,9 @@ class ChainlitCallbackHandler(BaseCallbackHandler):
|
|
246 |
print(f"Error in on_chain_error: {e}")
|
247 |
|
248 |
|
249 |
-
import time
|
250 |
-
|
251 |
# TODO: Clean up imports.
|
252 |
|
253 |
|
254 |
-
# TODO: This should be fixed - new comment
|
255 |
-
|
256 |
-
|
257 |
@cl.on_message
|
258 |
async def main(input_message: cl.Message):
|
259 |
"""
|
|
|
|
|
1 |
import asyncio
|
2 |
+
import logging
|
3 |
import signal
|
4 |
+
import time
|
5 |
from datetime import datetime
|
6 |
+
from typing import cast
|
7 |
+
from uuid import uuid4
|
8 |
|
9 |
import chainlit as cl
|
10 |
+
import httpx
|
11 |
+
import nest_asyncio
|
12 |
from dotenv import load_dotenv
|
|
|
|
|
|
|
13 |
from langchain_core.runnables import Runnable
|
14 |
+
from langgraph.checkpoint.memory import MemorySaver
|
15 |
|
16 |
+
from pstuts_rag.configuration import Configuration
|
17 |
from pstuts_rag.datastore import Datastore
|
18 |
from pstuts_rag.nodes import FinalAnswer, TutorialState, initialize
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
from pstuts_rag.utils import get_unique
|
|
|
20 |
|
21 |
# Track the single active session
|
22 |
active_session = {"id": None, "timestamp": None}
|
|
|
109 |
display="side",
|
110 |
)
|
111 |
video_message = cl.Message(
|
112 |
+
content=f"πΌ Watch {video_link.name} (_@ {v['start_min']}_)", # text has to include video name
|
113 |
elements=[video_link],
|
114 |
)
|
115 |
|
|
|
242 |
print(f"Error in on_chain_error: {e}")
|
243 |
|
244 |
|
|
|
|
|
245 |
# TODO: Clean up imports.
|
246 |
|
247 |
|
|
|
|
|
|
|
248 |
@cl.on_message
|
249 |
async def main(input_message: cl.Message):
|
250 |
"""
|
pstuts_rag/pstuts_rag/datastore.py
CHANGED
@@ -1,32 +1,26 @@
|
|
1 |
import asyncio
|
2 |
import atexit
|
3 |
-
import json
|
4 |
import glob
|
5 |
-
import
|
6 |
-
from pathlib import Path
|
7 |
-
from typing import List, Dict, Iterator, Any, Callable, Optional, Self
|
8 |
-
import uuid
|
9 |
import logging
|
10 |
import threading
|
|
|
|
|
11 |
|
|
|
12 |
import chainlit as cl
|
13 |
-
from langchain_core.document_loaders import BaseLoader
|
14 |
-
from langchain_experimental.text_splitter import SemanticChunker
|
15 |
-
from langchain_huggingface import HuggingFaceEmbeddings
|
16 |
-
from langchain_openai.embeddings import OpenAIEmbeddings
|
17 |
-
from langchain_ollama.embeddings import OllamaEmbeddings
|
18 |
from langchain_core.documents import Document
|
19 |
from langchain_core.embeddings import Embeddings
|
20 |
-
|
21 |
from langchain_core.vectorstores import VectorStoreRetriever
|
22 |
-
|
23 |
from langchain_qdrant import QdrantVectorStore
|
24 |
-
from
|
25 |
from qdrant_client import QdrantClient
|
26 |
from qdrant_client.http.models import Distance, VectorParams
|
27 |
from qdrant_client.models import PointStruct
|
28 |
-
|
29 |
-
from
|
|
|
30 |
|
31 |
|
32 |
class QdrantClientSingleton:
|
|
|
1 |
import asyncio
|
2 |
import atexit
|
|
|
3 |
import glob
|
4 |
+
import json
|
|
|
|
|
|
|
5 |
import logging
|
6 |
import threading
|
7 |
+
from pathlib import Path
|
8 |
+
from typing import Any, Callable, Dict, Iterator, List, Optional, Self
|
9 |
|
10 |
+
import aiofiles
|
11 |
import chainlit as cl
|
|
|
|
|
|
|
|
|
|
|
12 |
from langchain_core.documents import Document
|
13 |
from langchain_core.embeddings import Embeddings
|
|
|
14 |
from langchain_core.vectorstores import VectorStoreRetriever
|
15 |
+
from langchain_experimental.text_splitter import SemanticChunker
|
16 |
from langchain_qdrant import QdrantVectorStore
|
17 |
+
from pathvalidate import sanitize_filename, sanitize_filepath
|
18 |
from qdrant_client import QdrantClient
|
19 |
from qdrant_client.http.models import Distance, VectorParams
|
20 |
from qdrant_client.models import PointStruct
|
21 |
+
|
22 |
+
from pstuts_rag.configuration import Configuration
|
23 |
+
from pstuts_rag.utils import batch, flatten, get_embeddings_api
|
24 |
|
25 |
|
26 |
class QdrantClientSingleton:
|
pstuts_rag/pstuts_rag/evaluator_utils.py
CHANGED
@@ -1,20 +1,17 @@
|
|
|
|
1 |
import uuid
|
2 |
-
import pandas as pd
|
3 |
-
import numpy as np
|
4 |
from functools import partial
|
5 |
-
from
|
6 |
-
|
7 |
-
from typing import Set, Tuple, Dict, List
|
8 |
-
from sklearn.model_selection import train_test_split
|
9 |
import bidict
|
10 |
-
from typing import Mapping
|
11 |
-
from itertools import chain
|
12 |
-
import asyncio
|
13 |
-
from typing import Optional
|
14 |
-
from tqdm import tqdm
|
15 |
-
from .datastore import batch
|
16 |
import numpy as np
|
|
|
|
|
|
|
17 |
from scipy.stats import norm
|
|
|
|
|
|
|
18 |
|
19 |
|
20 |
async def apply_rag_chain_inplace(
|
|
|
1 |
+
import asyncio
|
2 |
import uuid
|
|
|
|
|
3 |
from functools import partial
|
4 |
+
from typing import Dict, Mapping, Set, Tuple
|
5 |
+
|
|
|
|
|
6 |
import bidict
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
import numpy as np
|
8 |
+
import pandas as pd
|
9 |
+
from langchain_core.runnables import Runnable
|
10 |
+
from ragas import EvaluationDataset
|
11 |
from scipy.stats import norm
|
12 |
+
from sklearn.model_selection import train_test_split
|
13 |
+
|
14 |
+
from .datastore import batch
|
15 |
|
16 |
|
17 |
async def apply_rag_chain_inplace(
|
pstuts_rag/pstuts_rag/nodes.py
CHANGED
@@ -1,32 +1,27 @@
|
|
1 |
# nodes.py
|
2 |
-
from enum import Enum
|
3 |
-
from typing import Annotated, Any, Callable, Dict, Literal, Tuple, Union
|
4 |
-
import functools
|
5 |
import asyncio
|
6 |
-
import
|
7 |
import logging
|
8 |
import operator
|
9 |
-
|
10 |
-
from
|
11 |
-
from
|
|
|
|
|
12 |
from langchain_core.documents import Document
|
|
|
13 |
from langchain_core.runnables import RunnableConfig
|
14 |
-
from langchain_core.messages import HumanMessage, AIMessage, BaseMessage
|
15 |
-
from langgraph.checkpoint.memory import MemorySaver
|
16 |
-
from numpy import add
|
17 |
-
from langchain_community.tools.tavily_search import TavilySearchResults
|
18 |
from langchain_tavily import TavilyExtract
|
19 |
-
|
20 |
-
from pydantic import BaseModel, Field, HttpUrl
|
21 |
-
|
22 |
-
from langgraph.types import interrupt
|
23 |
from langgraph.checkpoint.memory import MemorySaver
|
|
|
|
|
|
|
24 |
|
25 |
-
from pstuts_rag.utils import get_chat_api, get_title_streaming
|
26 |
from pstuts_rag.configuration import Configuration
|
27 |
from pstuts_rag.datastore import Datastore
|
28 |
from pstuts_rag.prompts import NODE_PROMPTS
|
29 |
from pstuts_rag.rag_for_transcripts import create_transcript_rag_chain
|
|
|
30 |
|
31 |
|
32 |
class YesNoAsk(Enum):
|
|
|
1 |
# nodes.py
|
|
|
|
|
|
|
2 |
import asyncio
|
3 |
+
import functools
|
4 |
import logging
|
5 |
import operator
|
6 |
+
import os
|
7 |
+
from enum import Enum
|
8 |
+
from typing import Annotated, Dict, Literal, Tuple
|
9 |
+
|
10 |
+
from langchain_community.tools.tavily_search import TavilySearchResults
|
11 |
from langchain_core.documents import Document
|
12 |
+
from langchain_core.messages import AIMessage, BaseMessage, HumanMessage
|
13 |
from langchain_core.runnables import RunnableConfig
|
|
|
|
|
|
|
|
|
14 |
from langchain_tavily import TavilyExtract
|
|
|
|
|
|
|
|
|
15 |
from langgraph.checkpoint.memory import MemorySaver
|
16 |
+
from langgraph.graph import END, START, MessagesState, StateGraph
|
17 |
+
from langgraph.types import interrupt
|
18 |
+
from pydantic import BaseModel, Field, HttpUrl
|
19 |
|
|
|
20 |
from pstuts_rag.configuration import Configuration
|
21 |
from pstuts_rag.datastore import Datastore
|
22 |
from pstuts_rag.prompts import NODE_PROMPTS
|
23 |
from pstuts_rag.rag_for_transcripts import create_transcript_rag_chain
|
24 |
+
from pstuts_rag.utils import get_chat_api, get_title_streaming
|
25 |
|
26 |
|
27 |
class YesNoAsk(Enum):
|
pstuts_rag/pstuts_rag/rag_for_transcripts.py
CHANGED
@@ -1,28 +1,24 @@
|
|
1 |
-
import functools
|
2 |
import json
|
3 |
-
import asyncio
|
4 |
-
from operator import itemgetter
|
5 |
-
from typing import Any, Dict, Union, Optional, Callable
|
6 |
-
import logging
|
7 |
import re
|
|
|
|
|
8 |
|
9 |
from langchain.prompts import ChatPromptTemplate
|
10 |
from langchain_core.messages import AIMessage
|
11 |
from langchain_core.runnables import (
|
12 |
Runnable,
|
13 |
-
RunnableParallel,
|
14 |
-
RunnablePassthrough,
|
15 |
RunnableConfig,
|
16 |
RunnableLambda,
|
|
|
|
|
17 |
)
|
18 |
from langchain_openai import ChatOpenAI
|
19 |
-
|
20 |
-
from
|
|
|
21 |
|
22 |
from .datastore import Datastore
|
23 |
from .prompts import RAG_PROMPT_TEMPLATES
|
24 |
-
from pstuts_rag.utils import ChatAPISelector
|
25 |
-
from pstuts_rag.configuration import Configuration, ModelAPI
|
26 |
|
27 |
|
28 |
def post_process_response(
|
@@ -57,11 +53,6 @@ def post_process_response(
|
|
57 |
if configurable.eva_strip_think
|
58 |
else answer.content
|
59 |
)
|
60 |
-
# Only append references if the model provided a substantive answer
|
61 |
-
# if "I don't know" not in answer.content:
|
62 |
-
# text_w_references = "\n".join(
|
63 |
-
# [str(text_w_references), "**REFERENCES**", references]
|
64 |
-
# )
|
65 |
|
66 |
if "I don't know." in answer_text:
|
67 |
attachments = []
|
|
|
|
|
1 |
import json
|
|
|
|
|
|
|
|
|
2 |
import re
|
3 |
+
from operator import itemgetter
|
4 |
+
from typing import Any, Dict
|
5 |
|
6 |
from langchain.prompts import ChatPromptTemplate
|
7 |
from langchain_core.messages import AIMessage
|
8 |
from langchain_core.runnables import (
|
9 |
Runnable,
|
|
|
|
|
10 |
RunnableConfig,
|
11 |
RunnableLambda,
|
12 |
+
RunnableParallel,
|
13 |
+
RunnablePassthrough,
|
14 |
)
|
15 |
from langchain_openai import ChatOpenAI
|
16 |
+
|
17 |
+
from pstuts_rag.configuration import Configuration
|
18 |
+
from pstuts_rag.utils import ChatAPISelector
|
19 |
|
20 |
from .datastore import Datastore
|
21 |
from .prompts import RAG_PROMPT_TEMPLATES
|
|
|
|
|
22 |
|
23 |
|
24 |
def post_process_response(
|
|
|
53 |
if configurable.eva_strip_think
|
54 |
else answer.content
|
55 |
)
|
|
|
|
|
|
|
|
|
|
|
56 |
|
57 |
if "I don't know." in answer_text:
|
58 |
attachments = []
|
pstuts_rag/pstuts_rag/state.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
-
from pydantic import BaseModel, Field
|
2 |
-
from langchain_core.messages import BaseMessage
|
3 |
-
from typing import List, Optional, Tuple, Dict, Annotated
|
4 |
-
|
5 |
import operator
|
|
|
|
|
|
|
|
|
6 |
|
7 |
|
8 |
class PsTutsTeamState(BaseModel):
|
|
|
|
|
|
|
|
|
|
|
1 |
import operator
|
2 |
+
from typing import Annotated, Dict, List, Optional, Tuple
|
3 |
+
|
4 |
+
from langchain_core.messages import BaseMessage
|
5 |
+
from pydantic import BaseModel, Field
|
6 |
|
7 |
|
8 |
class PsTutsTeamState(BaseModel):
|
pstuts_rag/pstuts_rag/utils.py
CHANGED
@@ -1,27 +1,16 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
from
|
4 |
-
from langchain_openai.embeddings import OpenAIEmbeddings
|
5 |
-
|
6 |
-
from langchain_huggingface import ChatHuggingFace
|
7 |
-
from langchain_huggingface import HuggingFaceEmbeddings
|
8 |
|
|
|
|
|
|
|
9 |
from langchain_ollama import ChatOllama
|
10 |
from langchain_ollama.embeddings import OllamaEmbeddings
|
|
|
|
|
11 |
|
12 |
from pstuts_rag.configuration import ModelAPI
|
13 |
-
import logging
|
14 |
-
|
15 |
-
from contextvars import ContextVar
|
16 |
-
from functools import wraps
|
17 |
-
from typing import Callable, Optional
|
18 |
-
import time
|
19 |
-
import traceback
|
20 |
-
|
21 |
-
|
22 |
-
import requests
|
23 |
-
import re
|
24 |
-
from bs4 import BeautifulSoup
|
25 |
|
26 |
# Chat model selector dictionary
|
27 |
ChatAPISelector: Dict[
|
|
|
1 |
+
import logging
|
2 |
+
import re
|
3 |
+
from typing import Any, Dict, Iterator, List, Type
|
|
|
|
|
|
|
|
|
4 |
|
5 |
+
import requests
|
6 |
+
from bs4 import BeautifulSoup
|
7 |
+
from langchain_huggingface import ChatHuggingFace, HuggingFaceEmbeddings
|
8 |
from langchain_ollama import ChatOllama
|
9 |
from langchain_ollama.embeddings import OllamaEmbeddings
|
10 |
+
from langchain_openai import ChatOpenAI
|
11 |
+
from langchain_openai.embeddings import OpenAIEmbeddings
|
12 |
|
13 |
from pstuts_rag.configuration import ModelAPI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
# Chat model selector dictionary
|
16 |
ChatAPISelector: Dict[
|
pyproject.toml
CHANGED
@@ -53,8 +53,6 @@ dependencies = [
|
|
53 |
"beautifulsoup4>=4.13.4",
|
54 |
"pathvalidate>=3.2.3",
|
55 |
"pydantic-settings>=2.9.1",
|
56 |
-
"flake8-todos>=0.3.1",
|
57 |
-
"ruff>=0.11.0",
|
58 |
]
|
59 |
authors = [{ name = "Marko Budisic", email = "mbudisic@gmail.com" }]
|
60 |
license = "MIT"
|
@@ -70,13 +68,11 @@ packages = ["pstuts_rag/pstuts_rag"]
|
|
70 |
dev = [
|
71 |
"pytest>=7.0.0",
|
72 |
"black>=22.0.0",
|
73 |
-
"flake8>=4.0.0",
|
74 |
-
"flake8-todos>=0.3.1",
|
75 |
"mypy>=0.900",
|
76 |
-
"isort>=6.0.1",
|
77 |
"pylint-venv>=3.0.4",
|
78 |
"ipdb>=0.13.13",
|
79 |
"deptry>=0.23.0",
|
|
|
80 |
]
|
81 |
|
82 |
web = [
|
@@ -92,13 +88,12 @@ line-length = 79
|
|
92 |
target-version = "py311"
|
93 |
|
94 |
[tool.ruff.lint]
|
95 |
-
select = ["E", "F", "I", "N", "W"]
|
96 |
-
|
97 |
-
|
98 |
-
|
|
|
99 |
|
100 |
-
[tool.ruff.isort]
|
101 |
-
known-first-party = ["src"]
|
102 |
|
103 |
[tool.black]
|
104 |
line-length = 79
|
|
|
53 |
"beautifulsoup4>=4.13.4",
|
54 |
"pathvalidate>=3.2.3",
|
55 |
"pydantic-settings>=2.9.1",
|
|
|
|
|
56 |
]
|
57 |
authors = [{ name = "Marko Budisic", email = "mbudisic@gmail.com" }]
|
58 |
license = "MIT"
|
|
|
68 |
dev = [
|
69 |
"pytest>=7.0.0",
|
70 |
"black>=22.0.0",
|
|
|
|
|
71 |
"mypy>=0.900",
|
|
|
72 |
"pylint-venv>=3.0.4",
|
73 |
"ipdb>=0.13.13",
|
74 |
"deptry>=0.23.0",
|
75 |
+
"ruff"
|
76 |
]
|
77 |
|
78 |
web = [
|
|
|
88 |
target-version = "py311"
|
89 |
|
90 |
[tool.ruff.lint]
|
91 |
+
select = ["E", "F", "I", "N", "W", "TD"]
|
92 |
+
fixable = ["I", "E", "F", "W", "B"]
|
93 |
+
|
94 |
+
[tool.ruff.lint.isort]
|
95 |
+
known-first-party = ["pstuts_rag"]
|
96 |
|
|
|
|
|
97 |
|
98 |
[tool.black]
|
99 |
line-length = 79
|
uv.lock
CHANGED
@@ -781,33 +781,6 @@ wheels = [
|
|
781 |
{ url = "https://files.pythonhosted.org/packages/18/79/1b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620/filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25", size = 19970 },
|
782 |
]
|
783 |
|
784 |
-
[[package]]
|
785 |
-
name = "flake8"
|
786 |
-
version = "7.2.0"
|
787 |
-
source = { registry = "https://pypi.org/simple" }
|
788 |
-
dependencies = [
|
789 |
-
{ name = "mccabe" },
|
790 |
-
{ name = "pycodestyle" },
|
791 |
-
{ name = "pyflakes" },
|
792 |
-
]
|
793 |
-
sdist = { url = "https://files.pythonhosted.org/packages/e7/c4/5842fc9fc94584c455543540af62fd9900faade32511fab650e9891ec225/flake8-7.2.0.tar.gz", hash = "sha256:fa558ae3f6f7dbf2b4f22663e5343b6b6023620461f8d4ff2019ef4b5ee70426", size = 48177 }
|
794 |
-
wheels = [
|
795 |
-
{ url = "https://files.pythonhosted.org/packages/83/5c/0627be4c9976d56b1217cb5187b7504e7fd7d3503f8bfd312a04077bd4f7/flake8-7.2.0-py2.py3-none-any.whl", hash = "sha256:93b92ba5bdb60754a6da14fa3b93a9361fd00a59632ada61fd7b130436c40343", size = 57786 },
|
796 |
-
]
|
797 |
-
|
798 |
-
[[package]]
|
799 |
-
name = "flake8-todos"
|
800 |
-
version = "0.3.1"
|
801 |
-
source = { registry = "https://pypi.org/simple" }
|
802 |
-
dependencies = [
|
803 |
-
{ name = "flake8" },
|
804 |
-
{ name = "pycodestyle" },
|
805 |
-
]
|
806 |
-
sdist = { url = "https://files.pythonhosted.org/packages/88/69/e4ecde7f50c3c874046f03dc7bda67d7be8e7cc28380f3f44c07456b45ad/flake8_todos-0.3.1.tar.gz", hash = "sha256:942101a08f831d7d9f7d864d86169f3bcfaf8b6d56a004c0280eb51725266b16", size = 7851 }
|
807 |
-
wheels = [
|
808 |
-
{ url = "https://files.pythonhosted.org/packages/ba/8e/805907f920d171eda033ac825d23595072a1c04dd716106c8bc8ec9eec9e/flake8_todos-0.3.1-py3-none-any.whl", hash = "sha256:0b4faca80bec49be7bf8e5dd46eec12f619e09cecac8a84a87775272300222b2", size = 7358 },
|
809 |
-
]
|
810 |
-
|
811 |
[[package]]
|
812 |
name = "forbiddenfruit"
|
813 |
version = "0.1.4"
|
@@ -1307,15 +1280,6 @@ wheels = [
|
|
1307 |
{ url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321 },
|
1308 |
]
|
1309 |
|
1310 |
-
[[package]]
|
1311 |
-
name = "isort"
|
1312 |
-
version = "6.0.1"
|
1313 |
-
source = { registry = "https://pypi.org/simple" }
|
1314 |
-
sdist = { url = "https://files.pythonhosted.org/packages/b8/21/1e2a441f74a653a144224d7d21afe8f4169e6c7c20bb13aec3a2dc3815e0/isort-6.0.1.tar.gz", hash = "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450", size = 821955 }
|
1315 |
-
wheels = [
|
1316 |
-
{ url = "https://files.pythonhosted.org/packages/c1/11/114d0a5f4dabbdcedc1125dee0888514c3c3b16d3e9facad87ed96fad97c/isort-6.0.1-py3-none-any.whl", hash = "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615", size = 94186 },
|
1317 |
-
]
|
1318 |
-
|
1319 |
[[package]]
|
1320 |
name = "jedi"
|
1321 |
version = "0.19.2"
|
@@ -2208,15 +2172,6 @@ wheels = [
|
|
2208 |
{ url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899 },
|
2209 |
]
|
2210 |
|
2211 |
-
[[package]]
|
2212 |
-
name = "mccabe"
|
2213 |
-
version = "0.7.0"
|
2214 |
-
source = { registry = "https://pypi.org/simple" }
|
2215 |
-
sdist = { url = "https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", size = 9658 }
|
2216 |
-
wheels = [
|
2217 |
-
{ url = "https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e", size = 7350 },
|
2218 |
-
]
|
2219 |
-
|
2220 |
[[package]]
|
2221 |
name = "mcp"
|
2222 |
version = "1.9.2"
|
@@ -3756,7 +3711,6 @@ dependencies = [
|
|
3756 |
{ name = "bidict" },
|
3757 |
{ name = "chainlit" },
|
3758 |
{ name = "datasets" },
|
3759 |
-
{ name = "flake8-todos" },
|
3760 |
{ name = "google" },
|
3761 |
{ name = "ipykernel" },
|
3762 |
{ name = "ipywidgets" },
|
@@ -3785,7 +3739,6 @@ dependencies = [
|
|
3785 |
{ name = "qdrant-client" },
|
3786 |
{ name = "ragas" },
|
3787 |
{ name = "requests" },
|
3788 |
-
{ name = "ruff" },
|
3789 |
{ name = "scikit-learn" },
|
3790 |
{ name = "scipy" },
|
3791 |
{ name = "sentence-transformers" },
|
@@ -3802,13 +3755,11 @@ dependencies = [
|
|
3802 |
dev = [
|
3803 |
{ name = "black" },
|
3804 |
{ name = "deptry" },
|
3805 |
-
{ name = "flake8" },
|
3806 |
-
{ name = "flake8-todos" },
|
3807 |
{ name = "ipdb" },
|
3808 |
-
{ name = "isort" },
|
3809 |
{ name = "mypy" },
|
3810 |
{ name = "pylint-venv" },
|
3811 |
{ name = "pytest" },
|
|
|
3812 |
]
|
3813 |
web = [
|
3814 |
{ name = "fastapi" },
|
@@ -3828,15 +3779,11 @@ requires-dist = [
|
|
3828 |
{ name = "datasets", specifier = ">=3.6.0" },
|
3829 |
{ name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23.0" },
|
3830 |
{ name = "fastapi", marker = "extra == 'web'", specifier = ">=0.115.3,<0.116" },
|
3831 |
-
{ name = "flake8", marker = "extra == 'dev'", specifier = ">=4.0.0" },
|
3832 |
-
{ name = "flake8-todos", specifier = ">=0.3.1" },
|
3833 |
-
{ name = "flake8-todos", marker = "extra == 'dev'", specifier = ">=0.3.1" },
|
3834 |
{ name = "google", specifier = ">=3.0.0" },
|
3835 |
{ name = "httpx", marker = "extra == 'web'", specifier = "==0.27.0" },
|
3836 |
{ name = "ipdb", marker = "extra == 'dev'", specifier = ">=0.13.13" },
|
3837 |
{ name = "ipykernel", specifier = ">=6.29.5" },
|
3838 |
{ name = "ipywidgets", specifier = ">=8.1.7" },
|
3839 |
-
{ name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" },
|
3840 |
{ name = "jupyter", specifier = ">=1.1.1" },
|
3841 |
{ name = "jupyter-contrib-nbextensions", specifier = ">=0.7.0" },
|
3842 |
{ name = "langchain", specifier = ">=0.3.25" },
|
@@ -3866,7 +3813,7 @@ requires-dist = [
|
|
3866 |
{ name = "qdrant-client", specifier = ">=1.8.0" },
|
3867 |
{ name = "ragas", specifier = ">=0.2.15" },
|
3868 |
{ name = "requests", specifier = ">=2.31.0" },
|
3869 |
-
{ name = "ruff",
|
3870 |
{ name = "scikit-learn", specifier = ">=1.0.0" },
|
3871 |
{ name = "scipy", specifier = ">=1.10.0" },
|
3872 |
{ name = "sentence-transformers", specifier = ">=3.4.1" },
|
@@ -3959,15 +3906,6 @@ wheels = [
|
|
3959 |
{ url = "https://files.pythonhosted.org/packages/37/40/ad395740cd641869a13bcf60851296c89624662575621968dcfafabaa7f6/pyarrow-20.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:82f1ee5133bd8f49d31be1299dc07f585136679666b502540db854968576faf9", size = 25944982 },
|
3960 |
]
|
3961 |
|
3962 |
-
[[package]]
|
3963 |
-
name = "pycodestyle"
|
3964 |
-
version = "2.13.0"
|
3965 |
-
source = { registry = "https://pypi.org/simple" }
|
3966 |
-
sdist = { url = "https://files.pythonhosted.org/packages/04/6e/1f4a62078e4d95d82367f24e685aef3a672abfd27d1a868068fed4ed2254/pycodestyle-2.13.0.tar.gz", hash = "sha256:c8415bf09abe81d9c7f872502a6eee881fbe85d8763dd5b9924bb0a01d67efae", size = 39312 }
|
3967 |
-
wheels = [
|
3968 |
-
{ url = "https://files.pythonhosted.org/packages/07/be/b00116df1bfb3e0bb5b45e29d604799f7b91dd861637e4d448b4e09e6a3e/pycodestyle-2.13.0-py2.py3-none-any.whl", hash = "sha256:35863c5974a271c7a726ed228a14a4f6daf49df369d8c50cd9a6f58a5e143ba9", size = 31424 },
|
3969 |
-
]
|
3970 |
-
|
3971 |
[[package]]
|
3972 |
name = "pycparser"
|
3973 |
version = "2.22"
|
@@ -4058,15 +3996,6 @@ wheels = [
|
|
4058 |
{ url = "https://files.pythonhosted.org/packages/b6/5f/d6d641b490fd3ec2c4c13b4244d68deea3a1b970a97be64f34fb5504ff72/pydantic_settings-2.9.1-py3-none-any.whl", hash = "sha256:59b4f431b1defb26fe620c71a7d3968a710d719f5f4cdbbdb7926edeb770f6ef", size = 44356 },
|
4059 |
]
|
4060 |
|
4061 |
-
[[package]]
|
4062 |
-
name = "pyflakes"
|
4063 |
-
version = "3.3.2"
|
4064 |
-
source = { registry = "https://pypi.org/simple" }
|
4065 |
-
sdist = { url = "https://files.pythonhosted.org/packages/af/cc/1df338bd7ed1fa7c317081dcf29bf2f01266603b301e6858856d346a12b3/pyflakes-3.3.2.tar.gz", hash = "sha256:6dfd61d87b97fba5dcfaaf781171ac16be16453be6d816147989e7f6e6a9576b", size = 64175 }
|
4066 |
-
wheels = [
|
4067 |
-
{ url = "https://files.pythonhosted.org/packages/15/40/b293a4fa769f3b02ab9e387c707c4cbdc34f073f945de0386107d4e669e6/pyflakes-3.3.2-py2.py3-none-any.whl", hash = "sha256:5039c8339cbb1944045f4ee5466908906180f13cc99cc9949348d10f82a5c32a", size = 63164 },
|
4068 |
-
]
|
4069 |
-
|
4070 |
[[package]]
|
4071 |
name = "pygments"
|
4072 |
version = "2.19.1"
|
|
|
781 |
{ url = "https://files.pythonhosted.org/packages/18/79/1b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620/filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25", size = 19970 },
|
782 |
]
|
783 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
784 |
[[package]]
|
785 |
name = "forbiddenfruit"
|
786 |
version = "0.1.4"
|
|
|
1280 |
{ url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321 },
|
1281 |
]
|
1282 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1283 |
[[package]]
|
1284 |
name = "jedi"
|
1285 |
version = "0.19.2"
|
|
|
2172 |
{ url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899 },
|
2173 |
]
|
2174 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2175 |
[[package]]
|
2176 |
name = "mcp"
|
2177 |
version = "1.9.2"
|
|
|
3711 |
{ name = "bidict" },
|
3712 |
{ name = "chainlit" },
|
3713 |
{ name = "datasets" },
|
|
|
3714 |
{ name = "google" },
|
3715 |
{ name = "ipykernel" },
|
3716 |
{ name = "ipywidgets" },
|
|
|
3739 |
{ name = "qdrant-client" },
|
3740 |
{ name = "ragas" },
|
3741 |
{ name = "requests" },
|
|
|
3742 |
{ name = "scikit-learn" },
|
3743 |
{ name = "scipy" },
|
3744 |
{ name = "sentence-transformers" },
|
|
|
3755 |
dev = [
|
3756 |
{ name = "black" },
|
3757 |
{ name = "deptry" },
|
|
|
|
|
3758 |
{ name = "ipdb" },
|
|
|
3759 |
{ name = "mypy" },
|
3760 |
{ name = "pylint-venv" },
|
3761 |
{ name = "pytest" },
|
3762 |
+
{ name = "ruff" },
|
3763 |
]
|
3764 |
web = [
|
3765 |
{ name = "fastapi" },
|
|
|
3779 |
{ name = "datasets", specifier = ">=3.6.0" },
|
3780 |
{ name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23.0" },
|
3781 |
{ name = "fastapi", marker = "extra == 'web'", specifier = ">=0.115.3,<0.116" },
|
|
|
|
|
|
|
3782 |
{ name = "google", specifier = ">=3.0.0" },
|
3783 |
{ name = "httpx", marker = "extra == 'web'", specifier = "==0.27.0" },
|
3784 |
{ name = "ipdb", marker = "extra == 'dev'", specifier = ">=0.13.13" },
|
3785 |
{ name = "ipykernel", specifier = ">=6.29.5" },
|
3786 |
{ name = "ipywidgets", specifier = ">=8.1.7" },
|
|
|
3787 |
{ name = "jupyter", specifier = ">=1.1.1" },
|
3788 |
{ name = "jupyter-contrib-nbextensions", specifier = ">=0.7.0" },
|
3789 |
{ name = "langchain", specifier = ">=0.3.25" },
|
|
|
3813 |
{ name = "qdrant-client", specifier = ">=1.8.0" },
|
3814 |
{ name = "ragas", specifier = ">=0.2.15" },
|
3815 |
{ name = "requests", specifier = ">=2.31.0" },
|
3816 |
+
{ name = "ruff", marker = "extra == 'dev'" },
|
3817 |
{ name = "scikit-learn", specifier = ">=1.0.0" },
|
3818 |
{ name = "scipy", specifier = ">=1.10.0" },
|
3819 |
{ name = "sentence-transformers", specifier = ">=3.4.1" },
|
|
|
3906 |
{ url = "https://files.pythonhosted.org/packages/37/40/ad395740cd641869a13bcf60851296c89624662575621968dcfafabaa7f6/pyarrow-20.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:82f1ee5133bd8f49d31be1299dc07f585136679666b502540db854968576faf9", size = 25944982 },
|
3907 |
]
|
3908 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3909 |
[[package]]
|
3910 |
name = "pycparser"
|
3911 |
version = "2.22"
|
|
|
3996 |
{ url = "https://files.pythonhosted.org/packages/b6/5f/d6d641b490fd3ec2c4c13b4244d68deea3a1b970a97be64f34fb5504ff72/pydantic_settings-2.9.1-py3-none-any.whl", hash = "sha256:59b4f431b1defb26fe620c71a7d3968a710d719f5f4cdbbdb7926edeb770f6ef", size = 44356 },
|
3997 |
]
|
3998 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3999 |
[[package]]
|
4000 |
name = "pygments"
|
4001 |
version = "2.19.1"
|