in src/chug/common/config.py [0:0]
def merge(self, right, inplace=False):
# merge from right to left for right fields that are not None
changes = {f.name: v for f in fields(self) if (v := getattr(right, f.name)) is not None}
if inplace:
for k, v in changes.items():
setattr(self, k, v)
return self
else:
return replace(self, **changes)