py_digest | Technologies

Telegram-канал py_digest - PythonDigest

1874

Сборник наиболее интересных Python материалов. https://pythondigest.ru/ Сделать донат - https://boosty.to/pydigest Блог автора - @whydaily Рекомендуем хостинг https://firstvds.ru/?from=421453

Subscribe to a channel

PythonDigest

Как сменить технологию и не закопаться в рефакторинге: опыт внедрения DDD в проект на FastAPI — Часть 2
https://ift.tt/8rYSbC2

Это вторая часть цикла о DDD. В ней расскажу, как добавить к проекту событийно-ориентированную архитектуру. Код подопытного приложения ищите в репозитории по ссылке.

Читать полностью…

PythonDigest

Django: hoist repeated decorator definitions
https://ift.tt/utCnlpZ

Django provides us with a rich set of view decorators.In this post, we’ll look at a technique for hoisting repeated use of these decorators to reduce repetition.Repeated @cache_control callsHere are two public views with the same @cache_control decorator:from django.views.decorators.cache import cache_control@cache_control(max_age=60 * 60, public=True)def about(request): ...@cache_control(max_age=60 * 60, public=True)def contact_us(request): ...To avoid this repetition, we can call cache_control once at the top of the module and use that result as the decorator:from django.views.decorators.cache import cache_controlcache_public = cache_control(max_age=60 * 60, public=True)@cache_publicdef about(request): ...@cache_publicdef team(request): ...This works because cache_control is technically not a decorator but a function that returns a decorator.So we can separate the call of cache_control from the decorating.Aside from reducing redundant repetition, this technique also saves a tiny bit of time and memory when importing the module, because cache_control is only called once.Repeated @require_http_methods callsHere’s another example, instead using @require_http_methods:from django.views.decorators.http import require_http_methodsrequire_GET_POST = require_http_methods(("GET", "POST"))@require_GET_POSTdef contact_us(request): ...@require_GET_POSTdef store_feedback(request): ...(Actually, it would be neat if Django provided require_GET_POST out of the box…)Hoisting @method_decorator calls for class-based viewsThis technique is particularly beneficial for class-based views, where view decorators mostly need extra wrapping with method_decorator:from django.utils.decorators import method_decoratorfrom django.views.decorators.cache import cache_controlfrom django.views.generic import TemplateViewcache_public = method_decorator(cache_control(max_age=60 * 60, public=True))@cache_publicclass AboutView(TemplateView): ...@cache_publicclass TeamView(TemplateView): ...I also like to use this technique with decorators that don’t take arguments, such as the new @login_not_required from Django 5.1:from django.contrib.auth.decorators import login_not_requiredfrom django.utils.decorators import method_decoratorfrom django.views.generic import TemplateViewlogin_not_required_m = method_decorator(login_not_required, name="dispatch")@login_not_required_mclass AboutView(TemplateView): ...@login_not_required_mclass TeamView(TemplateView): ...I like adding an “m” suffix to the variable name to indicate that it’s a method decorator version of the original.Test decoratorsThis deduplication technique can also dramatically improve test readability, where many tests often need the same decorator applied.For example, third-party apps may mark version-restricted tests with unittest’s @skipIf or pytest’s @pytest.mark.skipif:from unittest import skipIfimport djangodjango_5_1_plus = skipIf(django.VERSION < (5, 1), "Django 5.1+ required")class AcmeAuthMiddlewareTests(TestCase): ... @django_5_1_plus def test_view_login_not_required(self): ... @django_5_1_plus def test_view_login_required(self): ...FinMay your decorators be DRYer than the Kalahari,—Adam

Читать полностью…

PythonDigest

Обучающий телеграм бот. Пример задачника по математике
https://ift.tt/Oa9HwNn

Рассмотрим вариант телеграм бота, представляющего собой фрагмент задачника по математике для 4 класса.

Читать полностью…

PythonDigest

WindowsHostsManager: Консольная утилита для работы с файлом hosts в Windows на Python
https://ift.tt/yEUzkWc

Иногда возникает необходимость внести изменения в файл hosts в Windows. Вместе с этой потребностью родилась идея создать небольшую утилиту на Python, которая бы упростила процесс редактирования этого файла. В результате появился WindowsHostsManager — инструмент, созданный всего за 30 минут и предназначенный для удобного управления файлом hosts.

Читать полностью…

PythonDigest

Автоматизация сканирования открытых сетевых портов
https://ift.tt/EbLwUIH

С ростом числа кибератак и угроз безопасности информационных систем автоматизация процесса анализа уязвимостей становится критически важной задачей.С ростом объемов обрабатываемых данных, расширения информационных систем, сервисов и приложений возникает все больше проблем с точки зрения информационной безопасности. Исходя из этого встает острый вопрос о том, как это все контролировать, и преждевременно предотвращать угрозы информации.

Читать полностью…

PythonDigest

Задача коммивояжёра в общем виде. Наибыстрейшее точное решение
https://ift.tt/li3pXWm

Эта работа является заключением пятилетнего марафона по поиску самого быстрого способа нахождения минимального точного решения для задачи коммивояжёра в общем виде.Тут я хочу подытожить все опробованные подходы и выбрать лучший по моему мнению.

Читать полностью…

PythonDigest

kotaemon - AG-based tool for chatting with your documents
https://ift.tt/J75d6ZD

