From 0440d9c9363db7f09cbf29c5e9d4a03eecddbc9d Mon Sep 17 00:00:00 2001 From: Michael Chase <3686226+reallistic@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:43:08 -0400 Subject: [PATCH] fix styles for newest version of mypy --- .pylintrc | 2 +- ariadne/contrib/tracing/copy_args.py | 4 ++++ ariadne/contrib/tracing/utils.py | 4 ++++ ariadne/load_schema.py | 3 ++- ariadne/wsgi.py | 7 +++++-- 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.pylintrc b/.pylintrc index 8175adc75..362c3f535 100644 --- a/.pylintrc +++ b/.pylintrc @@ -3,7 +3,7 @@ ignore=snapshots load-plugins=pylint.extensions.bad_builtin, pylint.extensions.mccabe [MESSAGES CONTROL] -disable=C0103, C0111, C0209, C0412, I0011, R0101, R0801, R0901, R0902, R0903, R0912, R0913, R0914, R0915, R1260, W0105, W0231, W0511, W0621, W0703 +disable=C0103, C0111, C0209, C0412, I0011, R0101, R0801, R0901, R0902, R0903, R0912, R0913, R0914, R0915, R0917, R1260, W0105, W0231, W0511, W0621, W0703 [SIMILARITIES] ignore-imports=yes diff --git a/ariadne/contrib/tracing/copy_args.py b/ariadne/contrib/tracing/copy_args.py index 474ce51d1..df6a5db90 100644 --- a/ariadne/contrib/tracing/copy_args.py +++ b/ariadne/contrib/tracing/copy_args.py @@ -22,11 +22,15 @@ def copy_args_for_tracing(value: Any) -> Any: def repr_upload_file(upload_file: Union[UploadFile, File]) -> str: + filename: Union[str, None, bytes] if isinstance(upload_file, File): filename = upload_file.file_name else: filename = upload_file.filename + if isinstance(filename, bytes): + filename = filename.decode() + mime_type: Union[str, None] if isinstance(upload_file, File): diff --git a/ariadne/contrib/tracing/utils.py b/ariadne/contrib/tracing/utils.py index ad79c9454..8b67c38ca 100644 --- a/ariadne/contrib/tracing/utils.py +++ b/ariadne/contrib/tracing/utils.py @@ -25,11 +25,15 @@ def copy_args_for_tracing(value: Any) -> Any: def repr_upload_file(upload_file: Union[UploadFile, File]) -> str: + filename: Union[str, None, bytes] if isinstance(upload_file, File): filename = upload_file.file_name else: filename = upload_file.filename + if isinstance(filename, bytes): + filename = filename.decode() + mime_type: Union[str, None] if isinstance(upload_file, File): diff --git a/ariadne/load_schema.py b/ariadne/load_schema.py index 43fdfd8b6..dac3bc8b5 100644 --- a/ariadne/load_schema.py +++ b/ariadne/load_schema.py @@ -1,4 +1,5 @@ import os +from pathlib import Path from typing import Generator, Union from graphql import parse @@ -27,7 +28,7 @@ def load_schema_from_path(path: Union[str, os.PathLike]) -> str: if os.path.isdir(path): schema_list = [read_graphql_file(f) for f in sorted(walk_graphql_files(path))] return "\n".join(schema_list) - return read_graphql_file(os.path.abspath(path)) + return read_graphql_file(Path(path).resolve()) def walk_graphql_files(path: Union[str, os.PathLike]) -> Generator[str, None, None]: diff --git a/ariadne/wsgi.py b/ariadne/wsgi.py index 8a185d797..ec652b0fd 100644 --- a/ariadne/wsgi.py +++ b/ariadne/wsgi.py @@ -40,7 +40,7 @@ from multipart import parse_form except ImportError: - def parse_form(*_args, **_kwargs): + def parse_form(*_args, **_kwargs): # type: ignore raise NotImplementedError( "WSGI file uploads requires 'python-multipart' library." ) @@ -668,8 +668,11 @@ def parse_multipart_request(environ: dict) -> "FormData": headers = {"Content-Type": content_type} form_data = FormData(content_type) + # Silence mypy error for this incorrect type. + # parse_fprm defines the type as dict[str, bytes] but works with + # dict[str, Optional[str | bytes]] and will throw ValueError if Content-Type is None. parse_form( - headers, + headers, # type: ignore environ["wsgi.input"], form_data.on_field, form_data.on_file,