🤓 Вопросы подписчиков: как перейти от Jupyter Notebooks к продакшн-коду?
Сегодня мы делимся вопросом от подписчика, который учился и разрабатывал проекты в Anaconda Notebooks, но стремится выйти на новый уровень и освоить написание продакшн-кода на Python.
💬 Он пишет:
✌️ Делитесь своими советами в комментариях!
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.
Библиотека питониста #междусобойчик
Сегодня мы делимся вопросом от подписчика, который учился и разрабатывал проекты в Anaconda Notebooks, но стремится выйти на новый уровень и освоить написание продакшн-кода на Python.
Я начинал учиться и программировать в Anaconda Notebooks — это отличный инструмент для учебы и исследований. Однако в индустрии подход к коду совсем другой. Там он структурирован: используются субпапки, главный .py-файл объединяет всё, а развертывание, API и тесты разнесены по отдельным директориям. Это как готовое здание с надежным фундаментом и продуманной структурой, где все части взаимосвязаны.
Если вы работаете с Python в индустрии, не могли бы вы посоветовать, как перейти от стиля работы в ноутбуках к созданию продакшн-кода?
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.
Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2👍2😁1🤔1
Модуль
functools
в Python содержит полезный инструмент — ctools,
который позволяет создавать новые функции, фиксируя часть аргументов уже существующей функции. Это называется частичное применение функций.🔹 Как это работает?
С помощью
partial
можно «заморозить» часть аргументов, чтобы создать новую функцию с меньшим числом входных параметров.📌 Пример: фиксируем аргумент
from functools import partial
def multiply(x, y):
return x * y
double = partial(multiply, 2) # "Фиксируем" x как 2
print(double(5)) # Вывод: 10 (2 * 5)
Теперь
double(5)
эквивалентно multiply(2, 5)
, потому что 2
уже зафиксировано.📌 Пример: фиксируем именованные аргументы
def greet(name, greeting="Hello"):
return f"{greeting}, {name}!"
say_hi = partial(greet, greeting="Hi")
print(say_hi("Alice")) # Вывод: Hi, Alice!
Теперь
say_hi("Alice")
всегда будет использовать "Hi"
в качестве приветствия.🔹 Зачем использовать
partial
?— Упрощает код и уменьшает дублирование.
— Делает функции удобнее для повторного использования.
— Полезен в обработчиках событий и коллбэках.
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤3🔥2
🚀 Открыт прием заявок на Google Summer of Code 2025
С 2005 года эта программа помогает студентам и начинающим разработчикам погрузиться в реальный мир программирования, работая над крутыми проектами.
📅 Дедлайн подачи заявок: 8 апреля 2025 года.
📍 Подробности и форма заявки: https://clc.to/6wAHEg
Библиотека питониста #свежак
С 2005 года эта программа помогает студентам и начинающим разработчикам погрузиться в реальный мир программирования, работая над крутыми проектами.
📅 Дедлайн подачи заявок: 8 апреля 2025 года.
📍 Подробности и форма заявки: https://clc.to/6wAHEg
Библиотека питониста #свежак
❤2👍2🎉2
Зимний режим OFF. Весна начинается с апгрейда.
Если чувствуешь, что за зиму навыки подзастыли — пора их разморозить.
📦 Включили весеннюю распродажу: скидка –35% на курсы до конца марта.
Выбирай направление и выходи из спячки:
— Алгоритмы и структуры данных — чтобы собеседования в Яндекс, Ozon и другие были как уровень easy
— Математика для Data Science — для тех, кто не хочет просто «жать на кнопки», а понимать, что под капотом
— Архитектуры и шаблоны — если хочется мыслить как senior и прокачать системное мышление
— Python, Frontend, основы IT — для тех, кто стартует путь в разработке
👾 Proglib Academy — это как старая добрая 8-битная игра, но вместо врагов — практические задачи и собеседования.
Мы просто упаковали сложное обучение в пиксельную обёртку, чтобы тебе было чуть веселее прокачиваться.
🧠 Отогревай мозги, прокачивай скиллы и хватай свой power-up до конца марта.
👉 Выбрать курс
Если чувствуешь, что за зиму навыки подзастыли — пора их разморозить.
📦 Включили весеннюю распродажу: скидка –35% на курсы до конца марта.
Выбирай направление и выходи из спячки:
— Алгоритмы и структуры данных — чтобы собеседования в Яндекс, Ozon и другие были как уровень easy
— Математика для Data Science — для тех, кто не хочет просто «жать на кнопки», а понимать, что под капотом
— Архитектуры и шаблоны — если хочется мыслить как senior и прокачать системное мышление
— Python, Frontend, основы IT — для тех, кто стартует путь в разработке
👾 Proglib Academy — это как старая добрая 8-битная игра, но вместо врагов — практические задачи и собеседования.
Мы просто упаковали сложное обучение в пиксельную обёртку, чтобы тебе было чуть веселее прокачиваться.
🧠 Отогревай мозги, прокачивай скиллы и хватай свой power-up до конца марта.
👉 Выбрать курс
❤2👍2
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🥇 Прокачай Power BI: создаем bullet-chart для наглядного сравнения данных
🎯 Устали от вопросов типа «Ну и что это значит для бизнеса?» после презентации отчетов?
Bullet-chart — мощный инструмент, который сразу показывает, насколько фактические показатели соответствуют целевым. В этой статье разберем, как правильно читать такой график и шаг за шагом создадим его в Power BI.
Готовы визуализировать данные так, чтобы они говорили сами за себя?
👍 Тогда поехали, ссылка на статью: https://proglib.io/sh/hcrRdAuqT5
Библиотека дата-сайентиста
🎯 Устали от вопросов типа «Ну и что это значит для бизнеса?» после презентации отчетов?
Bullet-chart — мощный инструмент, который сразу показывает, насколько фактические показатели соответствуют целевым. В этой статье разберем, как правильно читать такой график и шаг за шагом создадим его в Power BI.
Готовы визуализировать данные так, чтобы они говорили сами за себя?
👍 Тогда поехали, ссылка на статью: https://proglib.io/sh/hcrRdAuqT5
Библиотека дата-сайентиста
❤4👍2🎉1
Python — гибкий язык, и писать на нём можно в разных парадигмах. Но что удобнее, понятнее и «правильнее»?
class NumberProcessor:
def __init__(self, numbers):
self.numbers = numbers
def filter_even(self):
self.numbers = [n for n in self.numbers if n % 2 == 0]
return self
def square(self):
self.numbers = [n**2 for n in self.numbers]
return self
def get_result(self):
return self.numbers
processor = NumberProcessor([1, 2, 3, 4, 5, 6])
result = processor.filter_even().square().get_result()
print(result) # [4, 16, 36]
from functools import reduce
def filter_even(numbers):
return list(filter(lambda x: x % 2 == 0, numbers))
def square(numbers):
return list(map(lambda x: x**2, numbers))
numbers = [1, 2, 3, 4, 5, 6]
result = square(filter_even(numbers))
print(result) # [4, 16, 36]
numbers = [1, 2, 3, 4, 5, 6]
result = [n**2 for n in numbers if n % 2 == 0]
print(result) # [4, 16, 36]
Какой стиль ближе? Выбирайте свой лагерь и аргументируйте в комментах! 👇
👍 ООП — потому что читаемо и поддерживаемо
❤️ Функциональный стиль — минимум багов и максимум эффективности
🔥 Скрипты — зачем усложнять, если можно просто?
Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤43👍29🔥15🥰2👏1
🚀 Релизы и инструменты:
— IPython 9— новые возможности интерактивной оболочки
— Mesop 1.0 — новый UI-фреймворк на Python для веб-приложений
— Flet — фреймворк для кроссплатформенных мобильных и десктопных приложений
🔬 Глубже в Python:
— Removing deprecated config format? Что может пойти не так? — удаление устаревших конфигураций в setuptools вызвало проблемы (но уже откатили)
— Django Template Components — новый подход к компонентам в Django
— Smoke-тестирование Django Admin — защита от неожиданных ошибок
📚 Обучение и лучшие практики:
— Как уменьшить размер Docker-образа на 80%
— Poetry, Rye или UV? — что выбрать для управления зависимостями
— Как построить Hot Module Replacement в Python — обновляем код без перезапуска
📢 Анонсы и события:
— Google Summer of Code 2025 — открыт приём заявок
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3
Хотите писать чистый и поддерживаемый код? Давайте разберем, чем отличаются эти три типа методов в Python.
🔹 Методы экземпляра (`self`):
✓ Работают с конкретным объектом
✓ Изменяют атрибуты экземпляра
✓ Доступ к атрибутам класса через
self.__class__
class MyClass:
def method(self):
return "Метод экземпляра", self
🔹 Методы класса (`cls`, `@classmethod`):
✓ Работают с классом в целом
✓ Могут изменять атрибуты класса
✓ Не изменяют атрибуты экземпляра
class MyClass:
@classmethod
def class_method(cls):
return "Метод класса", cls
🔹 Статические методы (`@staticmethod`):
✓ Не принимают self или cls
✓ Не изменяют состояние ни экземпляра, ни класса
✓ Используются для вспомогательных функций
class MyClass:
@staticmethod
def static_method():
return "Статический метод"
🔹 Применение в реальном коде:
class Pizza:
def __init__(self, ingredients):
self.ingredients = ingredients
@classmethod
def margherita(cls):
return cls(["моцарелла", "помидоры"])
@staticmethod
def circle_area(r):
import math
return r ** 2 * math.pi
pizza = Pizza.margherita() # Классовый метод
print(Pizza.circle_area(4)) # Статический метод
🔹 Вывод:
✓ Методы экземпляра изменяют данные конкретного объекта
✓ Методы класса работают с классом и создают альтернативные конструкторы
✓ Статические методы полезны для утилитарных функций
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2😁1👾1
Пора сыграть в любимую всеми игру: что делает этот код?
def foo():
try:
return os._exit()
finally:
return False
import os
foo()
Что он делает:
🔥 — возвращает
None
❤️ — возвращает
False
👍 — выбрасывает исключение
⚡️ — завершает процесс без вывода чего-либо
Объясните свои ответы в комментариях.
Ответ:
Возвращает False. Хотите знать почему? 🟢 Обычно os._exit завершает процесс без выполнения «обработчиков очистки» (блоков finally). Однако ему нужен один аргумент. Этот фрагмент кода забывает передать код выхода, поэтому вместо завершения процесса он выбрасывает TypeError. Затем блок finally тихо подавляет исключение из-за return. 🟢 Возврат из блока finally на самом деле так часто используется неправильно, что разработчики Python планируют сделать так, чтобы в будущем выпуске это вызывало SyntaxWarning. 🟢 Можно было бы подумать, что import os идёт после определения функции. Но в Python используется динамическая область видимости, так что это нормально. 🟢 Также можно перепутать sys.exit с os._exit. sys.exit работает, выбрасывая исключение SystemExit, которое было бы перехвачено и подавлено блоком finally. Но _exit напрямую завершает процесс:
-> Завершает процесс с кодом состояния n, не вызывая обработчики очистки, не сбрасывая буферы stdio и т.д.
🔗 Оригинал статьи: https://clc.to/uL6PfA
Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23👍15⚡7🔥2😢1
📅 Важные релизы:
• Python 3.14 alpha 7 — ожидается 8 апреля 2025 года. Предварительный релиз для тестирования, не предназначен для продакшн-сред.
• Python 3.12.9 — последний багфикс-релиз перед окончанием активной поддержки 2 апреля 2025 года. Далее только обновления безопасности.
• Python 3.13.3 — предполагаемый релиз с исправлениями ошибок, приблизительная дата апрель 2025 года.
• Django 5.2 — ожидается финальный релиз в апреле 2025 года. Вероятно, получит статус LTS.
🌟 Ключевые мероприятия:
• PyCon DE & PyData 2025 — состоится в Дармштадте, Германия, 23-25 апреля.
• DjangoCon Europe 2025 — пройдет в Дублине, Ирландия, 23-27 апреля. Главное событие для всех, кто работает с Django.
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2
🎭 Dev Memes: 1 апреля, а баги всё те же
Сегодня день официально разрешённого троллинга — и мы не могли пройти мимо. Собрали подборку мемов для Go-разработчика, которые вызывают лёгкое желание уволиться.
👉 Всё это — из нашего мемного канала «Библиотека IT-мемов»
Библиотека питониста
Сегодня день официально разрешённого троллинга — и мы не могли пройти мимо. Собрали подборку мемов для Go-разработчика, которые вызывают лёгкое желание уволиться.
👉 Всё это — из нашего мемного канала «Библиотека IT-мемов»
Библиотека питониста
😁13👍2🔥2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
🎩 1 апреля — лучший день, чтобы апгрейдить свой статус в офисе!
rust-stakeholder — CLI-инструмент, который генерирует абсолютно бессмысленный, но очень крутой вывод в терминале.
💡 Помни: важна не реальная работа, а то, насколько сложным выглядит терминал, когда рядом проходит VP of Engineering.
🔥 Фичи, которые не дают никакой пользы, но выглядят суперважными:
✓ Dev-симуляции — решай «задачи CERN», листая Reddit
✓ Техножаргон — «Неевклидова оптимизация данных» (никто не поймёт!)
✓ Прогресс-бары — работа кипит, пока ты пьёшь кофе
✓ Фейк-сеть — API-запросы в никуда
✓ Командная активность — невидимые коллеги шлют «pull requests»
✓ Смена ролей — от backend до blockchain за секунду
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9😁6❤4
🎉 PEP 751 (стандартный lockfile для Python) принят
⏳ После многих лет работы (и сотен сообщений в обсуждениях) Python-сообщество наконец-то приняло стандартный формат lockfile.
Разработчики всех ключевых инструментов для управления зависимостями участвовали в обсуждении, и теперь они либо полностью перейдут на новый формат (заменяя, например,
Что это значит для нас?
• Единый стандарт вместо множества
• Более простая и надежная развертка проектов
• Совместимость между инструментами для управления зависимостями
🔗 Подробности в PEP 751
🔗 Обсуждение на Python Discuss
Библиотека питониста #свежак
Разработчики всех ключевых инструментов для управления зависимостями участвовали в обсуждении, и теперь они либо полностью перейдут на новый формат (заменяя, например,
poetry.lock
или uv.lock
), либо добавят поддержку экспорта в этот формат.Что это значит для нас?
• Единый стандарт вместо множества
requirements.txt
• Более простая и надежная развертка проектов
• Совместимость между инструментами для управления зависимостями
🔗 Подробности в PEP 751
🔗 Обсуждение на Python Discuss
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉18👍6🔥3👏1
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🪄 Визуальные вычисления в Power BI: прокачиваем условное форматирование
Теперь настраивать условное форматирование в Power BI можно без сложных DAX-формул! Разбираем, как новые визуальные вычисления помогают создавать динамичные, адаптивные и стильные отчеты, которые мгновенно реагируют на изменения данных.
⭐️ Пора сделать отчеты действительно интерактивными!
🔗 Ссылка на статью: https://proglib.io/sh/lsb0fEuYSv
Библиотека дата-сайентиста
Теперь настраивать условное форматирование в Power BI можно без сложных DAX-формул! Разбираем, как новые визуальные вычисления помогают создавать динамичные, адаптивные и стильные отчеты, которые мгновенно реагируют на изменения данных.
⭐️ Пора сделать отчеты действительно интерактивными!
Библиотека дата-сайентиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2