Наиболее подходящая библиотека python для GitHub API v3 [закрыто]
Я ищу библиотеку python для GitHub APIv3, подходящую для меня.
Предыстория: я python noob с фоном, в основном коренящимся в Matlab и C++, и недавно научился использовать python-matplotlib.
Я нашел одну библиотеку (python-github3) упомянутые в GH API docs. Поиграв с ним в ipython в течение часа или двух, я нашел его действительно неинтуитивным для изучения/работы. Я посмотрел еще немного, и обнаружил, что там довольно много количество людей, по крайней мере, пытающихся написать такую библиотеку. Более перспективными (на первый взгляд) являются PyGithub и еще один питон-github3, который, по-видимому, отличается от первого.
прежде чем я проведу следующие дни подряд, пробуя библиотеку за библиотекой, я хотел бы спросить сообщество SO, есть ли принятый, окончательный, очевидный выбор для этой библиотеки?
что мне не понравилось в первом библиотека была (для меня) неинтуитивным способом получить данные - некоторые вещи вы получаете как атрибуты, некоторые вы получаете как возвращаемое значение метода, что возвращаемое значение-это какой-то сложный объект, который должен быть выгружен и повторен, и т. д.
в этом отношении PyGithub выглядит более привлекательным на первый взгляд-четко детализируйте иерархию объектов, а затем получите атрибут, содержащий то, что вы хотите:
for repo in g.get_user().get_repos():
print repo.name
Итак, какие-нибудь жемчужины мудрости, чтобы поделиться? Я знаю, что у меня недостаточно навыков, чтобы быстро судить о качестве библиотеки, поэтому я обращаюсь к сообществу SO.
edit: fwiw, я закончил с помощью PyGithub. Он хорошо работает, и автор действительно восприимчив к отзывам и сообщениям об ошибках. : -)
4 ответов:
поскольку вы упомянули, что вы начинающий программист python, я бы предложил вам сначала попробовать использовать JSON API без какой-либо библиотеки Github. Это действительно не так сложно, и это поможет вам много позже в вашей жизни программирования, так как тот же подход может быть применен к любому API JSON. Особенно если кажется, что опробование библиотек займет несколько дней.
Я не говорю, что некоторые библиотеки не проще в использовании, я просто говорю, что небольшие дополнительные усилия для использования API напрямую могут быть стоит в долгосрочной перспективе. По крайней мере, это поможет вам понять, почему некоторые из этих библиотек кажутся "неинтуитивными" (как вы сказали).
простой пример, чтобы получить время создания репозитория django:
import requests import json r = requests.get('https://api.github.com/repos/django/django') if(r.ok): repoItem = json.loads(r.text or r.content) print "Django repository created: " + repoItem['created_at']это с помощью популярного запросы библиотека. В вашем коде вы, естественно, должны обрабатывать случаи ошибок тоже.
Если вам нужен доступ с аутентификацией, это будет немного сложнее.
в конце концов, я закончил с помощью PyGithub. Он хорошо работает, и автор действительно восприимчив к отзывам и сообщениям об ошибках. : -)
(адаптировано из моего редактирования к исходному вопросу, для лучшей видимости)
документация-это ужасно для PyGitHub, но продукт является большим. Вот быстрый пример для фактического извлечения файла, изменения его с новым комментарием в начале файла и фиксации его обратно
from github import Github gh = Github(login_or_token='.....', base_url='...../api/v3') user = gh.get_user() repo = user.get_repo("RepoName") file = repo.get_file_contents("/App/forms.py") decoded_content = "# Test " + "\r\n" + file.decoded_content repo.update_file("/"RepoName"/forms.py", "Commit Comments",decoded_content, file.sha)
Libsaas отлично подходит для начинающих. Он имеет хороший документация и прост в использовании, см. пример. Не стесняйтесь вносить свой вклад.
Comments