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.8 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  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. if not self.repo:
  27. return False
  28. return self.repo.is_dirty()
  29. @property
  30. def last_commit(self):
  31. if not self.repo:
  32. return None
  33. return self.repo.head.commit.hexsha
  34. @property
  35. def branch(self):
  36. if not self.repo:
  37. return None
  38. return self.repo.head.ref.name
  39. @property
  40. def remote(self):
  41. if not self.repo:
  42. return None
  43. try:
  44. return self.repo.remotes[self.remote_name]
  45. except IndexError:
  46. return None
  47. @property
  48. def remote_url(self):
  49. if not self.remote:
  50. return None
  51. return self.remote.url
  52. def tag(self, name, message):
  53. try:
  54. return self.repo.create_tag("wandb/"+name, message=message, force=True)
  55. except exc.GitCommandError:
  56. print("Failed to tag repository.")
  57. return None
  58. def push(self, name):
  59. if self.remote:
  60. try:
  61. return self.remote.push("wandb/"+name, force=True)
  62. except exc.GitCommandError:
  63. return None
Tip!

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

Comments

Loading...