in utils/hub_sync.py [0:0]
def get_git_files_by_status(local_dir):
try:
git_status = subprocess.run(
["git", "status", "-s"],
stderr=subprocess.PIPE,
stdout=subprocess.PIPE,
check=True,
encoding="utf-8",
cwd=local_dir,
).stdout.strip()
except subprocess.CalledProcessError as exc:
raise EnvironmentError(exc.stderr)
if len(git_status) == 0:
return {}
file_statuses = [status.strip() for status in git_status.split("\n")]
# create a dict of lists for each long key in git_status_lookup
files = defaultdict(list)
for l in file_statuses:
k, v = l.split(' ', 1)
k = k.strip()[0] # get first column
# remap to sensible name
k = git_status_lookup.get(k, "unknown")
files[k].append(v)
#print(files)
return files