Библиотека питониста | Python, Django, Flask
40.5K subscribers
2.78K photos
75 videos
51 files
4.36K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.me/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Метрики кода. Почему метрики кода важны?
Метрики кода могут быть получены с помощью инструментов статического анализа кода для определения сложности и нестандартных практик.

Почему метрики кода важны?
Метрики кода позволяют разработчикам находить проблемные области кодовой базы, которые могут нуждаться в рефакторинге. Кроме того, некоторые показатели, такие как техническая задолженность, помогают разработчикам сообщать нетехнической аудитории, почему возникают проблемы с системой.

Проекты с открытым исходным кодом

Radon — это инструмент для получения необработанных метрик на счетчиках линий, метрик цикломатической сложности, метрик Холстеда и метрик ремонтопригодности.

Pylint содержит средства проверки соответствия стиля кода PEP8, дизайна, исключений и многих других инструментов анализа исходного кода.

PyFlakes анализирует исходные файлы на наличие ошибок и сообщает о них.

Pyntch — это статический анализатор кода, который пытается обнаружить ошибки во время выполнения. Он не выполняет проверку стиля кода.

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

Flake8 — это средство обеспечения соблюдения правил в формате кода. Его целью является не сбор метрик, а обеспечение единого стиля во всех ваших программах на Python для максимальной читабельности. Правила для Flask8 все определены в этом списке , который сворачивает зависимости Flake8 от pycodestyle, pyflakes и McCabe.

Black — это средство форматирования кода Python с сильными, бескомпромиссными предположениями о том, как ваш код должен быть отформатирован.

Dlint является носителем для безопасного кодирования.

pylintdb помещает результаты pylint в базу данных SQLite для программного доступа и поиска. Нед Бэтчелдер написал его и написал о том, как он использует программу в этом инструменте командной строки размером с кусочек: сообщение pylintdb .

Flask8-eradicate ( исходный код ) — это плагин Flask8 для определения мертвого кода.

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

Coveralls показывает покрытие кода из наборов тестов и других метрик, чтобы помочь разработчикам улучшить качество своего кода.

webhint, ранее Sonarwhal, сканирует ваш сайт на предмет доступности, скорости и безопасности. Существует как онлайн-версия, на которую вы можете указать произвольный URL, так и версия для командной строки для запуска самостоятельно.

Codecov подключается к GitHub, BitBucket или GitLab и сообщает о покрытии кода в ваших хранилищах кода.
Питонический паттерн проектирования
Питонический подход — проектирование классов исключительно с позиционными аргументами, без именованных. Затем легко хранить аргументы в виде кортежа, который предоставляется отдельно от самого класса. Это знакомый подход класса стандартной библиотеки Thread, который запрашивает вызываемый target= отдельно от передаваемых args=(...). Вот наши пункты меню:
menu = {
'whole note': (Note, (1,)),
'half note': (Note, (2,)),
'quarter note': (Note, (4,)),
'sharp': (Sharp, ()),
'flat': (Flat, ()),
}
В качестве альтернативы, каждый класс и аргументы располагайте в одном кортеже:
menu = {
'whole note': (Note, 1),
'half note': (Note, 2),
'quarter note': (Note, 4),
'sharp': (Sharp,),
'flat': (Flat,),
}
Затем структура будет вызывать каждый объект с использованием некоторой вариации tup[0](*tup[1:]).

Однако, возможно, классу потребуются не только позиционные аргументы, но и именованные. В ответ на это предоставьте простые вызываемые объекты, используя лямбда-выражения для классов, которые требуют аргументов:
menu = {
'whole note': lambda: Note(fraction=1),
'half note': lambda: Note(fraction=2),
'quarter note': lambda: Note(fraction=4),
'sharp': Sharp,
'flat': Flat,
}
Хотя лямбда-выражения не поддерживают быструю интроспекцию для проверки, они хорошо работают, если структура только вызывает их.
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Управление зависимостями Python и упаковка стали проще!
poetry помогает объявлять, управлять и устанавливать зависимости проектов Python, гарантируя правильный стек везде.
Python Tricks (2017)
Автор: Dan Bader

#python #book #en

Язык: English.

Целевая аудитория: для начинающих и опытных разработчиков.

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

В книге рассматриваются следующие темы:
✔️ шаблоны для чистого Python;
✔️ эффективные функции;
✔️ классы и ООП;
✔️ общие структуры данных в Python;
✔️ циклы и итерации и многое другое.

