10 популярных проектов GitHub, написанных на Python

Уже долгое время разработчики во всем мире выбирают Python для большинства своих проектов. Python  —  второй по популярности язык на GitHub, крупнейшем веб-сервисе для хостинга IT-проектов и их совместной разработки.

Простота использования этого языка программирования, его эффективность в системах, как работающих, так и не работающих в режиме реального времени и широкий набор жизненно важных пакетов  —  вот лишь некоторые причины, по которым разработчики любят Python.

«Удовольствие от написания кода на Python заключается в том, что в итоге получаются короткие, лаконичные, читаемые классы, выражающие множество действий в небольшом количестве ясного кода, а не объёмный тривиальный код, читать который  —  скука смертная».

— Гвидо ван Россум, автор языка программирования Python

Такие языки программирования, как Python, позволяют воплощать проекты мечты в реальность и демонстрировать свой талант всему миру. Здесь я расскажу о некоторых лучших проектах GitHub, написанных на Python, не только чтобы вас вдохновить, но и дать представление о том, что можно сделать с помощью изобретательности и Python.

1. Manim

Оценён: 26,2 тыс.

Клонирован: 3,4 тыс.

Разработан: Grant Sanderson

Ссылка на GitHub: https://github.com/3b1b/manim

Manim расшифровывается как математическая программа анимации (англ. Mathematical Animation Engine). Идея этого проекта состоит в том, чтобы люди могли легко интегрировать в учебные материалы по математике весёлую и интуитивно понятную анимацию с графиками и диаграммами. Тем самым разрушается стереотип, что изучение математики обязательно должно быть скучным.

Грант Сандерсон ведет канал на YouTube, который называется 3Brown1Blue. Там он использует библиотеку Manim для создания и управления этими анимациями, чтобы обучать высшей математике свою аудиторию. Manim даёт возможность создавать анимированные видеоролики с точным контролем над анимацией, используемой для диаграмм и иллюстраций. Если эта идея кажется вам сомнительной, то переходите на канал Гранта и посмотрите, как это работает.

В этом Youtube-видео подробно рассказывается о возможностях программы (видео на английском языке). 

2. DeepFaceLab

Оценён: 20,4 тыс.

Клонирован: 4,8 тыс.

Разработан: iperov

Ссылка на GitHub: https://github.com/iperov/DeepFaceLab

DeepFaceLab  —  один из самых интересных проектов GitHub на Python в этом списке. Это инструмент, который создаёт изображение и видео с применением технологии deepfake. Он позволяет делать забавные вещи, например, изменять или омолаживать лицо, менять лица местами и т. д. Чтобы достичь большей убедительности, можно даже изменить речь, но для этого нужны знания по работе в видеоредакторе.

Разработчик утверждает, что более 95% deepfake-видео в Интернете были созданы с помощью этого инструмента. На странице проекта на GitHub есть руководство и несколько наборов лиц для начала работы.

Здесь можно посмотреть инструкцию по созданию deepfake-видео с помощью DeepFaceLab (видео на английском языке).

3. Airflow

Оценён: 18,6 тыс.

Клонирован: 7,3 тыс.

Разработан: Apache Software Foundation

Ссылка на GitHub: https://github.com/apache/airflow

Airflow  —  это инструмент управления рабочим процессом с открытым исходным кодом на Python от организации Apache Software Foundation. Airflow позволяет выполнять ряд действий в рабочих процессах, например, создавать, планировать и отслеживать их. Рабочие процессы, если они определены как код, становятся намного проще в управлении, тестировании и совместной работе.

У него есть такие функции, как масштабируемость, динамическая генерация конвейера и расширяемость. У Airflow простой пользовательский интерфейс. Его устойчивые функции интеграции с другими инструментами и службами помогают получить от него максимальную пользу, экономя время. Airflow активно используется некоторыми крупными компаниями в отрасли, такими как Adobe, Lyft, Slack, Expedia и другими.

4. GPT-2

Оценен: 13,4 тыс

Клонирован: 3,4 тыс

Ссылка на GirHub: https://github.com/openai/gpt-2

GPT-2  —  это огромная трансформационная языковая модель, которая обучается на столь же массивном наборе данных, а точнее на тексте с более чем 8 миллиардов веб-страниц. Её функция  —  предсказывать следующее слово/слова, когда есть часть слов или все предыдущие слова из контекста.

Проще говоря, вы вводите в GPT-2 часть текста, и языковая модель генерирует качественное длинное продолжение.

В репозитории GitHub есть код и модели для статьи проекта OpenAI «Языковые модели  —  неконтролируемые многозадачные ученики», а на странице  —  описание и несколько особенностей GPT-2.

5. XSStrike

Оценён: 8,5 тыс.

Клонирован: 1,2 тыс.

Разработан: Somdev Sangwan

Ссылка на GitHub:https://github.com/s0md3v/XSStrike

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

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

  • анализ контекста;
  • мощный фаззинг-движок;
  • поддержка многопоточного анализа;
  • поддержка при брутфорсе полезной нагрузки из файла;
  • индивидуальный анализатор HTML и JavaScript;
  • сканирование устаревших библиотек JavaScript.

