Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

git_repo.py 1.4 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
  1. from git import Repo, exc
  2. import os
  3. class GitRepo(object):
  4. def __init__(self, root=None, remote="origin", lazy=True):
  5. self.remote_name = remote
  6. self.root = root
  7. self._repo = None
  8. if not lazy:
  9. self.repo
  10. @property
  11. def repo(self):
  12. if self._repo is None:
  13. if self.remote_name is None:
  14. self._repo = False
  15. else:
  16. try:
  17. self._repo = Repo(self.root or os.getcwd(), search_parent_directories=True)
  18. except exc.InvalidGitRepositoryError:
  19. self._repo = False
  20. return self._repo
  21. @property
  22. def enabled(self):
  23. return self.repo
  24. @property
  25. def dirty(self):
  26. return self.repo.is_dirty()
  27. @property
  28. def last_commit(self):
  29. if not self.repo:
  30. return None
  31. return self.repo.head.commit.hexsha
  32. @property
  33. def remote(self):
  34. if not self.repo:
  35. return None
  36. try:
  37. return self.repo.remotes[self.remote_name]
  38. except IndexError:
  39. return None
  40. @property
  41. def remote_url(self):
  42. if not self.remote:
  43. return None
  44. return self.remote.url
  45. def tag(self, name, message):
  46. return self.repo.create_tag("wandb/"+name, message=message, force=True)
  47. def push(self, name):
  48. if self.remote:
  49. return self.remote.push("wandb/"+name, force=True)
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...