Многопоточность
В модуле
Параметр
Когда
#потоки #многопоточность
В модуле
threading
новый поток выполнения может начинаться с нового threading.Thread
и присвоения ему функции для выполнения.Параметр
target
ссылается на функцию (или вызываемый объект), который будет работать. Нить не начнет выполнение до start
, также не будет вызываться Thread
объекта.Когда
my_thread
завершается, вызов start
выкинет исключение RuntimeError. Если вы хотите запустить Thread в фоновом режиме, то передавайте daemon=True
или установите my_thread.daemon
в True
перед вызовом start()
.#потоки #многопоточность
➡️ PyForest: Один импорт для всех важных модулей
Импортируйте все ключевые библиотеки Python одной строкой. Это удобно для всех ваших проектов по Data Science и при создании нового окружения в Conda.
🗣️ При работе с данными вы используете библиотеки, такие как pandas, matplotlib, seaborn, numpy и sklearn. Прежде чем приступить к работе, нужно их импортировать.
Библиотека решает несколько проблем:
• Однообразие: импорт всегда одинаковый и скучный.
• Пропущенные импорты мешают работе.
• Иногда нужно искать точные строки импорта, например, import matplotlib.pyplot as plt или from sklearn.ensemble import GradientBoostingRegressor.
🔗 Ссылочка на доку
Импортируйте все ключевые библиотеки Python одной строкой. Это удобно для всех ваших проектов по Data Science и при создании нового окружения в Conda.
🗣️ При работе с данными вы используете библиотеки, такие как pandas, matplotlib, seaborn, numpy и sklearn. Прежде чем приступить к работе, нужно их импортировать.
Библиотека решает несколько проблем:
• Однообразие: импорт всегда одинаковый и скучный.
• Пропущенные импорты мешают работе.
• Иногда нужно искать точные строки импорта, например, import matplotlib.pyplot as plt или from sklearn.ensemble import GradientBoostingRegressor.
🔗 Ссылочка на доку
Использование try/except для безопасного доступа к словарям
Когда вы работаете со словарями и хотите получить значение по ключу, но не уверены, существует ли этот ключ, вместо того чтобы писать сложные проверки, можно использовать конструкцию try/except.
Использование try/except делает код более надёжным и защищает от сбоев, вызванных отсутствием ключей в словарях, что упрощает работу с динамическими и неопределёнными данными.
Когда вы работаете со словарями и хотите получить значение по ключу, но не уверены, существует ли этот ключ, вместо того чтобы писать сложные проверки, можно использовать конструкцию try/except.
Использование try/except делает код более надёжным и защищает от сбоев, вызванных отсутствием ключей в словарях, что упрощает работу с динамическими и неопределёнными данными.
Media is too big
VIEW IN TELEGRAM
▶️ ООП: Наследование (Inheritance)
Сегодня разберемся что это такое и зачем это нужно программисту
Наследование – это механизм доступа к данным и поведению предка, а также способ расширения (изменения поведения) класса не изменяя его код.
Главное правило наследования: наследник является предком, например директор является работником, но машина не является двигателем, потому наследовать автомобиль от двигателя нельзя, тут нужна композиция.
👀 Смотреть на YouTube
Сегодня разберемся что это такое и зачем это нужно программисту
Наследование – это механизм доступа к данным и поведению предка, а также способ расширения (изменения поведения) класса не изменяя его код.
Главное правило наследования: наследник является предком, например директор является работником, но машина не является двигателем, потому наследовать автомобиль от двигателя нельзя, тут нужна композиция.
👀 Смотреть на YouTube
⚙️ Fabulous — вывод картинок в консоль
ℹ️ Вам не достаточно красивого вывода таблиц в консоль? А как насчёт вывода текста с тенями или даже картинок? Теперь это возможно!
🗣️ Использовать только в небольших количествах во избежание перелома чувства прекрасного
🔗 Ссылочка на доку
ℹ️ Вам не достаточно красивого вывода таблиц в консоль? А как насчёт вывода текста с тенями или даже картинок? Теперь это возможно!
🗣️ Использовать только в небольших количествах во избежание перелома чувства прекрасного
🔗 Ссылочка на доку
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Полезные библиотеки Python
pdf2docx — Python модуль который позволяет конвертировать PDF документы в docx для дальнейшего редактирования.
Установка:
Пример работы:
⚙️ GitHub/Инструкция
#soft #code #python #github
pdf2docx — Python модуль который позволяет конвертировать PDF документы в docx для дальнейшего редактирования.
Установка:
$ pip install pdf2docx
Пример работы:
from pdf2docx import Converter
pdf_file = '/path/to/sample.pdf'
docx_file = 'path/to/sample.docx'
# convert pdf to docx
cv = Converter(pdf_file)
# all pages by default
cv.convert(docx_file)
cv.close()
⚙️ GitHub/Инструкция
#soft #code #python #github
Использование функции enumerate() для нумерации элементов в цикле
Когда вам нужно итерировать по списку и одновременно отслеживать индекс каждого элемента, использование функции enumerate() упрощает эту задачу, избавляя от необходимости вручную управлять счётчиком.
Использование enumerate() улучшает читаемость кода и упрощает работу с индексами при итерации по спискам, что особенно полезно при обработке больших данных или сложных списков.
Когда вам нужно итерировать по списку и одновременно отслеживать индекс каждого элемента, использование функции enumerate() упрощает эту задачу, избавляя от необходимости вручную управлять счётчиком.
Использование enumerate() улучшает читаемость кода и упрощает работу с индексами при итерации по спискам, что особенно полезно при обработке больших данных или сложных списков.
⚙️ Temporian для предварительной обработки временных данных
ℹ️ Temporian предлагает новую парадигму для работы с временными данными. Будучи специально разработанными для него, плюс его основные вычисления, выполняемые как высокооптимизированный код C ++, позволяют ему сделать обычные временные операции более безопасными, простыми в написании и намного, намного быстрее в выполнении - с бенчмарками, показывающими ускорение более чем в 100 раз по сравнению с эквивалентным кодом pandas.
🔗 Ссылочка на доку
ℹ️ Temporian предлагает новую парадигму для работы с временными данными. Будучи специально разработанными для него, плюс его основные вычисления, выполняемые как высокооптимизированный код C ++, позволяют ему сделать обычные временные операции более безопасными, простыми в написании и намного, намного быстрее в выполнении - с бенчмарками, показывающими ускорение более чем в 100 раз по сравнению с эквивалентным кодом pandas.
🔗 Ссылочка на доку
📣 Как перехватывать сразу несколько исключений
Исключения – это механизм взаимодействия различных частей программы. Этот механизм позволяет одной части системы уведомлять о том, что она столкнулась с некой критической ошибкой и не знает, как с ней справиться
Перехват исключений в 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