networktocode / diffsync

A utility library for comparing and synchronizing different datasets.
https://diffsync.readthedocs.io/
Other
155 stars 26 forks source link

Chore/update structlog #276

Closed jamesharr closed 4 months ago

jamesharr commented 4 months ago

datetime.utcnow() is deprecated in Python 3.12, but is still being used in structlog. Structlog release 23.2.0 fixes this. This PR relaxes the structlog version requirement to allow for up to version 24.x, which will get rid of the warning.

Another thing to consider is that DiffSync's use of structlog is pretty basic and structlog's API is pretty stable from the perspective of something generating log messages. Most of the changes pertain to log processors and log configuration, so it might be worth considering removing the max version for structlog. If this is acceptable, I can update the PR to remove the upper version restriction.

glennmatthews commented 4 months ago

Looks like maybe your branch isn't up to date with develop and has some merge conflicts as a result. Otherwise, this looks like a very reasonable change. Thanks!

jamesharr commented 4 months ago

With regards to removing the upper-bound structlog version, I was the last one to upgrade structlog in #211 :P

jamesharr commented 4 months ago

Looks like maybe your branch isn't up to date with develop and has some merge conflicts as a result. Otherwise, this looks like a very reasonable change. Thanks!

Alright, third time is charm on the rebase. Helps if you rebase off the correct upstream branch

glennmatthews commented 4 months ago

Given that structlog uses CalVer instead of SemVer, I'm cautiously OK with removing the upper bound there.

If you don't want to handle all of the changes needed to correspond to updates to linters (bandit etc.) then reverting the poetry.lock and just doing only poetry update structlog should result in a smaller set of diffs there.