1212from multiprocessing .pool import ThreadPool
1313from pathlib import Path
1414from threading import Lock
15- from typing import Any , Optional
15+ from typing import Any , Optional , cast
1616
1717try :
18- import fire # type: ignore
18+ import fire
1919except Exception : # pragma: no cover - optional dependency
20- fire = None # type: ignore[assignment]
20+ fire = None
2121import httpx
2222import langchain
2323import langchain_core
2929try :
3030 from datasets import load_dataset
3131except Exception : # pragma: no cover - optional for file-only runs
32- load_dataset = None # type: ignore[assignment]
32+ load_dataset = None
3333from openai import OpenAI
3434from rich import print # noqa: A004
3535from rich .logging import RichHandler
3939 from sentence_transformers import SentenceTransformer
4040 from sentence_transformers .util import cos_sim
4141except Exception : # pragma: no cover - fallback for lightweight/mock runs
42- SentenceTransformer = None # type: ignore[assignment]
42+ SentenceTransformer = None
4343
44- def cos_sim (a : Any , b : Any ) -> Any : # type: ignore[no-redef]
44+ def cos_sim (a : Any , b : Any ) -> Any :
4545 return [[1.0 ]]
4646
4747try :
@@ -385,7 +385,7 @@ def worker_paraphrase_function(
385385 # Acquire the lock before using the model
386386 if paraphrase_model is not None :
387387 with paraphrase_lock :
388- return paraphrase_model .encode (input_data ) # type: ignore[attr-defined]
388+ return cast ( list [ Any ], paraphrase_model .encode (input_data ))
389389 # Fallback lightweight deterministic embeddings
390390 return [[1.0 , 0.0 ] for _ in input_data ]
391391
@@ -402,14 +402,14 @@ def worker_persona_diversity_function(
402402 # Acquire the lock before using the model
403403 if all_model is not None and SentenceTransformer is not None :
404404 with persona_diversity_lock :
405- embeddings = all_model .encode (input_data , convert_to_tensor = True ) # type: ignore[attr-defined]
405+ embeddings = all_model .encode (input_data , convert_to_tensor = True )
406406 cos_sims = cos_sim (embeddings , embeddings )
407- similarities = [
407+ similarities : list [ float ] = [
408408 cos_sims [i ][j ].item ()
409409 for i in range (len (input_data ))
410410 for j in range (i )
411411 ]
412- persona_diversity = sum (similarities ) / len (similarities )
412+ persona_diversity : float = float ( sum (similarities ) / len (similarities )) if similarities else 0.0
413413 return round (persona_diversity , 4 )
414414 # Fallback: neutral value
415415 return 0.0
@@ -720,7 +720,7 @@ def main() -> None:
720720 if fire is None :
721721 print ("Fire is not available. Please run via batch_mallm.py or provide a Config programmatically." )
722722 return
723- config = fire .Fire (Config , serialize = print ) # type: ignore[attr-defined]
723+ config = fire .Fire (Config , serialize = print )
724724 print ("\n " + "=" * width )
725725 print ("END OF CONFIGURATION PARAMETERS" .center (width ))
726726 print ("=" * width + "\n " )
0 commit comments