mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-06-27 18:50:41 +00:00
chore: enable pyupgrade fixes (#1806)
# What does this PR do? The goal of this PR is code base modernization. Schema reflection code needed a minor adjustment to handle UnionTypes and collections.abc.AsyncIterator. (Both are preferred for latest Python releases.) Note to reviewers: almost all changes here are automatically generated by pyupgrade. Some additional unused imports were cleaned up. The only change worth of note can be found under `docs/openapi_generator` and `llama_stack/strong_typing/schema.py` where reflection code was updated to deal with "newer" types. Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
This commit is contained in:
parent
ffe3d0b2cd
commit
9e6561a1ec
319 changed files with 2843 additions and 3033 deletions
|
@ -11,6 +11,7 @@ Type-safe data interchange for Python data classes.
|
|||
"""
|
||||
|
||||
import builtins
|
||||
import collections.abc
|
||||
import dataclasses
|
||||
import inspect
|
||||
import re
|
||||
|
@ -171,6 +172,13 @@ class SupportsDoc(Protocol):
|
|||
__doc__: Optional[str]
|
||||
|
||||
|
||||
def _maybe_unwrap_async_iterator(t):
|
||||
origin_type = typing.get_origin(t)
|
||||
if origin_type is collections.abc.AsyncIterator:
|
||||
return typing.get_args(t)[0]
|
||||
return t
|
||||
|
||||
|
||||
def parse_type(typ: SupportsDoc) -> Docstring:
|
||||
"""
|
||||
Parse the docstring of a type into its components.
|
||||
|
@ -178,6 +186,8 @@ def parse_type(typ: SupportsDoc) -> Docstring:
|
|||
:param typ: The type whose documentation string to parse.
|
||||
:returns: Components of the documentation string.
|
||||
"""
|
||||
# Use docstring from the iterator origin type for streaming apis
|
||||
typ = _maybe_unwrap_async_iterator(typ)
|
||||
|
||||
doc = get_docstring(typ)
|
||||
if doc is None:
|
||||
|
|
|
@ -10,6 +10,7 @@ Type-safe data interchange for Python data classes.
|
|||
:see: https://github.com/hunyadi/strong_typing
|
||||
"""
|
||||
|
||||
import collections.abc
|
||||
import dataclasses
|
||||
import datetime
|
||||
import decimal
|
||||
|
@ -487,6 +488,9 @@ class JsonSchemaGenerator:
|
|||
elif origin_type is type:
|
||||
(concrete_type,) = typing.get_args(typ) # unpack single tuple element
|
||||
return {"const": self.type_to_schema(concrete_type, force_expand=True)}
|
||||
elif origin_type is collections.abc.AsyncIterator:
|
||||
(concrete_type,) = typing.get_args(typ)
|
||||
return self.type_to_schema(concrete_type)
|
||||
|
||||
# dictionary of class attributes
|
||||
members = dict(inspect.getmembers(typ, lambda a: not inspect.isroutine(a)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue