{"library":"pydantic-compat","title":"Pydantic Compat","description":"pydantic-compat is a compatibility layer designed to help developers write code that works seamlessly with both Pydantic v1 and v2. It provides common interfaces, aliases, and wrappers for key Pydantic components, allowing libraries and applications to support different Pydantic major versions without extensive conditional logic. The current version is 0.1.2, and it follows an as-needed release cadence to address compatibility needs.","language":"python","status":"active","last_verified":"Thu Apr 16","install":{"commands":["pip install pydantic-compat"],"cli":null},"imports":["from pydantic_compat import CompatModel","from pydantic_compat import model_validator","from pydantic_compat import FieldValidationInfo","from pydantic_compat import ConfigDict"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from pydantic_compat import CompatModel, model_validator, FieldValidationInfo\nfrom typing import ClassVar\nimport pydantic # To check version directly if needed\n\nclass MyConfig(CompatModel):\n    my_field: str\n    version_info: ClassVar[str] = \"\"\n\n    @model_validator(mode='after')\n    def check_version(self, info: FieldValidationInfo):\n        # Access original pydantic version for conditional logic\n        if pydantic.VERSION.startswith('1.'):\n            self.version_info = \"Pydantic v1 compatible\"\n        else:\n            self.version_info = \"Pydantic v2 compatible\"\n        return self\n\n# This will adapt based on the installed Pydantic version\nconfig_instance = MyConfig(my_field=\"hello world\")\nprint(f\"MyField: {config_instance.my_field}\")\nprint(f\"Compatibility Info: {config_instance.version_info}\")\n\n# Example with ConfigDict (for Pydantic v2 style config)\nfrom pydantic_compat import ConfigDict\n\nclass MyModelWithConfig(CompatModel):\n    model_config = ConfigDict(extra='ignore', frozen=True)\n    value: int\n\nmodel_instance = MyModelWithConfig(value=123, unknown_field=\"ignored\")\nprint(f\"Model Configured Value: {model_instance.value}\")","lang":"python","description":"This quickstart demonstrates how to define a model using `CompatModel` and use `model_validator` for cross-version compatible validation. It also shows how to leverage `ConfigDict` for defining model configurations that adapt to Pydantic v1's `class Config` or v2's `model_config`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}