Micro-package that defines a SWIFT/BIC code type using the Pydantic package
Install from PyPI
pip install pydantic-swift-code
Install from GitHub
pip install [email protected]:duketemon/pydantic-swift-code.git
from pydantic import BaseModel, field_validator
from pydantic_swift_code import SwiftCode
class BankAccount(BaseModel):
...
swift_code: SwiftCode
@field_validator("swift_code", mode="after")
@classmethod
def validate_swift_code_after_init(cls, swift_code: str) -> str:
"""Custom validation"""
if swift_code[:4] not in {"REVO", "MONZ"}:
raise ValueError("Only Revolut and Monzo swift codes are allowed")
if swift_code[4:6] not in {"US", "GB"}:
raise ValueError("Only GB and US swift codes are allowed")
return swift_code