def _extract_for_single_repo_single_extractor(self,
extractor: FeatureExtractor,
repo: Repository,
api_repo: GithubRepository) -> [Feature]:
cached_features = []
for feature in extractor.features:
cached_feature = self._get_cached(repo, feature)
if self.cache_features and cached_feature:
cached_features.append(cached_feature)
else:
updated_features = extractor.extract(api_repo)
for updated_feature in updated_features:
self._update_cached(repo, updated_feature)
return updated_features
return cached_features
python类Repository()的实例源码
def api_repo(self) -> GithubRepository:
"""
:return: a lazily initialized Github API repository
"""
if not self._api_repo:
self._api_repo = GithubAuthentification().get_repo(self.repo.identifier)
return self._api_repo
def extract(self, api_repo: GithubRepository = None) -> [Feature]:
self._api_repo = api_repo
try:
self._extract()
except UnknownObjectException:
pass
except GithubException as e:
# Repository access blocked
if e.status == 451:
pass
else:
raise
return self.features
def parent(self):
"""
:type: :class:`github.Repository.Repository`
"""
self._completeIfNotSet(self._parent)
return self._parent.value
def source(self):
"""
:type: :class:`github.Repository.Repository`
"""
self._completeIfNotSet(self._source)
return self._source.value
def get_forks(self):
"""
:calls: `GET /repos/:owner/:repo/forks <http://developer.github.com/v3/repos/forks>`_
:rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository`
"""
return github.PaginatedList.PaginatedList(
Repository,
self._requester,
self.url + "/forks",
None
)