Читать полностью…

PythonDigest

#python #pydigest
IT-новости про Python перед вами.

Часть материалов из выпуска Python Дайджест:

- Винтик и Шпунтик осваивают квантовые вычисления
- Страсти опенсорса: мафия, стилеры и багхантинг проектов
- Как ускорить A/B тесты: несколько способов
- Проблемы вызова Python кода из C кода
- Шлепа — Большой Русский Бенчмарк
- Апи версионирование по-взрослому
- PromptMage - LLM Workflows
- Wave - Create Web Apps with Python

Заходите в гости - https://pythondigest.ru/issue/560/

Читать полностью…

PythonDigest

Build a custom Python linter in 5 minutes
https://ift.tt/9bSzLMK

Читать полностью…

PythonDigest

Why I Still Use Python Virtual Environments in Docker
https://ift.tt/G483ToX

Читать полностью…

PythonDigest

Talk Python to Me: #476: Unified Python packaging with uv
https://ift.tt/5olbFiU

Audio

Читать полностью…

PythonDigest

Страсти опенсорса: мафия, стилеры и багхантинг проектов «Яндекса»
https://ift.tt/d6hBugk

За последние две недели в Python Package Index произошло много занятного. Мы вооружились вердиктами модели машинного обучения сервиса PT PyAnalysis, дабы рассказать вам об интересных сработках.

Читать полностью…

PythonDigest

anacondacode - Execute Python Directly From Excel
https://ift.tt/5lQWP3b

Читать полностью…

PythonDigest

Кратко про low-code библиотеку для ML Pycaret
https://ift.tt/azH14td

PyCaret — это open-source библиотека, которая предлагает low-code подход к созданию, обучению и внедрению моделей ML. Она позволяет провести весь процесс — от подготовки данных до развертывания модели в продакшн — всего за несколько строк кода.

Читать полностью…

PythonDigest

cffi - 1.17.1
https://ift.tt/TdOkXcD

Интерфейс для вызова C-кода. Скачать можно по ссылке: https://pypi.python.org/pypi/cffi/

Читать полностью…

PythonDigest

greenlet - 3.1.0
https://ift.tt/Xkxz1EU

Модуль для легковесных потоков в Python. Скачать можно по ссылке: https://pypi.python.org/pypi/greenlet/

Читать полностью…

PythonDigest

pytest - 8.3.3
https://ift.tt/fkS3OJL

Простой мощный инструмент тестирования в Python. Скачать можно по ссылке: https://pypi.python.org/pypi/pytest/

Читать полностью…

PythonDigest

Доплеровское Cмещение Несущей Спутников GPS
https://ift.tt/F3TtGUv

В этом тексте я намерен выяснить, как быстро меняется частота несущей спутников GPS в результате эффекта Доплера. Также намерен выяснить в каких диапазонах стоит ожидать варьирование значения несущей частоты для GPS спутников и почему. Задачу буду решать в упрощенном виде, численно. Для решения этой задачи достаточно обыкновенной школьной математики и физики.

Читать полностью…

PythonDigest

Django: a pattern for settings-configured API clients
https://ift.tt/T6XcFJ8

Читать полностью…

PythonDigest

django-cms - 3.11.7
https://ift.tt/lT6AdJX

Легкая в использовании и удобная для разработки CMS. Скачать можно по ссылке: https://pypi.python.org/pypi/django-cms/

Читать полностью…

PythonDigest

Апи версионирование по-взрослому
https://ift.tt/NyISeD7

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

Читать полностью…

PythonDigest

Сводка от pythonz 01.09.2024 — 08.09.2024
https://ift.tt/ZnUxBV0

А теперь о том, что происходило в последнее время на других ресурсах.

Читать полностью…

PythonDigest

opslane - AI On-Call Co-Pilot
https://ift.tt/DqkAp7K

Читать полностью…

PythonDigest

Wave - Create Web Apps with Python
https://wave.h2o.ai/

Читать полностью…

PythonDigest

Django: build a Microsoft Teams bot
https://ift.tt/6qbxZhU

Читать полностью…

PythonDigest

virtualenv - 20.26.4
https://ift.tt/RU3amVC

Инструмент создания виртуального рабочего окружения. Скачать можно по ссылке: https://pypi.python.org/pypi/virtualenv

Читать полностью…

PythonDigest

PromptMage - LLM Workflows
https://promptmage.io/

Читать полностью…

PythonDigest

SQLAlchemy - 1.4.54
https://ift.tt/LZPrWlo

Библиотека работы с базами данных. Скачать можно по ссылке: https://pypi.python.org/pypi/SQLAlchemy/

Читать полностью…

PythonDigest

SQLAlchemy - 2.0.34
https://ift.tt/bH36OJX

Библиотека работы с базами данных. Скачать можно по ссылке: https://pypi.python.org/pypi/SQLAlchemy/

Читать полностью…

PythonDigest

Проблемы вызова Python кода из C кода
https://ift.tt/Mj5znct

Давайте поговорим про одну из самых сложных частей интерпретатора CPython – вызов Python кода из C кода. Почему сложных? Потому что Python может резко и внезапно менять стейт всего кода на C. А особо злобный код на Python вообще часто приводит к [1] 88503 segmentation fault python

Читать полностью…
Subscribe to a channel