Major fixes and new features
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
34
venv/lib/python3.12/site-packages/mypy/git.py
Normal file
34
venv/lib/python3.12/site-packages/mypy/git.py
Normal file
@@ -0,0 +1,34 @@
|
||||
"""Git utilities."""
|
||||
|
||||
# Used also from setup.py, so don't pull in anything additional here (like mypy or typing):
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
|
||||
def is_git_repo(dir: str) -> bool:
|
||||
"""Is the given directory version-controlled with git?"""
|
||||
return os.path.exists(os.path.join(dir, ".git"))
|
||||
|
||||
|
||||
def have_git() -> bool:
|
||||
"""Can we run the git executable?"""
|
||||
try:
|
||||
subprocess.check_output(["git", "--help"])
|
||||
return True
|
||||
except subprocess.CalledProcessError:
|
||||
return False
|
||||
except OSError:
|
||||
return False
|
||||
|
||||
|
||||
def git_revision(dir: str) -> bytes:
|
||||
"""Get the SHA-1 of the HEAD of a git repository."""
|
||||
return subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=dir).strip()
|
||||
|
||||
|
||||
def is_dirty(dir: str) -> bool:
|
||||
"""Check whether a git repository has uncommitted changes."""
|
||||
output = subprocess.check_output(["git", "status", "-uno", "--porcelain"], cwd=dir)
|
||||
return output.strip() != b""
|
||||
Reference in New Issue
Block a user