def METHOD_NAME(item, call):
    if hasattr(item.config, "workerinput"):
        fail_for_not_implemented = item.config.workerinput["fail_for_not_implemented"]
    else:
        fail_for_not_implemented = item.config.fail_for_not_implemented
    outcome = yield
    rep = outcome.get_result()
    if rep.outcome == "failed":
        project_dir = getattr(get_device(), "project_dir", None)
        if project_dir is not None:
            rep.sections.append(("Standalone project directory", f"{project_dir}"))
        reinit_devices()
        if not fail_for_not_implemented:
            exc_cause = getattr(call.excinfo.value, "__cause__", None)
            if call.excinfo.errisinstance(NotImplementedError) or isinstance(
                exc_cause, NotImplementedError
            ):
                rep.outcome = "skipped"
                r = call.excinfo._getreprcrash()
                rep.longrepr = (str(r.path), r.lineno, r.message)
    else:
        # clean up after the test (delete directory for standalone)
        reinit_and_delete()