Бессмертие объектов
В Python 3.12 в рамках CPython некоторые объекты, такие как
Каждая новая ссылка на такой синглтон побуждала интерпретатор инкрементировать счетчик ссылок, как с обычными объектами. Это приводило к проблемам с производительностью.
Что означает "бессмертие" (immortality) и как оно решает эту проблему, читайте в англоязычной статье на mail.python.org.
#факты
В Python 3.12 в рамках CPython некоторые объекты, такие как
None
, True
и False
действуют как глобальные синглтоны (паттерны, ограничивающие возможность создания объектов данного класса одним экземпляром). Они совместно используются интерпретатором вместо того, чтобы каждый раз создавать их новые копии.Каждая новая ссылка на такой синглтон побуждала интерпретатор инкрементировать счетчик ссылок, как с обычными объектами. Это приводило к проблемам с производительностью.
Что означает "бессмертие" (immortality) и как оно решает эту проблему, читайте в англоязычной статье на mail.python.org.
#факты
👍21
Всем привет! Сегодня мы запускаем новую версию нашего сайта tproger.ru, поэтому могут наблюдаться сбои и ошибки
Мы постараемся всё сделать аккуратно, но если столкнётесь с багами или проблемами, дайте нам знать.
Спасибо за понимание.
Мы постараемся всё сделать аккуратно, но если столкнётесь с багами или проблемами, дайте нам знать.
Спасибо за понимание.
👌11💩5😁4👍3🔥1
В Excel появился Python
Стала доступна публичная предварительная надстройка, позволяющая пользователям Excel манипулировать данными и анализировать их.
«Вы можете исследовать данные в Excel, используя библиотеки Python, а затем подводить формулы, диаграммы и сводные таблицы Excel для дальнейшего развития своих идей», — объясняет Стефан Киннестранд, генеральный менеджер по современным работам в Microsoft. «Теперь вы можете выполнять расширенный анализ данных в знакомой среде Excel, обращаясь к Python непосредственно в MS Excel».
Установка дополнительных модулей не требуется.
#excel
Стала доступна публичная предварительная надстройка, позволяющая пользователям Excel манипулировать данными и анализировать их.
«Вы можете исследовать данные в Excel, используя библиотеки Python, а затем подводить формулы, диаграммы и сводные таблицы Excel для дальнейшего развития своих идей», — объясняет Стефан Киннестранд, генеральный менеджер по современным работам в Microsoft. «Теперь вы можете выполнять расширенный анализ данных в знакомой среде Excel, обращаясь к Python непосредственно в MS Excel».
Установка дополнительных модулей не требуется.
#excel
👀21🔥8🤔4👍2❤1
Dara для Decision-Making-приложений
Адаптированный для нужд дата-сайентистов, фреймворк предлагает создавать приложения на чистом Python с помощью библиотеки готовых компонентов. Инструмент позволяет гибко настраивать и создавать собственные компоненты на CSS и JavaScript.
Ссылка на репозиторий
#dataviz
Адаптированный для нужд дата-сайентистов, фреймворк предлагает создавать приложения на чистом Python с помощью библиотеки готовых компонентов. Инструмент позволяет гибко настраивать и создавать собственные компоненты на CSS и JavaScript.
Ссылка на репозиторий
#dataviz
PlotAI для вёрстки графиков на Matplotlib
Возможно, вы уже знаете, что LLM-модели вроде GPT неплохо справляются с построением различных диаграмм. Теперь можно упростить создание графиков на Python с помощью PlotAI:
— пользователь предоставляет датафрейм;
— PlotAI создаёт промт для LLM, который содержит первые пять записей и запрашивает код Python;
— возвращенный код Python выполняется, и отображается график.
Ссылка на репозиторий GitHub
#dataviz
Возможно, вы уже знаете, что LLM-модели вроде GPT неплохо справляются с построением различных диаграмм. Теперь можно упростить создание графиков на Python с помощью PlotAI:
— пользователь предоставляет датафрейм;
— PlotAI создаёт промт для LLM, который содержит первые пять записей и запрашивает код Python;
— возвращенный код Python выполняется, и отображается график.
Ссылка на репозиторий GitHub
#dataviz
👍4😁2
Субботний Win Share
Что хорошего получилось у вас в сфере Python и IT в целом за неделю?
Поделитесь в комментариях.
Что хорошего получилось у вас в сфере Python и IT в целом за неделю?
Поделитесь в комментариях.
Модуль warnings для кастомных предупреждений
Встроенная утилита позволяет тонко настраивать всевозможные ворнинги под ваш код:
Документация
#факты
Встроенная утилита позволяет тонко настраивать всевозможные ворнинги под ваш код:
def deprecation(message):
warnings.warn(message, DeprecationWarning, stacklevel=2)
Документация
#факты
👍8❤2
Упрощённый оператор if
Порой вместо множественных сравнений с использованием or:
Эффективнее использовать in:
#лучшиепрактики
Порой вместо множественных сравнений с использованием or:
m = 3
if m == 1 or m == 2 or m == 3 or m == 4:
print("m равен 1 / 2 / 3 / 4")
Эффективнее использовать in:
if m in [1, 2, 3, 4]:
print("m входит в диапазон [1, 4]")
#лучшиепрактики
💩13👍12❤🔥6❤2🥰1
Перенос GPT-проекта на Python
На связи админ канала. Из тех, кто прикручивал к GPT API собственный датасет, как вы решали эту задачу?
Нашел решение на JavaScript (БД Pinecone, коэффициент Отиаи, связка нескольких API на Pipedream), но теперь нужно переписать проект на Python. Fine-Tuning модели, то есть подгрузка по документации OpenAI, обходится значительно дороже, чем своя БД.
На каком фреймворке лучше развернуть аналогичный проект? Подскажите в комментариях.
#GPT
На связи админ канала. Из тех, кто прикручивал к GPT API собственный датасет, как вы решали эту задачу?
Нашел решение на JavaScript (БД Pinecone, коэффициент Отиаи, связка нескольких API на Pipedream), но теперь нужно переписать проект на Python. Fine-Tuning модели, то есть подгрузка по документации OpenAI, обходится значительно дороже, чем своя БД.
На каком фреймворке лучше развернуть аналогичный проект? Подскажите в комментариях.
#GPT
💩6🤔4👍2🍌1🙈1
Задача о заменах хвостов
Уровень: средний
Список A состоит из четырех элементов, каждый из которых содержит ровно одно двоеточие (не в начале и не в конце). Длина подстрок до и после двоеточия является случайной:
Ваша задача — преобразовать список таким образом, чтобы поменять местами подстроки после каждого двоеточия.
Результат:
Напишите решение задачи в комментариях.
#задача
Уровень: средний
Список A состоит из четырех элементов, каждый из которых содержит ровно одно двоеточие (не в начале и не в конце). Длина подстрок до и после двоеточия является случайной:
A = ["abc:123", "cde:456", "a:12345", "777:xyz"]
Ваша задача — преобразовать список таким образом, чтобы поменять местами подстроки после каждого двоеточия.
Результат:
B = ["abc:456", "cde:123", "a:xyz", "777:12345"]
Напишите решение задачи в комментариях.
#задача
👍5
faulthandler: запись логов в файл
К примеру, для записи логов каждые 5 секунд к основной программе потребуется добавить следующий код:
Документация
#лучшиепрактики
К примеру, для записи логов каждые 5 секунд к основной программе потребуется добавить следующий код:
import faulthandler
from time import sleep
faulthandler.dump_traceback_later(
timeout=2,
repeat=True,
)
for i in range(5):
print(f"iteration {i}")
sleep(5)
Документация
#лучшиепрактики
👍3👎2❤1
Машинное обучение прямо в PostgreSQL
PostgresML — это расширение, позволяющее создавать модели машинного обучения и выводить их результаты с помощью SQL-запросов.
Анализ тональности:
Репозиторий на GitHub
#postgresql
PostgresML — это расширение, позволяющее создавать модели машинного обучения и выводить их результаты с помощью SQL-запросов.
Анализ тональности:
SELECT pgml.transform(
task => 'text-classification',
inputs => ARRAY[
'I love how amazingly simple ML has become!',
'I hate doing mundane and thankless tasks. ☹️'
]
) AS positivity;
Репозиторий на GitHub
#postgresql
👍4❤1
Typing Self: интуитивно понятный способ аннотирования методов, возвращающих экземпляр своего класса
Ведёт себя так же, как TypeVar, но более краток и прост:
Допустим, мы создали метод get_scale(), который возвращает экземпляр того же класса Scale с помощью self:
Один из способов обозначить тип возвращаемого значения — указать его как текущий класс Shape. Использование этого метода заставляет средство проверки типов выводить тип Shape, как и ожидалось:
PEP-673
#pep
Ведёт себя так же, как TypeVar, но более краток и прост:
Допустим, мы создали метод get_scale(), который возвращает экземпляр того же класса Scale с помощью self:
class Shape:
def set_scale(self, scale: float):
self.scale = scale
return self
Shape().set_scale(0.5) # => Экземпляр класса Shape
Один из способов обозначить тип возвращаемого значения — указать его как текущий класс Shape. Использование этого метода заставляет средство проверки типов выводить тип Shape, как и ожидалось:
class Shape:
def set_scale(self, scale: float) -> Shape:
self.scale = scale
return self
Shape().set_scale(0.5) # => Shape
...
PEP-673
#pep
👍6👎5
Нужна ли вам Kafka?
В статье Selectel разобрались, чем Kafka отличается от традиционных СУБД типа MySQL, почему именно этот продукт в резюме так повышает целевой оффер и как настроить простейший проект.
#kafka
В статье Selectel разобрались, чем Kafka отличается от традиционных СУБД типа MySQL, почему именно этот продукт в резюме так повышает целевой оффер и как настроить простейший проект.
#kafka
👍4❤1
Newsi: API для новостей
Инструмент полезен в трейдинге и позволяет автоматизировать подгрузку англоязычных мировых новостей. В дальнейшем на результаты запроса можно навесить показатели эмоциональной окраски и в зависимости от этого упростить принятие инвестиционного решения.
Документация
#API
Инструмент полезен в трейдинге и позволяет автоматизировать подгрузку англоязычных мировых новостей. В дальнейшем на результаты запроса можно навесить показатели эмоциональной окраски и в зависимости от этого упростить принятие инвестиционного решения.
Документация
#API
💩2❤1
1secmail: анонимная почта на Python
Автор видео описывает, как обратиться к API 1secmail.com на Python. В 13-минутном ролике вы узнаете:
— как создать ящик с нужным именем;
— как читать почту в командной строке;
— как настроить регулярную перепроверку ящика.
#api
Автор видео описывает, как обратиться к API 1secmail.com на Python. В 13-минутном ролике вы узнаете:
— как создать ящик с нужным именем;
— как читать почту в командной строке;
— как настроить регулярную перепроверку ящика.
#api
👍10💩2
beautifulsoup4 vs. Scrapy
Лаконичное десятиминутное видео, с помощью которого можно сравнить парсинговые библиотеки на примере паука. Автор стягивает список банков в файл с помощью этих инструментов и сравнивает код обоих парсеров. Отличный способ зайти в парсинг. Бонусом можно потренироваться в написании xpath.
#bs4 #scrapy
Лаконичное десятиминутное видео, с помощью которого можно сравнить парсинговые библиотеки на примере паука. Автор стягивает список банков в файл с помощью этих инструментов и сравнивает код обоих парсеров. Отличный способ зайти в парсинг. Бонусом можно потренироваться в написании xpath.
#bs4 #scrapy
👍10💩4❤1🔥1
String Template: ещё один способ интерполировать
Класс Template модуля string позволяет использовать знак доллара для подстановки:
Доводилось ли вам использовать Template? Поделитесь в комментариях, в каких ситуациях он работает лучше f-строк.
Документация
#факты
Класс Template модуля string позволяет использовать знак доллара для подстановки:
from string import Template
t = Template('Привет, $channel!')
t.substitute(dict(channel='@zen_of_python'))
# 'Hello, @zen_of_python'
Доводилось ли вам использовать Template? Поделитесь в комментариях, в каких ситуациях он работает лучше f-строк.
Документация
#факты
👍13❤2💩1🤡1
pyvis: визуализация графов
Утилита позволяет создавать графы, настраивать размер нодов, их цвет и прочие характеристики:
Репозиторий на GitHub
#факты
Утилита позволяет создавать графы, настраивать размер нодов, их цвет и прочие характеристики:
>>> from pyvis.network import Network
>>> import networkx as nx
>>> nx_graph = nx.cycle_graph(10)
>>> nx_graph.nodes[1]['title'] = 'Number 1'
>>> nx_graph.nodes[1]['group'] = 1
>>> nx_graph.nodes[3]['title'] = 'I belong to a different group!'
>>> nt.show('nx.html')
Репозиторий на GitHub
#факты
🔥13👍2