#python python... PYTHON 🔛 🚀
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
Выложили в паблик полный плейлист докладов с ekbpy 🔥

От себя рекомендую ознакомиться с докладами

🤜 Николай Марков - Управление пакетами - хорошее, плохое, злое? - основательный исторический обзор инструментов управления пакетами в python, какими они были, какие они сейчас?
🤜 Александр Гончаров. Чистый код: антипаттерны в питоне, и как с ними бороться - бодро, весело, задорно про типичные антипаттерны, хорошая подача, юмор
🤜 Аль Амин Ужахов. Как внутри работает Litestar? - про интересные особенности внутреннего устройства фреймворка

#ekbpy
https://peps.python.org/pep-0751/

Вы не ждали и не просили, но он пришел. Очередной pep про стандартный формат lock файлов для фиксации версий транзитивных зависимостей в python. Автор уже давно бьется за право принять подобный pep, и может быть в этот раз ему сопутствует удача. Все же лютый зоопарк решений (poentry, pipenv, pdm, rye) пора уже привести к какому-то общему знаменателю.

Пример нового формата
PEP 665 – A file format to list Python dependencies for reproducibility of an application - последний откланенный pep от этого же автора
Forwarded from Zen of Python
В Python слишком много менеджеров пакетов?

В отличие от JavaScript, C#, Dart или Rust, где есть стандартизированные менеджеры пакетов типа npm, NuGet, pub или Cargo, Python стандарты обошли стороной. У него есть целый ворох менеджеров, например, pip, venv, conda и др.

Хорошо это или плохо? Автор этой статьи попробовал разобраться в этом вопрос, попутно разобрав популярные менеджеры для Python:

https://dublog.net/blog/so-many-python-package-managers/

А вы за обилие вариантов или мечтаете о стандартизации?
Forwarded from Zen of Python
Как писать чистый код на Python. Советы разработчикам

Написав несколько проектов, вы заметите, что использование паттернов и правил написания кода действительно упрощает разработку и дальнейшую поддержку. А если работаете с кем-то, то без этого вообще никуда.

В этой статье вы узнаете, что такое PEP8, poetry, как создавать архитектуру python-приложения, какие существуют методологии Driven Development и как писать чистый код на Python.

#советы #чистыйкод
Forwarded from Zen of Python
Асинхронность, многопоточность и многопроцессность в python

Хоть Python пока и не стал по-настоющему многопоточным, как нам обещают в Python 3.13, кое-что он всё же может.

С помощью этого видео вы сможете разобраться в том:

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

https://youtu.be/_4QY1nGFRY8

#видео #многопоточность
Forwarded from Zen of Python
В Python слишком много менеджеров пакетов?

В отличие от JavaScript, C#, Dart или Rust, где есть стандартизированные менеджеры пакетов типа npm, NuGet, pub или Cargo, Python стандарты обошли стороной. У него есть целый ворох менеджеров, например, pip, venv, conda и др.

Хорошо это или плохо? Автор этой статьи попробовал разобраться в этом вопрос, попутно разобрав популярные менеджеры для Python:

https://dublog.net/blog/so-many-python-package-managers/

А вы за обилие вариантов или мечтаете о стандартизации?
Forwarded from Zen of Python
Как писать чистый код на Python. Советы разработчикам

Написав несколько проектов, вы заметите, что использование паттернов и правил написания кода действительно упрощает разработку и дальнейшую поддержку. А если работаете с кем-то, то без этого вообще никуда.

В этой статье вы узнаете, что такое PEP8, poetry, как создавать архитектуру python-приложения, какие существуют методологии Driven Development и как писать чистый код на Python.

#советы #чистыйкод
Forwarded from Zen of Python
Асинхронность, многопоточность и многопроцессность в python

Хоть Python пока и не стал по-настоющему многопоточным, как нам обещают в Python 3.13, кое-что он всё же может.

С помощью этого видео вы сможете разобраться в том:

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

https://youtu.be/_4QY1nGFRY8

#видео #многопоточность
Forwarded from Data Whisperer
Линтеры в Python

В python много линтеров на любой вкус и цвет, выбирай какой нравится и настраивай под себя.
Но наверное самым жестким является wemake-python-styleguide
У них даже на главной странице заявлено

Welcome to the strictest and most opinionated Python linter ever.

Основным кнтрибьютором проекта является Никита Соболев, у которого есть крутой курс Типизация в Python.

Дата Инженеры не так сильно упарываются в линтеры и CI как бэкендеры, но все чаще это присутсвует в новых проектах.

Посмотрим на примере Airflow и TaskFlow API.

Берем код с сайта Astranomer и запускаем линтер с настройками из коробки.
Если не брать во внимание простые ворнинги типа:

- Q000 Double quotes found but single quotes preferred
- W292 no newline at end of file

То стоит посмотреть на следующий ворниг:
- WPS430 Found nested function: extract_bitcoin_price


@dag(schedule="@daily", start_date=datetime(2021, 12, 1), catchup=False)
def taskflow():
@task(task_id="extract", retries=2)
def extract_bitcoin_price() -> Dict[str, float]:
return requests.get(API).json()["bitcoin"]


Получается, нужно переписывать большую часть дага, чтобы линтеры прошли.

Теперь попробуем традиционный синтаксис написания дага (переключаем вкладку на сайте astronomer на Traditional syntax).
И получаем другой интересный ворнинг:

- WPS428 Found statement that has no effect


extract_bitcoin_price >> process_data >> store_data


