diff --git a/.github/workflows/format-code.yml b/.github/workflows/format-code.yml index 2acbd55..54ca9d2 100644 --- a/.github/workflows/format-code.yml +++ b/.github/workflows/format-code.yml @@ -24,17 +24,12 @@ jobs: - name: Install Formatters run: | - pip install black isort ruff + pip install ruff ty - - name: Run isort - run: isort . - - - name: Run Black Formatter - run: black . + - name: Run Ruff Linter and Auto-fix run: | - ruff check . --fix ruff format . - name: Commit and Push Changes diff --git a/nexios_contrib/accepts/dependency.py b/nexios_contrib/accepts/dependency.py index 33ce57b..9ce7da0 100644 --- a/nexios_contrib/accepts/dependency.py +++ b/nexios_contrib/accepts/dependency.py @@ -60,4 +60,3 @@ def _wrap(request: Request = Context().request) -> AcceptsInfo: return get_accepts_info_from_request(request, attribute_name) return cast(AcceptsInfo, Depend(_wrap)) - diff --git a/nexios_contrib/accepts/helpers.py b/nexios_contrib/accepts/helpers.py index 3582466..cdda3ea 100644 --- a/nexios_contrib/accepts/helpers.py +++ b/nexios_contrib/accepts/helpers.py @@ -45,7 +45,9 @@ def accept(self) -> Any | List[AcceptItem]: if self._state_accept is None: if hasattr(self.request.state, "accepts_parsed"): item = getattr(self.request.state, "accepts_parsed", {}) - self._state_accept: Any | list[Unknown] = item.get("accept", []) if item else [] + self._state_accept: Any | list[Unknown] = ( + item.get("accept", []) if item else [] + ) else: self._state_accept = parse_accept_header( self.request.headers.get("Accept", "") diff --git a/nexios_contrib/mail/config.py b/nexios_contrib/mail/config.py index b49e275..e9382b2 100644 --- a/nexios_contrib/mail/config.py +++ b/nexios_contrib/mail/config.py @@ -71,8 +71,9 @@ class MailConfig: default_factory=lambda: os.getenv("MAIL_DEBUG", "false").lower() == "true" ) suppress_send: bool = field( - default_factory=lambda: os.getenv("MAIL_SUPPRESS_SEND", "false").lower() - == "true" + default_factory=lambda: ( + os.getenv("MAIL_SUPPRESS_SEND", "false").lower() == "true" + ) ) def __post_init__(self) -> None: diff --git a/nexios_contrib/mail/tasks.py b/nexios_contrib/mail/tasks.py index 169eb4d..d9952fa 100644 --- a/nexios_contrib/mail/tasks.py +++ b/nexios_contrib/mail/tasks.py @@ -101,7 +101,7 @@ async def send_email_async( return None # Create the background task - task = create_task( + task = create_task( self._send_email_task, to=to, subject=subject, @@ -145,7 +145,7 @@ async def send_message_async( return None # Create the background task - task = create_task( + task = create_task( self._send_message_task, message, name=f"send_message_{message.subject}", @@ -196,7 +196,7 @@ async def send_template_email_async( return None # Create the background task - task = create_task( + task = create_task( self._send_template_email_task, to=to, subject=subject, diff --git a/nexios_contrib/proxy/helper.py b/nexios_contrib/proxy/helper.py index acb36f8..468ddfb 100644 --- a/nexios_contrib/proxy/helper.py +++ b/nexios_contrib/proxy/helper.py @@ -192,7 +192,7 @@ def get_protocol_from_headers(request: Request) -> str: str: The protocol (http/https). """ # Check X-Forwarded-Proto first - proto = parse_x_forwarded_proto(request.headers.get("X-Forwarded-Proto","")) + proto = parse_x_forwarded_proto(request.headers.get("X-Forwarded-Proto", "")) if proto: return proto @@ -222,7 +222,7 @@ def get_host_from_headers(request: Request) -> Optional[str]: Optional[str]: The real host. """ # Check X-Forwarded-Host first - host = parse_x_forwarded_host(request.headers.get("X-Forwarded-Host","")) + host = parse_x_forwarded_host(request.headers.get("X-Forwarded-Host", "")) if host: return host diff --git a/nexios_contrib/redis/config.py b/nexios_contrib/redis/config.py index 5bf59f3..1d39541 100644 --- a/nexios_contrib/redis/config.py +++ b/nexios_contrib/redis/config.py @@ -84,15 +84,15 @@ def from_env(cls, prefix: str = "REDIS_") -> RedisConfig: if env_value is not None: # Type conversion for specific fields - if field.type_ in (int, float): #ty: ignore + if field.type_ in (int, float): # ty: ignore try: - if isinstance(field,int): + if isinstance(field, int): env_vars[field_name] = int(env_value) else: env_vars[field_name] = float(env_value) except ValueError: continue # Skip invalid values - elif isinstance(field,bool): + elif isinstance(field, bool): env_vars[field_name] = env_value.lower() in ( "true", "1", diff --git a/nexios_contrib/redis/dependency.py b/nexios_contrib/redis/dependency.py index fdae826..8b49c8c 100644 --- a/nexios_contrib/redis/dependency.py +++ b/nexios_contrib/redis/dependency.py @@ -43,4 +43,4 @@ async def get_cached_data( ``` """ - return cast(RedisClient,Depend(get_redis)) + return cast(RedisClient, Depend(get_redis)) diff --git a/nexios_contrib/scheduler/dependency.py b/nexios_contrib/scheduler/dependency.py index 0040c28..bb79394 100644 --- a/nexios_contrib/scheduler/dependency.py +++ b/nexios_contrib/scheduler/dependency.py @@ -76,9 +76,9 @@ def resume_job(self, job_id: str) -> bool: def _get_scheduler_depend(ctx: Context = Context()) -> SchedulerDepend: """Factory used by the ``SchedulerDepends`` callable.""" - + return SchedulerDepend(ctx.request) # ty:ignore[invalid-argument-type] def SchedulerDepends() -> SchedulerDepend: - return cast(typ=SchedulerDepend, val=Depend(_get_scheduler_depend)) \ No newline at end of file + return cast(typ=SchedulerDepend, val=Depend(_get_scheduler_depend)) diff --git a/nexios_contrib/slashes/middleware.py b/nexios_contrib/slashes/middleware.py index 8ad47d9..867e48f 100644 --- a/nexios_contrib/slashes/middleware.py +++ b/nexios_contrib/slashes/middleware.py @@ -15,7 +15,6 @@ from nexios.middleware.base import BaseMiddleware - class SlashAction(Enum): """Actions for handling trailing slashes.""" diff --git a/nexios_contrib/tasks/__init__.py b/nexios_contrib/tasks/__init__.py index b5c7ef2..e6213d0 100644 --- a/nexios_contrib/tasks/__init__.py +++ b/nexios_contrib/tasks/__init__.py @@ -198,5 +198,9 @@ def create_task( task_manager = get_task_manager(request) return task_manager.create_task( - func=func, *task_args, name=name, timeout=timeout, **kwargs # ty:ignore[parameter-already-assigned] + func=func, + *task_args, + name=name, + timeout=timeout, + **kwargs, # ty:ignore[parameter-already-assigned] ) # ty:ignore[invalid-return-type] diff --git a/nexios_contrib/tasks/dependency.py b/nexios_contrib/tasks/dependency.py index 28c5fd9..9202784 100644 --- a/nexios_contrib/tasks/dependency.py +++ b/nexios_contrib/tasks/dependency.py @@ -13,7 +13,8 @@ Callable, Generic, Optional, - TypeVar, cast, + TypeVar, + cast, ) from nexios.dependencies import Context, Depend @@ -113,10 +114,10 @@ def get_task_dependency( This is the recommended way to get a TaskDepend instance in route handlers. """ - if not isinstance(ctx.request, Request): + if not isinstance(ctx.request, Request): raise TypeError("Task dependency requires a Request object") return TaskDepend(ctx.request) def TaskDependency() -> TaskDepend: - return cast(TaskDepend,Depend(get_task_dependency)) + return cast(TaskDepend, Depend(get_task_dependency)) diff --git a/nexios_contrib/tasks/models.py b/nexios_contrib/tasks/models.py index 3e59791..eff490d 100644 --- a/nexios_contrib/tasks/models.py +++ b/nexios_contrib/tasks/models.py @@ -139,7 +139,6 @@ async def run(self) -> None: ) raise except Exception as e: - self._status = TaskStatus.FAILED self._result = TaskResult( task_id=self.id, diff --git a/nexios_contrib/timeout/helper.py b/nexios_contrib/timeout/helper.py index 2d52066..082d984 100644 --- a/nexios_contrib/timeout/helper.py +++ b/nexios_contrib/timeout/helper.py @@ -197,8 +197,7 @@ def create_timeout_response( return JSONResponse( {"error": "Request Timeout", "timeout": timeout, "detail": detail}, status_code=408, - headers={"X-Timeout": str(timeout)} - + headers={"X-Timeout": str(timeout)}, ) @@ -226,7 +225,7 @@ def format_timeout_duration(seconds: float) -> str: Human-readable duration string. """ if seconds < 1: - return f"{seconds*1000}ms" + return f"{seconds * 1000}ms" elif seconds < 60: return f"{seconds}s" elif seconds < 3600: diff --git a/nexios_contrib/tortoise/config.py b/nexios_contrib/tortoise/config.py index 1762c17..8380a71 100644 --- a/nexios_contrib/tortoise/config.py +++ b/nexios_contrib/tortoise/config.py @@ -7,7 +7,7 @@ import os from typing import Any, Dict, List, Optional -from pydantic import BaseModel, Field, field_validator +from pydantic import BaseModel, Field, field_validator class TortoiseConfig(BaseModel): @@ -107,7 +107,7 @@ def from_env(cls, prefix: str = "TORTOISE_") -> TortoiseConfig: if env_value is not None: # Type conversion for specific fields - if isinstance(field,(int, float)): + if isinstance(field, (int, float)): try: if field.type_ is int: env_vars[field_name] = int(env_value)