Python community developers
1.38K subscribers
367 photos
45 videos
6 files
241 links
Сообщество программистов на языке Python🙂
🔥Разбор вопросов и задач с собеседований
🔥Обзор популярных библиотек и фишек языка
🔥Интересные идеи программ

Сотрудничество - @BorryaD

@Python_community_developers_bot
加入频道
📣 Как перехватывать сразу несколько исключений

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

Перехват исключений в Python помогает уменьшить количество возникающих в программе сбоев

В этой статье я расскажу, как перехватывать несколько исключений в одном блоке try/except в Python

🖥 Читать подробнее
Использование "словаря через .get()" для безопасного доступа к значениям

Когда вы работаете со словарями и вам нужно получить значение по ключу, но не хотите сталкиваться с ошибкой, если ключ отсутствует, метод .get() — отличное решение.

Использование метода .get() позволяет сделать код более устойчивым к ошибкам и упрощает обработку данных, где наличие ключей не всегда гарантировано.
Media is too big
VIEW IN TELEGRAM
▶️ Атрибуты класса, classmethod и staticmethod

Посмотрим в первом приближении на атрибуты класса, как с ними работать, для чего нужны декораторы classmethod и staticmethod

LEGB – правило продолжает действовать для простых имен переменных и их поиска
Для self атрибутов поиск идет сначала в объекте, потом в классе, затем у предков OCP(object-class-parent). То есть через self можно достучаться как к обычным методам/атрибутам, так и к классовым, статичным
Если через self пытаться поменять неизменяемый атрибут (строка) класса, то будет создана локальная копия, ее не увидят другие объекты класса
Если менять через self изменямый атрибут класса (список), то он изменится для всех объектов класса
cls – это ссылка на класс (не объект!), питон передает его под капотом. cls = Class
classmethod используется для работы с атрибутами класса и с другими методами класса. Часто используется для конструирования готовых объектов
staticmethod не получает ссылок под капотом, это просто функция связанная контекстом с классом. Используется редко и часто завуалированно

▶️ Смотреть на YouTube
⚙️ Unstructured для предварительной обработки текста

ℹ️ Unstructured - это доступная библиотека Python для легкого извлечения текста из документов. Она упрощает очистку текста, обрабатывая все, от удаления маркеров до управления эмодзи и языкового перевода.

🔗 Ссылочка на доку
Использование модуля os.path и pathlib для удобной работы с путями

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

Использование os.path и pathlib помогает сделать код более безопасным и понятным, упрощая работу с путями и снижая вероятность ошибок, связанных с неправильным использованием путей к файлам.
🔥 Полезные библиотеки Python

Uscrapper
— надежный OSINT-парсер, предназначенный для эффективного сбора разнообразной персональной информации с веб-сайтов.

Модуль использует методы веб-парсинга и регулярные выражения для извлечения:

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

⚠️ Инструмент оснащен передовыми модулями обхода анти-парсинга и поддерживает технологии для извлечения информации из всех ссылок в пределах одного домена. Кроме того, в программе предусмотрена возможность создания отчета, содержащего все извлеченные данные.

Установка:
$ git clone https://github.com/z0m31en7/Uscrapper.git
$ cd Uscrapper/install/
$ chmod +x ./install.sh && ./install.sh

Запуск:
$ python Uscrapper-vanta.py [-h] [-u URL] [-O] [-ns] [-c CRAWL] [-t THREADS] [-k KEYWORDS [KEYWORDS ...]] [-f FILE]


⚙️ GitHub/Инструкция

#soft #code #python #github
Преобразования текста в аудио с помощью Python

Для преобразования текста в аудио на Python можно использовать библиотеку gTTS (Google Text-to-Speech).

В данном примере мы используем текст "Привет!» на русском языке, создаем объект gTTS и сохраняем аудиофайл "hello.mp3". Затем мы воспроизводим аудиофайл с помощью утилиты mpg321.
Отправляем универсальные уведомления

Наткнулся на интересный пакет notifiers, который позволяет отправлять уведомления на почту, через Телеграм бота, в Слэк и еще много куда. Всего доступно 16 провайдеров, подробнее про них в документации.

В функцию get_notifier передаем название провайдера в виде строки и получаем объект, с которым можно работать. Отправить уведомление можно с помощью универсального метода notify.

Если не уверены, какие аргументы нужно передать для отправки уведомления, то можете посмотреть их через атрибут required у созданного объекта.

Например, для Телеграма нужно передать токен бота, айди чата и само сообщение. В случае с почтой необходимо указать логин, пароль, адресата и также сообщение.

#уведомления #notifiers
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 9 лучших архитектурных шаблонов для потоков данных и коммуникаций

🖱 Peer-to-Peer
Шаблон Peer-to-Peer подразумевает прямую связь между двумя компонентами без необходимости в центральном координаторе.

🖱 API Gateway
Шлюз API выступает в качестве единой точки входа для всех клиентских запросов к внутренним службам приложения.

