diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml new file mode 100644 index 0000000..f5555d0 --- /dev/null +++ b/.github/workflows/lint.yaml @@ -0,0 +1,28 @@ +name: Lint and format checks + +on: + push: + branches: [main] + pull_request: + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install tools + run: | + pip install black isort ruff + + - name: Run Black + run: black --check . + + - name: Run Isort + run: isort --check-only . + + - name: Run Ruff + run: ruff check . diff --git a/loaders/pdf.py b/loaders/pdf.py index 4ab647c..624b93f 100644 --- a/loaders/pdf.py +++ b/loaders/pdf.py @@ -1,12 +1,12 @@ +import logging from pathlib import Path from typing import List -from config import Config from langchain.text_splitter import RecursiveCharacterTextSplitter -from langchain_core.documents import Document from langchain_community.document_loaders import PyPDFLoader +from langchain_core.documents import Document -import logging +from config import Config logger = logging.getLogger(__name__) diff --git a/loaders/web.py b/loaders/web.py index b36a317..9d7c86b 100644 --- a/loaders/web.py +++ b/loaders/web.py @@ -1,12 +1,11 @@ +import logging from typing import List -from pathlib import Path -from langchain_core.documents import Document from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain_community.document_loaders import WebBaseLoader +from langchain_core.documents import Document from config import Config -import logging logger = logging.getLogger(__name__) @@ -55,7 +54,7 @@ def load(self, urls: List[str]) -> List[Document]: try: loader = WebBaseLoader(urls) docs = loader.load() - except Exception as e: + except Exception: logger.exception("Failed to load URLs via WebBaseLoader") raise diff --git a/vector_db/db_provider.py b/vector_db/db_provider.py index 652f4a9..168510d 100644 --- a/vector_db/db_provider.py +++ b/vector_db/db_provider.py @@ -1,9 +1,9 @@ from abc import ABC, abstractmethod from typing import List -from langchain_huggingface import HuggingFaceEmbeddings from langchain_core.documents import Document from langchain_core.embeddings import Embeddings +from langchain_huggingface import HuggingFaceEmbeddings class DBProvider(ABC): diff --git a/vector_db/dryrun_provider.py b/vector_db/dryrun_provider.py index ec97c8c..c8fa41a 100644 --- a/vector_db/dryrun_provider.py +++ b/vector_db/dryrun_provider.py @@ -1,5 +1,7 @@ from typing import List + from langchain_core.documents import Document + from vector_db.db_provider import DBProvider diff --git a/vector_db/elastic_provider.py b/vector_db/elastic_provider.py index 0aa5d9b..687a888 100644 --- a/vector_db/elastic_provider.py +++ b/vector_db/elastic_provider.py @@ -1,4 +1,5 @@ from typing import List + from langchain_core.documents import Document from langchain_elasticsearch.vectorstores import ElasticsearchStore diff --git a/vector_db/pgvector_provider.py b/vector_db/pgvector_provider.py index ad2823c..1f94b04 100644 --- a/vector_db/pgvector_provider.py +++ b/vector_db/pgvector_provider.py @@ -1,6 +1,8 @@ from typing import List -from langchain_postgres import PGVector + from langchain_core.documents import Document +from langchain_postgres import PGVector + from vector_db.db_provider import DBProvider diff --git a/vector_db/redis_provider.py b/vector_db/redis_provider.py index 7419043..7b509ee 100644 --- a/vector_db/redis_provider.py +++ b/vector_db/redis_provider.py @@ -41,7 +41,7 @@ def __init__(self, url: str, index: str, schema: str): try: self.redis_client = redis.from_url(self.url) self.redis_client.ping() - except Exception as e: + except Exception: logger.exception("Failed to connect to Redis at %s", self.url) raise diff --git a/vector_db/sqlserver_provider.py b/vector_db/sqlserver_provider.py index fd6b9a4..e058aac 100644 --- a/vector_db/sqlserver_provider.py +++ b/vector_db/sqlserver_provider.py @@ -107,6 +107,6 @@ def add_documents(self, docs: List[Document]) -> None: batch = docs[i : i + batch_size] try: self.db.add_documents(batch) - except Exception as e: + except Exception: logger.exception("Failed to insert batch starting at index %s", i) raise