Hallo,
Ich habe versucht, eine Liste von Repositorys mit einem bestimmten Thema abzurufen und dann mit den zurückgegebenen Attributen zu spielen, aber die in der PaginatedList zurückgegebenen Repository-Objekte geben beim Versuch, unbekannte Daten abzurufen, einen Fehler aus:
Traceback (most recent call last):
File "github-crawler.py", line 6, in <module>
print(i, repo.archive_url)
File "/home/user/.local/lib/python3.6/site-packages/github/Repository.py", line 2407, in get_topics
self.url + "/topics",
File "/home/user/.local/lib/python3.6/site-packages/github/Repository.py", line 745, in url
self._completeIfNotSet(self._url)
File "/home/user/.local/lib/python3.6/site-packages/github/GithubObject.py", line 259, in _completeIfNotSet
self._completeIfNeeded()
File "/home/user/.local/lib/python3.6/site-packages/github/GithubObject.py", line 263, in _completeIfNeeded
self.__complete()
File "/home/user/.local/lib/python3.6/site-packages/github/GithubObject.py", line 268, in __complete
self._url.value
File "/home/user/.local/lib/python3.6/site-packages/github/Requester.py", line 262, in requestJsonAndCheck
return self.__check(*self.requestJson(verb, url, parameters, headers, input, self.__customConnection(url)))
File "/home/user/.local/lib/python3.6/site-packages/github/Requester.py", line 278, in __customConnection
if not url.startswith("/"):
AttributeError: 'NoneType' object has no attribute 'startswith'
Unten ist ein Beispiel für den Code:
from github import Github
g = Github(per_page=300)
i = 1
for repo in g.search_topics('security'):
print(i, repo.archive_url)
i += 1
Es kann hier getestet werden: https://repl.it/repls/LawngreenPlushBetaversion
Umfeld:
Linux Ubuntu 4.15.0-36-generisch x86_64 GNU/Linux
Python 3.6.6
PyGithub 1.43.2
Irgendeine Hilfe dabei?
Und danke
Ich werde es später reparieren :p
Vielleicht ist hier falscher Code. @jacquerie
Vielleicht ist hier falscher Code. @jacquerie
Ähm? Ich glaube nicht, dass ich dazu Code beigetragen habe...
Ein Blick auf den Code genügt. Es scheint, dass search_topics eine paginierte Liste von GitHub-Repositorys zurückgibt, aber die API scheint eine Liste von Themen zurückzugeben, einschließlich der folgenden Eigenschaften:
Ich denke, das könnte das Wurzelproblem sein.
Ja, der API-Endpunkt /search/topics gibt eine Liste von Themen zurück, die sich auf das angegebene Schlüsselwort beziehen, und keine Liste von Repositorys, die mit diesem Thema markiert sind (was vielleicht ein wenig verwirrend ist?).
In meinem Code habe ich die anderen API-Endpunkte verwendet und es hat gut funktioniert.
Trotzdem sollte die Methode in PyGithub behoben sein.
PR willkommen
Hilfreichster Kommentar
PR willkommen