docstr: DVC + git-tracked files fs.
  
  Args:
      path (str, optional): URL or path to a DVC/Git repository.
          Defaults to a DVC repository in the current working directory.
          Both HTTP and SSH protocols are supported for remote Git repos
          (e.g. [user@]server:project.git).
      rev (str, optional): Any Git revision such as a branch or tag name,
          a commit hash or a dvc experiment name.
          Defaults to the default branch in case of remote repositories.
          In case of a local repository, if rev is unspecified, it will
          default to the working directory.
          If the repo is not a Git repo, this option is ignored.
      repo (:obj:`Repo`, optional): `Repo` instance.
      subrepos (bool): traverse to subrepos.
          By default, it ignores subrepos.
      repo_factory (callable): A function to initialize subrepo with.
          The default is `Repo`.
      config (dict): Repo config to be passed into `repo_factory`.
      remote (str): Remote name to be passed into `repo_factory`.
      remote_config(dict): Remote config to be passed into `repo_factory`.
  
  Examples:
      - Opening a filesystem from repo in current working directory
  
      >>> fs = DVCFileSystem()
  
      - Opening a filesystem from local repository
  
      >>> fs = DVCFileSystem("path/to/local/repository")
  
      - Opening a remote repository
  
      >>> fs = DVCFileSystem(
      ...    "https://github.com/iterative/example-get-started",
      ...    rev="main",
      ... )
code: def __init__(  # noqa: PLR0913
      self,
      url: Optional[str] = None,
      rev: Optional[str] = None,
      repo: Optional["Repo"] = None,
      subrepos: bool = False,
      repo_factory: Optional[RepoFactory] = None,
      fo: Optional[str] = None,
      target_options: Optional[Dict[str, Any]] = None,  # noqa: ARG002
      target_protocol: Optional[str] = None,  # noqa: ARG002
      config: Optional["DictStrAny"] = None,
      remote: Optional[str] = None,
      remote_config: Optional["DictStrAny"] = None,
      **kwargs,
  ) -> None:
      """DVC + git-tracked files fs.
  
      Args:
          path (str, optional): URL or path to a DVC/Git repository.
              Defaults to a DVC repository in the current working directory.
              Both HTTP and SSH protocols are supported for remote Git repos
              (e.g. [user@]server:project.git).
          rev (str, optional): Any Git revision such as a branch or tag name,
              a commit hash or a dvc experiment name.
              Defaults to the default branch in case of remote repositories.
              In case of a local repository, if rev is unspecified, it will
              default to the working directory.
              If the repo is not a Git repo, this option is ignored.
          repo (:obj:`Repo`, optional): `Repo` instance.
          subrepos (bool): traverse to subrepos.
              By default, it ignores subrepos.
          repo_factory (callable): A function to initialize subrepo with.
              The default is `Repo`.
          config (dict): Repo config to be passed into `repo_factory`.
          remote (str): Remote name to be passed into `repo_factory`.
          remote_config(dict): Remote config to be passed into `repo_factory`.
  
      Examples:
          - Opening a filesystem from repo in current working directory
  
          >>> fs = DVCFileSystem()
  
          - Opening a filesystem from local repository
  
          >>> fs = DVCFileSystem("path/to/local/repository")
  
          - Opening a remote repository
  
          >>> fs = DVCFileSystem(
          ...    "https://github.com/iterative/example-get-started",
          ...    rev="main",
          ... )
      """
      super().__init__()
      self._repo = repo
      self._repo_factory = repo_factory
      self._traverse_subrepos = subrepos
      self._repo_stack = ExitStack()
      self._repo_kwargs = {
          "url": url if url is not None else fo,
          "rev": rev,
          "subrepos": subrepos,
          "config": config,
          "remote": remote,
          "remote_config": remote_config,
      }
  
imports: import errno
  import functools
  import ntpath
  import os
  import posixpath
  import threading
  from collections import deque
  from contextlib import ExitStack, suppress
  from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, Tuple, Type, Union
  from fsspec.spec import AbstractFileSystem
  from funcy import wrap_with
  from dvc.log import logger
  from dvc_objects.fs.base import FileSystem
  from .data import DataFileSystem
label_desc: Use image node_id 1 to create a new _DVCFileSystem object from inherited base classes: AbstractFileSystem with example: obj = _DVCFileSystem(url, rev, repo, subrepos, repo_factory, fo, target_options, target_protocol, config, remote, remote_config)