_, all_fields = filter_dict(dict(conf.items()), set(['type']))
pin_fields, remaining_fields = filter_dict(all_fields, set(P._fields))
# Error suppression works around https://github.com/python/mypy/issues/9007
- pin_present = pin_fields != {} or P._fields == ()
+ pin_present = pin_fields or P._fields == ()
pin = P(**pin_fields) if pin_present else None # type: ignore
return SP(**remaining_fields), pin