sabuhish / fastapi-mqtt

fastapi-mqtt is extension for MQTT protocol
https://sabuhish.github.io/fastapi-mqtt/
MIT License
256 stars 43 forks source link

RuntimeError: no validator found for <class 'ssl.SSLContext'>, see `arbitrary_types_allowed` in Config #75

Closed pksofttech closed 5 months ago

pksofttech commented 11 months ago

class MQTTConfig(BaseModel): File "pydantic/main.py", line 197, in pydantic.main.ModelMetaclass.new File "pydantic/fields.py", line 506, in pydantic.fields.ModelField.infer File "pydantic/fields.py", line 436, in pydantic.fields.ModelField.init File "pydantic/fields.py", line 552, in pydantic.fields.ModelField.prepare File "pydantic/fields.py", line 663, in pydantic.fields.ModelField._type_analysis File "pydantic/fields.py", line 808, in pydantic.fields.ModelField._create_sub_type File "pydantic/fields.py", line 436, in pydantic.fields.ModelField.init File "pydantic/fields.py", line 557, in pydantic.fields.ModelField.prepare File "pydantic/fields.py", line 831, in pydantic.fields.ModelField.populate_validators File "pydantic/validators.py", line 765, in find_validators RuntimeError: no validator found for <class 'ssl.SSLContext'>, see arbitrary_types_allowed in Config

im fix by

class MQTTConfig(BaseModel):

class Config:

arbitrary_types_allowed = True

....

azogue commented 10 months ago

Hi @pksofttech, are you trying to serialise the MQTTConfig with a SSLContext defined? (it's not possible)

Could you give some details about your environment? (python, pydantic + fastapi-mqtt versions, etc.) and when/how this is happening?

azogue commented 5 months ago

Closing this one, as deprecated.

In current v2.1.1 the MQTTConfig(BaseModel) already has the model_config = ConfigDict(arbitrary_types_allowed=True), and, unless trying to serialise to JSON with an SSLContext, there are no known problems about ✅