Skip to content

Commit

Permalink
core: Add ruff rules G, FA, INP, AIR and ISC
Browse files Browse the repository at this point in the history
  • Loading branch information
cbornet committed Jan 21, 2025
1 parent 536b44a commit 689da30
Show file tree
Hide file tree
Showing 10 changed files with 47 additions and 32 deletions.
31 changes: 20 additions & 11 deletions libs/core/langchain_core/callbacks/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,13 +280,17 @@ def handle_event(
else:
handler_name = handler.__class__.__name__
logger.warning(
f"NotImplementedError in {handler_name}.{event_name}"
f" callback: {repr(e)}"
"NotImplementedError in %s.%s callback: %s",
handler_name,
event_name,
repr(e),
)
except Exception as e:
logger.warning(
f"Error in {handler.__class__.__name__}.{event_name} callback:"
f" {repr(e)}"
"Error in %s.%s callback: %s",
handler.__class__.__name__,
event_name,
repr(e),
)
if handler.raise_error:
raise e
Expand Down Expand Up @@ -326,7 +330,7 @@ def _run_coros(coros: list[Coroutine[Any, Any, Any]]) -> None:
try:
runner.run(coro)
except Exception as e:
logger.warning(f"Error in callback coroutine: {repr(e)}")
logger.warning("Error in callback coroutine: %s", repr(e))

# Run pending tasks scheduled by coros until they are all done
while pending := asyncio.all_tasks(runner.get_loop()):
Expand All @@ -338,7 +342,7 @@ def _run_coros(coros: list[Coroutine[Any, Any, Any]]) -> None:
try:
asyncio.run(coro)
except Exception as e:
logger.warning(f"Error in callback coroutine: {repr(e)}")
logger.warning("Error in callback coroutine: %s", repr(e))


async def _ahandle_event_for_handler(
Expand Down Expand Up @@ -380,13 +384,17 @@ async def _ahandle_event_for_handler(
)
else:
logger.warning(
f"NotImplementedError in {handler.__class__.__name__}.{event_name}"
f" callback: {repr(e)}"
"NotImplementedError in %s.%s callback: %s",
handler.__class__.__name__,
event_name,
repr(e),
)
except Exception as e:
logger.warning(
f"Error in {handler.__class__.__name__}.{event_name} callback:"
f" {repr(e)}"
"Error in %s.%s callback: %s",
handler.__class__.__name__,
event_name,
repr(e),
)
if handler.raise_error:
raise e
Expand Down Expand Up @@ -2387,7 +2395,8 @@ def _configure(
"Unable to load requested LangChainTracer."
" To disable this warning,"
" unset the LANGCHAIN_TRACING_V2 environment variables.\n"
f"{repr(e)}",
"%s",
repr(e),
)
if run_tree is not None:
for handler in callback_manager.handlers:
Expand Down
5 changes: 3 additions & 2 deletions libs/core/langchain_core/tracers/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,9 @@ def _start_trace(self, run: Run) -> Union[None, Coroutine[Any, Any, None]]: # t
else:
if self.log_missing_parent:
logger.debug(
f"Parent run {run.parent_run_id} not found for run {run.id}."
" Treating as a root run."
"Parent run %s not found for run %s. Treating as a root run.",
run.parent_run_id,
run.id,
)
run.parent_run_id = None
run.trace_id = run.id
Expand Down
11 changes: 6 additions & 5 deletions libs/core/langchain_core/tracers/evaluation.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,10 +136,11 @@ def _evaluate_in_project(self, run: Run, evaluator: langsmith.RunEvaluator) -> N
source_run_id=cb.latest_run.id if cb.latest_run else None,
)
except Exception as e:
logger.error(
f"Error evaluating run {run.id} with "
f"{evaluator.__class__.__name__}: {repr(e)}",
exc_info=True,
logger.exception(
"Error evaluating run %s with %s: %s",
run.id,
evaluator.__class__.__name__,
repr(e),
)
raise e
example_id = str(run.reference_example_id)
Expand Down Expand Up @@ -203,7 +204,7 @@ def _persist_run(self, run: Run) -> None:
"""
if self.skip_unfinished and not run.outputs:
logger.debug(f"Skipping unfinished run {run.id}")
logger.debug("Skipping unfinished run %s", run.id)
return
run_ = run.copy()
run_.reference_example_id = self.example_id
Expand Down
4 changes: 3 additions & 1 deletion libs/core/langchain_core/utils/html.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,9 @@ def extract_sub_links(
absolute_paths.add(absolute_path)
except Exception as e:
if continue_on_failure:
logger.warning(f"Unable to load link {link}. Raised exception:\n\n{e}")
logger.warning(
"Unable to load link %s. Raised exception:\n\n%s", link, e
)
continue
else:
raise e
Expand Down
2 changes: 1 addition & 1 deletion libs/core/langchain_core/utils/mustache.py
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ def _get_key(
# We couldn't find the key in any of the scopes

if warn:
logger.warn(f"Could not find key '{key}'")
logger.warning("Could not find key '%s'", key)

if keep:
return f"{def_ldel} {key} {def_rdel}"
Expand Down
14 changes: 8 additions & 6 deletions libs/core/langchain_core/vectorstores/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ def add_texts(
def embeddings(self) -> Optional[Embeddings]:
"""Access the query embedding object if available."""
logger.debug(
f"The embeddings property has not been "
f"implemented for {self.__class__.__name__}"
"The embeddings property has not been implemented for %s",
self.__class__.__name__,
)
return None

Expand Down Expand Up @@ -578,8 +578,9 @@ def similarity_search_with_relevance_scores(
]
if len(docs_and_similarities) == 0:
logger.warning(
"No relevant docs were retrieved using the relevance score"
f" threshold {score_threshold}"
"No relevant docs were retrieved using the "
"relevance score threshold %s",
score_threshold,
)
return docs_and_similarities

Expand Down Expand Up @@ -626,8 +627,9 @@ async def asimilarity_search_with_relevance_scores(
]
if len(docs_and_similarities) == 0:
logger.warning(
"No relevant docs were retrieved using the relevance score"
f" threshold {score_threshold}"
"No relevant docs were retrieved using the "
"relevance score threshold %s",
score_threshold,
)
return docs_and_similarities

Expand Down
6 changes: 3 additions & 3 deletions libs/core/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ python = ">=3.12.4"
[tool.poetry.extras]

[tool.ruff.lint]
select = [ "ASYNC", "B", "C4", "COM", "DJ", "E", "EM", "EXE", "F", "FLY", "FURB", "I", "ICN", "INT", "LOG", "N", "NPY", "PD", "PIE", "Q", "RSE", "S", "SIM", "SLOT", "T10", "T201", "TID", "UP", "W", "YTT",]
ignore = [ "COM812", "UP007", "S110", "S112",]
select = [ "AIR", "ASYNC", "B", "C4", "COM", "DJ", "E", "EM", "EXE", "F", "FA", "FLY", "FURB", "G", "I", "ICN", "INP","INT", "ISC", "LOG", "N", "NPY", "PD", "PIE", "Q", "RSE", "S", "SIM", "SLOT", "T10", "T20", "TID", "UP", "W", "YTT",]
ignore = [ "COM812", "FA100", "ISC001", "UP007", "S110", "S112",]

[tool.coverage.run]
omit = [ "tests/*",]
Expand Down Expand Up @@ -79,7 +79,7 @@ classmethod-decorators = [ "classmethod", "langchain_core.utils.pydantic.pre_ini
"tests/unit_tests/runnables/test_runnable.py" = [ "E501",]
"tests/unit_tests/runnables/test_graph.py" = [ "E501",]
"tests/**" = [ "S",]
"scripts/**" = [ "S",]
"scripts/**" = [ "INP", "S",]

[tool.poetry.group.lint.dependencies]
ruff = "^0.5"
Expand Down
Empty file.
4 changes: 2 additions & 2 deletions libs/core/tests/unit_tests/runnables/test_history.py
Original file line number Diff line number Diff line change
Expand Up @@ -862,7 +862,7 @@ def test_get_output_messages_with_value_error() -> None:
with_history.bound.invoke([HumanMessage(content="hello")], config)
excepted = (
"Expected str, BaseMessage, List[BaseMessage], or Tuple[BaseMessage]."
+ (f" Got {illegal_bool_message}.")
f" Got {illegal_bool_message}."
)
assert excepted in str(excinfo.value)

Expand All @@ -874,6 +874,6 @@ def test_get_output_messages_with_value_error() -> None:
with_history.bound.invoke([HumanMessage(content="hello")], config)
excepted = (
"Expected str, BaseMessage, List[BaseMessage], or Tuple[BaseMessage]."
+ (f" Got {illegal_int_message}.")
f" Got {illegal_int_message}."
)
assert excepted in str(excinfo.value)
2 changes: 1 addition & 1 deletion libs/core/tests/unit_tests/utils/test_function_calling.py
Original file line number Diff line number Diff line change
Expand Up @@ -969,7 +969,7 @@ class Tool(typed_dict):
)
def test_convert_union_type_py_39() -> None:
@tool
def magic_function(input: int | float) -> str:
def magic_function(input: int | float) -> str: # noqa: FA102
"""Compute a magic function."""

result = convert_to_openai_function(magic_function)
Expand Down

0 comments on commit 689da30

Please sign in to comment.