Skip to content

Commit

Permalink
Silence mypy warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
ljodal committed Aug 7, 2023
1 parent 7df6aca commit ecf3446
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions webauthn/helpers/structs.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@


try:
from pydantic import (
from pydantic import ( # type: ignore[attr-defined]
BaseModel,
field_validator,
ConfigDict,
ValidationInfo,
FieldValidationInfo,
model_serializer,
)

PYDANTIC_V2 = True
except ImportError:
from pydantic import BaseModel, validator
from pydantic.fields import ModelField
from pydantic.fields import ModelField # type: ignore[attr-defined]

PYDANTIC_V2 = False

Expand Down Expand Up @@ -58,17 +58,17 @@ class WebAuthnBaseModel(BaseModel):
"""

if PYDANTIC_V2:
model_config = ConfigDict(
model_config = ConfigDict( # type: ignore[typeddict-unknown-key]
alias_generator=snake_case_to_camel_case,
populate_by_name=True,
ser_json_bytes="base64",
)

@field_validator("*", mode="before")
def _pydantic_v2_validate_bytes_fields(
cls, v: Any, info: ValidationInfo
cls, v: Any, info: FieldValidationInfo
) -> Any:
field = cls.model_fields[info.field_name]
field = cls.model_fields[info.field_name] # type: ignore[attr-defined]

if field.annotation != bytes:
return v
Expand All @@ -91,7 +91,7 @@ def clean_up_base64(

serialized = serializer(self)

for name, field_info in self.model_fields.items():
for name, field_info in self.model_fields.items(): # type: ignore[attr-defined]
value = serialized.get(name)
if field_info.annotation is bytes and isinstance(value, str):
serialized[name] = value.rstrip("=")
Expand All @@ -106,7 +106,7 @@ class Config:
alias_generator = snake_case_to_camel_case
allow_population_by_field_name = True

@validator("*", pre=True, allow_reuse=True)
@validator("*", pre=True, allow_reuse=True) # type: ignore[type-var]
def _pydantic_v1_validate_bytes_fields(cls, v: Any, field: ModelField) -> Any:
"""
Allow for Pydantic models to define fields as `bytes`, but allow consuming projects to
Expand Down

0 comments on commit ecf3446

Please sign in to comment.