soldni / springs

A set of utilities to turn Dataclasses into useful configuration managers.
https://springs.soldaini.net
MIT License
11 stars 2 forks source link

Upgrade to Python 3.11 #22

Closed bnewm0609 closed 1 year ago

bnewm0609 commented 1 year ago

This PR addresses an update to the dataclasses module in python 3.11, which prevents adding mutable fields to dataclasses by default. There were a few places where this appears.

First, the springs.cli.Flag dataclass. This change was addressed by implementing a __hash__ method.

Second, in the configs in tests/fixtures/configs. Here, the PR makes dataclasses hashable by passing unsafe_hash=True to the dataclass wrapper function.

There are other approaches to this outlined here:

soldni commented 1 year ago

Thank you @bnewm0609! I hadn't researched options myself, so this was very helpful. I decided to go with the default_factory= option as it is (a) in line with what omegaconf library recommends, and (b) safer.