Всем знакомый синтаксис обьявления зависимомтей в airflow тоже не проходит линтер.
Получается, чтобы линтеры прошли нужно комбинировать оба варианта синтаксиса в Airflow.

Линтеры безусловно нужны, но нужно понимать, что линтер настраиваится под проект, а не наоборот.
Перед внедрением линтеров в свой проект обязательно обсудити с командой, какие проверки вам необходимы, а от каких можно отказаться.
Хороший пример был приведен выше с Airflow, все примеры кода тестировал с оффициального сайта Airflow и Astronomer
Forwarded from Data Whisperer
И в догонку пятничное про линтеры для Python Dev
История упаковки Python
• В 2000-х годах Python был популярен, но имел проблемы с упаковкой.
• В 2010-х годах появились инструменты, такие как setuptools и virtualenv, но они не решили всех проблем.
• В 2020-х годах колеса и pyproject.toml стали стандартом для упаковки Python.
Проблемы с упаковкой в 2000-х
• Python был популярен, но имел проблемы с установкой и распространением пакетов.
• Проблемы с упаковкой были связаны с отсутствием единого стандарта и сложностью установки.
Развитие инструментов упаковки
• В 2010-х годах были разработаны инструменты, такие как setuptools и virtualenv, для упрощения установки пакетов.
• Однако эти инструменты не решили всех проблем, и многие разработчики продолжали использовать setup.py.
Переход к pyproject.toml
• В 2016 году был представлен PEP 518, который предлагал единый формат для сборки проектов.
• pyproject.toml стал стандартом для управления проектами и настройки инструментов сборки.
Современное состояние упаковки
• pyproject.toml стал основным инструментом для управления проектами и настройки инструментов сборки.
• Несмотря на то, что pyproject.toml является стандартом, многие разработчики все еще используют setup.py.
Разнообразие и стандартизация
• В Python существует огромное разнообразие инструментов и подходов к упаковке.
• Стандартизация упрощает сотрудничество и устраняет трения, но может привести к более высоким затратам.
Рекомендации по упаковке
• Рекомендуется сосредоточиться на основах и использовать pyproject.toml для настройки линтеров и других инструментов.
• Для создания и распространения собственных пакетов можно использовать setuptools, но это не обязательно.
• Важно практиковать избирательное невежество и не увлекаться новыми экспериментами в области упаковки.

https://300.ya.ru/XOKLQaQ9

#ya300 #300yaru
Forwarded from Хитрый Питон
Хорошая статья про то, как устроена в питоне сборка/установка пакетов и почему именно так. Для тех, кому любопытно чуть больше погрузиться в историю - самое то. Выводы у статьи простые - используйте pyproject.toml везде, где это возможно. Я с автором в этом согласен, например у меня на работе как минимум во всех новых проектах pyproject.toml используется по умолчанию.

Ссылка - https://www.bitecode.dev/p/whats-the-deal-with-setuptools-setuppy
Pycon, к сожалению, закончился. Итоги подведены.

По результатам зрительского голосования мое выступление было признано лучшим на Python треке 🫡 . Огромное спасибо всем, кто оставил обратную связь, проголосовал и поддерживал добрым словом или мудрым советом. 🤝

Для меня персонально площадка pycon russia очень важна ❤️. Именно тут в 2022 году я впервые выступил на большой сцене с полновесным докладом за пределами своей компании (и там же впервые получил приз за лучший доклад 💪). Тем приятнее в этом сезоне было не только выступить как спикер, но и помочь с проведением конференции в качестве члена ПК и ведущего python трека.
Годы идут, но pycon остается для меня очень важным событием, где можно посоперничать с лучшими спикерами python сообщества в России.

Огромное спасибо организаторам, ПК, спикерам и, конечно же, зрителям за такую отличную конференцию! 🔥

До встречи в следующем году 🚀

P.S. Записи появятся примерно через месяц. Обязательно выложу на канале с моим личным топом докладов. 👀

#pycon
Выложили в паблик полный плейлист докладов с ekbpy 🔥

От себя рекомендую ознакомиться с докладами

🤜 Николай Марков - Управление пакетами - хорошее, плохое, злое? - основательный исторический обзор инструментов управления пакетами в python, какими они были, какие они сейчас?
🤜 Александр Гончаров. Чистый код: антипаттерны в питоне, и как с ними бороться - бодро, весело, задорно про типичные антипаттерны, хорошая подача, юмор
🤜 Аль Амин Ужахов. Как внутри работает Litestar? - про интересные особенности внутреннего устройства фреймворка

#ekbpy
https://peps.python.org/pep-0751/

Вы не ждали и не просили, но он пришел. Очередной pep про стандартный формат lock файлов для фиксации версий транзитивных зависимостей в python. Автор уже давно бьется за право принять подобный pep, и может быть в этот раз ему сопутствует удача. Все же лютый зоопарк решений (poentry, pipenv, pdm, rye) пора уже привести к какому-то общему знаменателю.

Пример нового формата
PEP 665 – A file format to list Python dependencies for reproducibility of an application - последний откланенный pep от этого же автора
Forwarded from ДевФест
7 сентября приглашаем всех тех, кто пишет на Python и работаем с ним, обсудить настоящее и будущее языка c экспертами!

Рассмотрим:

- Использование Python в энтерпрайзе
- Все о GIL
- Работа с RabbitMQ
- Внедрение подходов и паттернов из DDD
- Использование библиотек на Rust в Python

Купить билет: www.devfestomsk.ru