Преимущества:
помогает перейти на следующий уровень;
краткое резюме после каждого раздела;
простые и практичные предложения.

Недостатки:
не обнаружено.
Sentry: кроссплатформенный мониторинг приложений
Sentry — это платформа мониторинга приложений с открытым исходным кодом, которая помогает отслеживать и устранять сбои в режиме реального времени. Сам сервер написан на Python, но содержит полный API для отправки событий с любого языка, в любом приложении.

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

С чего можно начать?
Для начала могут пригодиться некоторые из этих ссылок:
Начало работы с Sentry.
Служба поддержки.
Самостоятельная установка.
С 18 по 20 ноября в 20:00 пройдёт бесплатный интенсив по Python.

Регистрация уже началась: https://clc.to/xu2W8g

🐍 За три дня ты создашь программу для обмена быстрыми сообщениями и освоишь востребованный среди работодателей язык программирования!

Количество бесплатных мест ограниченно!

🎈 За участие ты получишь подарки от компаний Skillbox и EnglishDom.
Pythran: как заставить работать код Python со скоростью С++
Инструменты Python многогранны, и с их помощью "змеиный язык" можно легко разогнать до скорости С++. Пример можно глянуть на сайте.

Python – высокоуровневый универсальный язык, который почти так же легко читать и писать, как псевдокод. Но его главная проблема — низкая производительность. Это становится особенно проблематичным при работе с большими многомерными массивами. Решением стала библиотека NumPy, которая вместо стандартных объектов Python использует оптимизированные алгоритмические решения.

Pythran преобразует функции Python в нативный код. Библиотека берёт Python-модуль, аннотированный небольшим интерфейсным описанием, и превращает его в нативный модуль с тем же интерфейсом, но более быстрым. Pythran предназначен для эффективной компиляции программ с использованием нескольких ядер и SIMD-инструкций. Пакет поддерживает как вторую, так и третью версии Python, работает на Windows, Linux и macOS.
Джейкоб Каплан-Мосс: среда разработки Python, 2020 изд.
Ведущий разработчик Django Джейкоб Каплан-Мосс поделился различными настройками среды разработки Python.

1. pyenv
Почему? Для тех моментов, когда нужно запустить несколько версий Python, изолированных от системы Python. pyenv облегчает установку, управление и переключение между этими несколькими питонами.

2. pipx
Почему? pipx позволяет установить основанный на Python интерфейс CLI (youtube-dl, awscli, doc2dash и т. д.), чтобы зависимости этих проектов не испортили глобальный Python.

3. Poetry
Почему? Poetry обрабатывает управление зависимостями и виртуальной средой очень интуитивно и идеально подходит для желаемого рабочего процесса.
Визуализация данных в Python вместе с plotly
Пакет plotly — библиотека с открытым исходным кодом, построенная на plotly.js, которая, в свою очередь, базируется на d3.js. Plotly — это графическая компания, производящая несколько продуктов и инструментов с открытым исходным кодом. Библиотека бесплатна для использования и позволяет создавать неограниченное количество графиков в автономном режиме, а также до 25 диаграмм онлайн.

Красочное интерактивное отображение датасета в одну строку с plotly не проблема! Эта статья может помочь разобраться с построением интерактивных графиков и диаграмм.
Python обгоняет Java на GitHub
GitHub сообщает, что JavaScript, Python и Java — самые популярные языки, используемые разработчиками на своем сайте совместного использования кода.

Python стал вторым по популярности языком в GitHub, впервые обогнав Java и уступив лишь JavaScript, согласно отчету GitHub State of Octoverse за 2019 год об использовании популярного сайта для совместного использования кода.

По мнению GitHub, рост Python стимулирует использование профессионалами в области данных и любителями. Рейтинги были основаны на количестве уникальных участников публичных и частных репо, помеченных соответствующим основным языком.
Паттерн «Компоновщик»
Паттерн «Компоновщик» предполагает, что при разработке «контейнерных» объектов, которые собирают и упорядочивают «объекты содержимого», вы упрощаете операции, если предоставляете контейнерам и объектам содержимого общий набор методов. И тем самым поддерживаете максимум возможных методов при том, что вызывающему неважно, переданы отдельный объект контента или целый контейнер.

Реализация: наследовать или нет?
Преимущества симметрии, которую создаёт этот паттерн между контейнерами и их содержимым, увеличиваются, только если симметрия делает объекты взаимозаменяемыми. Но здесь некоторые статически типизированные языки встречают препятствие.

