Pygithub: Асинхронная поддержка

Созданный на 24 мая 2020  ·  10Комментарии  ·  Источник: PyGithub/PyGithub

Что вы думаете о асинхронной поддержке PyGithub? Если я сделаю асинхронную поддержку PyGithub, вы примете это?

Самый полезный комментарий

Я не думаю, что этот вопрос должен быть закрыт. Использование asyncio для операций, связанных с вводом-выводом, является идеальным вариантом использования.

Все 10 Комментарий

Как бы вы добавили поддержку асинхронности? Учитывая, что большинство операций выполняются удаленно на GitHub, а наш код ожидает ответа или большого двоичного объекта JSON, как это может помочь?

Учитывая, что большинство операций выполняются удаленно на GitHub, и наш код ожидает ответа

Это хорошая причина для введения асинхронности! Я имею в виду... PyGithub должен обрабатывать доступ к API как сопрограммы, иначе большую часть времени он ожидает ответа сервера, а не делает что-то полезное. Это обычная концепция для nodejs, и в настоящее время она поддерживается в @octokit/rest.js.
Я удивлен, что никто не спросил об этой функции раньше...

Замечания: возможно, я неправильно понял, как сейчас работает PyGithub, но я думаю, что последовательные и синхронные оболочки API менее эффективны, чем асинхронные.

Я мог бы добавить новый класс AsyncRequester и сделать во всех остальных классах асинхронные методы взаимодействия с ним, при этом сохранив логику.

Асинхронный код мог бы помочь в задачах, где нужно производить большое количество запросов, например, в поиске. Это также позволит вам быстро работать с несколькими учетными записями на Github.

Что звучит как полный редизайн, наряду с добавлением поддержки использования нескольких учетных записей. Мне нравится ваш энтузиазм, но я думаю, что это очень много работы для недостаточной выгоды.

Это может потребовать много работы, но я бы хотел, чтобы это было реализовано. В настоящее время я застрял в JS в своих исследованиях, потому что производительность @octokit/rest.js превосходит производительность PyGithub. Если нужна помощь, я был бы рад поработать над этим тоже.

Кстати, я думаю, что поддержка нескольких учетных записей будет слишком много! Разве асинхронность не является огромным первым шагом к повышению производительности?

Может быть, я могу сделать какие-нибудь редакции и показать это в пулл-реквесте? Для теста

Asyncio звучит как хорошая идея, учитывая мой вариант использования. Я пытаюсь рекурсивно прочитать все файлы в репозитории, а синхронные запросы слишком медленные (возможно, я упускаю что-то вроде ограничения скорости в API github, но мы определенно могли бы ускорить такие операции).

Я настоятельно рекомендую использовать для этого что-то вроде GitPython, а не запрашивать все через GitHub API.

Спасибо за интересное предложение, я попробую, так как есть смысл сделать это таким образом.

Я не думаю, что этот вопрос должен быть закрыт. Использование asyncio для операций, связанных с вводом-выводом, является идеальным вариантом использования.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

diegotejadav picture diegotejadav  ·  5Комментарии

psychemedia picture psychemedia  ·  5Комментарии

PeterJCLaw picture PeterJCLaw  ·  6Комментарии

kodeshpa picture kodeshpa  ·  3Комментарии

BBI-YggyKing picture BBI-YggyKing  ·  5Комментарии