<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def record_once(self, func: DeferedSetupFunction) -> None: """Used to register a deferred action that happens only once."""

        def wrapper(state: 'BlueprintSetupState') -> None:
            if state.first_registration:
                func(state)
        self.record(update_wrapper(wrapper, func))