Python functools lru_cache

22 Дек 2024 python

Для кеширование результатов функции в Python есть декоратор lru_cache из стандартной библиотеки functools.
В этой статье мы расскажем , как использовать этот декоратор на примерах. Рассмотрим плюсы и минусы. 
Но прежде чем перейти к практическим примерам, давайте рассмотрим, что такое детермированные и недетермирированные функции и мемоизация в контексте кеширования и как мемоизация помогает эффективно работать с повторяющимися вычислениями.

Читать далее

OpenAI анонсировала модель o3

20 Дек 2024 ИИ

Достижения в тестах

Рейтинг 2700+ на CodeForces

Модель достигла уровня топовых программистов, показав способность решать сложные алгоритмические задачи. CodeForces — это одна из самых известных платформ для соревнований по программированию, где подобный рейтинг позволяет войти в элиту мировых программистов.

Судя по бенчмаркам, эта модель может кодить на уровне сеньора.

71,7% на SWE-bench (тестирование в области программной инженерии)
SWE-bench — это тестовый набор задач для оценки уровня профессиональных знаний в программной инженерии. Модель превосходит большинство участников с реальным опытом работы в индустрии, демонстрируя понимание архитектуры программного обеспечения, алгоритмов и структур данных.

96,7% точности на математическом тесте AIME 2024

AIME (American Invitational Mathematics Examination) — это математическая олимпиада, известная своей сложностью. Данный результат близок к идеальному, что демонстрирует выдающиеся способности модели в решении задач высокого уровня.

87,7% на вопросах уровня PhD GPQA Diamond

Модель успешно отвечает на вопросы, требующие глубокой теоретической подготовки, эквивалентной докторантуре. Этот результат отражает сильную компетенцию в генерации точных и сложных ответов.

25,2% на сверхсложном EpochAI Frontier Math (рост с 2%)

EpochAI Frontier Math — это тест для оценки ИИ на сложнейших задачах, выходящих за рамки стандартных математических навыков. Прогресс модели с 2% до 25,2% подчеркивает значительное улучшение в решении задач, которые традиционно считались трудными даже для ИИ.
 

Читать далее

Публикуем посты блога на канале telegram используя Django

01 Мар 2024 python django telegram

У вас есть блог на Django и вы хотите , чтобы информация о посте автоматически появлялась бы на вашем телеграм канале. Или у вас на сайте прием заявок или иных событий и вы хотите , чтобы информация об этих заявках и событиях мгновенно появлялась у вас на телеграм-канале. 
Это легко реализовать с помощью стандартных средств python,  с использованием телеграм бота , который будет посылать сообщения в телеграм-канал.

И в этой статье я пошагово расскажу как это сделать.

Читать далее

Swagger для Django REST Framework

07 Янв 2024 python django

Зачем нам нужно документировать API ?
Что за такие страшные слова Swagger и OpenApi ?
Каквя между ними разница?
Как легко подключить Swagger документацию к вашим эндпоинтам , реализованных с помощью Django REST Framework(DRF)?
Попробуем об этом разобраться в этой  статье.

Читать далее

Django 5. Рассмотрим новые возможности на примерах

09 Дек 2023 python django

4 декабря 2023 года состоялся релиз Django 5.0

Django 5.0 поддерживает Python 3.10, 3.11, и 3.12. Поэтому настоятельно рекомендую обновляться на эти версии и идти ногу со временем. 
В этой статье мы подробно на примерах рассмотрим новые возможности , которые были добавлены в этой версии. 

Читать далее

Python 3.12. Что нового ?

02 Окт 2023 python

Python 3.12. Что нового ?
 

Буквально час тому назад состоялся релиз новой версии Python3.12.0 (финальный релиз) !!!

Основные новые возможности Python 3.12.0 по сравнении с версией Python 3.11

Новые фичи

  1. Более гибкий разбор f-строк(More flexible f-string parsing ) , позволяющий множество вещей, ранее запрещенных (PEP 701).

  2. Поддержка протоколов буфера в коде Python (PEP 688).

  3. Новый API для отладки/профилирования (PEP 669).

  4. Поддержка изолированных подинтерпретаторов(subinterpreters) с отдельными GIL (PEP 684).

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

  6. Поддержка профилировщика Linux perf для отображения имен функций Python в трассировках.

  7. Множество крупных и мелких улучшений производительности(например, PEP 709 и поддержка бинарного оптимизатора BOLT), обеспечивающих ожидаемое общее улучшение производительности на уровне 5%.

