📣 Как перехватывать сразу несколько исключений
Исключения – это механизм взаимодействия различных частей программы. Этот механизм позволяет одной части системы уведомлять о том, что она столкнулась с некой критической ошибкой и не знает, как с ней справиться
Перехват исключений в Python помогает уменьшить количество возникающих в программе сбоев
В этой статье я расскажу, как перехватывать несколько исключений в одном блоке try/except в Python
🖥 Читать подробнее
Исключения – это механизм взаимодействия различных частей программы. Этот механизм позволяет одной части системы уведомлять о том, что она столкнулась с некой критической ошибкой и не знает, как с ней справиться
Перехват исключений в Python помогает уменьшить количество возникающих в программе сбоев
В этой статье я расскажу, как перехватывать несколько исключений в одном блоке try/except в Python
🖥 Читать подробнее
Использование "словаря через .get()" для безопасного доступа к значениям
Когда вы работаете со словарями и вам нужно получить значение по ключу, но не хотите сталкиваться с ошибкой, если ключ отсутствует, метод .get() — отличное решение.
Использование метода .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
Посмотрим в первом приближении на атрибуты класса, как с ними работать, для чего нужны декораторы classmethod и staticmethod
⏺ LEGB – правило продолжает действовать для простых имен переменных и их поиска
⏺ Для self атрибутов поиск идет сначала в объекте, потом в классе, затем у предков OCP(object-class-parent). То есть через self можно достучаться как к обычным методам/атрибутам, так и к классовым, статичным
⏺ Если через self пытаться поменять неизменяемый атрибут (строка) класса, то будет создана локальная копия, ее не увидят другие объекты класса
⏺ Если менять через self изменямый атрибут класса (список), то он изменится для всех объектов класса
⏺ cls – это ссылка на класс (не объект!), питон передает его под капотом. cls = Class
⏺ classmethod используется для работы с атрибутами класса и с другими методами класса. Часто используется для конструирования готовых объектов
⏺ staticmethod не получает ссылок под капотом, это просто функция связанная контекстом с классом. Используется редко и часто завуалированно
▶️ Смотреть на YouTube
⚙️ Unstructured для предварительной обработки текста
ℹ️ Unstructured - это доступная библиотека Python для легкого извлечения текста из документов. Она упрощает очистку текста, обрабатывая все, от удаления маркеров до управления эмодзи и языкового перевода.
🔗 Ссылочка на доку
ℹ️ Unstructured - это доступная библиотека Python для легкого извлечения текста из документов. Она упрощает очистку текста, обрабатывая все, от удаления маркеров до управления эмодзи и языкового перевода.
🔗 Ссылочка на доку
Использование модуля os.path и pathlib для удобной работы с путями
Когда вы работаете с файлами и директориями, важно уметь легко и безопасно манипулировать путями к файлам. Модули os.path и pathlib в Python предоставляют удобные методы для работы с путями, объединения их, получения имени файла и расширения, а также проверки существования файла или директории.
Использование os.path и pathlib помогает сделать код более безопасным и понятным, упрощая работу с путями и снижая вероятность ошибок, связанных с неправильным использованием путей к файлам.
Когда вы работаете с файлами и директориями, важно уметь легко и безопасно манипулировать путями к файлам. Модули os.path и pathlib в Python предоставляют удобные методы для работы с путями, объединения их, получения имени файла и расширения, а также проверки существования файла или директории.
Использование os.path и pathlib помогает сделать код более безопасным и понятным, упрощая работу с путями и снижая вероятность ошибок, связанных с неправильным использованием путей к файлам.
🔥 Полезные библиотеки Python
Uscrapper — надежный OSINT-парсер, предназначенный для эффективного сбора разнообразной персональной информации с веб-сайтов.
Модуль использует методы веб-парсинга и регулярные выражения для извлечения:
➕ адресов электронной почты;
➕ ссылок на социальные сети;
➕ имен авторов;
➕ геолокации;
➕ номеров телефонов и имен пользователей из гиперссылочных и негиперссылочных источников на веб-странице;
➕ поддерживает многопоточность для ускорения этого процесса.
⚠️ Инструмент оснащен передовыми модулями обхода анти-парсинга и поддерживает технологии для извлечения информации из всех ссылок в пределах одного домена. Кроме того, в программе предусмотрена возможность создания отчета, содержащего все извлеченные данные.
Установка:
Запуск:
⚙️ GitHub/Инструкция
#soft #code #python #github
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.
Для преобразования текста в аудио на Python можно использовать библиотеку gTTS (Google Text-to-Speech).
В данном примере мы используем текст "Привет!» на русском языке, создаем объект gTTS и сохраняем аудиофайл "hello.mp3". Затем мы воспроизводим аудиофайл с помощью утилиты mpg321.
Отправляем универсальные уведомления
Наткнулся на интересный пакет notifiers, который позволяет отправлять уведомления на почту, через Телеграм бота, в Слэк и еще много куда. Всего доступно 16 провайдеров, подробнее про них в документации.
В функцию get_notifier передаем название провайдера в виде строки и получаем объект, с которым можно работать. Отправить уведомление можно с помощью универсального метода notify.
Если не уверены, какие аргументы нужно передать для отправки уведомления, то можете посмотреть их через атрибут required у созданного объекта.
Например, для Телеграма нужно передать токен бота, айди чата и само сообщение. В случае с почтой необходимо указать логин, пароль, адресата и также сообщение.
#уведомления #notifiers
Наткнулся на интересный пакет 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
🖱 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 можно легко измерять время выполнения функций с помощью декораторов. Этот подход удобен для анализа производительности и оптимизации кода.
В 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
В этом ролике автор дает несколько полезных советов, помогающих ускорить изучение языков программированию.
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 Backend разработчика, на котором мне предложили 100.000 рублей
В видео вы увидите live-coding, рассмотрим три практические задачи по уроню сложности
👀 Смотреть на YouTube
🔥 Полезные библиотеки Python
LinkedIn_AIHawk — созданная реддитором AI утилита для быстрого поиска работы.
Софт редактирует ваше резюме под описание вакансий и автоматически рассылает их.
Результат впечатляет: за сутки парень разослал 1000 резюме, которые превратились в 50 приглашений на собес. Бот не только правит резюме, но и сам отвечает на вопросы HR-ов от вашего лица.
Установка:
⚙️ GitHub/Инструкция
#soft #code #python #github
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 для этого можно использовать декоратор
Иногда бывает нужно создать собственный контекстный менеджер для управления ресурсами, такими как файлы или сетевые соединения.
✔️ В Python для этого можно использовать декоратор
contextlib.contextmanager
, что делает код простым и элегантным.➡️ Извлечение уникальных элементов из списка с сохранением порядка
🗣️ Обычно, когда нужно получить уникальные элементы из списка, используют set. Однако это нарушает порядок элементов.
Чтобы извлечь уникальные элементы, сохраняя их порядок, можно использовать следующую технику:
🗣️ Обычно, когда нужно получить уникальные элементы из списка, используют set. Однако это нарушает порядок элементов.
Чтобы извлечь уникальные элементы, сохраняя их порядок, можно использовать следующую технику:
•
Используем список для обхода элементов и set, чтобы отслеживать уже встреченные элементы, избегая их дублирования.•
Используем однострочный list comprehension с условием, которое добавляет элемент в результирующий список только если он ещё не был добавлен.👨💻 Распознавание текста на изображении с помощью Python
🎞 Видеоурок с подключением конфига и словарей
⚙️
#tipsandtricks #python
🎞 Видеоурок с подключением конфига и словарей
⚙️
pip install pytesseract pillow
#tipsandtricks #python
Более простой способ создания контекстных менеджеров
Почти год назад на канале было объяснение про то, что такое контекстные менеджеры и зачем они нужны. Также был пост, показывающий, как создавать классы с использованием протокола менеджера контекста.
Но не всегда хочется реализовывать магические методы __enter__ и __exit__. В качестве альтернативы есть один классный прием в пакете
Первая часть функции
#contextlib
Почти год назад на канале было объяснение про то, что такое контекстные менеджеры и зачем они нужны. Также был пост, показывающий, как создавать классы с использованием протокола менеджера контекста.
Но не всегда хочется реализовывать магические методы __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
Редактор диаграмм, работающий прямо в браузере — даже без регистрации. С помощью drawDB можно всего за несколько кликов создавать схемы, экспортировать SQL-сценарии и настраивать интерфейс под свои задачи.
Инструмент поддерживает: MySQL, PostgreSQL, SQLite, MariaDB и SQL Server. Его также легко развернуть локально через npm или запустить с помощью Docker.
И всё это бесплатно! 😎
⚙️ GitHub/Инструкция
🌍 drawdb.app
#soft #github