Upgrading to Pydantic v2 and DiffSync v2#327
Upgrading to Pydantic v2 and DiffSync v2#327theandrelima wants to merge 11 commits intonetworktocode:developfrom
Conversation
|
Looks like this is failing because of the removed docstrings in |
|
I'm onboard with getting this merged in and let's then take a pass at getting the rest updated. For that update (not this one), @theandrelima would we be good to update Python minimums in your environment? Only because Pandas and Numpy are aggressively moving forward. |
I was off for a couple of weeks. Back now and happy to see that this might get merged soon, hopefully? All right! tWill do. |
|
It seems the idea is to deprecate network-importer as a standalone package in favour of the new onboarding plugin, which will include network importing functionality too. Whereas that is nice, I'm a big proponent of an independent NI package that can be integrated in whichever way best suits each use case. For example, I currently would love to have NI as a service with a backend REST API, dedicated workers, and running independently of Netbox/Nautobot app, while updating it. I'll keep my own version of this package, possibly with a different name too. Hope that's not a problem... cheers... |
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-importerdepends 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 pytestcommand. (see Additional Notes below)checkandapplymodes, and with/without--update-configsand--limitflags.Additional Notes
invoke pytestonly 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_importeritself 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.