class_docstr: Represents the WeiGit repo for tracking neural network weights and their versions.
  
  A WeiGit repo is like a git repo. It is a dir, in which a .wgit dir exists to keep
  track of the content.
  
  Args:
      parent_dir (Path, str):
          Parent dir in which to make or to load a .wgit dir.
          Default: "", which means CWD.
      init (bool, optional):
          - If ``True``, initializes a new WeiGit repo in the parent_dir. Initialization
            creates a `.wgit` directory within the <parent_dir>, triggers an initialization.
            of a sha1_store in the ./<parent_dir>/.wgit directory, and makes the
            ./<parent_dir>/.wgit a git repository through git initialization.
          - If ``False``, a new WeiGit repo is not initialized and the existing repo is
            wrapped, populating the `_wgit_parent` and other internal attributes.
          - Default: False
class_docstr_tok: ["Represents","the","WeiGit","repo","for","tracking","neural","network","weights","and","their","versions",".","A","WeiGit","repo","is","like","a","git","repo",".","It","is","a","dir",",","in","which","a",".wgit","dir","exists","to","keep","track","of","the","content",".","Args",":","parent_dir","(","Path",",","str",")",":","Parent","dir","in","which","to","make","or","to","load","a",".wgit","dir",".","Default",":","``","''",",","which","means","CWD",".","init","(","bool",",","optional",")",":","-","If","``","True","``",",","initializes","a","new","WeiGit","repo","in","the","parent_dir",".","Initialization","creates","a","`",".wgit","`","directory","within","the","<","parent_dir",">",",","triggers","an","initialization",".","of","a","sha1_store","in","the",".\/","<","parent_dir",">","\/.wgit","directory",",","and","makes","the",".\/","<","parent_dir",">","\/.wgit","a","git","repository","through","git","initialization",".","-","If","``","False","``",",","a","new","WeiGit","repo","is","not","initialized","and","the","existing","repo","is","wrapped",",","populating","the","`","_wgit_parent","`","and","other","internal","attributes",".","-","Default",":","False"]
docstr: Search for a wgit repo top level dir from potentiall a subdir of a repo.
  
      This may set the self._dot_wgit_dir_path if a repo is found.
  
  Args:
     check_dir (Path):
         Path to the directory from where search is started.
  
  Returns:
     Returns True if a repo is found.
docstr_tok: ["Search","for","a","wgit","repo","top","level","dir","from","potentiall","a","subdir","of","a","repo",".","This","may","set","the","self._dot_wgit_dir_path","if","a","repo","is","found",".","Args",":","check_dir","(","Path",")",":","Path","to","the","directory","from","where","search","is","started",".","Returns",":","Returns","True","if","a","repo","is","found","."]
code: def _recursive_search_and_may_init_dot_wgit_dir_path(
      self, check_dir: Path
  ) -> bool:
      """Search for a wgit repo top level dir from potentiall a subdir of a repo.
  
          This may set the self._dot_wgit_dir_path if a repo is found.
  
      Args:
         check_dir (Path):
             Path to the directory from where search is started.
  
      Returns:
         Returns True if a repo is found.
      """
      assert (
          self._dot_wgit_dir_path is None
      ), f"_dot_wgit_dir_path is already set to {self._dot_wgit_dir_path}"
      if self._weigit_repo_exists(check_dir):
          self._dot_wgit_dir_path = check_dir.joinpath(".wgit")
      else:
          root = Path(check_dir.parts[0])
          while check_dir != root:
              check_dir = check_dir.parent
              if self._weigit_repo_exists(check_dir):
                  self._dot_wgit_dir_path = check_dir.joinpath(".wgit")
                  break
      return True if self._dot_wgit_dir_path is not None else False
  
imports: import copy
  from dataclasses import dataclass
  from enum import Enum
  import json
  from pathlib import Path
  import sys
  from typing import Any, Dict, List, Optional, Union
  import torch
  from torch import Tensor
  from .pygit import PyGit
  from .sha1_store import SHA1_Store
label_desc: Use image node_id 2 for calling the Repo obj's underlying member method code with example usage: obj._recursive_search_and_may_init_dot_wgit_dir_path(check_dir) and returns: unknown