Коробка с питоном
Проект который я пишу в основном на Django, поэтому в следующее время будет довольно много ресурсов по ней 🌚 Есть задача реализовать импорт/экспорт сущностей (в различных форматах), библиотека django-import-export позволяет сделать это в кратчайшие сроки.…
Кстати про используемый там tablib!
Это очень полезная библиотека, которая позволяет создавать "табличные датасеты" с которыми можно производить некоторые операции (поиск данных, например) или экспортировать их в необходимый формат.
Для тех, кто не понимает что такое "табличный датасет" (tabular data sets) - проще говоря это набор данных в виде таблички.
Сам tablib поддерживает сегрегацию, динамические колонки, тегирование и фильтрование данных. Ну и вишенка на торте - экспорт в почти что угодно. На скриншоте, кстати, пример :)
Github | Документация
#библиотека
Это очень полезная библиотека, которая позволяет создавать "табличные датасеты" с которыми можно производить некоторые операции (поиск данных, например) или экспортировать их в необходимый формат.
Для тех, кто не понимает что такое "табличный датасет" (tabular data sets) - проще говоря это набор данных в виде таблички.
Сам tablib поддерживает сегрегацию, динамические колонки, тегирование и фильтрование данных. Ну и вишенка на торте - экспорт в почти что угодно. На скриншоте, кстати, пример :)
Github | Документация
#библиотека
Задача - проверять является ли строка содержащая отрицательное число, как бы это не звучало, числом. Choose your hero, а почему - расскажи в комментариях.
Скучали по Django? Вот вам ещё пакетик.
Если вам нужно реализовать историю изменения данных в моделях, то django-simple-history может это сделать для вас.
GitHub | Документация
#django #библиотека
Если вам нужно реализовать историю изменения данных в моделях, то django-simple-history может это сделать для вас.
GitHub | Документация
#django #библиотека
Нашел очень хорошую статью на хабре о том, как чуть чуть улучшить код при помощи небольших паттернов, которые можно применять в любом проекте.
DTO, Value Object и другое - в статье.
#статья
DTO, Value Object и другое - в статье.
#статья
Хабр
Python и чистая архитектура в 2021 году
Прошло уже почти 3 года с тех пор, как я впервые воспользовался чистой архитектурой на практике. С тех пор я побывал на многочисленных конференциях, где выступал с докладами на эту тему (вот,...
Небольшой хинт, да, снова #django.
У меня есть небольшая задача, в которой мне нужно изменять файл в Celery задаче. Дефолтный update менеджера модели работать не будет, поэтому устанавливаем атрибуты и вызываем save на объекте.
Работать он не будет, потому что
Первая картинка - моделька, вторая - как оно работает. Ваши варианты можете кидать в коменты, интересно послушать.
У меня есть небольшая задача, в которой мне нужно изменять файл в Celery задаче. Дефолтный update менеджера модели работать не будет, поэтому устанавливаем атрибуты и вызываем save на объекте.
Работать он не будет, потому что
QuerySet.update()
не вызывает save()
на модели, поэтому механизмы сохранения файлов в сторадже отрабатывать не будут.Первая картинка - моделька, вторая - как оно работает. Ваши варианты можете кидать в коменты, интересно послушать.
Немного занят, чуть позже начну заливать посты в канал. Только сейчас вспомнил, что хотел 2 недели назад хотел подвести итоги ноября, но подвожу их только сейчас 😕
В этом месяце было очень много Django. Возможно, дальше будет чуть больше.
🔗 Ссылочки:
- What the f*ck, Python?
- Django Styleguide
- Python и чистая архитектура в 2021 году
📚 Библиотеки:
- Ormar - ещё одна асинхронная ORM
- Faker - генерируем фейковые данные
- django-import-export
- tablib
- django-simple-history
В этом месяце было очень много Django. Возможно, дальше будет чуть больше.
🔗 Ссылочки:
- What the f*ck, Python?
- Django Styleguide
- Python и чистая архитектура в 2021 году
📚 Библиотеки:
- Ormar - ещё одна асинхронная ORM
- Faker - генерируем фейковые данные
- django-import-export
- tablib
- django-simple-history
Коробка с питоном pinned «Немного занят, чуть позже начну заливать посты в канал. Только сейчас вспомнил, что хотел 2 недели назад хотел подвести итоги ноября, но подвожу их только сейчас 😕 В этом месяце было очень много Django. Возможно, дальше будет чуть больше. 🔗 Ссылочки: - What…»
Очень крутой пост про путь такой библиотеки как attrs - можно сказать прародителя датаклассов.
#статья
#статья
Hynek Schlawack
import attrs
An attempt at catharsis. This is a deeply personal blog post about the most influential project I’ve ever created: attrs, the progenitor of modern Python class utilities. I’m retelling its history from my perspective, how it begot dataclasses, and how I’m…
С новым 2022 годом! 🎅
В этом году я буду пытаться подтянуть алгоритмы, поэтому первый пост будет про них.
Вот вам репозиторий на github в котором реализовано огромное количество алгоритмов на Python - от сортировок, до отправки и приёма файлов.
Все примеры отлично откомментированы на английском, поэтому проблем с их пониманием возникнуть не должно.
#ссылочки
В этом году я буду пытаться подтянуть алгоритмы, поэтому первый пост будет про них.
Вот вам репозиторий на github в котором реализовано огромное количество алгоритмов на Python - от сортировок, до отправки и приёма файлов.
Все примеры отлично откомментированы на английском, поэтому проблем с их пониманием возникнуть не должно.
#ссылочки
GitHub
GitHub - TheAlgorithms/Python: All Algorithms implemented in Python
All Algorithms implemented in Python. Contribute to TheAlgorithms/Python development by creating an account on GitHub.
❤1
Очень интересный пакет, вдохновленный Rust - impl_pattern. Может использоваться если вы хотите расширить класс (в основном какой-то библиотечный) какими-то методами.
Вы можете зарегистрировать метод для класса с использованием этой библиотеки следующим образом:
Не знаю кто будет это использовать, но как POC выглядит красиво и элегантно.
#библиотека
Вы можете зарегистрировать метод для класса с использованием этой библиотеки следующим образом:
from impl_pattern import impl
class Sample:
def __init__(self):
self.value = 10
@impl(Sample)
def plus_one(self: Sample):
self.value += 1
s = Sample()
s.plus_one()
print(s.value)
# 11
Не знаю кто будет это использовать, но как POC выглядит красиво и элегантно.
#библиотека
GitHub
GitHub - roman-right/impler: Implement methods and interfaces outside classes
Implement methods and interfaces outside classes. Contribute to roman-right/impler development by creating an account on GitHub.
Немного старая (2019 год), но все же актуальная статья о том, как правильно готовить Celery.
#статья #habr
#статья #habr
Хабр
50 оттенков Celery
Вам сюда, если хотите знать, как приручить широкоизвестный в кругах Python-разработчиков фреймворк под названием Сelery. И даже, если в вашем проекте Celery уверенно выполняет базовые...
🐍 CPython скомпилировали в WASM!
WASM - это такой бинарный формат, результат компиляции какого-то языка который позволяет запустить его в браузере при помощи специальной виртуальной машины.
Так вот, наш Python REPL запустили в браузере, можно потыкать. Возможно, скоро мы сможем писать фронтенд на Python, который будет запускаться через WASM...
#новости
WASM - это такой бинарный формат, результат компиляции какого-то языка который позволяет запустить его в браузере при помощи специальной виртуальной машины.
Так вот, наш Python REPL запустили в браузере, можно потыкать. Возможно, скоро мы сможем писать фронтенд на Python, который будет запускаться через WASM...
#новости
Twitter
Tushar Sadhwani
🐍Python news: CPython's main branch now compiles to webassembly! Thanks to @ethanhs and @ChristianHeimes Meaning: You can natively download and run Python in the browser. It's about a 5MB package right now. There's plans to make it smaller. Try it here: repl.ethanhs.me
Запоздалый итог января!
🔗 Ссылочки:
- Про путь attrs
- Алгоритмы на нашем любимом
- Готовим Celery правильно
📰 Новости:
- CPython скомпилировали в WASM
📚 Библиотеки:
- Impler - класспатчер для имплементации методов как в Rust
🗒 Заметки:
- Про дженерики
🔗 Ссылочки:
- Про путь attrs
- Алгоритмы на нашем любимом
- Готовим Celery правильно
📰 Новости:
- CPython скомпилировали в WASM
📚 Библиотеки:
- Impler - класспатчер для имплементации методов как в Rust
🗒 Заметки:
- Про дженерики
Коробка с питоном pinned «Запоздалый итог января! 🔗 Ссылочки: - Про путь attrs - Алгоритмы на нашем любимом - Готовим Celery правильно 📰 Новости: - CPython скомпилировали в WASM 📚 Библиотеки: - Impler - класспатчер для имплементации методов как в Rust 🗒 Заметки: - Про дженерики»
В Python 3.11 для асинхронщины появятся TaskGroup 🎉!
Зачем они нужны?
1. Это более крутая замена
2. Как и
С нетерпением ждем :)
#новости #asyncio
Зачем они нужны?
1. Это более крутая замена
asyncio.gather()
, так как TaskGroup имеют более понятный, удобный и безопасный API.2. Как и
asyncio.gather()
, он необходим чтобы выполнить набор каких-то задач. Если одна из них упадет с ошибкой - остальные задачи могут быть отменены.С нетерпением ждем :)
#новости #asyncio
X (formerly Twitter)
Yury Selivanov (@1st1) on X
Exciting news: @gvanrossum has just merged TaskGroups to #asyncio. They will be part of Python 3.11 and I can't hold my excitement! 🚀
❤1
Forwarded from Питонические атаки
CPython собирается мигрировать свой баг-трекер (bugs.python.org, BPO) на GitHub Issues.
Ожидается, что этот перенос данных сделает взаимодействие с проектом более удобным и простым, сделает порог входа в проект ниже для новичков. Все-таки к гитхабу уже все успели привыкнуть, и не нужно будет отдельно регистрироваться в странной старомодной системе и учиться с ней работать. Ещё одна причина здесь, конечно же, в том, что BPO застряло на форке от старой версии RoundUp ещё на Python 2, и поддерживать и развивать это сейчас уже довольно проблематично.
В старом баг-трекере уже накопилось около 50k тредов, а некоторые из них ещё и достаточно длинные. По предварительным оценкам, миграция всех этих данных займёт 4-7 дней. Сам процесс сложный и состоит из нескольких шагов, для некоторых придётся привлекать сотрудников GitHub. В итоге, новые ишью будут существовать только на гитхабе, а старый трекер останется существовать в режиме read-only.
Эту миграцию обсуждают и подготавливают уже минимум два года. Звучит как что-то настолько же эпичное, как и переименование главной ветки из
https://discuss.python.org/t/github-issues-migration-is-coming-soon/13791
Ожидается, что этот перенос данных сделает взаимодействие с проектом более удобным и простым, сделает порог входа в проект ниже для новичков. Все-таки к гитхабу уже все успели привыкнуть, и не нужно будет отдельно регистрироваться в странной старомодной системе и учиться с ней работать. Ещё одна причина здесь, конечно же, в том, что BPO застряло на форке от старой версии RoundUp ещё на Python 2, и поддерживать и развивать это сейчас уже довольно проблематично.
В старом баг-трекере уже накопилось около 50k тредов, а некоторые из них ещё и достаточно длинные. По предварительным оценкам, миграция всех этих данных займёт 4-7 дней. Сам процесс сложный и состоит из нескольких шагов, для некоторых придётся привлекать сотрудников GitHub. В итоге, новые ишью будут существовать только на гитхабе, а старый трекер останется существовать в режиме read-only.
Эту миграцию обсуждают и подготавливают уже минимум два года. Звучит как что-то настолько же эпичное, как и переименование главной ветки из
master
в main
. Да, на больших проектах любые манёвры всегда проходят непросто. Надеюсь, в этот раз гитхаб не сломается!https://discuss.python.org/t/github-issues-migration-is-coming-soon/13791
Discussions on Python.org
GitHub Issues Migration is coming soon
As you might know, the Steering Council is working on migrating the data that is currently residing in Roundup at https://bugs.python.org/ (BPO) into the GitHub issues of the CPython repository hosted there. The ultimate goal is to move user- and core developer…
Совершенно недавно Bloomberg открыл интересный проект - профилировщик memray.
Что может:
- Трассирует каждый вызов функции, поэтому умеет показать стек вызовов.
- Обрабатывает вызовы в C/C++ библиотеках!
- Очень быстрый. Профилирование не вызывает ощутимого замедления программы.
- Генерирует графики и отчеты по использованию памяти.
- Работает с питоновскими и нативными тредами.
Выглядит очень сочно. Может помочь в таких ситуациях:
- Анализировать что именно кушает память в вашей программе, особенно найти участки где происходит много аллокаций.
- Естественно, найти утечки памяти.
#профилировщик
Что может:
- Трассирует каждый вызов функции, поэтому умеет показать стек вызовов.
- Обрабатывает вызовы в C/C++ библиотеках!
- Очень быстрый. Профилирование не вызывает ощутимого замедления программы.
- Генерирует графики и отчеты по использованию памяти.
- Работает с питоновскими и нативными тредами.
Выглядит очень сочно. Может помочь в таких ситуациях:
- Анализировать что именно кушает память в вашей программе, особенно найти участки где происходит много аллокаций.
- Естественно, найти утечки памяти.
#профилировщик
Тут часть ядра pydantic переписали на Rust и он стал в 17 раз быстрее (код бенчмарка тут) чем обычный Pydantic.
Пока что WIP, выглядит многообещающее, но нет самой интеграции с pydantic, поэтому схемы могут делаться только через словари. Целью стоит увеличение скорости работы в ДЕСЯТЬ раз.
Пока что WIP, выглядит многообещающее, но нет самой интеграции с pydantic, поэтому схемы могут делаться только через словари. Целью стоит увеличение скорости работы в ДЕСЯТЬ раз.
GitHub
GitHub - pydantic/pydantic-core: Core validation logic for pydantic written in rust
Core validation logic for pydantic written in rust - pydantic/pydantic-core
❤1