33import pathlib
44from datetime import datetime
55from functools import cached_property , partial
6- from typing import Any , Type
6+ from typing import Any
77
88import gidgethub
99
2020class AGithubRepo (metaclass = abstracts .Abstraction ):
2121 """A Github repo."""
2222
23- def __init__ (self , github : " interface.IGithubAPI" , name : str ) -> None :
23+ def __init__ (self , github : interface .IGithubAPI , name : str ) -> None :
2424 self ._github = github
2525 self ._name = name
2626
2727 def __str__ (self ):
2828 return f"<{ self .__class__ .__name__ } { self .name } >"
2929
3030 @cached_property
31- def actions (self ) -> " interface.IGithubActions" :
31+ def actions (self ) -> interface .IGithubActions :
3232 return self .github .actions_class (repo = self )
3333
3434 @cached_property
@@ -41,28 +41,28 @@ def github(self) -> interface.IGithubAPI:
4141 return self ._github
4242
4343 @cached_property
44- def issues (self ) -> " interface.IGithubIssues" :
44+ def issues (self ) -> interface .IGithubIssues :
4545 return self .github .issues_class (
4646 self .github ,
4747 repo = self )
4848
4949 @property
50- def labels (self ) -> " interface.IGithubIterator" :
50+ def labels (self ) -> interface .IGithubIterator :
5151 return self .iter_entities (
5252 self .github .label_class , "labels" )
5353
5454 @property
5555 def name (self ) -> str :
5656 return self ._name
5757
58- async def commit (self , name : str ) -> " interface.IGithubCommit" :
58+ async def commit (self , name : str ) -> interface .IGithubCommit :
5959 return self .github .commit_class (
6060 self ,
6161 await self .getitem (f"commits/{ name } " ))
6262
6363 def commits (
6464 self ,
65- since : datetime | None = None ) -> " interface.IGithubIterator" :
65+ since : datetime | None = None ) -> interface .IGithubIterator :
6666 query = "commits"
6767 if since is not None :
6868 query = f"{ query } ?since={ utils .dt_to_js_isoformat (since )} "
@@ -100,7 +100,7 @@ async def getitem(self, query: str) -> Any:
100100 """Call the `gidgethub.getitem` api for this repo."""
101101 return await self .github .getitem (self .github_endpoint (query ))
102102
103- def getiter (self , query : str , ** kwargs ) -> " interface.IGithubIterator" :
103+ def getiter (self , query : str , ** kwargs ) -> interface .IGithubIterator :
104104 """Return a `GithubIterator` wrapping `gidgethub.getiter` for this
105105 repo."""
106106 return self .github .getiter (self .github_endpoint (query ), ** kwargs )
@@ -132,9 +132,9 @@ async def highest_release(
132132
133133 def iter_entities (
134134 self ,
135- entity : Type [base .GithubEntity ],
135+ entity : type [base .GithubEntity ],
136136 path : str ,
137- ** kwargs ) -> " interface.IGithubIterator" :
137+ ** kwargs ) -> interface .IGithubIterator :
138138 """Iterate and inflate entities for provided type."""
139139 return self .getiter (
140140 path ,
@@ -157,21 +157,21 @@ async def release(
157157 self ,
158158 name : str ,
159159 data : dict | None = None ,
160- dry_run : bool = False ) -> " interface.IGithubRelease" :
160+ dry_run : bool = False ) -> interface .IGithubRelease :
161161 if data :
162162 return await self .github .release_class .create (self , data , dry_run )
163163 return self .github .release_class (
164164 self ,
165165 await self .getitem (f"releases/tags/{ name } " ))
166166
167- def releases (self ) -> " interface.IGithubIterator" :
167+ def releases (self ) -> interface .IGithubIterator :
168168 """Iterate releases for this repo."""
169169 # TODO: make per_page configurable
170170 return self .iter_entities (
171171 self .github .release_class ,
172172 "releases?per_page=100" )
173173
174- async def tag (self , name : str ) -> " interface.IGithubTag" :
174+ async def tag (self , name : str ) -> interface .IGithubTag :
175175 ref_tag = await self .getitem (f"git/ref/tags/{ name } " )
176176 if ref_tag ["object" ]["type" ] != "tag" :
177177 raise exceptions .TagNotFound (name )
@@ -186,7 +186,7 @@ async def tag_exists(self, tag_name: str) -> bool:
186186 pass
187187 return False
188188
189- def tags (self ) -> " interface.IGithubIterator" :
189+ def tags (self ) -> interface .IGithubIterator :
190190 """Iterate tags for this repo."""
191191 return self .iter_entities (
192192 self .github .tag_class ,
0 commit comments