code: def test_local_path_target_dir(path=None):
      path = Path(path)
      ds_main = Dataset(path / "main").create()
  
      ds_main.create_sibling(
          name="abspath-targetdir",
          sshurl=str(path / "a"),
          target_dir="tdir",
      )
      ok_((path / "a" / "tdir").exists())
  
      ds_main.create_sibling(
          name="relpath-bound-targetdir",
          sshurl=os.path.relpath(str(path / "b"), ds_main.path),
          target_dir="tdir",
      )
      ok_((path / "b" / "tdir").exists())
  
      with chpwd(path):
          create_sibling(
              dataset=ds_main.path,
              name="relpath-unbound-targetdir",
              sshurl="c",
              target_dir="tdir",
          )
      ok_((path / "c" / "tdir").exists())
  
      ds_main.create("subds")
  
      ds_main.create_sibling(
          name="rec-plain-targetdir",
          recursive=True,
          sshurl=str(path / "d"),
          target_dir="tdir",
      )
      ok_((path / "d" / "tdir" / "subds").exists())
  
      ds_main.create_sibling(
          name="rec-template-targetdir",
          recursive=True,
          sshurl=str(path / "e"),
          target_dir="d%RELNAME",
      )
      ok_((path / "e" / "d").exists())
      ok_((path / "e" / "d-subds").exists())
  
imports: import logging
  import os
  import stat
  import sys
  from os import chmod
  from os.path import basename, exists
  from os.path import join
  import pytest
  from datalad.api import create_sibling, install, push
  from datalad.cmd import StdOutErrCapture
  from datalad.cmd import WitlessRunner
  from datalad.distribution.create_sibling import _RunnerAdapter
  from datalad.support.annexrepo import AnnexRepo
  from datalad.support.exceptions import CommandError, InsufficientArgumentsError
  from datalad.support.gitrepo import GitRepo
  from datalad.support.network import urlquote
  from datalad.tests.utils_testdatasets import _mk_submodule_annex
  from datalad.tests.utils_pytest import DEFAULT_BRANCH, DEFAULT_REMOTE, SkipTest, assert_dict_equal, assert_false, assert_in, assert_in_results, assert_no_errors_logged, assert_not_equal, assert_not_in, assert_raises, assert_repo_status, assert_result_count, assert_status, create_tree, eq_, get_mtimes_and_digests, get_ssh_port, known_failure_windows, ok_, ok_endswith, ok_file_has_content, ok_file_under_git, skip_if_on_windows, skip_if_root, skip_ssh, slow, swallow_logs, with_tempfile, with_testsui
  from datalad.utils import Path, _path_, chpwd, on_windows
  from ..dataset import Dataset
label_desc: Use image node_id 18 for calling a global function with example usage: test_local_path_target_dir(path) without return types