fix:refactored pydantic extension registration #1152
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The merge of #1121 broke Hamilton for users of
pydantic<2.0
because the extension was checking for importing Pydantic but had no guard forfrom pydantic import TypeAdapter
a feature added in 2.0. Simply havingpydantic<2.0
in your environment broke Hamilton even if not using Pydantic in the Hamilton code because of eager/greedy plugin registration. Problem was larger because registration don't follow the mainhamilton/plugins/XX_extensions
mechanism.Change
hamilton/plugins/pydantic_extensions
so that autoload can be disabled or enabled selectivelytry/except
for pydantic 2.0 feature with a helpful messageraise
to follow convention amongst pluginOtherwise, the
SchemaValidatorIbis
underhamilton.plugins.ibis_extensions
is a more modern and safer approach to follow than the olderhamilton.data_quality.pandera_validators
alternative.Testing
from hamilton import driver
and build aDriver
for: no pydantic installed,pydantic==1.10
installed, and latest pydantic installed.