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
LookupError: родительский класс KeyError, IndexError
Основная цель этого промежуточного исключения — упростить отладку при возникновении любого из этих двух исключений:
#лучшиепрактики
Основная цель этого промежуточного исключения — упростить отладку при возникновении любого из этих двух исключений:
try:
username = resp['posts'][-1]['authors'][0]['name']
except LookupError:
username = None
#лучшиепрактики
👍15
Субботний Win Share
Что хорошего получилось у вас в сфере Python и IT в целом за неделю?
Поделитесь в комментариях.
Что хорошего получилось у вас в сфере Python и IT в целом за неделю?
Поделитесь в комментариях.
Отложенная оценка аннотаций типов
PEP-563 представил отложенную оценку аннотаций типов. Это означает, что все ваши аннотации типов во время выполнения рассматриваются лишь как строки. Но это помешало работе pydantic и typeguard.
Однако если такое поведение вам все таки нужно, используйте annotations из модуля __future__:
#факты
PEP-563 представил отложенную оценку аннотаций типов. Это означает, что все ваши аннотации типов во время выполнения рассматриваются лишь как строки. Но это помешало работе pydantic и typeguard.
Однако если такое поведение вам все таки нужно, используйте annotations из модуля __future__:
def class_decorator(cls):
annotations = get_type_hints(cls) # raises NameError on 'C'
print(f'Annotations for {cls}: {annotations}')
return cls
@class_decorator
class C:
singleton: 'C' = None
#факты
Задача на сложение матриц
Уровень: новичок
Напишите функцию (без использования numpy.matrix.sum()), которая складывает две квадратные матрицы и возвращает их сумму. Все элементы матриц — целочисленные значения.
#задача
Уровень: новичок
Напишите функцию (без использования numpy.matrix.sum()), которая складывает две квадратные матрицы и возвращает их сумму. Все элементы матриц — целочисленные значения.
matrixAddition(
[ [1, 2, 3],
[3, 2, 1],
[1, 1, 1] ],
// +
[ [2, 2, 1],
[3, 2, 3],
[1, 1, 3] ] )
// returns:
[ [3, 4, 4],
[6, 4, 4],
[2, 2, 4] ]
#задача
💩11❤1👍1
Продвинутая логика именования в Python
Разобрали на примерах, как и почему лучше называть различные объекты в Python. Там уже наметился небольшой спор, присоединяйтесь, если интересно. Будем рады вашим техникам именования.
Статья
#лучшиепрактики
Разобрали на примерах, как и почему лучше называть различные объекты в Python. Там уже наметился небольшой спор, присоединяйтесь, если интересно. Будем рады вашим техникам именования.
Статья
#лучшиепрактики
Tproger
Продвинутая логика именования в Python
Разобрали на примерах, как и почему лучше называть различные объекты в Python.
😁1
Почему Джанго?
Возможно, вы уже слышали, что Django назван в честь американского гитариста Джанго Рейнхардта. Один из соавторов фреймворка, Адриан Холоватый, вероятно, поспособствовал такому неймингу. Он обожает Рейнхардта и ведет YouTube-канал, посвящённый не только каверам на песни джазмена, но и трактует известные композиции по-новому.
Если вы тоже не знали, как называется жанр музыки из открывающей темы Спанчбоба, то добро пожаловать в мир джаз-мануша (цыганский джаз). На видео Адриан обыграл тему из «Братьев Марио».
#django
Возможно, вы уже слышали, что Django назван в честь американского гитариста Джанго Рейнхардта. Один из соавторов фреймворка, Адриан Холоватый, вероятно, поспособствовал такому неймингу. Он обожает Рейнхардта и ведет YouTube-канал, посвящённый не только каверам на песни джазмена, но и трактует известные композиции по-новому.
Если вы тоже не знали, как называется жанр музыки из открывающей темы Спанчбоба, то добро пожаловать в мир джаз-мануша (цыганский джаз). На видео Адриан обыграл тему из «Братьев Марио».
#django
❤5💩4
Torrent-Search-Bot для магнитных ссылок на торренты
Готовый Telegram-бот для тех, кому лень включать VPN. Просто разверните его копию с помощью собственного токена от BotFather, и он будет слать в ответ magnet link.
Ссылка на репозиторий
#факты
Готовый Telegram-бот для тех, кому лень включать VPN. Просто разверните его копию с помощью собственного токена от BotFather, и он будет слать в ответ magnet link.
Ссылка на репозиторий
#факты
👍7❤1💩1
В коде затык? Сообщество Zen of Python поможет
Мы пробуем рубрику «Грокаем вопрос» для Python-новичков и не только. Напишите в комментариях, с какой задачей вам нужно справиться. Мы выберем несколько самых интересных вопросов и постараемся обеспечить вас несколькими версиями ответов, в том числе с помощью подписчиков.
Пожалуйста, следуйте стандартам постановки вопроса в стиле Stack Overflow. Мы надеемся на ваше чувство эмпатии и взаимовежливости.
#грокаем
Мы пробуем рубрику «Грокаем вопрос» для Python-новичков и не только. Напишите в комментариях, с какой задачей вам нужно справиться. Мы выберем несколько самых интересных вопросов и постараемся обеспечить вас несколькими версиями ответов, в том числе с помощью подписчиков.
Пожалуйста, следуйте стандартам постановки вопроса в стиле Stack Overflow. Мы надеемся на ваше чувство эмпатии и взаимовежливости.
#грокаем
👍11