В этом видео можно посмотреть подробный обзор на программу (видео на английском языке).

6. Загрузка изображений из Google

Оценён: 7,1 тыс.

Клонирован: 1,7 тыс.

Разработан: Hardik Vasa

Ссылка на GitHub: https://github.com/hardikvasa/google-images-download

Этот инструмент позволяет одновременно загружать на компьютер сотни изображений из Google. Вы устанавливаете библиотеку, выбираете команду, вводите нужные ключевые слова в качестве аргументов, и инструмент начинает творить чудеса. Он ищет изображения по ключевым словам в базе Google Images и загружает их.

Вы также можете использовать библиотеку из другого файла Python, и она всё равно будет работать в обычном режиме. Проект интересный и будет полезен, если вам вдруг понадобится загрузить все изображения из Google за один раз.

7. Photon

Оценён: 7 тыс.

Клонирован: 965

Разработан: Somdev Sangwan

Ссылка на GitHub: https://github.com/s0md3v/Photon

Photon  —  это мощный и простой в использовании веб-сканер, созданный с помощью Python. Лёгкий и быстрый сканер работает с технологиями разведки на основе открытых источников, что позволяет собирать и анализировать информацию, полученную из открытых источников.

Вот несколько источников, из которых Photon может сканировать информацию:

  • URL-адреса, в том числе с параметрами;
  • аккаунты в социальных сетях;
  • адреса электронной почты;
  • файлы, такие как PDF, PNG, XML документы;
  • поддомены;
  • файлы JavaScript.

Photon сохраняет всю извлеченную информацию упорядоченно, и её даже можно экспортировать в виде JSON-файла. Инструмент также предлагает различные параметры настройки, такие как регулирование времени ожидания, исключение определённых URL-адресов и многое другое. Советую обратить на него внимание.

8. NeuralTalk

Оценён: 5 тыс.

Клонирован: 1,2 тыс

Разработан: Andrej Karpathy

Ссылка на GitHub: https://github.com/karpathy/neuraltalk2

NeuralTalk  —  это проект создания подписей к изображениям на Python и NumPy, в котором используются мультимодальные рекуррентные нейронные сети. Благодаря развитию технологии и более эффективной поддержке, разработчик выпустил NeuralTalk2, улучшенную и более быструю версию NeuralTalk.

NeuralTalk2 использует пакетную реализацию при этом продолжает использовать рекуррентные нейронные сети. Новая версия основана на Torch, может работать на графическом процессоре, поддерживая тонкую настройку свёрточной нейронной сети. Хотя разработчик прекратил поддержку оригинальной версии NeuralTalk, она по-прежнему доступна на GitHub.

9. Xonsh

Оценён: 3,9 тыс.

Клонирован: 434

Ссылка на GitHub: https://github.com/xonsh/xonsh

Xonsh можно рассматривать как кроссплатформенный язык оболочки, работающий на Python. Xonsh намного улучшает работу с Python, даже с самыми простыми задачами, благодаря глубокой интеграции.

С Xonsh вместо того, чтобы набирать “$ echo 2+2”, можно использовать просто $ 2 + 2 и при этом получить правильный результат.

Начать работу с оболочкой Xonsh тоже очень просто: установите её с помощью команды, подходящей для вашей среды. Xonsh доступен для многих диспетчеров пакетов, включая pip, Conda, Apt, Brew и других. 

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

10. Rebound

Оценён: 3,3 тыс.

Клонирован: 299

Разработан: Jonathan Shobrook

Ссылка на GitHub: https://github.com/shobrook/rebound

Ошибки компилятора часто бывают очень неприятными и сбивают с толку. Единственное решение  —  перейти на сайт Stack Overflow в поисках ответа или прочитать документацию. С помощью своего известного инструмента Rebound Джонатан Шобрук упростил процесс взаимодействия с такими досадными ошибками компилятора.

Принцип работы Rebound следующий: вы запускаете свой файл с помощью инструмента, и он проверяет наличие ошибок компилятора в файле и загружает вам любые связанные ответы с сайта Stack Overflow, которые находит.

Возможность Rebound загружать результаты как в терминале, так и в браузере может помочь не только новичкам, но и опытным программистам, позволяя не тратить время на бесконечный поиск ответов. На данный момент Rebound поддерживает только Python, Node.js, Ruby, Golang и Java.

Заключение

Творчеству нет предела. Такие проекты на GitHub хорошо демонстрируют, как могут проявиться творческие способности и таланты. Но это только верхушка айсберга. Python продолжает развиваться, и его можно использовать для разнообразных задач, если у вас есть знания и чёткое представление о том, чего вы хотите достичь. Пусть эта статья станет источником вдохновения для реализации ваших проектов.

Примечание: эта статья содержит личное мнение автора, и вы имеете полное право не согласиться с ним.

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи Claire D. Costa: Top 10 Trending Python Projects On GitHub

Предыдущая статьяЧто такое SQL-атаки и как с ними бороться?
Следующая статьяРеализация архитектуры с сохранением состояния в Streamlit