🖱 Pub-Sub
Шаблон Pub-Sub разделяет производителей сообщений (издателей) от потребителей сообщений (подписчиков) через брокера сообщений.

🖱 Request-Response
Это один из самых фундаментальных шаблонов интеграции, где клиент отправляет запрос на сервер и ждет ответа.

🖱 Event Sourcing
Event Sourcing подразумевает сохранение изменений состояния приложения в виде последовательности событий.

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

🖱 Batching
Пакетирование подразумевает накопление данных в течение определенного периода или до тех пор, пока не будет достигнут определенный порог, прежде чем обрабатывать их как единую группу.

🖱 Streaming Processing
Потоковая обработка обеспечивает непрерывный прием, обработку и анализ потоков данных в режиме реального времени.

🖱 Orchestration
Orchestration подразумевает наличие центрального координатора (оркестратора), управляющего взаимодействиями между распределенными компонентами или службами для достижения рабочего процесса или бизнес-процесса.

#doc #cheatsheet
➡️ Декоратор для измерения времени выполнения функции в Python

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

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

Декоратор time_it может использоваться для любых функций, без изменения их логики, что делает его удобным инструментом для анализа производительности.
Media is too big
VIEW IN TELEGRAM
Как выучить язык программирования быстрее

В этом ролике автор дает несколько полезных советов, помогающих ускорить изучение языков программированию.

00:00 Вступление
00:09 Практика
00:58 Каждый следующий язык учить легче предыдущего
01:45 Читайте чужой исходный код
02:19 Читайте документацию от разработчиков
03:27 Задавайте вопросы на Stackoverflow
04:00 Заведите профессиональный блог
04:46 Найдите работу на языке, который вы учите
05:51 Геймификация
07:29 Синдром самозванца
09:35 Не бойтесь гуглить
10:44 Начните с фреймворков
11:54 Дайте себе время
12:56 Не бросайте!

Смотреть это видео на youtube: youtu.be/Sxy8_9DK0Xg
Media is too big
VIEW IN TELEGRAM
▶️ Реальное live-coding собеседование Junior Python разработчик

Сегодня вы увидите реальное собеседование на Python Backend разработчика, на котором мне предложили 100.000 рублей

В видео вы увидите live-coding, рассмотрим три практические задачи по уроню сложности

👀 Смотреть на YouTube
🔥 Полезные библиотеки Python

LinkedIn_AIHawk — созданная реддитором AI утилита для быстрого поиска работы.

Софт редактирует ваше резюме под описание вакансий и автоматически рассылает их.

Результат впечатляет: за сутки парень разослал 1000 резюме, которые превратились в 50 приглашений на собес. Бот не только правит резюме, но и сам отвечает на вопросы HR-ов от вашего лица.

Установка:
$ git clone https://github.com/feder-cr/LinkedIn_AIHawk_automatic_job_application

$ cd LinkedIn_AIHawk_automatic_job_application

$ pip install -r requirements.txt


⚙️ GitHub/Инструкция

#soft #code #python #github
➡️ Использование contextlib.contextmanager для создания контекстных менеджеров

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

✔️ В Python для этого можно использовать декоратор contextlib.contextmanager, что делает код простым и элегантным.
➡️ Извлечение уникальных элементов из списка с сохранением порядка

🗣️ Обычно, когда нужно получить уникальные элементы из списка, используют set. Однако это нарушает порядок элементов.

Чтобы извлечь уникальные элементы, сохраняя их порядок, можно использовать следующую технику:

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

Используем однострочный list comprehension с условием, которое добавляет элемент в результирующий список только если он ещё не был добавлен.
👨‍💻 Распознавание текста на изображении с помощью Python

🎞 Видеоурок с подключением конфига и словарей

⚙️ pip install pytesseract pillow

#tipsandtricks #python
Naive

В методе Naive цикл for используется для обхода второго списка. После этого элементы из второго списка добавляются к первому списку. Первый список является объединением первого и второго списков.
⚙️ Управление временем выполнения функций с помощью тайм-аутов в Python

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

🗣️ В Python можно использовать модуль signal для установки тайм-аутов на выполнение кода.
Более простой способ создания контекстных менеджеров

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

Но не всегда хочется реализовывать магические методы __enter__ и __exit__. В качестве альтернативы есть один классный прием в пакете contextlib. Там протокол управления контекстом реализован с использованием декоратора contextmanager.

Первая часть функции tag,  которая идёт до yield, выполняется при входе в блок with. Затем исполняется сам этот блок, а после этого завершается оставшаяся часть функции tag.

 #contextlib
⚡️ drawDB — удобный инструмент для проектирования баз данных

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

Инструмент поддерживает: MySQL, PostgreSQL, SQLite, MariaDB и SQL Server. Его также легко развернуть локально через npm или запустить с помощью Docker.

И всё это бесплатно! 😎

⚙️ GitHub/Инструкция

🌍 drawdb.app

#soft #github