Небольшой хинт про использование Poetry в Docker - зависимости можно экспортировать в обычный requirements.txt, таким образом избегая установки и обновления poetry.
Если вам необходимо просто установить зависимости - экспортируйте их в requirements.txt. А дальше ставьте их как обычно, через pip.
#poetry #docker
Если вам необходимо просто установить зависимости - экспортируйте их в requirements.txt. А дальше ставьте их как обычно, через pip.
#poetry #docker
Коробка с питоном
Небольшой хинт про использование Poetry в Docker - зависимости можно экспортировать в обычный requirements.txt, таким образом избегая установки и обновления poetry. Если вам необходимо просто установить зависимости - экспортируйте их в requirements.txt. А…
Костылерование и велосипедостроение продолжается 🗿!
Делаю бота в телеге, решил при помощи Github Actions прогонять тесты в докере и дальше деплоить. Менеджмент зависимостей через poetry.
Из-за того что poetry ставит кучу ненужных мне вещей, хочется экспортить мои зависимости в requirements.txt. Первой идеей был git hook, но у нас тут Github Actions есть, давайте генерировать при помощи него 🗿
Результатом стал вот такой workflow. Оно ставит Ubuntu 20.04, Python 3.9 и Poetry 1.1.7. После чего экспортит зависимости и пушит их вам в репозиторий.
Зачем я это сделал? Не понятно, интерес иногда делает веселые вещи.
#github #poetry
Делаю бота в телеге, решил при помощи Github Actions прогонять тесты в докере и дальше деплоить. Менеджмент зависимостей через poetry.
Из-за того что poetry ставит кучу ненужных мне вещей, хочется экспортить мои зависимости в requirements.txt. Первой идеей был git hook, но у нас тут Github Actions есть, давайте генерировать при помощи него 🗿
Результатом стал вот такой workflow. Оно ставит Ubuntu 20.04, Python 3.9 и Poetry 1.1.7. После чего экспортит зависимости и пушит их вам в репозиторий.
Зачем я это сделал? Не понятно, интерес иногда делает веселые вещи.
#github #poetry
Ручной проход по списку
Задачка: нужно пройти по списку не используя цикл for.
Решение у этой задачи достаточно простое - можно использовать функцию
Здесь мы получаем итератор - это такой объект, который облегчает навигацию по коллекциям. Дальше в цикле вызываем
#std
Задачка: нужно пройти по списку не используя цикл for.
Решение у этой задачи достаточно простое - можно использовать функцию
next()
и ловить исключение StopIteration
. На скриншоте можно увидеть пример с использованием цикла while.Здесь мы получаем итератор - это такой объект, который облегчает навигацию по коллекциям. Дальше в цикле вызываем
next()
, который получает следующий элемент и так до тех пор пока элементы не закончатся - индикатором этого будет вызов исключения StopIteration
.#std
aiomisc - огромное количество различных утилит для asyncio.
Из самых полезных утилит для себя выделил возможность создавать энтрипоинты с логгированием, огромное количество классов-сервисов (PeriodicService, CronService и т.д.), работа с потоками и управление сигналами.
GitHub | Документация
#библиотека #asyncio
Из самых полезных утилит для себя выделил возможность создавать энтрипоинты с логгированием, огромное количество классов-сервисов (PeriodicService, CronService и т.д.), работа с потоками и управление сигналами.
GitHub | Документация
#библиотека #asyncio
Forwarded from Питонические атаки
Предложение выпилить GIL продолжают активно обсуждать.
На ежегодный Python core development sprint пригласили Sam Gross (автор
Изменение крупное, но если его добавлять небольшими кусками и растянуть этот процесс на несколько лет, то получится избежать Python 4. А Python 4 никто не хочет.
Сэма пригласили присоединиться к числу core-разработчиков интерпретатора. Łukasz Langa будет его менторить.
Пока что всё выглядит очень оптимистично. Ждите Python 3.20 без GIL 😅
https://lukasz.langa.pl/5d044f91-49c1-4170-aed1-62b6763e6ad0/
#gil
На ежегодный Python core development sprint пригласили Sam Gross (автор
nogil
), и задавали ему много разных вопросов. Все под впечатлением. Всерьёз обсуждается вливание этого экспериментального форка в основной код CPython, но спешить с этим точно не будут, потому что изменения такого масштаба в интерпретаторе потребуют адаптации многих библиотек и пользовательского кода.Изменение крупное, но если его добавлять небольшими кусками и растянуть этот процесс на несколько лет, то получится избежать Python 4. А Python 4 никто не хочет.
Сэма пригласили присоединиться к числу core-разработчиков интерпретатора. Łukasz Langa будет его менторить.
Пока что всё выглядит очень оптимистично. Ждите Python 3.20 без GIL 😅
https://lukasz.langa.pl/5d044f91-49c1-4170-aed1-62b6763e6ad0/
#gil
lukasz.langa.pl
Notes From the Meeting On Python GIL Removal Between Python Core and Sam Gross - Łukasz Langa
During the annual Python core development sprint we held a meeting with Sam Gross, the author of nogil, a fork of Python 3.9 that removes the GIL. This is a non-linear summary of the meeting.
Итоги октября!
🗒 Заметки:
- Про Poetry в Docker
- Генерация requirements.txt через Poetry в Github Actions
- Ручной проход по списку
📚Библиотеки:
- anytree
- aiomisc
🗒 Заметки:
- Про Poetry в Docker
- Генерация requirements.txt через Poetry в Github Actions
- Ручной проход по списку
📚Библиотеки:
- anytree
- aiomisc
Коробка с питоном pinned «Итоги октября! 🗒 Заметки: - Про Poetry в Docker - Генерация requirements.txt через Poetry в Github Actions - Ручной проход по списку 📚Библиотеки: - anytree - aiomisc»
What the f*ck Python - репозиторий на Github, в котором собраны некоторые интересные примеры с объяснениями, почему происходят те или иные вещи в Python.
#ссылочки
#ссылочки
GitHub
GitHub - satwikkansal/wtfpython: What the f*ck Python? 😱
What the f*ck Python? 😱. Contribute to satwikkansal/wtfpython development by creating an account on GitHub.
Ormar - очень интересная и небольшая асинхронная ORM, которая поддерживает Postgres, MySQL и SQLite. Построена на базе Pydantic и SQLAlchemy.
Суть проекта - создать легкую ORM, которая могла бы использоваться напрямую (в цикле запрос-ответ) с FastAPI или другими фреимворками.
На данный момент по моему мнению выглядит неплохо, идеологически это достойная замена для WIP SQLModel.
Github | Документация
#библиотека
Суть проекта - создать легкую ORM, которая могла бы использоваться напрямую (в цикле запрос-ответ) с FastAPI или другими фреимворками.
На данный момент по моему мнению выглядит неплохо, идеологически это достойная замена для WIP SQLModel.
Github | Документация
#библиотека
GitHub
GitHub - collerek/ormar: python async orm with fastapi in mind and pydantic validation
python async orm with fastapi in mind and pydantic validation - collerek/ormar
Если вы пишите на Django или собираетесь писать на нём, я нашёл довольно адекватный и хороший стаилгайд от HackSoftware, который позволит вашему коду на Django не превратиться в макароны.
Стаилгайд описывает большинство кейсов, с которыми сталкивается разработчик - от взаимодействия с моделями и сервисами, до тестирования и работы с Celery.
#ссылочки #django
Стаилгайд описывает большинство кейсов, с которыми сталкивается разработчик - от взаимодействия с моделями и сервисами, до тестирования и работы с Celery.
#ссылочки #django
GitHub
GitHub - HackSoftware/Django-Styleguide: Django styleguide used in HackSoft projects
Django styleguide used in HackSoft projects. Contribute to HackSoftware/Django-Styleguide development by creating an account on GitHub.
Давным давно я писал обертку для сервиса, которая генерирует текст-рыбу. Она нужна была чтобы заполнять поля с контентом.
Совсем недавно я начал писать свой проект и углубился в тестирование. Одним из результатов моего поиска ресурсов по этой теме стала библиотека Faker.
Faker генерирует фейковые данные. При чем, он умеет генерировать не только текст - он также умеет генерировать адреса, имена, а если чего-то нет - можно поискать провайдера для этого.
Github | Документация
#тестирование #библиотека
Совсем недавно я начал писать свой проект и углубился в тестирование. Одним из результатов моего поиска ресурсов по этой теме стала библиотека Faker.
Faker генерирует фейковые данные. При чем, он умеет генерировать не только текст - он также умеет генерировать адреса, имена, а если чего-то нет - можно поискать провайдера для этого.
Github | Документация
#тестирование #библиотека
Проект который я пишу в основном на Django, поэтому в следующее время будет довольно много ресурсов по ней 🌚
Есть задача реализовать импорт/экспорт сущностей (в различных форматах), библиотека django-import-export позволяет сделать это в кратчайшие сроки. Можно, конечно, реализовать свой импорт/экспорт, но зачем изобретать велосипед? К слову, библиотека поддерживается, активность на гитхабе есть, поэтому с ней проблем быть не должно.
Что она умеет?
- Экспорт в различные форматы: Excel, CSV, JSON и вообще любой другой формат, который поддерживает tablib
- Интеграция с админкой (импорт, экспорт)
- Превью импорта
- Экспорт с поддержкой фильтров
Github | Документация
#библиотека #django
Есть задача реализовать импорт/экспорт сущностей (в различных форматах), библиотека django-import-export позволяет сделать это в кратчайшие сроки. Можно, конечно, реализовать свой импорт/экспорт, но зачем изобретать велосипед? К слову, библиотека поддерживается, активность на гитхабе есть, поэтому с ней проблем быть не должно.
Что она умеет?
- Экспорт в различные форматы: Excel, CSV, JSON и вообще любой другой формат, который поддерживает tablib
- Интеграция с админкой (импорт, экспорт)
- Превью импорта
- Экспорт с поддержкой фильтров
Github | Документация
#библиотека #django
GitHub
GitHub - django-import-export/django-import-export: Django application and library for importing and exporting data with admin…
Django application and library for importing and exporting data with admin integration. - django-import-export/django-import-export
Коробка с питоном
Проект который я пишу в основном на 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…»