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

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

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Создание и Deploy Telegram Bot с помощью Python

#статьядня

https://prglb.ru/vu4z
Трендовые python-репозитории на github
Какие репозитории считаются наиболее впечатляющими? Нескольно репозиториев на сегодняшний день по версии github.

Streamlit
Cамый быстрый способ создания пользовательских инструментов ML.

DeepLearningExamples
Примеры глубокого обучения.

Python-100-Days
Python — 100 дней от новичка до мастера.
Почему нужно использовать "python -m pip"
Ведущая разработчица ядра и канадка Мариатта спросила в Твиттере о том, кто рассказал ей об идиоме использования python -m pip, а также попросила дать ссылку, объясняющую ее.
В бесплатной 16-битной приключенческой игре TwilioQuest есть специальная миссия по программированию на Python! 🤘😎 Вам стоит проверить это хотя бы для того, чтобы насладиться потрясающим ретро-искусством и музыкой.
Пишем простой граббер для Telegram чатов на Python
Рассказываем, как собрать данные участников и сообщения из чатов/каналов Telegram с помощью Python и библиотеки Telethon.
🤝💪😎
https://proglib.io/sh/xJNT6k9coB
Stepik.org запускает 6-недельную программу по Python для начинающих - https://prglb.ru/3odx9

Программа запускалась уже два раза и отзывы были отличные (можно почитать на лендинге). Учиться нужно будет в небольшой группе, вам будет помогать преподаватель, обучение проектное (нужно будет применять то, что узнаете, для создания реального проекта – Telegram-бота), преподаватель даёт фидбэк по заданиям в виде код-ревью.

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

Если вашу анкету одобрят, при оплате используйте наш промокод PYPROGLIB со скидкой в 1000р
Создание приложение Django и Gunicorn с помощью Docker
Хорошее руководство о том, как создать масштабируемое и переносимое приложение Django для создания голосования с Docker.
Зачем нужны операционные системы и как выбрать подходящую?
"Операционная система облегчает многие вычислительные задачи, которые мы считаем само собой разумеющимися. Например, операционная система позволяет записывать в файлы, общаться по сети и запускать несколько программ одновременно. В противном случае вам нужно будет управлять процессором, памятью, сетью, видеокартой и многими другими компонентами с помощью собственной низкоуровневой реализации" — ресурсы операционных систем для разработчиков Python.
Несколько полезных инструментов Python

Setuptools. Это стандартный способ создавать пакеты в Python. Он работает где угодно и хорошо справляется со своей задачей. Он используется для создания egg, zip или wheel файлов из исходников, определения метаданных для вашего проекта, совместной структурированной и стандартизированной работы над кодом.

Virtualenv является менеджером виртуальной среды. Такие изолированные среды представляют собой автономно установленный python с определенным набором предустановленных пакетов. Использование virtualenv означает, что вам не нужно устанавливать пакеты в python системы по умолчанию. Virtualenv выполняет разделение зависимостей, поддержку различных версий python одной системой, легкое перемещение зависимостей.

Pypi или Python Package Index — это большой репозиторий, в котором собраны все ваши самые любимые модули Python. Например, тот же самый pip берет билды пакетов именно оттуда. Полезен для публикации вашего кода.

Sphinx. Это инструмент для создания документации. Изначально он был создан для обработки документации Python, но стал инструментом общего пользования. Он является наиболее распространенным вариантом для проектов на Python. Используется для создания PDF-или HTML-документов с помощью языка разметки из reStructuredText источников.
Когда перейти на Python 3.8
Python 3.8 был выпущен в середине октября. Но не смотря на это, с новой версии могут возникать проблемы.

Проблемы, которые могут возникнуть с переходом на Python 3.8.
Отсутствующие пакеты. opencv-python package по состоянию на 28 октября был недоступен. Вы еще не можете использовать синтаксис. Новые версии Python часто имеют новый синтаксис, как в случае с Python 3.8. Однако другие инструменты также должны поддерживать новый синтаксис — автоформаторы, линтеры и т. Д. Пока они этого не сделают, вы не можете использовать новый синтаксис.

Почему вы должны переключиться.
Учитывая, что для обновления требуется время (дополнительное тестирование, некоторые настройки вашего кода), может возникнуть соблазн отложить переключение на неопределенное время. Проблема в том, что Python не поддерживается бесконечно, а библиотеки не поддерживают все версии Python бесконечно. Так что, если вы работаете на 5-летней версии Python, переключение становится более сложным делом. Вместо одного масштабного страшного обновления каждые несколько лет, гораздо безопаснее проводить непрерывный процесс небольших обновлений.

Когда вы должны перейти на новую основную версию Python?
Как минимум, вам нужно будет подождать, пока:
1. все ваши библиотеки явно поддерживают новую версию Python;
2. все инструменты, на которые вы полагаетесь, явно поддерживают новую версию Python.
Как использовать строки в Python 3 новичку

Одним из наиболее распространенных типов данных в любом языке программирования является string. Строка представляет собой последовательность символов, которые вы могли бы использовать для представления имен пользователей, сообщений в блогах и любое другое содержание текста в вашем коде. Вы можете создать строку и присвоить ее такой переменной.
my_name  =  "Джонатан Джостар"

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

Вот некоторые общие задачи, которые вы можете выполнять при использовании строк в вашем коде.
Объединение строк — очень распространенная задача. В Python 3 вы можете использовать "+"-оператор для этой цели. Вы можете использовать его несколько раз, чтобы объединить несколько строк.
first_name  =  "Джонатан" 
last_name = "Джостар"

full_name = first_name + "" + last_name
Другая распространенная задача со строками — вставка данных в определенное место в строке. В программировании мы называем эту строку интерполяцией. Вот пример создания отформатированной строки (обратите внимание, что буква f включается непосредственно перед первой двойной кавычкой при определении message-переменной). Если вы хотите вставить данные из вашей программы в строку, вы можете включить их между двумя фигурными скобками — { }.
first_name = "Джонатан"
last_name = "Джостар"
age = 24

message = f"Меня зовут {first_name} {last_name}, и мне {age} лет."
print(message)
Вы также захотите преобразовать строку во все заглавные буквы, используя upper-метод, к примеру, для отображения заголовков. А потом вы захотите перечислить наименования через запятую с помощью метода "split". Или заменить одно слово другим в предложении.
example_string = "am I stoked enough yet?"
example_string = example_string.upper()
print(example_string) # prints "AM I STOKED ENOUGH YET?"

example_string = "We're having kale for dinner! Yay kale!"
example_string = example_string.replace("kale", "tacos")
print(example_string) # prints "We're having tacos for dinner! Yay tacos!"

example_string = "Apples,Oranges,Pears"
groceries = example_string.split(',')

И в заключение, вам захочется конвертировать данные из одного типа в другой.
example_number = 42
converted = str(example_number)
message = "Ответ на главный вопрос жизни, вселенной и всего такого — " + converted

example_string = "2"
converted = int(example_string)
message = f"Два плюс два равно { converted + 2 }"
Укажите все правильный способ использования print.
Anonymous Poll
5%
print 3
5%
print "3"
86%
print (3)
4%
print() * 3
Правильный ответ — print (3).
Объяснение: print является функцией в Python 3
Метрики кода. Почему метрики кода важны?
Метрики кода могут быть получены с помощью инструментов статического анализа кода для определения сложности и нестандартных практик.

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

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

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;
✔️ циклы и итерации и многое другое.

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

Недостатки:
не обнаружено.