🛠️ Подборка свежих Python-библиотек и инструментов
🌐 Netchecks
Инструмент для автоматизации проверки соответствия сетевых условий ожидаемым параметрам. Эти проверки могут быть примитивными, например, скрипт может регулярно пытаться получить доступ к сервису, который должен быть заблокирован. Netchecks упрощает этот процесс, позволяя объявлять такие проверки декларативным способом.
😺 Cyclopts
Это фреймворк для создания интерфейса командной строки (CLI, Command-Line Interface) на Python. Предлагает продвинутые функции для работы с типами данных и автоматически генерирует красивые и понятные сообщения справки.
🦅 Falco
Инструмент, ориентированный на фреймворк Django, для улучшения опыта разработки веб-приложений. Предоставляет интерфейс командной строки, который включает команды для запуска новых проектов на Django и генерации простых CRUD для быстрого прототипирования.
🪄 Marker
Инструмент для превращения PDF, EPUB и MOBI в markdown-файлы. Разработчики утверждают, что он в 10 раз быстрее, чем nougat, точнее на большинстве документов и мало галлюцинирует.
🐦⬛ TaskWeaver
Фреймворк для автономных агентов, предназначенный для планирования и выполнения задач аналитики данных. По факту, это чат, в котором можно просить у бота написать код, провести операции с данными и сделать аналитику.
🌐 Netchecks
Инструмент для автоматизации проверки соответствия сетевых условий ожидаемым параметрам. Эти проверки могут быть примитивными, например, скрипт может регулярно пытаться получить доступ к сервису, который должен быть заблокирован. Netchecks упрощает этот процесс, позволяя объявлять такие проверки декларативным способом.
😺 Cyclopts
Это фреймворк для создания интерфейса командной строки (CLI, Command-Line Interface) на Python. Предлагает продвинутые функции для работы с типами данных и автоматически генерирует красивые и понятные сообщения справки.
🦅 Falco
Инструмент, ориентированный на фреймворк Django, для улучшения опыта разработки веб-приложений. Предоставляет интерфейс командной строки, который включает команды для запуска новых проектов на Django и генерации простых CRUD для быстрого прототипирования.
🪄 Marker
Инструмент для превращения PDF, EPUB и MOBI в markdown-файлы. Разработчики утверждают, что он в 10 раз быстрее, чем nougat, точнее на большинстве документов и мало галлюцинирует.
🐦⬛ TaskWeaver
Фреймворк для автономных агентов, предназначенный для планирования и выполнения задач аналитики данных. По факту, это чат, в котором можно просить у бота написать код, провести операции с данными и сделать аналитику.
👍12🔥3❤1
💬 Начните писать в комментариях фразу «
#интерактив
Как Python-разработчик я хочу
...», а Т9 пусть продолжит за вас.#интерактив
❤10🥰5😁4
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍5
💁 Как внедрить многоязычность в Telegram-бота оптимальным образом
Автор новой статьи на «Хабре» делится своим опытом создания многоязычного бота. Его целью было упростить процесс добавления новых языков и сделать это с минимумом затрат. Вот основные моменты:
▫️Следует избегать внесения текстов непосредственно в код бота. Весь текстовый контент организован через переменные, чтобы легко управлять языковыми версиями.
▫️Можно создать по словарю на каждый язык, в котором ключами будут названия переменных, а значениями — текст для интерфейса.
По мере развития бота проект перешёл на модульно-сервисную архитектуру. Как был решён вопрос с многоязычностью, читайте в статье 👈
Автор новой статьи на «Хабре» делится своим опытом создания многоязычного бота. Его целью было упростить процесс добавления новых языков и сделать это с минимумом затрат. Вот основные моменты:
▫️Следует избегать внесения текстов непосредственно в код бота. Весь текстовый контент организован через переменные, чтобы легко управлять языковыми версиями.
▫️Можно создать по словарю на каждый язык, в котором ключами будут названия переменных, а значениями — текст для интерфейса.
По мере развития бота проект перешёл на модульно-сервисную архитектуру. Как был решён вопрос с многоязычностью, читайте в статье 👈
👏10👍2🤔2
В Python функции являются объектами первого класса. Это означает, что они могут быть использованы так же, как и любые другие объекты. Их можно присваивать переменным, хранить в структурах данных, передавать в качестве аргументов другим функциям и возвращать в качестве значений из других функций.
✔️Пример ниже даёт понять сущность функций как объектов:
def factorial(n):
"""returns n!"""
return 1 if n<2 else n*factorial(n-1)
print(factorial(42)) # -> 1405006117752879898543142606244511569936384000000000
print(factorial.__doc__) # -> returns n!
print(type(factorial)) # -> <class 'function’>
▶️Следствием этого являются функции высшего порядка. Так называют функции, которые выполняют одно (или оба) из этих действий:
- принимают одну (и более) функций в качестве аргументов;
- возвращают функцию в качестве результата.
Вот пример:
def apply_twice(func, arg):
return func(func(arg))
def multiply_by_two(x):
return x * 2
result = apply_twice(multiply_by_two, 3)
print(result) # Выведет 12, так как (3 * 2) * 2 = 12
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🤩4❤3
📊Статистика на примерах с Python
Для работы с данными в Python чаще всего используют библиотеки NumPy, Pandas, Matplotlib, SciPy. Автор новой статьи на «Хабре» показывает полезные методы из этих библиотек на примере датасета Titanic. Вот, например, меры центральной тенденции в SciPy:
Ещё больше информации можно найти в статье 👈
Для работы с данными в Python чаще всего используют библиотеки NumPy, Pandas, Matplotlib, SciPy. Автор новой статьи на «Хабре» показывает полезные методы из этих библиотек на примере датасета Titanic. Вот, например, меры центральной тенденции в SciPy:
# превращение списка в массив NumPy и удаление всех nan
age_without_nan = age.to_numpy()
age_without_nan = age1[~np.isnan(age_without_nan)]
# вычисление моды
mode = scipy.stats.mode(age_without_nan)
print('Мода =', mode)
# вычисление медианы
median = scipy.ndimage.median(age_without_nan)
print('Медиана =', median)
# вычисление среднего
mean = scipy.mean(age_without_nan)
print('Среднее значение =', mean)
Ещё больше информации можно найти в статье 👈
👍15❤2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤖 Итоги недели в мире ИИ и обзоры новых сервисов
Мы написали статью на VC, которая основана на очередном выпуске нашей рассылки про последние новости и тенденции в мире ИИ. Залетайте и читайте!
👇 Ниже — мини-подборка из статьи 👇
📰 Новости
▫️ OpenAI объявила о запуске долгожданного магазина кастомных чат-ботов.
▫️ В Пасадене (штат Калифорния) открывается первая закусочная CaliExpress by Flippy, полностью управляемая ИИ.
▫️ NVIDIA выпустила модель для распознавания речи Parakeet, которая по всем показателям превосходит OpenAI Whisper.
▫️ Использование ИИ в совместном научном проекте Microsoft и Тихоокеанской северо-западной национальной лаборатории в течение недели помогло определить новый элемент, который поможет снизить на 70% использование лития в батареях. Без ИИ такое исследование заняло бы по меньшей мере 20 лет.
▫️ Компания ByteDance выпустила новую модель MagicVideo-V2 для генерации видео.
🛠 Инструменты
◾️ Auto Wiki — генерирует вики-документацию для GitHub репозиториев.
◾️ Code to Flow — визуализирует, анализирует и объясняет код, написанный на всех популярных языках и фреймворках.
◾️ Concepto — платформа для создания прототипов веб-приложений.
◾️ Afforai — выполняет суммаризацию, перевод и поиск по множеству документов.
◾️ Corgea — исправляет уязвимые фрагменты кода.
◾️ Jan — опенсорсный оффлайновый чат-бот.
◾️ Plus AI — плагин для Google Slides: делает профессиональные презентации, персональные и командные дашборды, любые отчеты.
🤙 Сделай сам
🔸 WikiChat — опенсорсный инструмент для коррекции галлюцинаций с помощью информации из Википедии.
🔸 Подробная шпаргалка и советы по созданию продвинутых RAG.
🔸 OpenVoice — опенсорный инструмент для мгновенного клонирования голоса.
🎓 Туториалы
🔹 Туториал по работе с новым API Query Pipelines показывает примеры создания простых линейных цепочек и сложных ациклических графов из модулей LlamaIndex.
🔹 Туториал по объединению LLM с помощью mergekit детально разбирает 4 основных метода объединения моделей.
#чтопроисходит
Мы написали статью на VC, которая основана на очередном выпуске нашей рассылки про последние новости и тенденции в мире ИИ. Залетайте и читайте!
📰 Новости
▫️ OpenAI объявила о запуске долгожданного магазина кастомных чат-ботов.
▫️ В Пасадене (штат Калифорния) открывается первая закусочная CaliExpress by Flippy, полностью управляемая ИИ.
▫️ NVIDIA выпустила модель для распознавания речи Parakeet, которая по всем показателям превосходит OpenAI Whisper.
▫️ Использование ИИ в совместном научном проекте Microsoft и Тихоокеанской северо-западной национальной лаборатории в течение недели помогло определить новый элемент, который поможет снизить на 70% использование лития в батареях. Без ИИ такое исследование заняло бы по меньшей мере 20 лет.
▫️ Компания ByteDance выпустила новую модель MagicVideo-V2 для генерации видео.
🛠 Инструменты
◾️ Auto Wiki — генерирует вики-документацию для GitHub репозиториев.
◾️ Code to Flow — визуализирует, анализирует и объясняет код, написанный на всех популярных языках и фреймворках.
◾️ Concepto — платформа для создания прототипов веб-приложений.
◾️ Afforai — выполняет суммаризацию, перевод и поиск по множеству документов.
◾️ Corgea — исправляет уязвимые фрагменты кода.
◾️ Jan — опенсорсный оффлайновый чат-бот.
◾️ Plus AI — плагин для Google Slides: делает профессиональные презентации, персональные и командные дашборды, любые отчеты.
🤙 Сделай сам
🔸 WikiChat — опенсорсный инструмент для коррекции галлюцинаций с помощью информации из Википедии.
🔸 Подробная шпаргалка и советы по созданию продвинутых RAG.
🔸 OpenVoice — опенсорный инструмент для мгновенного клонирования голоса.
🎓 Туториалы
🔹 Туториал по работе с новым API Query Pipelines показывает примеры создания простых линейных цепочек и сложных ациклических графов из модулей LlamaIndex.
🔹 Туториал по объединению LLM с помощью mergekit детально разбирает 4 основных метода объединения моделей.
#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3
🤔26😁9👍6❤3
📁 Как правильно структурировать Python-проект
Какие функции выделить в отдельные модули? Как хранить данные? Что можно объединить и изолировать? Эти вопросы должны встать перед вами, если вы хотите сделать Python-проект, который можно будет легко масштабировать и тестировать.
Вот несколько советов:
▪️Подумайте о структуре репозитория.
Лучше, чтобы она не была запутанной и в ней мог разобраться сторонний человек. За образец предлагается взять это:
Признаками плохой структуры могут быть циклические зависимости, интенсивное использование глобального контекста, спагетти-код.
Больше подробностей о том, как улучшить проект, использовать импорты и декораторы, работать с типами данных — в статье 👈
Какие функции выделить в отдельные модули? Как хранить данные? Что можно объединить и изолировать? Эти вопросы должны встать перед вами, если вы хотите сделать Python-проект, который можно будет легко масштабировать и тестировать.
Вот несколько советов:
▪️Подумайте о структуре репозитория.
Лучше, чтобы она не была запутанной и в ней мог разобраться сторонний человек. За образец предлагается взять это:
README.rst
LICENSE
setup.py
requirements.txt
sample/init.py
sample/core.py
sample/helpers.py
docs/conf.py
docs/index.rst
tests/test_basic.py
tests/test_advanced.py
▪️Н
е забудьте о структуре кода.Признаками плохой структуры могут быть циклические зависимости, интенсивное использование глобального контекста, спагетти-код.
Больше подробностей о том, как улучшить проект, использовать импорты и декораторы, работать с типами данных — в статье 👈
👍20❤3
Forwarded from Библиотека задач по Python | тесты, код, задания
🌳 Задача про вырубку деревьев
Фермер решил вырубить некоторые деревья, растущие перед его домом. Деревья перед домом посажены в ряд, всего там растёт n деревьев, расстояния между соседними деревьями одинаковы. После вырубки перед домом должно остаться m деревьев, и расстояния между соседними деревьями должны быть одинаковыми. Помогите фермеру выяснить, сколько существует способов вырубки деревьев.
Требуется написать программу, которая по заданным числам n и m определит, сколько существует способов вырубки некоторых из n деревьев так, чтобы после вырубки осталось m деревьев, и соседние деревья находились на равном расстоянии друг от друга. Выше на картинке показаны варианты для m = 5 и n = 3.
Пример ввода:
>> 125 25
Вывод:
>> 265
👇Попробуйте написать решение. Ответ опубликуем чуть позже.
Фермер решил вырубить некоторые деревья, растущие перед его домом. Деревья перед домом посажены в ряд, всего там растёт n деревьев, расстояния между соседними деревьями одинаковы. После вырубки перед домом должно остаться m деревьев, и расстояния между соседними деревьями должны быть одинаковыми. Помогите фермеру выяснить, сколько существует способов вырубки деревьев.
Требуется написать программу, которая по заданным числам n и m определит, сколько существует способов вырубки некоторых из n деревьев так, чтобы после вырубки осталось m деревьев, и соседние деревья находились на равном расстоянии друг от друга. Выше на картинке показаны варианты для m = 5 и n = 3.
Пример ввода:
>> 125 25
Вывод:
>> 265
👇Попробуйте написать решение. Ответ опубликуем чуть позже.
👍13🔥1
Обозначим расстояние между деревьями после вырубки d. Тогда существует n – d х (m – 1) – m + 1 способов вырубить деревья. Чтобы найти все варианты, нужно просуммировать способы по всем d. Кроме того, нужно учесть 2 частных случая – когда количество оставшихся после вырубки деревьев равно 0 или 1.
1️⃣ вариант:
n, m = list(map(int, input().split()))
trees = 0
if m == 0:
trees = 1
elif m == 1:
trees = n
else:
for d in range(1, n):
trees += (n - d) // (m - 1)
print(trees)
2️⃣ вариант:
n, m = map(int, input().split())
trees = 0
if m == 0:
trees = 1
elif m == 1:
trees = n
else:
for d in range(1, (n - 1) // (m - 1) + 1):
trees += n - (m - 1) * d
print(trees)
👉Ещё четыре олимпиадных задачи с решениями ищите в нашей статье👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16😁5❤1
🛠 Модуль functools для манипуляций с функциями
Позволяет адаптировать или расширять функции без необходимости полностью их переписывать.
➡️Основной инструмент — метод partial, который возвращает новую функцию с частично применёнными аргументами и ключевыми словами, определёнными в оригинальной функции. Это полезно, если один или несколько аргументов постоянные.
➡️Метод reduce() последовательно применяет некоторую функцию к элементам итерируемой последовательности. Он сводит этот итерируемый объект к единственному значению, накапливая результаты функции от пар элементов.
#код
Позволяет адаптировать или расширять функции без необходимости полностью их переписывать.
➡️Основной инструмент — метод partial, который возвращает новую функцию с частично применёнными аргументами и ключевыми словами, определёнными в оригинальной функции. Это полезно, если один или несколько аргументов постоянные.
from functools import partial
def multiply(x, y, z):
return x * y * z
# Создаём новую функцию, которая умножает значение на 2 и 3
multiply_by_6 = partial(multiply, 2, 3)
# Теперь, вызывая multiply_by_6 с одним аргументом, этот аргумент будет умножаться на 2 и 3
result = multiply_by_6(4) # -> 24
➡️Метод reduce() последовательно применяет некоторую функцию к элементам итерируемой последовательности. Он сводит этот итерируемый объект к единственному значению, накапливая результаты функции от пар элементов.
from functools import reduce
numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, numbers)
print(product) # Выведет 120, так как 1 * 2 * 3 * 4 * 5 = 120
#код
👍24
🐍➰ Создаём игру «Виселица» на Python. Часть 1. Командная строка
Осваиваем азы программирования на Python, разработав классическую игру «Виселица» с интерактивным интерфейсом и увлекательной геймплейной механикой.
🔗 Читать статью
Осваиваем азы программирования на Python, разработав классическую игру «Виселица» с интерактивным интерфейсом и увлекательной геймплейной механикой.
🔗 Читать статью
👍23
🤔А как вам такой алгоритм сортировки?
Перевод: «ждёт, пока космическая солнечная радиация не проманипулирует битами и отсортирует список»
➕Комментарий от пояснительной бригады:
Шутка основана на явлении single-event upset (SEU). Это изменение состояния электронного компонента, вызванное частицей ионизирующего излучения. Оно происходит из-за возникновения свободного заряда, который появляется в результате ионизации внутри или рядом с логическим элементом, таким как бит памяти.
#memes
Перевод: «ждёт, пока космическая солнечная радиация не проманипулирует битами и отсортирует список»
➕Комментарий от пояснительной бригады:
Шутка основана на явлении single-event upset (SEU). Это изменение состояния электронного компонента, вызванное частицей ионизирующего излучения. Оно происходит из-за возникновения свободного заряда, который появляется в результате ионизации внутри или рядом с логическим элементом, таким как бит памяти.
#memes
🔥20😁16👍5🤔2
Что такое Pickling и Unpickling?
Эти термины относятся к процессам сериализации и десериализации объектов.
▫️Pickling.
Модуль Pickle берёт любой Python-объект и конвертирует его в поток байтов. Этот процесс и называется pickling. Этот поток байтов может быть сохранён в файле или передан через сеть.
Пример:
▫️Unpickling.
Это обратный процесс, при котором поток байтов преобразуется обратно в объект Python.
Пример:
#вопросы_с_собеседований
Эти термины относятся к процессам сериализации и десериализации объектов.
▫️Pickling.
Модуль Pickle берёт любой Python-объект и конвертирует его в поток байтов. Этот процесс и называется pickling. Этот поток байтов может быть сохранён в файле или передан через сеть.
Пример:
import pickle
my_data = {'key': 'value', 'number': 42}
# Pickling (сериализация)
with open('data.pkl', 'wb') as file:
pickle.dump(my_data, file)
▫️Unpickling.
Это обратный процесс, при котором поток байтов преобразуется обратно в объект Python.
Пример:
with open('data.pkl', 'rb') as file:
loaded_data = pickle.load(file)
print(loaded_data) # Выведет: {'key': 'value', 'number': 42}
#вопросы_с_собеседований
👍22❤1
👍 Библиотека jsonschema для валидации данных в формате JSON
Позволяет проверять, соответствуют ли данные JSON Schema. Также предоставляет возможность отложенной (ленивой) валидации, для идентификации всех ошибок валидации по мере их возникновения.
Установка — pip install jsonschema
🔗Страница библиотеки на PyPI
Позволяет проверять, соответствуют ли данные JSON Schema. Также предоставляет возможность отложенной (ленивой) валидации, для идентификации всех ошибок валидации по мере их возникновения.
Установка — pip install jsonschema
🔗Страница библиотеки на PyPI
👍15❤3
👤Аутентификация, авторизация пользователей и единый вход (SSO) с использованием Django
Автор новой статьи на Хабре подробно рассказывает о реализации технологии Единого Входа (SSO — Single Sign-On). Она даёт возможность пользователям получать доступ к разным системам без повторного ввода логина и пароля.
Чтобы интегрировать приложение на Django с SSO, следует сначала разобраться с механизмами аутентификации и авторизации пользователей. Более подробно об этом всём читайте здесь 👈
Автор новой статьи на Хабре подробно рассказывает о реализации технологии Единого Входа (SSO — Single Sign-On). Она даёт возможность пользователям получать доступ к разным системам без повторного ввода логина и пароля.
Чтобы интегрировать приложение на Django с SSO, следует сначала разобраться с механизмами аутентификации и авторизации пользователей. Более подробно об этом всём читайте здесь 👈
👍17🔥4
😺 PikaPython — ультралёгкий интерпретатор Python
Для запуска требует всего 4 KB RAM. Готов к использованию «из коробки» без каких-либо дополнительных настроек. Легко расширяется с помощью C.
PikaPython похож на проект MicroPython, который также ориентирован на работу в условиях ограниченных ресурсов. Это делает интерпретатор подходящим для встроенных систем, устройств IoT и микроконтроллеров.
🧑💻 Репозиторий с подробными инструкциями и примерами
Для запуска требует всего 4 KB RAM. Готов к использованию «из коробки» без каких-либо дополнительных настроек. Легко расширяется с помощью C.
PikaPython похож на проект MicroPython, который также ориентирован на работу в условиях ограниченных ресурсов. Это делает интерпретатор подходящим для встроенных систем, устройств IoT и микроконтроллеров.
🧑💻 Репозиторий с подробными инструкциями и примерами
👏11👍8
🐍➰ Создаем игру «Виселица» на Python. Часть 2. Графический интерфейс на PySimpleGUI
В первой части мы написали код для получения и обработки вводимых игроком данных, создали некоторые компоненты и текстовый пользовательский интерфейс (TUI). Во второй части реализуем логику игры «Виселица» и создадим графический интерфейс с помощью PySimpleGUI.
🔗 Читать статью
В первой части мы написали код для получения и обработки вводимых игроком данных, создали некоторые компоненты и текстовый пользовательский интерфейс (TUI). Во второй части реализуем логику игры «Виселица» и создадим графический интерфейс с помощью PySimpleGUI.
🔗 Читать статью
🥰10⚡3❤3
🐍💬 Как часто вы используете ключевое слово del в Python?
Так написал один из пользователей Reddit. Что бы вы ответили?
❤️ — я действительно использую del
🤔 — да зачем это вообще нужно?
#интерактив
Я пишу код на Python уже многие годы, в основном бэкенд для веб-приложений, но почти никогда не использовал del. Есть у кого-нибудь интересные или убедительные примеры использования этой команды?
Так написал один из пользователей Reddit. Что бы вы ответили?
❤️ — я действительно использую del
🤔 — да зачем это вообще нужно?
#интерактив
🤔78❤37🌚7