Читать далее

Уровни изоляции транзакций в Postgresql

03 Май 2023 postgresql

В этой статье мы рассмотрим как в PostgreSQL реализованы уровни изоляции транзакций , какие аномалии допускаются при разных уровнях изоляции , а какие нет. 

Транзакции - это фундаментальное понятие во всех СУБД. Суть транзакции в том, что она объединяет последовательность действий в одну операцию по принципу «всё или ничего».

Транза́кция (англ. transaction) — группа последовательных операций с базой данных, которая представляет собой логическую единицу работы с данными. Транзакция может быть выполнена либо целиком и успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще, и тогда она не должна произвести никакого эффекта.

Стандарт SQL определяет четыре уровня изоляции транзакций:

Читать далее

Python. Бинарный поиск в массиве

20 Янв 2023 python Алгоритмы

В этой статье мы рассмотрим Двоичный (бинарный) поиск - один из классических алгоритмов поиска элемента в отсортированном массиве

Бинарный поиск

 

Читать далее

Django Rest Framework (DRF) - Загрузка файлов

01 Сен 2022 python django

Django Rest Framework (DRF) -  Загрузка файлов 

В этой статье рассмотрим как можно загружать файлы с помощью Django Rest Framework

Рассмотрим самый простой случай. У нас есть модель Post , у которого есть поле preview , куда нужно загружать изображения 

 

 

 

Читать далее

Python словари. Введение и основные методы работы с ними

10 Июл 2022 python

Cловари в Python - это неупорядоченный набор пар "ключ-значение"
Но начиная с версии Python3.7 словари являются упорядоченными и они будут выводиться в том же порядке в каком добавлялиPython словари

Читать далее

Введение SQLAlchemy Core и ORM

09 Июл 2022 sqlalchemy

SQLAlchemy - это инструментарий базы данных(database toolkit) для Python. Он предоставляет все возможности которые нам нужны при работе с реляционными базами данных , но при этом весь код будет написан на Python. Не нужно писать голые запросы специфичные для каждой реляционной базы данных и при этом задумываться об экранировании и об других важных вещах. Вместо этого SQLAlchemy позволяет абстрагироваться от используемой базы данных. Написанный код на Pyhon будет работать прекрасно работать с разными БД(Postgresql, MySql, Sqlite). Если вы на старте проекта используете одну БД , но вам нужно переключиться на другую, то вы можете это сделать безболезненно и с минимальными усилиями.

SQLAlchemy состоит из двух отдельных компонентов, известных как Core и ORM. И при этом ORM(Object Relational Mapper) реализован поверх ядра(Core). 

SQLAlchemy Core и ORM
 

Читать далее

Poetry. Управление зависимостями для проектов на Python

20 Апр 2022 python

 

При разработке нового проекта на Python рекомендуется начинать с создания виртуальной среды, которая изолирует проект от других установленных пакетов на вашей системе. Для добавления внешних зависимостей, таких как Django, requests и других библиотек,я обычно использую инструмент управления пакетами pip  Далее для удобства  мы формируем файл c зависимостями requirements.txt , который содержит список всех зависимостей проекта. 

Но в последних проектах для управления зависимостями я начал использовать Poetry. И в этой статье мне хочется рассказать , что из себя представляет Poetry, как его использовать в своих проектах и какие возможности он предоставляет.

Читать далее

Пишем первую программу на Go

16 Июл 2021 go

В этой статье мы напишем и запустим первую программу на Go
Для начала вы должны устанавить компилятор Go на свой компьютер
Далее создадим директорию helloworld и перейдем в эту директорию.

Читать далее

Django-guardian. Добавляем управление разрешениями на уровне объектов

28 Май 2021 python django

Django-guardian. Добавляем управление разрешениями на уровне объектов

Django-guardian. Добавляем управление разрешениями на уровне объектов

 

 

Читать далее

Django permissions. Управление правами доступа

28 Май 2021 python django

Django предоставляет из коробки систему аутентификации и авторизации(permission) пользователей. Эта система позволяет проверять учетные данные пользователей и определять права доступа для пользователей. Ввод логина и пароля - это аутентификация пользователей , а права доступа на редактирование записей , создание новых и удаление - это уже авторизация. Поэтому,с помощью permissions мы указываем какие действия могут выполнять пользователи на сайте , а к каким запрещен доступ.  Django permissions
 

Читать далее

Подписка

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

Рубрики

Теги