В языках со строгой типизацией объекты двух классов взаимозаменяемые только при наследовании от одного родительского класса, который реализует общие методы, или при наследовании одного класса непосредственно от другого.

В других статических языках ограничение мягче. Нет строгой необходимости в том, чтобы контейнер и его содержимое делились реализацией. Пока оба соответствуют «интерфейсу», который объявляет конкретные общие методы, объекты вызываются симметрично.

Так как это программирование на Python, оба ограничения испаряются! Пишите код в предпочтительном для себя диапазоне безопасности и краткости. Хотите, пойдите классическим путём и добавьте общий суперкласс:
class Widget(object):
def children(self):
return []

class Frame(Widget):
def __init__(self, child_widgets):
self.child_widgets = child_widgets

def children(self):
return self.child_widgets

class Label(Widget):
def __init__(self, text):
self.text = text
Или задайте объектам один и тот же интерфейс. И положитесь на тесты, которые помогут поддерживать симметрию между контейнерами и содержимым. (Где для простейших скриптов ваш «тест» может быть фактом выполнения кода.)
class Frame(object):
def __init__(self, child_widgets):
self.child_widgets = child_widgets

def children(self):
return self.child_widgets

class Label(object):
def __init__(self, text):
self.text = text

def children(self):
return []
Bourne-Again SHell почти всегда называют просто «Bash». Он интерпретирует и выполняет входной ввод из источника, такого как пользователь или программа. Bash является реализацией концепции оболочки и часто используется при разработке программного обеспечения Python как часть среды разработки для программиста.

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

Продвижение в оболочке Bash охватывает такие важные моменты, как синтаксис, команды и др.

Мастеринг Bash и Terminal показывает методы для повторения команд, изменения каталогов и обработки фоновых процессов.

Десять вещей, которые я хотел бы знать о Bash, охватывает некоторые крайние случаи, о которых очень полезно знать, такие как правильное использование кода выхода и параметры конфигурации с помощью set команды.

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

101 команда Bash и советы начинающим для экспертов — это хорошо продуманный список хитростей, которые нужно изучить.

Привычки скриптов Bash и советы по безопасности объясняют, как базовые программные конструкции Bash, такие как for-циклы и присвоение переменных, затем пытаются избежать странных проблем в вашем коде.

Безопасные способы сделать что-то в bash покажут вам, как не выстрелить себе в ногу, используя безопасные методы кодирования с вашими сценариями оболочки.

Bash Бесконечность Framework исходный код обеспечивает шаблонный и стандартную библиотеку проектов Bash, чтобы было легче читать и поддерживать. Если вы когда-либо пытались читать чужие скрипты Bash или даже свои собственные после того, как откладывали их на пару месяцев, вы знаете, что все, что улучшает читабельность, является важным шагом по сравнению с ванильным Bash.

Статический статус — это приложение Bash, которое генерирует настраиваемую страницу состояния для ваших сервисов.

Замена сценариев Bash на Python — это руководство по использованию Python для административных сценариев, включая действия по замене бесценных инструментов командной строки, таких как awk, sed и grep.

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

Создание сценария завершения bash — это отличный учебник, в котором рассказывается о достаточно сложном сценарии Bash для выполнения синтаксиса в других сценариях оболочки Bash.

6 советов, прежде чем писать следующий Bash Cronjob охватывает запуск ваших сценариев с помощью shebang, перенаправление вывода, тайм-ауты и привилегии sudo.

Улучшенная история Bash показывает, как сделать вашу историю Bash более полезной, храня в ней больше предыдущих команд (что занимает более постоянное хранилище, но не очень много в 2019 году) и добавляя временные метки к historyкоманде.
Ищите работу анонимно и сами решайте, какая компания может с вами связаться👽

Теперь это можно делать на Арене. Это сервис, который отличается от обычных сайтов с вакансиями → https://clck.ru/K2XHG

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

Здесь разработчики:

👀 анонимно ищут работу;

⭐️ составляют список ожиданий от компании и вакансии, а каждый рекрутер отмечает, чему компания может соответствовать;

🛠 решают кодинг-задачи, и добавляют их в резюме пока доступны только JS, Python, Ruby задачки;

🔑 отклоняют вакансии, которые им неинтересны.

На платформе уже много крутых вакансий от ДомКлик, Alfred, Sailpay, Inplat Tech, Admitad и не только. Все вакансии ребята проверяют и модерируют 🙂

