From c6b4951a57ca526427ced085dd4b0a97be2b4c18 Mon Sep 17 00:00:00 2001 From: Adam Hopkins Date: Sun, 12 Jan 2025 14:02:55 +0200 Subject: [PATCH] Run pretty --- sanic_ext/bootstrap.py | 4 +- sanic_ext/config.py | 2 +- sanic_ext/extensions/base.py | 2 +- sanic_ext/extensions/http/cors.py | 2 +- sanic_ext/extensions/http/methods.py | 2 +- sanic_ext/extensions/injection/constructor.py | 4 -- sanic_ext/extensions/injection/injector.py | 2 +- sanic_ext/extensions/injection/registry.py | 2 +- sanic_ext/extensions/logging/extractor.py | 2 +- sanic_ext/extensions/logging/logger.py | 1 - sanic_ext/extensions/openapi/builders.py | 2 +- sanic_ext/extensions/openapi/definitions.py | 3 -- sanic_ext/extensions/openapi/openapi.py | 5 +-- sanic_ext/extensions/openapi/types.py | 2 - sanic_ext/extensions/templating/engine.py | 2 +- sanic_ext/extensions/templating/extension.py | 2 +- sanic_ext/extensions/templating/render.py | 2 +- sanic_ext/extras/validation/check.py | 38 ++++++++----------- sanic_ext/extras/validation/clean.py | 2 +- sanic_ext/extras/validation/decorator.py | 2 +- sanic_ext/extras/validation/schema.py | 2 - sanic_ext/extras/validation/validators.py | 2 +- sanic_ext/utils/version.py | 2 - 23 files changed, 33 insertions(+), 56 deletions(-) diff --git a/sanic_ext/bootstrap.py b/sanic_ext/bootstrap.py index cc3f3d8..942ee97 100644 --- a/sanic_ext/bootstrap.py +++ b/sanic_ext/bootstrap.py @@ -2,9 +2,9 @@ import os -from types import SimpleNamespace -from typing import Any, Callable, Dict, List, Optional, Type, Union from collections.abc import Mapping +from types import SimpleNamespace +from typing import Any, Callable, Optional, Union from warnings import warn from sanic import Sanic, __version__ diff --git a/sanic_ext/config.py b/sanic_ext/config.py index 550076e..cdd9117 100644 --- a/sanic_ext/config.py +++ b/sanic_ext/config.py @@ -2,8 +2,8 @@ import os -from typing import Any, Dict, List, Optional, Union from collections.abc import Sequence +from typing import Any, Optional, Union from sanic import Sanic from sanic.config import Config as SanicConfig diff --git a/sanic_ext/extensions/base.py b/sanic_ext/extensions/base.py index a825f8d..ac08e56 100644 --- a/sanic_ext/extensions/base.py +++ b/sanic_ext/extensions/base.py @@ -1,7 +1,7 @@ from __future__ import annotations from abc import ABC, abstractmethod -from typing import Any, Dict, Type, Union +from typing import Any, Union from sanic.app import Sanic from sanic.exceptions import SanicException diff --git a/sanic_ext/extensions/http/cors.py b/sanic_ext/extensions/http/cors.py index b60427e..28572e5 100644 --- a/sanic_ext/extensions/http/cors.py +++ b/sanic_ext/extensions/http/cors.py @@ -3,7 +3,7 @@ from dataclasses import dataclass from datetime import timedelta from types import SimpleNamespace -from typing import Any, FrozenSet, List, Optional, Tuple, Union +from typing import Any, Optional, Union from sanic import HTTPResponse, Request, Sanic from sanic.exceptions import SanicException diff --git a/sanic_ext/extensions/http/methods.py b/sanic_ext/extensions/http/methods.py index cc03013..de1a246 100644 --- a/sanic_ext/extensions/http/methods.py +++ b/sanic_ext/extensions/http/methods.py @@ -1,8 +1,8 @@ +from collections.abc import Sequence from functools import partial from inspect import isawaitable from operator import itemgetter from typing import Union -from collections.abc import Sequence from sanic import Sanic from sanic.constants import HTTPMethod diff --git a/sanic_ext/extensions/injection/constructor.py b/sanic_ext/extensions/injection/constructor.py index dcbc970..aa3b1fb 100644 --- a/sanic_ext/extensions/injection/constructor.py +++ b/sanic_ext/extensions/injection/constructor.py @@ -6,11 +6,7 @@ TYPE_CHECKING, Any, Callable, - Dict, Optional, - Set, - Tuple, - Type, get_args, get_type_hints, ) diff --git a/sanic_ext/extensions/injection/injector.py b/sanic_ext/extensions/injection/injector.py index ed6c9e4..6238956 100644 --- a/sanic_ext/extensions/injection/injector.py +++ b/sanic_ext/extensions/injection/injector.py @@ -2,7 +2,7 @@ from functools import partial from inspect import getmembers, isclass, isfunction -from typing import Any, Callable, Dict, Optional, Tuple, Type, get_type_hints +from typing import Any, Callable, Optional, get_type_hints from sanic import Sanic from sanic.constants import HTTP_METHODS diff --git a/sanic_ext/extensions/injection/registry.py b/sanic_ext/extensions/injection/registry.py index 3f0888a..c23d661 100644 --- a/sanic_ext/extensions/injection/registry.py +++ b/sanic_ext/extensions/injection/registry.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Any, Callable, Dict, Optional, Set, Tuple, Type +from typing import Any, Callable, Optional from sanic.app import Sanic from sanic.config import Config diff --git a/sanic_ext/extensions/logging/extractor.py b/sanic_ext/extensions/logging/extractor.py index a25ec82..fd32202 100644 --- a/sanic_ext/extensions/logging/extractor.py +++ b/sanic_ext/extensions/logging/extractor.py @@ -1,6 +1,6 @@ import logging -from typing import Any, Dict, Optional, TypedDict +from typing import Any, Optional, TypedDict class LoggerConfig(TypedDict): diff --git a/sanic_ext/extensions/logging/logger.py b/sanic_ext/extensions/logging/logger.py index 6f8cd7a..87a0159 100644 --- a/sanic_ext/extensions/logging/logger.py +++ b/sanic_ext/extensions/logging/logger.py @@ -7,7 +7,6 @@ from queue import Empty, Full from signal import SIGINT, SIGTERM from signal import signal as signal_func -from typing import List from sanic import Sanic from sanic.log import logger as root_logger diff --git a/sanic_ext/extensions/openapi/builders.py b/sanic_ext/extensions/openapi/builders.py index 0680921..8bc93d5 100644 --- a/sanic_ext/extensions/openapi/builders.py +++ b/sanic_ext/extensions/openapi/builders.py @@ -1,8 +1,8 @@ from __future__ import annotations from collections import defaultdict -from typing import TYPE_CHECKING, Optional, Union, cast from collections.abc import Sequence +from typing import TYPE_CHECKING, Optional, Union, cast from sanic_ext.extensions.openapi.constants import ( SecuritySchemeAuthorization, diff --git a/sanic_ext/extensions/openapi/definitions.py b/sanic_ext/extensions/openapi/definitions.py index cdf37d5..91fc6e0 100644 --- a/sanic_ext/extensions/openapi/definitions.py +++ b/sanic_ext/extensions/openapi/definitions.py @@ -10,11 +10,8 @@ from inspect import isclass from typing import ( Any, - Dict, - List, Literal, Optional, - Type, Union, get_type_hints, ) diff --git a/sanic_ext/extensions/openapi/openapi.py b/sanic_ext/extensions/openapi/openapi.py index cbca7a8..3a0534e 100644 --- a/sanic_ext/extensions/openapi/openapi.py +++ b/sanic_ext/extensions/openapi/openapi.py @@ -4,21 +4,18 @@ """ +from collections.abc import Sequence from functools import wraps from inspect import isawaitable, isclass from typing import ( Any, Callable, - Dict, - List, Literal, Optional, - Type, TypeVar, Union, overload, ) -from collections.abc import Sequence from sanic import Blueprint from sanic.exceptions import InvalidUsage, SanicException diff --git a/sanic_ext/extensions/openapi/types.py b/sanic_ext/extensions/openapi/types.py index 39da4e6..b47a53b 100644 --- a/sanic_ext/extensions/openapi/types.py +++ b/sanic_ext/extensions/openapi/types.py @@ -7,8 +7,6 @@ from inspect import getmembers, isclass, isfunction, ismethod from typing import ( Any, - Dict, - List, Optional, Union, get_args, diff --git a/sanic_ext/extensions/templating/engine.py b/sanic_ext/extensions/templating/engine.py index 69ac844..fc1d1e5 100644 --- a/sanic_ext/extensions/templating/engine.py +++ b/sanic_ext/extensions/templating/engine.py @@ -2,7 +2,7 @@ from functools import wraps from inspect import isawaitable -from typing import TYPE_CHECKING, Dict, Optional, Union +from typing import TYPE_CHECKING, Optional, Union from jinja2 import Environment from sanic.compat import Header diff --git a/sanic_ext/extensions/templating/extension.py b/sanic_ext/extensions/templating/extension.py index 2b4ec92..72aa911 100644 --- a/sanic_ext/extensions/templating/extension.py +++ b/sanic_ext/extensions/templating/extension.py @@ -3,9 +3,9 @@ import os from collections import abc +from collections.abc import Sequence from pathlib import Path from typing import TYPE_CHECKING, Union -from collections.abc import Sequence from jinja2 import ( Environment, diff --git a/sanic_ext/extensions/templating/render.py b/sanic_ext/extensions/templating/render.py index b327d9d..76b17cc 100644 --- a/sanic_ext/extensions/templating/render.py +++ b/sanic_ext/extensions/templating/render.py @@ -1,7 +1,7 @@ from __future__ import annotations from inspect import isawaitable -from typing import TYPE_CHECKING, Any, Dict, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from sanic import Sanic from sanic.compat import Header diff --git a/sanic_ext/extras/validation/check.py b/sanic_ext/extras/validation/check.py index 4a465e7..7540d7c 100644 --- a/sanic_ext/extras/validation/check.py +++ b/sanic_ext/extras/validation/check.py @@ -1,17 +1,16 @@ from __future__ import annotations +from collections.abc import Mapping from dataclasses import _HAS_DEFAULT_FACTORY # type: ignore from typing import ( Any, Literal, NamedTuple, Optional, - Tuple, Union, get_args, get_origin, ) -from collections.abc import Mapping from sanic_ext.utils.typing import ( UnionType, @@ -54,9 +53,7 @@ class Hint(NamedTuple): allowed: tuple[Hint, ...] # type: ignore allow_missing: bool - def validate( - self, value, schema, allow_multiple=False, allow_coerce=False - ): + def validate(self, value, schema, allow_multiple=False, allow_coerce=False): if not self.typed: if self.model: return check_data( @@ -188,11 +185,16 @@ def check_data(model, data, schema, allow_multiple=False, allow_coerce=False): if MSGSPEC and is_msgspec(model): try: - return msgspec.from_builtins( - hydration_values, model, str_values=True, str_keys=True - ) - except msgspec.ValidationError as e: - raise TypeError(e) + try: + return msgspec.to_builtins(hydration_values, str_keys=True) + except msgspec.ValidationError as e: + raise TypeError(e) + except AttributeError: + try: + return msgspec.convert(hydration_values, model, str_keys=True) + except msgspec.ValidationError as e: + raise TypeError(e) + else: return model(**hydration_values) @@ -213,18 +215,14 @@ def _check_types(value, literal, expected): raise ValueError(f"Value '{value}' is not of type {expected}") -def _check_nullability( - value, nullable, allowed, schema, allow_multiple, allow_coerce -): +def _check_nullability(value, nullable, allowed, schema, allow_multiple, allow_coerce): if not nullable and value is None: raise ValueError("Value cannot be None") if nullable and value is not None: exc = None for hint in allowed: try: - value = hint.validate( - value, schema, allow_multiple, allow_coerce - ) + value = hint.validate(value, schema, allow_multiple, allow_coerce) except ValueError as e: exc = e else: @@ -234,9 +232,7 @@ def _check_nullability( if len(allowed) == 1: raise exc else: - options = ", ".join( - [str(option.hint) for option in allowed] - ) + options = ", ".join([str(option.hint) for option in allowed]) raise ValueError( f"Value '{value}' must be one of {options}, or None" ) @@ -258,9 +254,7 @@ def _check_list(value, allowed, hint, schema, allow_multiple, allow_coerce): if isinstance(value, list): try: return [ - _check_inclusion( - item, allowed, schema, allow_multiple, allow_coerce - ) + _check_inclusion(item, allowed, schema, allow_multiple, allow_coerce) for item in value ] except (ValueError, TypeError): diff --git a/sanic_ext/extras/validation/clean.py b/sanic_ext/extras/validation/clean.py index 4bcc650..32268fd 100644 --- a/sanic_ext/extras/validation/clean.py +++ b/sanic_ext/extras/validation/clean.py @@ -1,4 +1,4 @@ -from typing import Any, Dict, Type, get_origin, get_type_hints +from typing import Any, get_origin, get_type_hints def clean_data(model: type[object], data: dict[str, Any]) -> dict[str, Any]: diff --git a/sanic_ext/extras/validation/decorator.py b/sanic_ext/extras/validation/decorator.py index 302d99d..608152d 100644 --- a/sanic_ext/extras/validation/decorator.py +++ b/sanic_ext/extras/validation/decorator.py @@ -1,6 +1,6 @@ from functools import wraps from inspect import isawaitable -from typing import Callable, Optional, Type, TypeVar, Union +from typing import Callable, Optional, TypeVar, Union from sanic import Request diff --git a/sanic_ext/extras/validation/schema.py b/sanic_ext/extras/validation/schema.py index b9a823d..08f5551 100644 --- a/sanic_ext/extras/validation/schema.py +++ b/sanic_ext/extras/validation/schema.py @@ -4,10 +4,8 @@ from inspect import isclass, signature from typing import ( Any, - Dict, Literal, Optional, - Tuple, Union, get_args, get_origin, diff --git a/sanic_ext/extras/validation/validators.py b/sanic_ext/extras/validation/validators.py index 94f8641..3421961 100644 --- a/sanic_ext/extras/validation/validators.py +++ b/sanic_ext/extras/validation/validators.py @@ -1,4 +1,4 @@ -from typing import Any, Callable, Dict, Tuple, Type +from typing import Any, Callable from sanic_ext.exceptions import ValidationError diff --git a/sanic_ext/utils/version.py b/sanic_ext/utils/version.py index 46522b9..e3d5a24 100644 --- a/sanic_ext/utils/version.py +++ b/sanic_ext/utils/version.py @@ -1,7 +1,5 @@ import re -from typing import Tuple - # Expression from https://github.com/pypa/packaging VERSION_PATTERN = r"""