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: Show the state of the weigit working tree.
  
  State can be
    1. dirty with changes/modifications not added to weigit repo.
    2. dirty with a file changes added but not committed.
    3. clean and tracking files after a change has been committed,
       or clean with with an empty repo.
  
  TODO (Min): this needs to return repo status and dirty files and untracked
              files too.
  Returns:
      (dict):
          A dict keyed with files and their status.
docstr_tok: ["Show","the","state","of","the","weigit","working","tree",".","State","can","be","1.","dirty","with","changes\/modifications","not","added","to","weigit","repo",".","2.","dirty","with","a","file","changes","added","but","not","committed",".","3.","clean","and","tracking","files","after","a","change","has","been","committed",",","or","clean","with","with","an","empty","repo",".","TODO","(","Min",")",":","this","needs","to","return","repo","status","and","dirty","files","and","untracked","files","too",".","Returns",":","(","dict",")",":","A","dict","keyed","with","files","and","their","status","."]
code: def status(self) -> Dict[str, RepoStatus]:
      """Show the state of the weigit working tree.
  
      State can be
        1. dirty with changes/modifications not added to weigit repo.
        2. dirty with a file changes added but not committed.
        3. clean and tracking files after a change has been committed,
           or clean with with an empty repo.
  
      TODO (Min): this needs to return repo status and dirty files and untracked
                  files too.
      Returns:
          (dict):
              A dict keyed with files and their status.
      """
      self._sanity_check()
  
      pygit_status = self._pygit.status()
      status = self._get_metdata_files()
      if status:
          out_status = dict()
          for metadata_file, is_modified in status.items():
              # if metadata_file is among the keys of pygit_status dict, it has not been commited to git yet.
              if is_modified:
                  out_status[
                      str(metadata_file)
                  ] = RepoStatus.CHANGES_NOT_ADDED
              elif (
                  not is_modified
                  and metadata_file in pygit_status.keys()
              ):
                  out_status[
                      str(metadata_file)
                  ] = RepoStatus.CHANGES_ADDED_NOT_COMMITED
              elif (
                  not is_modified
                  and metadata_file not in pygit_status.keys()
              ):
                  out_status[str(metadata_file)] = RepoStatus.CLEAN
          return out_status
      else:  # if status dict is empty, nothing has been added so far.
          return {"": RepoStatus.CLEAN}
  
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 9 for calling the Repo obj's underlying member method code with example usage: obj.status() and returns: out_status, dict