Skip to content

Commit 6561a2b

Browse files
committed
Linting
1 parent 3d2a9e9 commit 6561a2b

19 files changed

+111
-105
lines changed

.github/workflows/python-tests.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,21 @@ jobs:
1111
runs-on: ubuntu-latest
1212
steps:
1313
- uses: actions/checkout@v3
14-
14+
1515
- name: Set up Python
1616
uses: actions/setup-python@v4
1717
with:
1818
python-version: '3.12'
1919
cache: 'pip'
20-
20+
2121
- name: Install dependencies
2222
run: |
2323
python -m pip install --upgrade pip
2424
pip install -r requirements.txt
2525
pip install -r requirements-dev.txt
26-
26+
2727
- name: Run tests
2828
run: |
2929
pytest --run-api-tests
3030
env:
31-
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
31+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ repos:
1414
- id: trailing-whitespace
1515
- id: end-of-file-fixer
1616
- id: check-yaml
17-
- id: check-added-large-files
17+
- id: check-added-large-files

config.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
from pydantic_settings import BaseSettings
21
import os
32

3+
from pydantic_settings import BaseSettings
4+
45

56
class Settings(BaseSettings):
67
redis_url: str = "redis://localhost:6379"
@@ -12,4 +13,5 @@ class Settings(BaseSettings):
1213
embedding_model: str = "text-embedding-3-small"
1314
port: int = 8000
1415

16+
1517
settings = Settings()

healthcheck.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
from fastapi import APIRouter
21
import time
2+
3+
from fastapi import APIRouter
4+
35
from models import HealthCheckResponse
46

7+
58
router = APIRouter()
69

710

long_term_memory.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,23 @@
1-
from typing import List, Type, Union, Any
1+
import logging
2+
23
import nanoid
34
from redis.asyncio import Redis
45
from redis.commands.search.query import Query
6+
57
from models import (
68
MemoryMessage,
79
OpenAIClientWrapper,
8-
AnthropicClientWrapper,
910
RedisearchResult,
1011
SearchResults,
11-
ModelProvider,
12-
get_model_config,
1312
)
14-
import logging
15-
1613
from utils import REDIS_INDEX_NAME, Keys
1714

15+
1816
logger = logging.getLogger(__name__)
1917

2018

2119
async def index_messages(
22-
messages: List[MemoryMessage],
20+
messages: list[MemoryMessage],
2321
session_id: str,
2422
client: OpenAIClientWrapper, # Only OpenAI supports embeddings currently
2523
redis_conn: Redis,
@@ -53,7 +51,7 @@ async def index_messages(
5351
)
5452

5553
logger.info(f"Indexed {len(messages)} messages for session {session_id}")
56-
return None
54+
return
5755
except Exception as e:
5856
logger.error(f"Error indexing messages: {e}")
5957
raise
@@ -68,7 +66,7 @@ async def search_messages(
6866
session_id: str,
6967
client: OpenAIClientWrapper, # Only OpenAI supports embeddings currently
7068
redis_conn: Redis,
71-
distance_threshold: float | Type[Unset] = Unset,
69+
distance_threshold: float | type[Unset] = Unset,
7270
limit: int = 10,
7371
) -> SearchResults:
7472
"""Search for messages using vector similarity"""

main.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
from fastapi import FastAPI
77

88
import utils
9-
from models import ModelProvider, MODEL_CONFIGS
9+
from models import MODEL_CONFIGS, ModelProvider
10+
1011

1112
load_dotenv()
1213

@@ -16,6 +17,7 @@
1617
from retrieval import router as retrieval_router
1718
from utils import ensure_redisearch_index, get_redis_conn
1819

20+
1921
# Configure logging
2022
structlog.configure(
2123
processors=[

memory.py

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,28 @@
1-
from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException, Request
2-
from redis.asyncio import Redis
3-
from typing import List, Optional
41
import json
52
import logging
63
import time
7-
import asyncio
84

5+
from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException
6+
7+
from config import settings
8+
from long_term_memory import index_messages
99
from models import (
10+
AckResponse,
11+
GetSessionsQuery,
1012
MemoryMessage,
1113
MemoryMessagesAndContext,
1214
MemoryResponse,
13-
AckResponse,
14-
GetSessionsQuery,
1515
)
1616
from reducers import handle_compaction
17-
from long_term_memory import index_messages
18-
from utils import Keys, get_model_client, get_redis_conn, get_openai_client
19-
from config import settings
17+
from utils import Keys, get_model_client, get_openai_client, get_redis_conn
18+
2019

2120
logger = logging.getLogger(__name__)
2221

2322
router = APIRouter()
2423

2524

26-
@router.get("/sessions/", response_model=List[str])
25+
@router.get("/sessions/", response_model=list[str])
2726
async def get_sessions(
2827
pagination: GetSessionsQuery = Depends(GetSessionsQuery),
2928
):
@@ -39,7 +38,7 @@ async def get_sessions(
3938
# Check page limit
4039
if pagination.page > 100:
4140
raise HTTPException(status_code=400, detail="Page must not exceed 100")
42-
41+
4342
redis = get_redis_conn()
4443

4544
# Calculate start and end indices (0-indexed start, inclusive end)
@@ -67,9 +66,7 @@ async def get_sessions(
6766

6867

6968
@router.get("/sessions/{session_id}/memory", response_model=MemoryResponse)
70-
async def get_memory(
71-
session_id: str
72-
):
69+
async def get_memory(session_id: str):
7370
"""
7471
Get memory for a session
7572
@@ -146,7 +143,7 @@ async def post_memory(
146143
session_id: str,
147144
memory_messages: MemoryMessagesAndContext,
148145
background_tasks: BackgroundTasks,
149-
namespace: Optional[str] = None,
146+
namespace: str | None = None,
150147
):
151148
"""
152149
Add messages to a session's memory
@@ -202,7 +199,7 @@ async def post_memory(
202199
)
203200

204201
# If long-term memory is enabled, index messages.
205-
#
202+
#
206203
# TODO: Add support for custom policies around when to index and/or
207204
# avoid re-indexing duplicate content.
208205
if settings.long_term_memory:
@@ -226,7 +223,7 @@ async def post_memory(
226223
@router.delete("/sessions/{session_id}/memory", response_model=AckResponse)
227224
async def delete_memory(
228225
session_id: str,
229-
namespace: Optional[str] = None,
226+
namespace: str | None = None,
230227
):
231228
"""
232229
Delete a session's memory

models.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,8 @@ async def create_embedding(self, query_vec: list[str]) -> np.ndarray:
326326
embeddings or raise an error if needed
327327
"""
328328
raise NotImplementedError(
329-
"Anthropic does not provide an embedding API. Please use OpenAI for embeddings."
329+
"Anthropic does not provide an embedding API. "
330+
"Please use OpenAI for embeddings."
330331
)
331332

332333

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,4 @@ ban-relative-imports = "all"
4848
# Use double quotes for strings
4949
quote-style = "double"
5050
# Use spaces for indentation
51-
indent-style = "space"
51+
indent-style = "space"

pytest.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ python_functions = test_*
66
filterwarnings =
77
ignore::DeprecationWarning
88
ignore::PendingDeprecationWarning
9-
asyncio_mode = auto
9+
asyncio_mode = auto
1010
asyncio_default_fixture_loop_scope = session

0 commit comments

Comments
 (0)