Upgrading to Pydantic v2 and DiffSync v2 #327
Open
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.
Overview
network-importer
's dependency onpydantic = "^1.6"
limits users who need to use other packages dependent on Pydantic 2.x in the same Python environment.The original motivation behind this PR was to move
network-importer
's dependency to Pydantic v2.x. However,network-importer
depends on DiffSync, which in turn also depends on Pydantic.For that, moving to DiffSync v2 is also required for compatibility with Pydantic v2.
Changes Made
pydantic-settings
.4.0.0
(subject to NTC's discretion) due to breaking changes.Testing
invoke pytest
command. (see Additional Notes below)check
andapply
modes, and with/without--update-configs
and--limit
flags.Additional Notes
invoke pytest
only worked after I added the following line to the end of the Dockerfile:RUN pip install .
I'm not sure why, but lines 14 and 15 of the current Dockerfile were not taking the effect of making
network_importer
itself available in the python environment of the resulting built image.I decided to not tackle this at all within this PR because:
1 - It might be some weirdness with my own sandbox environment.
2 - Even if it is not, I believe it is out-of-scope.