From a9a84aa758c17343045e37df0f74d6cb5e742f07 Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Tue, 5 Nov 2024 17:48:53 -0500 Subject: [PATCH 1/7] test --- pyproject.toml | 1 + weave/scorers/llm_utils.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 333ea707b960..c956500f6aec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -167,6 +167,7 @@ select = [ "F401", # https://docs.astral.sh/ruff/rules/unused-import/ "TID252", # https://docs.astral.sh/ruff/rules/relative-imports/#relative-imports-tid252 "UP006", # https://docs.astral.sh/ruff/rules/non-pep585-annotation/ + "UP007", # https://docs.astral.sh/ruff/rules/non-pep604-annotation/ ] ignore = [ # we use Google style diff --git a/weave/scorers/llm_utils.py b/weave/scorers/llm_utils.py index 60d08f6cf822..7c050a3ccdbb 100644 --- a/weave/scorers/llm_utils.py +++ b/weave/scorers/llm_utils.py @@ -83,7 +83,7 @@ def create( def embed( - client: _LLM_CLIENTS, model_id: str, texts: Union[str, list[str]], **kwargs: Any + client: _LLM_CLIENTS, model_id: str, texts: str | list[str], **kwargs: Any ) -> list[list[float]]: client_type = type(client).__name__.lower() if "openai" in client_type: From fc20533c773c524f141f8488dcc245b369ef033e Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Tue, 5 Nov 2024 17:50:23 -0500 Subject: [PATCH 2/7] test --- pyproject.toml | 1 + weave/trace_server/clickhouse_trace_server_batched.py | 6 ++---- weave/trace_server/sqlite_trace_server.py | 3 +-- weave/trace_server_bindings/remote_http_trace_server.py | 3 +-- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index c956500f6aec..3e285c020316 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -168,6 +168,7 @@ select = [ "TID252", # https://docs.astral.sh/ruff/rules/relative-imports/#relative-imports-tid252 "UP006", # https://docs.astral.sh/ruff/rules/non-pep585-annotation/ "UP007", # https://docs.astral.sh/ruff/rules/non-pep604-annotation/ + "UP028", # https://docs.astral.sh/ruff/rules/yield-in-for-loop/ ] ignore = [ # we use Google style diff --git a/weave/trace_server/clickhouse_trace_server_batched.py b/weave/trace_server/clickhouse_trace_server_batched.py index c8bc02b3debd..b1a7f2ee91ad 100644 --- a/weave/trace_server/clickhouse_trace_server_batched.py +++ b/weave/trace_server/clickhouse_trace_server_batched.py @@ -827,8 +827,7 @@ def table_query_stream( limit=req.limit, offset=req.offset, ) - for row in rows: - yield row + yield from rows def _table_query_stream( self, @@ -1721,8 +1720,7 @@ def _query_stream( "summary": summary, }, ) - for row in stream: - yield row + yield from stream def _query( self, diff --git a/weave/trace_server/sqlite_trace_server.py b/weave/trace_server/sqlite_trace_server.py index ed54d406c13d..c82815392dc6 100644 --- a/weave/trace_server/sqlite_trace_server.py +++ b/weave/trace_server/sqlite_trace_server.py @@ -1186,8 +1186,7 @@ def table_query_stream( self, req: tsi.TableQueryReq ) -> Iterator[tsi.TableRowSchema]: results = self.table_query(req) - for row in results.rows: - yield row + yield from results.rows def get_type(val: Any) -> str: diff --git a/weave/trace_server_bindings/remote_http_trace_server.py b/weave/trace_server_bindings/remote_http_trace_server.py index 6f591a068fad..d2e041565f4a 100644 --- a/weave/trace_server_bindings/remote_http_trace_server.py +++ b/weave/trace_server_bindings/remote_http_trace_server.py @@ -446,8 +446,7 @@ def table_query_stream( ) -> Iterator[tsi.TableRowSchema]: # Need to manually iterate over this until the stram endpoint is built and shipped. res = self.table_query(req) - for row in res.rows: - yield row + yield from res.rows def table_query_stats( self, req: Union[tsi.TableQueryStatsReq, dict[str, Any]] From ae065d774a46bd53718fd09fc1b9e9e9d9ab60d6 Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Tue, 5 Nov 2024 17:51:33 -0500 Subject: [PATCH 3/7] test --- docs/scripts/generate_images.py | 5 ++--- pyproject.toml | 1 + weave/trace/serve_fastapi.py | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/scripts/generate_images.py b/docs/scripts/generate_images.py index ae2c8379564d..b1897a43f2ca 100644 --- a/docs/scripts/generate_images.py +++ b/docs/scripts/generate_images.py @@ -59,9 +59,8 @@ async def generate_screenshot_from_browser( if local_storage: await context.add_init_script( """ - Object.assign(window.localStorage, %s); - """ - % json.dumps(local_storage) + Object.assign(window.localStorage, {}); + """.format(json.dumps(local_storage)) ) try: diff --git a/pyproject.toml b/pyproject.toml index 3e285c020316..fa04be61892d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -169,6 +169,7 @@ select = [ "UP006", # https://docs.astral.sh/ruff/rules/non-pep585-annotation/ "UP007", # https://docs.astral.sh/ruff/rules/non-pep604-annotation/ "UP028", # https://docs.astral.sh/ruff/rules/yield-in-for-loop/ + "UP031", # https://docs.astral.sh/ruff/rules/printf-string-formatting/ ] ignore = [ # we use Google style diff --git a/weave/trace/serve_fastapi.py b/weave/trace/serve_fastapi.py index fc6e25999f6d..4ba60766954d 100644 --- a/weave/trace/serve_fastapi.py +++ b/weave/trace/serve_fastapi.py @@ -83,8 +83,9 @@ def object_method_app( if method_name is None: if len(op_attrs) > 1: raise ValueError( - "Multiple ops found on object (%s), must specify method_name argument" - % ", ".join(op_attrs) + "Multiple ops found on object ({}), must specify method_name argument".format( + ", ".join(op_attrs) + ) ) method_name = next(iter(op_attrs)) From ce9d6deee2e78c1f920f8070a1ac635e068162fd Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Tue, 5 Nov 2024 17:52:13 -0500 Subject: [PATCH 4/7] test --- pyproject.toml | 1 + weave/trace/trace_sentry.py | 7 +------ 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index fa04be61892d..842fd86031b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -170,6 +170,7 @@ select = [ "UP007", # https://docs.astral.sh/ruff/rules/non-pep604-annotation/ "UP028", # https://docs.astral.sh/ruff/rules/yield-in-for-loop/ "UP031", # https://docs.astral.sh/ruff/rules/printf-string-formatting/ + "UP036", # https://docs.astral.sh/ruff/rules/outdated-version-block/ ] ignore = [ # we use Google style diff --git a/weave/trace/trace_sentry.py b/weave/trace/trace_sentry.py index 2f773642e9e4..fbc12c1a8c20 100644 --- a/weave/trace/trace_sentry.py +++ b/weave/trace/trace_sentry.py @@ -15,12 +15,7 @@ import os import site import sys -from typing import TYPE_CHECKING, Any, Callable, Optional, Union - -if sys.version_info >= (3, 8): - from typing import Literal -else: - from typing_extensions import Literal +from typing import TYPE_CHECKING, Any, Callable, Literal, Optional, Union if TYPE_CHECKING: from sentry_sdk._types import ExcInfo From 76bea6b4770a068dabda102e0aec1f744d79c527 Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Tue, 5 Nov 2024 17:56:51 -0500 Subject: [PATCH 5/7] test --- docs/scripts/generate_images.py | 6 +++--- pyproject.toml | 1 + weave/trace/pypi_version_check.py | 13 +++---------- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/docs/scripts/generate_images.py b/docs/scripts/generate_images.py index b1897a43f2ca..66466c12c247 100644 --- a/docs/scripts/generate_images.py +++ b/docs/scripts/generate_images.py @@ -58,9 +58,9 @@ async def generate_screenshot_from_browser( if local_storage: await context.add_init_script( - """ - Object.assign(window.localStorage, {}); - """.format(json.dumps(local_storage)) + f""" + Object.assign(window.localStorage, {json.dumps(local_storage)}); + """ ) try: diff --git a/pyproject.toml b/pyproject.toml index 842fd86031b5..f84c311d5af8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -170,6 +170,7 @@ select = [ "UP007", # https://docs.astral.sh/ruff/rules/non-pep604-annotation/ "UP028", # https://docs.astral.sh/ruff/rules/yield-in-for-loop/ "UP031", # https://docs.astral.sh/ruff/rules/printf-string-formatting/ + "UP032", # https://docs.astral.sh/ruff/rules/f-string/ "UP036", # https://docs.astral.sh/ruff/rules/outdated-version-block/ ] ignore = [ diff --git a/weave/trace/pypi_version_check.py b/weave/trace/pypi_version_check.py index 941129dee570..a6f51073d8e0 100644 --- a/weave/trace/pypi_version_check.py +++ b/weave/trace/pypi_version_check.py @@ -54,18 +54,11 @@ def check_available( ) delete_message = None if deleted: - delete_message = "{} version {} has been retired! Please upgrade.".format( - module_name, - current_version, - ) + delete_message = f"{module_name} version {current_version} has been retired! Please upgrade." yank_message = None if yanked: - reason_message = "({}) ".format(yanked_reason) if yanked_reason else "" - yank_message = "{} version {} has been recalled! {}Please upgrade.".format( - module_name, - current_version, - reason_message, - ) + reason_message = f"({yanked_reason}) " if yanked_reason else "" + yank_message = f"{module_name} version {current_version} has been recalled! {reason_message}Please upgrade." # A new version is available! return { From 7b36c113b50ca95d958066e04f35bcdd27d6ce12 Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Tue, 5 Nov 2024 17:58:10 -0500 Subject: [PATCH 6/7] test --- pyproject.toml | 1 + weave/trace_server/sqlite_trace_server.py | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index f84c311d5af8..c28f9de111e0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -171,6 +171,7 @@ select = [ "UP028", # https://docs.astral.sh/ruff/rules/yield-in-for-loop/ "UP031", # https://docs.astral.sh/ruff/rules/printf-string-formatting/ "UP032", # https://docs.astral.sh/ruff/rules/f-string/ + "UP034", # https://docs.astral.sh/ruff/rules/extraneous-parentheses/ "UP036", # https://docs.astral.sh/ruff/rules/outdated-version-block/ ] ignore = [ diff --git a/weave/trace_server/sqlite_trace_server.py b/weave/trace_server/sqlite_trace_server.py index c82815392dc6..3ba8f34fc9a0 100644 --- a/weave/trace_server/sqlite_trace_server.py +++ b/weave/trace_server/sqlite_trace_server.py @@ -263,7 +263,7 @@ def calls_query(self, req: tsi.CallsQueryReq) -> tsi.CallsQueryRes: non_wildcarded_names.append(name) if non_wildcarded_names: - in_expr = ", ".join((f"'{x}'" for x in non_wildcarded_names)) + in_expr = ", ".join(f"'{x}'" for x in non_wildcarded_names) or_conditions += [f"op_name IN ({', '.join({in_expr})})"] for name_ndx, name in enumerate(wildcarded_names): @@ -284,18 +284,18 @@ def calls_query(self, req: tsi.CallsQueryReq) -> tsi.CallsQueryRes: or_conditions.append(f"output_refs LIKE '%{ref}%'") conds.append("(" + " OR ".join(or_conditions) + ")") if filter.parent_ids: - in_expr = ", ".join((f"'{x}'" for x in filter.parent_ids)) + in_expr = ", ".join(f"'{x}'" for x in filter.parent_ids) conds += [f"parent_id IN ({in_expr})"] if filter.trace_ids: - in_expr = ", ".join((f"'{x}'" for x in filter.trace_ids)) + in_expr = ", ".join(f"'{x}'" for x in filter.trace_ids) conds += [f"trace_id IN ({in_expr})"] if filter.call_ids: - in_expr = ", ".join((f"'{x}'" for x in filter.call_ids)) + in_expr = ", ".join(f"'{x}'" for x in filter.call_ids) conds += [f"id IN ({in_expr})"] if filter.trace_roots_only: conds.append("parent_id IS NULL") if filter.wb_run_ids: - in_expr = ", ".join((f"'{x}'" for x in filter.wb_run_ids)) + in_expr = ", ".join(f"'{x}'" for x in filter.wb_run_ids) conds += [f"wb_run_id IN ({in_expr})"] if req.query: From 0a7c33de68b1b021f9e4c246d60ea7cd94afa15f Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Tue, 5 Nov 2024 17:59:15 -0500 Subject: [PATCH 7/7] test --- pyproject.toml | 1 + tests/conftest.py | 2 +- tests/integrations/instructor/instructor_test.py | 3 ++- tests/integrations/langchain/langchain_test.py | 2 +- tests/integrations/litellm/litellm_test.py | 3 ++- tests/integrations/llamaindex/llamaindex_test.py | 2 +- tests/trace/test_evaluation_performance.py | 3 ++- tests/trace/test_op_coroutines.py | 2 +- tests/trace/test_table_query.py | 2 +- weave/flow/chat_util.py | 3 ++- weave/flow/eval.py | 3 ++- weave/flow/util.py | 3 ++- weave/integrations/anthropic/anthropic_sdk.py | 11 ++++++++--- weave/integrations/integration_utilities.py | 3 ++- weave/integrations/langchain/langchain.py | 3 ++- weave/scorers/base_scorer.py | 3 ++- weave/trace/api.py | 3 ++- weave/trace/context/call_context.py | 3 ++- weave/trace/custom_objs.py | 3 ++- weave/trace/feedback.py | 3 ++- weave/trace/mem_artifact.py | 3 ++- weave/trace/op.py | 3 +-- weave/trace/op_extensions/accumulator.py | 4 +--- weave/trace/patcher.py | 3 ++- weave/trace/rich/container.py | 3 ++- weave/trace/rich/refs.py | 3 ++- weave/trace/serialize.py | 3 ++- weave/trace/table.py | 3 ++- weave/trace/util.py | 3 ++- weave/trace/vals.py | 3 ++- weave/trace/weave_client.py | 3 ++- weave/trace_server/clickhouse_trace_server_batched.py | 3 +-- .../external_to_internal_trace_server_adapter.py | 3 ++- weave/trace_server/secret_fetcher_context.py | 3 ++- weave/trace_server/sqlite_trace_server.py | 3 ++- weave/trace_server/trace_server_interface.py | 3 ++- .../trace_server_bindings/remote_http_trace_server.py | 3 ++- weave/wandb_interface/project_creator.py | 2 +- weave/wandb_interface/wandb_api.py | 3 ++- 39 files changed, 74 insertions(+), 44 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index c28f9de111e0..12df5e890c4b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -172,6 +172,7 @@ select = [ "UP031", # https://docs.astral.sh/ruff/rules/printf-string-formatting/ "UP032", # https://docs.astral.sh/ruff/rules/f-string/ "UP034", # https://docs.astral.sh/ruff/rules/extraneous-parentheses/ + "UP035", # https://docs.astral.sh/ruff/rules/deprecated-import/ "UP036", # https://docs.astral.sh/ruff/rules/outdated-version-block/ ] ignore = [ diff --git a/tests/conftest.py b/tests/conftest.py index bbba381f04bc..6d237c002965 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -6,7 +6,7 @@ import time import typing import urllib -from typing import Iterator +from collections.abc import Iterator import pytest import requests diff --git a/tests/integrations/instructor/instructor_test.py b/tests/integrations/instructor/instructor_test.py index 8867ade33d56..646d608511ac 100644 --- a/tests/integrations/instructor/instructor_test.py +++ b/tests/integrations/instructor/instructor_test.py @@ -1,7 +1,8 @@ import asyncio import json import os -from typing import Any, Iterable +from collections.abc import Iterable +from typing import Any import pytest from pydantic import BaseModel diff --git a/tests/integrations/langchain/langchain_test.py b/tests/integrations/langchain/langchain_test.py index 3b36437f8c2a..e1e9f1a7fe21 100644 --- a/tests/integrations/langchain/langchain_test.py +++ b/tests/integrations/langchain/langchain_test.py @@ -1,5 +1,5 @@ import os -from typing import Generator +from collections.abc import Generator import pytest import tiktoken diff --git a/tests/integrations/litellm/litellm_test.py b/tests/integrations/litellm/litellm_test.py index 75bdcd7e8839..8cc0966c4768 100644 --- a/tests/integrations/litellm/litellm_test.py +++ b/tests/integrations/litellm/litellm_test.py @@ -1,6 +1,7 @@ import os +from collections.abc import Generator from importlib.metadata import version -from typing import Any, Generator +from typing import Any import litellm import pytest diff --git a/tests/integrations/llamaindex/llamaindex_test.py b/tests/integrations/llamaindex/llamaindex_test.py index 2b9a4e51799f..d74ee148f6eb 100644 --- a/tests/integrations/llamaindex/llamaindex_test.py +++ b/tests/integrations/llamaindex/llamaindex_test.py @@ -1,4 +1,4 @@ -from typing import Generator +from collections.abc import Generator import pytest diff --git a/tests/trace/test_evaluation_performance.py b/tests/trace/test_evaluation_performance.py index 8ccd8f9639bb..a0f95a098049 100644 --- a/tests/trace/test_evaluation_performance.py +++ b/tests/trace/test_evaluation_performance.py @@ -1,7 +1,8 @@ from collections import Counter +from collections.abc import Generator from contextlib import contextmanager from threading import Lock -from typing import Any, Generator +from typing import Any import PIL import pytest diff --git a/tests/trace/test_op_coroutines.py b/tests/trace/test_op_coroutines.py index 6117a381882d..48fbbc7facd8 100644 --- a/tests/trace/test_op_coroutines.py +++ b/tests/trace/test_op_coroutines.py @@ -1,5 +1,5 @@ import asyncio -from typing import Coroutine +from collections.abc import Coroutine import pytest diff --git a/tests/trace/test_table_query.py b/tests/trace/test_table_query.py index fe9e3e2320ac..160bc24e9575 100644 --- a/tests/trace/test_table_query.py +++ b/tests/trace/test_table_query.py @@ -1,5 +1,5 @@ import random -from typing import Iterator +from collections.abc import Iterator from weave.trace.weave_client import WeaveClient from weave.trace_server import trace_server_interface as tsi diff --git a/weave/flow/chat_util.py b/weave/flow/chat_util.py index fb1319902253..723bed64504d 100644 --- a/weave/flow/chat_util.py +++ b/weave/flow/chat_util.py @@ -1,4 +1,5 @@ -from typing import TYPE_CHECKING, Iterator, Optional +from collections.abc import Iterator +from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: from openai.types.chat import ( diff --git a/weave/flow/eval.py b/weave/flow/eval.py index 40a73e35cd2f..bb8a3c3b0c17 100644 --- a/weave/flow/eval.py +++ b/weave/flow/eval.py @@ -4,7 +4,8 @@ import textwrap import time import traceback -from typing import Any, Callable, Coroutine, Literal, Optional, Union, cast +from collections.abc import Coroutine +from typing import Any, Callable, Literal, Optional, Union, cast from pydantic import PrivateAttr from rich import print diff --git a/weave/flow/util.py b/weave/flow/util.py index f565145ec050..4d89e777d883 100644 --- a/weave/flow/util.py +++ b/weave/flow/util.py @@ -1,7 +1,8 @@ import asyncio import logging import multiprocessing -from typing import Any, AsyncIterator, Awaitable, Callable, Iterable, TypeVar +from collections.abc import AsyncIterator, Awaitable, Iterable +from typing import Any, Callable, TypeVar T = TypeVar("T") U = TypeVar("U") diff --git a/weave/integrations/anthropic/anthropic_sdk.py b/weave/integrations/anthropic/anthropic_sdk.py index 50f65a986232..6e33e1a39062 100644 --- a/weave/integrations/anthropic/anthropic_sdk.py +++ b/weave/integrations/anthropic/anthropic_sdk.py @@ -1,8 +1,13 @@ import importlib +from collections.abc import AsyncIterator, Iterator from functools import wraps -from typing import TYPE_CHECKING, Any, Callable, Optional, Union - -from typing_extensions import AsyncIterator, Iterator +from typing import ( + TYPE_CHECKING, + Any, + Callable, + Optional, + Union, +) import weave from weave.trace.op_extensions.accumulator import _IteratorWrapper, add_accumulator diff --git a/weave/integrations/integration_utilities.py b/weave/integrations/integration_utilities.py index 017bcc9017f6..73e558fbd435 100644 --- a/weave/integrations/integration_utilities.py +++ b/weave/integrations/integration_utilities.py @@ -1,6 +1,7 @@ import hashlib import re -from typing import Any, Iterable, Union +from collections.abc import Iterable +from typing import Any, Union from weave.trace.refs import OpRef, parse_uri from weave.trace.weave_client import Call, CallsIter diff --git a/weave/integrations/langchain/langchain.py b/weave/integrations/langchain/langchain.py index 7cd39e43fb41..287f248b894e 100644 --- a/weave/integrations/langchain/langchain.py +++ b/weave/integrations/langchain/langchain.py @@ -55,7 +55,8 @@ except ImportError: import_failed = True -from typing import Any, Generator, Optional, cast +from collections.abc import Generator +from typing import Any, Optional, cast RUNNABLE_SEQUENCE_NAME = "RunnableSequence" diff --git a/weave/scorers/base_scorer.py b/weave/scorers/base_scorer.py index 057bca032add..420b75d467a0 100644 --- a/weave/scorers/base_scorer.py +++ b/weave/scorers/base_scorer.py @@ -1,6 +1,7 @@ import inspect +from collections.abc import Sequence from numbers import Number -from typing import Any, Callable, Optional, Sequence, Union +from typing import Any, Callable, Optional, Union import numpy as np from pydantic import BaseModel, Field diff --git a/weave/trace/api.py b/weave/trace/api.py index 38881c34e817..5dea28a0b962 100644 --- a/weave/trace/api.py +++ b/weave/trace/api.py @@ -4,7 +4,8 @@ import os import threading import time -from typing import Any, Iterator, Optional, Union +from collections.abc import Iterator +from typing import Any, Optional, Union # TODO: type_serializers is imported here to trigger registration of the image serializer. # There is probably a better place for this, but including here for now to get the fix in. diff --git a/weave/trace/context/call_context.py b/weave/trace/context/call_context.py index 87b4f9a4a43f..2536967a12c8 100644 --- a/weave/trace/context/call_context.py +++ b/weave/trace/context/call_context.py @@ -2,7 +2,8 @@ import contextvars import copy import logging -from typing import TYPE_CHECKING, Any, Iterator, Optional +from collections.abc import Iterator +from typing import TYPE_CHECKING, Any, Optional if TYPE_CHECKING: from weave.trace.weave_client import Call diff --git a/weave/trace/custom_objs.py b/weave/trace/custom_objs.py index 701842d0ed5a..6654667bd096 100644 --- a/weave/trace/custom_objs.py +++ b/weave/trace/custom_objs.py @@ -1,4 +1,5 @@ -from typing import Any, Mapping, Optional, Union +from collections.abc import Mapping +from typing import Any, Optional, Union from weave.trace import op_type # noqa: F401, Must import this to register op save/load from weave.trace.context.weave_client_context import require_weave_client diff --git a/weave/trace/feedback.py b/weave/trace/feedback.py index 886d5bd2ab9a..27b881779940 100644 --- a/weave/trace/feedback.py +++ b/weave/trace/feedback.py @@ -1,7 +1,8 @@ """Classes for working with feedback on a project or ref level.""" import json -from typing import Any, Iterable, Iterator, Optional +from collections.abc import Iterable, Iterator +from typing import Any, Optional from rich.table import Table diff --git a/weave/trace/mem_artifact.py b/weave/trace/mem_artifact.py index 4a950654fec1..4727bfd73cd1 100644 --- a/weave/trace/mem_artifact.py +++ b/weave/trace/mem_artifact.py @@ -2,7 +2,8 @@ import io import os import tempfile -from typing import Generator, Iterator, Mapping, Optional, Union +from collections.abc import Generator, Iterator, Mapping +from typing import Optional, Union from weave.trace import op_type # noqa: F401, Must import this to register op save/load diff --git a/weave/trace/op.py b/weave/trace/op.py index 86b4610e2585..92955e397ebe 100644 --- a/weave/trace/op.py +++ b/weave/trace/op.py @@ -4,6 +4,7 @@ import logging import sys import traceback +from collections.abc import Coroutine, Mapping from dataclasses import dataclass from functools import partial, wraps from types import MethodType @@ -11,8 +12,6 @@ TYPE_CHECKING, Any, Callable, - Coroutine, - Mapping, Optional, Protocol, TypedDict, diff --git a/weave/trace/op_extensions/accumulator.py b/weave/trace/op_extensions/accumulator.py index 168dbc4c1959..6103de4b0142 100644 --- a/weave/trace/op_extensions/accumulator.py +++ b/weave/trace/op_extensions/accumulator.py @@ -3,13 +3,11 @@ import sys import traceback import weakref +from collections.abc import AsyncIterator, Generator, Iterator from typing import ( Any, - AsyncIterator, Callable, - Generator, Generic, - Iterator, Optional, TypeVar, Union, diff --git a/weave/trace/patcher.py b/weave/trace/patcher.py index 09ed9e0819c3..baddc262f14d 100644 --- a/weave/trace/patcher.py +++ b/weave/trace/patcher.py @@ -1,5 +1,6 @@ import logging -from typing import Any, Callable, Optional, Sequence +from collections.abc import Sequence +from typing import Any, Callable, Optional from weave.trace.context.tests_context import get_raise_on_captured_errors diff --git a/weave/trace/rich/container.py b/weave/trace/rich/container.py index 8817f472dc45..1bb6e38321c1 100644 --- a/weave/trace/rich/container.py +++ b/weave/trace/rich/container.py @@ -1,5 +1,6 @@ from abc import ABC, abstractmethod -from typing import Any, Generic, Iterable, Iterator, Optional, TypeVar +from collections.abc import Iterable, Iterator +from typing import Any, Generic, Optional, TypeVar from rich.table import Table diff --git a/weave/trace/rich/refs.py b/weave/trace/rich/refs.py index 60c94bf971e1..54fffe0b6c47 100644 --- a/weave/trace/rich/refs.py +++ b/weave/trace/rich/refs.py @@ -1,6 +1,7 @@ """Support for a collection of refs.""" -from typing import Iterable, Optional +from collections.abc import Iterable +from typing import Optional from rich.table import Table diff --git a/weave/trace/serialize.py b/weave/trace/serialize.py index ccd102944894..4b368f98cdde 100644 --- a/weave/trace/serialize.py +++ b/weave/trace/serialize.py @@ -1,7 +1,8 @@ import logging import typing +from collections.abc import Sequence from types import CoroutineType -from typing import Any, Optional, Sequence +from typing import Any, Optional from weave.trace import custom_objs from weave.trace.object_record import ObjectRecord diff --git a/weave/trace/table.py b/weave/trace/table.py index 70fe42a9166c..156c63a10a14 100644 --- a/weave/trace/table.py +++ b/weave/trace/table.py @@ -1,4 +1,5 @@ -from typing import Any, Iterator, Optional +from collections.abc import Iterator +from typing import Any, Optional from weave.trace.refs import TableRef diff --git a/weave/trace/util.py b/weave/trace/util.py index d84b1b549839..72466714549a 100644 --- a/weave/trace/util.py +++ b/weave/trace/util.py @@ -1,9 +1,10 @@ import warnings +from collections.abc import Iterable, Iterator from concurrent.futures import ThreadPoolExecutor as _ThreadPoolExecutor from contextvars import Context, copy_context from functools import partial, wraps from threading import Thread as _Thread -from typing import Any, Callable, Iterable, Iterator, Optional +from typing import Any, Callable, Optional class ContextAwareThreadPoolExecutor(_ThreadPoolExecutor): diff --git a/weave/trace/vals.py b/weave/trace/vals.py index d7abf51a3625..f76aa08ec224 100644 --- a/weave/trace/vals.py +++ b/weave/trace/vals.py @@ -3,8 +3,9 @@ import logging import operator import typing +from collections.abc import Generator, Iterator from copy import deepcopy -from typing import Any, Generator, Iterator, Literal, Optional, SupportsIndex, Union +from typing import Any, Literal, Optional, SupportsIndex, Union from pydantic import BaseModel from pydantic import v1 as pydantic_v1 diff --git a/weave/trace/weave_client.py b/weave/trace/weave_client.py index d6dce8f76564..eadc92b588f5 100644 --- a/weave/trace/weave_client.py +++ b/weave/trace/weave_client.py @@ -3,9 +3,10 @@ import platform import re import sys +from collections.abc import Iterator, Sequence from concurrent.futures import Future from functools import lru_cache -from typing import Any, Callable, Iterator, Optional, Sequence, Union, cast +from typing import Any, Callable, Optional, Union, cast import pydantic from requests import HTTPError diff --git a/weave/trace_server/clickhouse_trace_server_batched.py b/weave/trace_server/clickhouse_trace_server_batched.py index b1a7f2ee91ad..38fb9c4aa1e1 100644 --- a/weave/trace_server/clickhouse_trace_server_batched.py +++ b/weave/trace_server/clickhouse_trace_server_batched.py @@ -29,12 +29,11 @@ import logging import threading from collections import defaultdict +from collections.abc import Iterator, Sequence from contextlib import contextmanager from typing import ( Any, - Iterator, Optional, - Sequence, Union, cast, ) diff --git a/weave/trace_server/external_to_internal_trace_server_adapter.py b/weave/trace_server/external_to_internal_trace_server_adapter.py index 7e085b8f75e6..57458839fdbb 100644 --- a/weave/trace_server/external_to_internal_trace_server_adapter.py +++ b/weave/trace_server/external_to_internal_trace_server_adapter.py @@ -1,6 +1,7 @@ import abc import typing -from typing import Callable, Iterator, TypeVar +from collections.abc import Iterator +from typing import Callable, TypeVar from weave.trace_server import trace_server_interface as tsi from weave.trace_server.trace_server_converter import ( diff --git a/weave/trace_server/secret_fetcher_context.py b/weave/trace_server/secret_fetcher_context.py index 535118078e2b..0ab9fa4a39d2 100644 --- a/weave/trace_server/secret_fetcher_context.py +++ b/weave/trace_server/secret_fetcher_context.py @@ -1,6 +1,7 @@ import contextvars +from collections.abc import Generator from contextlib import contextmanager -from typing import Generator, Optional, Protocol +from typing import Optional, Protocol class SecretFetcher(Protocol): diff --git a/weave/trace_server/sqlite_trace_server.py b/weave/trace_server/sqlite_trace_server.py index 3ba8f34fc9a0..c958a54b4889 100644 --- a/weave/trace_server/sqlite_trace_server.py +++ b/weave/trace_server/sqlite_trace_server.py @@ -6,7 +6,8 @@ import json import sqlite3 import threading -from typing import Any, Iterator, Optional, cast +from collections.abc import Iterator +from typing import Any, Optional, cast from zoneinfo import ZoneInfo import emoji diff --git a/weave/trace_server/trace_server_interface.py b/weave/trace_server/trace_server_interface.py index 7b2ba604ab75..0f291ba918e4 100644 --- a/weave/trace_server/trace_server_interface.py +++ b/weave/trace_server/trace_server_interface.py @@ -1,6 +1,7 @@ import datetime +from collections.abc import Iterator from enum import Enum -from typing import Any, Iterator, Literal, Optional, Protocol, Union +from typing import Any, Literal, Optional, Protocol, Union from pydantic import BaseModel, ConfigDict, Field, field_serializer from typing_extensions import TypedDict diff --git a/weave/trace_server_bindings/remote_http_trace_server.py b/weave/trace_server_bindings/remote_http_trace_server.py index d2e041565f4a..26709428ddfd 100644 --- a/weave/trace_server_bindings/remote_http_trace_server.py +++ b/weave/trace_server_bindings/remote_http_trace_server.py @@ -1,7 +1,8 @@ import io import json import logging -from typing import Any, Iterator, Optional, Union, cast +from collections.abc import Iterator +from typing import Any, Optional, Union, cast import tenacity from pydantic import BaseModel, ValidationError diff --git a/weave/wandb_interface/project_creator.py b/weave/wandb_interface/project_creator.py index 910e8f9707f7..fa4839f341bd 100644 --- a/weave/wandb_interface/project_creator.py +++ b/weave/wandb_interface/project_creator.py @@ -2,8 +2,8 @@ # This file should be in the trace SDK dir import logging +from collections.abc import Iterator from contextlib import contextmanager -from typing import Iterator import wandb from wandb import errors as wandb_errors diff --git a/weave/wandb_interface/wandb_api.py b/weave/wandb_interface/wandb_api.py index 879b331caa91..a5cc668cc125 100644 --- a/weave/wandb_interface/wandb_api.py +++ b/weave/wandb_interface/wandb_api.py @@ -7,7 +7,8 @@ import contextlib import contextvars import dataclasses -from typing import Any, Generator, Optional +from collections.abc import Generator +from typing import Any, Optional import aiohttp import gql