Потестировать, зарегаться можно тут → https://clck.ru/K2XHG
SQL Explorer: простота, ненавязчивость, стабильность

SQL Explorer — неплохое приложение на основе Django, которое стремится сделать обмен данными между людьми быстрым и простым. Его можно добавить на существующий сайт Django или использовать как самостоятельный инструмент бизнес-аналитики.

Быстрое написание и совместное использование SQL-запросов в простом и удобном редакторе SQL, предварительный просмотр результатов в браузере, обмен ссылками, загрузка файлов CSV, JSON или Excel (и даже предоставление запросов в качестве конечных точек API, если это необходимо) и поддержание непрерывности потока информации.
8 навыков, которыми должен овладеть новичок, чтобы стать хорошим разработчиком Python
Каковы необходимые технические способности и навыки работы с программным обеспечением на Python?

Python
Совершенно очевидно, что Python — это основной язык, который вы собираетесь использовать на работе, чтобы работать над проектом.

Фреймворки Python
Знание Python-фреймворков является обязательным, однако это не означает, что Python-разработчик должен знать их все. В зависимости от проекта, вас могут попросить узнать о том или ином, но чаще всего используются Django, Flask и CherryPy.

Знакомство с библиотеками ORM
Использование и подключение приложения с помощью ORM (Object Relational Mapper), такого как SQLAlchemy, Django ORM и т.д.

Базовое понимание интерфейсных технологий (HTML5, CSS3, JavaScript)
Очень часто разработчик Python должен сотрудничать с командой внешнего интерфейса для согласования стороны сервера и стороны клиента. Таким образом, важно, чтобы вы понимали, как работает интерфейс, что возможно, а что нет, как будет выглядеть приложение.

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

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

ИИ и машинное обучение
Это будет огромным плюсом для вас, если вы знаете, о чем идет речь.

Навыки общения
Давайте не будем забывать, что работа разработчика заключается не только в наборе строк кода! В лучших фирмах по разработке программного обеспечения команды состоят из замечательных программистов, которые работают вместе для достижения конечной цели.
5 лучших уроков по Python
Некоторые из лучших уроков по Python. Эти учебные пособия подходят как для начинающих, так и для опытных программистов. С помощью этих руководств вы можете изучить и усовершенствовать свои навыки написания кода на Python.

Udemy
Если вы хотите изучить навыки программирования на Python, тогда Udemy предоставит вам лучшую платформу для изучения языка Python. Он предлагает курсы Python от начального до экспертного уровня. Вы можете изучить обе версии, Python 2 и Python 3, с помощью Udemy. Он также рассказывает о расширенных возможностях Python, включая модуль сбора, декораторы и временные метки.

Изучите Python трудный путь
«Learn Python the Hard Way» — самый популярный способ начать работу с языком программирования Python. Вы не обязаны иметь предыдущий опыт в программировании. Этот урок научит вас с нуля до более высоких уровней. Это бесплатное учебное пособие с открытым исходным кодом, доступное онлайн как для повышения квалификации, так и для профессиональных программистов.

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

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

Изобретите с Python
Invent with Python — это бесплатное онлайн-руководство, которое поможет в изучении языка программирования Python . Если вы новичок, то этот учебный сайт — лучшая платформа для вас.
😁1
Многие платят за образование, но после выпуска работают за зарплату ниже рынка, только чтобы получить опыт работы. МТС и Сколково создали образовательную программу для выпускников бакалавриата и магистратуры(возраст - 19-24 года), которая поможет подтянуть навыки и скиллы и, что самое главное, получить реальный опыт работы над проектом.

Программа платная, но у тебя есть возможность выиграть 100% грант на обучение. Узнай о программе, перейдя по ссылке https://prglb.ru/ixso со своего ПК, найди все подсказки, информацию об обучении и сразу же стартуй с одного из этапов квеста.
Создайте чат-бота WhatsApp с Python, Flask и Twilio
Chatbot представляет собой программное приложение, которое может вести разговор с человеком — пользователем через письменную или устную речь. Уровень «интеллекта» среди чат-ботов сильно различается. В то время как некоторые чат-боты имеют довольно базовое понимание языка, другие используют сложные алгоритмы искусственного интеллекта (AI) и машинного обучения (ML), чтобы достичь почти человеческого уровня разговора.

В этом уроке вы можете узнать, как легко создать чат-бота для WhatsApp, используя Twilio API для WhatsApp и инфраструктуру Flask для Python.