pythonl | Unsorted

Telegram-канал pythonl - Python/ django

52807

по всем вопросам @haarrp @itchannels_telegram - 🔥 best it channels @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - ml 📚 @pythonlbooks -📚books

Subscribe to a channel

Python/ django

Как правильно подставлять значения из переменных / списков / словарей в SQL запрос в Python?

Лучше всего использовать SQL запросы с использованием параметров:

cursor.execute("SELECT * FROM my_table WHERE id = ?", [123])
# parameter placeholder ------------------------> ^
# список/кортеж со значениями параметров -----------> ^^^^^


Какие преимущества приносит использование параметров?
Защита от SQL-инъекций

Правильное квотирование литералов в зависимости от их типа (пример со строками, пример с датами).

Оптимизация — сокращение времени работы SQL запроса. Благодаря использованию параметров следующие шаги не выполняются при повторном запуске (зависит от БД):
— проверка синтаксиса SQL запроса
— проверка прав доступа к объектам БД
— построение плана выполнения SQL запроса

Защита от переполнения/вытеснения кеша SQL запросов. Например "безобидный" запрос qry = f"SELECT first_name, last_name FROM users WHERE id = {user_id}", который часто выполняется в нагруженной системе с различными значениями user_id может вытеснить из кеша запросов полезные запросы.

Пример использования параметров в SQL запросе:
import sqlite3

con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("create table lang (name, first_appeared)")

cur.execute("insert into lang values (?, ?)", ("C", 1972))

lang_list = [
("Fortran", 1957),
("Python", 1991),
("Go", 2009),
]
cur.executemany("insert into lang values (?, ?)", lang_list)

cur.execute("select * from lang where first_appeared=:year", {"year": 1972})
print(cur.fetchall())

con.close()

При таком подходе можно использовать cursor.executemany() - это значительно быстрее и эффективнее по сравнению с вставкой в цикле по одной строке.

📎 Читать подробнее

@pythonl

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

Python/ django

🖥 Flect is a Python framework for building full-stack web applications.

Flect — это фреймворк Python для создания полнофункциональных веб-приложений.

Он позволяет легко создавать пользовательские интерфейсы, используя модели Pydantic, которые аналогичны свойствам компонентов React.

Эта интеграция позволяет быстро разрабатывать интерактивные и красивые пользовательские интерфейсы с использованием Python.

Github
Docs

@pythonl

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

Python/ django

🖥 Полезный приём при работе с исключениями в Python

def divide(x=1, y=0):
try:
return x / y
except ZeroDivisionError:
raise ValueError("Pattern 3 error.") from None

divide()

Здесь при вызове функции divide() она вызывается с параметрами по умолчанию, то есть x=1, y=0, в общем происходит деление на 0, и мы попадаем в ветку except ZeroDivisionError.

Если бы мы не написали from None, в поднявшемся исключении встречалась бы ошибка ZeroDivisionError.
В данном случае трассировка не будет включать исходную ошибку ZeroDivisionError, а только исключение ValueError и сообщение об ошибке — всё из-за from None.

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

Вот такие дела

@pythonl

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

Python/ django

🖥 Python: когда использовать array вместо list?

Если в двух словах, то для хранения элементов разных типов, предпочтительнее использовать list, а для быстрых операций с числовыми данными и эффективного расходования памяти – array из модуля array.


Список в Python – это универсальный инструмент, способный хранить элементы разных типов и эффективно управлять памятью, что особенно ценно при изменении размера списка.

Используйте списки, когда:
— Вам необходимо хранить элементы разного типа.
— Предполагается изменение объема данных.
— Важны удобство и простота поддержки кода.


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

Выбирайте массивы, когда:
— Вы работаете исключительно с числами одного типа.
— Обрабатываете большие объемы данных и важна экономия памяти.
— Нужна тесная интеграция с C-кодом.

@pythonl

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

Python/ django

🖥 Language Detection using Python

Определение языка с помощью Python.

@pythonl

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

Python/ django

🚀 GPM AdTech Challenge 
от «Газпром-Медиа» и Getintent
Когда: 18-30 марта
Формат: гибридный
Призовой фонд: 1 000 000 рублей
Ты можешь стать победителем независимо от своего технического бэкграунда. Выбирай один из трех треков, создавай прототип и выигрывай 1 000 000 рублей.
Регистрация до 13 марта: https://cnrlink.com/gpmpython

🎙 Frontend Мeetup от Росбанка
Когда: 22 марта
Формат: очный, Казань
Вас ждут доклады специалистов Росбанка, СберМаркета и VK Добра. 
Авторы лучших вопросов получат мерч. 
Регистрация до 18 марта: https://cnrlink.com/rbkazanpython

💢 «Халява, приди!»‎ от Codenrock
Когда: весь март
Формат: онлайн
Реши несложные, но увлекательные задачи по программированию и получи возможность стать обладателем промокода на любой маркетплейс. Это ли не халява?
Регистрация до 20 марта: https://cnrlink.com/halyavapython

Реклама. ООО "ЦУКЕР СТУДИЯ". ИНН 7751071015. erid: LjN8JyexX

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

Python/ django

🔥Подборка лучших обучающих каналов для программистов.

➡️ Делитесь с коллегами и cохраняйте себе, чтобы не потерять

🚀 Data Science

Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста
Data Jobs - ds вакансии
Аналитик данных
Data Science книги - актуальные бесплатные книги
Big data

#️⃣C#

С# академия
С# заметки — код, лучшие практики, заметки программиста c#
С# задачи и тесты
С# библиотека - актуальные бесплатные книги
C# вакансии - работа

⚡Машинное обучение

Ml Собеседование - подготовка к собеседовению мл, алгоритмам, кодингу
Ml ru - актуальные статьи, новости, код и обучающие материалы
Ml Jobs - вакансии ML
ML Книги - актуальные бесплатные книги МО
ML чат
Machine Learning - полезные статьи новости гайды и разбор кода


⚡️ Frontend
Javascript академия - крупнейший js канал
React - лучшие гайды и советы по работе с react
Frontend - тутрориалы, уроки, гайды, код
PHP
Книги frontend
Задачи frontend

🏆 Golang
Golang - подробные гайды, разбор кода, лучшие практики, заметки
Golang собеседование
Golang вакансии
Golang книги
Golang задачи и тесты
Golang чат
Golang news - новости go



🐍 Python

Python/django
Python Собеседование - подготовка к собеседовению python и разбор алгоритмов
Pro python - статьи, новости, код и обучающие материалы
Python Jobs - вакансии Python
Python чат
Python книги

☕ Java

Java академия
Java вакансии
Java чат
Java вопросы с собеседований
Java книги

🛢Базы данных
Sql базы данных
Библиотека баз данных
SQL чат

💻 C++

C++ академия
С++ книги
C++ задачи - подготовка к собеседовению мл, алгоритмам
C++ вакансии

💥 Хакинг Kali Linux

Kali linux
linux_kal - kali чат
Информационная безопасность

🐧 Linux

Linux academy

🦀 Rust
Rust программирование
Rust чат
Rust книги для программистов

📲 Мобильная разработка
Android разработка
Мобильный разработчик гайды и уроки

🇬🇧 Английский для программистов

🧠 Искусственный интеллект
ИИ и технологии
Neural - нейросети для работы и жизни
Книги ИИ
Artificial Intelligence

🔥 DevOPs
Devops для программистов
Книги Devops

🌟 Docker/Kubernets
Docker
Kubernets

📓 Книги
Библиотеки Книг для программситов

💼 Папка с вакансиями:
Папка Go разработчика:
Папка Python разработчика:
Папка Data Science
Папка Java разработчика
Папка C#
Папка Frontend

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

Python/ django

🖥 Получение мостов tor из GMail с помощью Python

Учите Python, он везде)
1 шаг — установка внешних библиотек
pip install python-decouple opencv-python pyzbar IMAPClient
decouple — для чтения данных из файла
opencv — для чтения изображения с QR-кодом
pyzbar — чтобы прочитать данные, закодированные в QR-коде
IMAPClient — с помощью неё будем работать с сообщениями на почтовом сервере

Так как мы будем использовать пароль приложений, а также логин от аккаунта Google, то в коде его желательно не использовать. Поэтому, необходимо создать файл «.env» с примерным содержимым:

login = "test@gmail.com"
pwd = "gffg sbbp jccj vhhi"


2 шаг — импорт библиотек

3 шаг — считывание данных из QR-кода

4 шаг — отправка письма

5 шаг — чтение почты

▶️ Полностью о каждом шаге можно прочитать тут

@pythonl

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

Python/ django

🖥 Как расширить возможности стандартного Enum

Иногда хочется, чтобы у констант были доп. параметры, хранящие прочие характеристики. Первое, что приходит на ум — это описать Enum, хранящий простые значения, и маппинг:

from dataclasses import dataclass
from enum import Enum

class Color(Enum):
BLACK = 'black'
WHITE = 'white'
PURPLE = 'purple'

@dataclass(frozen=True)
class RGB:
red: int
green: int
blue: int

COLOR_TO_RGB = {
Color.BLACK: RGB(0, 0, 0),
Color.WHITE: RGB(255, 255, 255),
Color.PURPLE: RGB(128, 0, 128),
}

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

Как же можно хранить всё необходимое в единой структуре?

▶️Вариант 1 на изображении.
Кажется, что выглядит неплохо, но в таком варианте есть ограничение по количеству дополнительных параметров. Давайте попробуем еще немного улучшить.

▶️Вариант 2
Раз в 1 варианте у нас получилось сделать с использованием tuple, то значит получится и с typing.NamedTuple. К тому же будут именованные параметры, что повысит читабельность.
В качестве члена перечисления будем хранить целиком объект typing.NamedTuple. Теперь чтобы у нас происходило корректное сравнение объектов нам нужно переопределить методы __hash__ и __eq__. Сравниваться объекты будут по одному полю — value.
Получился в принципе рабочий вариант. Конечно у него есть свои ограничения, плюс решение не универсальное.

▶️Вариант 3
Что если вместо typing.NamedTuple использовать dataclass? Вроде идея здравая. Появляется возможность наследования классов, хранящих доп. параметры. Плюс вспомогательные функции из dataclasses.
В качестве члена перечисления, как и в прошлый раз, будем хранить объект целиком, только теперь это dataclass.

Ну вот, теперь другое дело)

➡️ Полезная статья в тему

@pythonl

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

Python/ django

😎Разработчик, управляй памятью эффективно!

👉Начните на бесплатном вебинаре онлайн-курса «Программист С» — «Реализация динамических структур данных на Си и Python»: регистрация

Структура вебинара:
- Примеры динамических структур данных
- Схемы управления динамической памятью в С и Python
- Реализация бинарного дерева на С и Python
- Применение функций управления динамической памятью.

Вебинар будет полезен:
- Программистам, изучающим языки С и Python, для развития навыков в области эффективного управления памятью.
- Разработчикам в области больших данных.

🤝Понравится вебинар — продолжите обучение на курсе по специальной цене и даже в рассрочку!

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

Python/ django

Почему стоит зарегистрироваться на GitVerse?

Разработчикам теперь доступна GitVerse – новая российская платформа от СберТеха для работы с исходным кодом.

Сервис позволяет бесплатно создавать проекты с открытым и закрытым кодом, приглашать новых участников и общаться с единомышленниками в ИТ-сообществе.

- Привлекайте соавторов для разработки и развития своего проекта с открытым исходным кодом.
- Разрешайте вносить изменения в репозиторий, получайте запросы на слияние и объединяйте ветки.
- Проверяйте и комментируйте код, объединяйте изменения.
- Оптимизируйте рабочий процесс: назначайте ответственных за ревью и отслеживайте результат.
- Переносите репозитории с других платформ и храните код в надежном месте.

Переходите на новый уровень разработки с GitVerse.
Зарегистрируйтесь и начните совместную работу над проектом уже сейчас.

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

Python/ django

🖥 Latexify: Generates LaTeX math description from Python functions.

Крутая библиотека Python, которая позволяет отображать функции в формате LaTeX


pip install latexify

То есть вы просто определяете функцию как обычно, например так:

def quadratic(a,b,c):
return (-b + math.sqrt(b**2 - 4*a*c)) / (2*a)


Чтобы вывести формулу LaTeX, мы просто помещаем над определением функции декоратор @latexify.function и печатаем имя функции quadratic в ячейке Google Colab.
Получается так — и мы увидем формулу:
@latexify.function
def quadratic(a,b,c):
return (-b + math.sqrt(b**2 - 4*a*c)) / (2*a)

quadratic


Отлично подойдёт тем, кто занимается на стыке IT и физики/математики/других дисциплин;
здесь в Google Colab можно затестить, как это работает

🖥 GitHub

@pythonl

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

Python/ django

⁉️ Ты не хочешь карьерного роста в IT?

Иначе почему ты все еще остаешься на среднем уровне в разработке? Когда всего за 5 месяцев можно освоить широкий стек технологий на онлайн-курсе «Python Developer. Professional» и вырасти в доходе и должности. 

⬇️  Пройди тест по Python и проверь свои знания.

Ответишь — пройдешь на продвинутый курс "Python Developer. Professional" от OTUS по специальной цене/ 

🔥 Выбери светлую сторону силы и приходи на курс.

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

Python/ django

Программа бакалавриата в Центральном университете от Тинькофф с грантом до 100% для сильных и мотивированных абитуриентов!

Грант можно получить на одно из направлений бакалавриата по искусственному интеллекту, разработке и бизнес-аналитике. Помимо диплома и практико-ориентированного образования студенты получат:
Персонализацию учебной траектории;
Стажировку в одной из лучших ИТ-компании страны;
Личного ментора на все время обучения;
Доступ к современному кампусу в центре Москвы.

Получить полную информацию и оставить заявку можно здесь.

erid:2Vtzqw8FfJH
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673

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

Python/ django

Бывают задачи, когда нужно автоматизировать сбор и анализ данных из разных источников.

Этот процесс называют парсингом и его легко реализовать на Python. В карточках рассказываем, что для этого нужно ➡️

Подписывайтесь на телеграм-канал @Selectel, чтобы не пропускать новые материалы и подборки 🏢

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

Python/ django

⁉️ Как эффективно работать с паттернами микросервисной архитектуры в Python? 

Узнайте на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
- разберете наиболее популярные паттерны: оркестрация и хореография;
- рассмотрите реализацию этих подходов, обсудите плюсы и минусы;
- ответите на все возникающие вопросы.

📢 Занятие пройдёт 14 марта в 20:00 мск и будет приурочено к старту курса «Python Developer. Professional». Доступна рассрочка на обучение!

➡️ Пройдите короткий тест прямо сейчас, чтобы занять место на открытом уроке и получить запись:  

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

Python/ django

Инвесторы смогут тестировать и запускать собственных торговых роботов на уникальных данных

MoexAlgo — Python-библиотека для упрощения работы с Алгопак API. Предоставляет данные и аналитику по рынку акций Московской биржи (MOEX). Можно получать:

• исторические данные для тестирования торговых стратегий, проверки гипотез и backtest;
• онлайн-данные для алгоритмической торговли.

Библиотека необходима для работы с демоверсией Алгопак — новым инструментом Московской биржи. Благодаря ему вы можете прокачать свои навыки работы через REST API и Python-клиент. Клиенты получают доступ к большому набору исторических и онлайн-данных по рынку акций MOEX и могут проводить backtest различных торговых стратегий, а также создавать и автоматизировать торговые алгоритмы.

▪️ MoexAlgo
▪️ Backtrader_moexalgo
▪️ Демоверсия Алгопак доступна всем зарегистрированным пользователям сайта ПАО Московская Биржа — тестируйте на сайте

@pythonl

Реклама. Рекламодатель ПАО Московская биржа. ОГРН (1027739387411)

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

Python/ django

🖥 Помнишь эти методы списков в Python?

Держи, вот полезная шпаргалка, чтобы освежить их

📎 А вот ещё годный сайт, где собраны самые используемые методы/функции Python

@pythonl

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

Python/ django

⁉️ Готов стать профи в разработке на Python?- или будешь довольствоваться средним уровнем?

Всего за 5 месяцев можно освоить широкий стек технологий на онлайн-курсе «Python Developer. Professional» и вырасти в доходе и должности. 

➡️  Пройди тест по Python и проверь свои знания.

Ответишь — пройдешь на продвинутый курс "Python Developer. Professional" от OTUS по специальной цене 

🔥 Выбери светлую сторону силы и приходи на курс.

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

Python/ django

🔤Вопрос: как работает распаковка (*) в Python?
Что происходит, скажем, в случае такого генераторного выражения?

gen = (num for num in range(10))
print(*gen)



🔜Всё проще, чем кажется.
*args и **kwargs — это способы передачи переменного количества аргументов в функцию. Другими словами, они "распаковывают" значения из массива/словаря/множества и т.п. и передают эти значения в функцию.

🔜Пример использования *args:
def test(a, b): # Принимаем параметры a и b
print(a + b) # Выводим их сложение

array = [1, 2] # Создаём массив из двух чисел

test(*array) # Вывод: 3

При записи *array значения для функции были преобразованы в test(1, 2)

🔜Пример использования **kwargs:
def test(a,b): # Принимаем параметры a и b
print(a + b) # Выводим их сложение

dct = {'a':1, 'b':2} # Создаём словарь и записываем ключ-значение
test(**dct) # Вывод: 3

При записи **dct значения для функции были преобразованы в test(a=1, b=2)

🔜Таким же образом можно преобразовать данные в обратном направлении:
def test1(*var): # Принимаем параметры в виде множества
print(var)

test1(1, 2, 3) # Вывод: (1, 2, 3)

def test2(**var): # Принимаем параметры в виде словаря
print(var)

test2(a=1, b=2) # Вывод: {'a': 1, 'b': 2}


Такие вот дела 🖥

@pythonl

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

Python/ django

🖥 Hotpdf: a fast PDF parsing library to extract text and find text within PDF

hot pdf - это библиотека быстрого анализа PDF-файлов для извлечения текста и поиска текста в PDF-документах, созданная поверх pdfminer.six

pip install hotpdf

Github

@pythonl

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

Python/ django

🌷 Happy Women's day!

Выводим поздравление с 8 марта.

@pythonl

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

Python/ django

🖥 `__init_subclass__` runs when your class is subclassed.

Если вы хотите получать уведомление, когда класс Python 🐍 становится подклассом.

Используйте: `__init_subclass__`.

Он запускается, когда ваш класс становится подклассом. 🚀

@pythonl

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

Python/ django

🖥 Довольно полезная либа для структурированных выводов для LLM - Instructor 🔥

⭐️Работает на API вызова функций OpenAI, разработанном для простоты и прозрачности

Метод instructor.patch() для класса OpenAI вводит несколько ключевых полезных вещей:
🟡Режим ответа: Укажите модель Pydantic, чтобы упростить извлечение выходных данных.

🟡Максимальное количество повторных попыток: Установите желаемое количество повторных попыток для запросов.

🟡Контекст валидации: Предоставьте объект контекста для расширенного доступа к валидатору.

🟡Используйте метод client.chat.completions.create для отправки запроса и извлечения данных в объект Pydantic. Параметр response_model указывает модель Pydantic, которую следует использовать для извлечения. Полезно аннотировать переменную типом модели ответа, что поможет вашей IDE обеспечить автозаполнение и проверку орфографии.

https://pypi.org/project/instructor/

@pythonl

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

Python/ django

🖥 You can use #Python and #Textual to create plots in your terminal? 🐍🔥

Знаете ли вы, что вы можете использовать
#Python и #Textual для создания графиков в вашем терминале? 🐍 🔥

Это супер просто! Пример на картинке.

@pythonl

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

Python/ django

⚡️ UV: An extremely fast Python package installer and resolver, written in Rust.

Новейший инструмент для работы с зависимостями в Python


Создатели позиционируют его как замену pip, pip-tools и virtualenv, инстурмент написан на Rust.

На картинке вы видите сравнение uv с другими инструментами в разрешении зависимостей (слева) и установке (справа) зависимостей Trio с использованием прогретого кеша.

О проекте
GitHub
Docs

@pythonl

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

Python/ django

🖥 Build a typing assistant with Mistral 7B and Ollama - Python Tutorial

Невероятно — локальный AI чат-бот на основе Ollama и Mistral 7B всего в сотню строк Python кода (!)

💻 Туториал

🖥 GitHub

@pythonl

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

Python/ django

🖥 A little word cloud generator in Python

Создание облака слов на основе файла 'cl.txt'

Особенно полезно для задач NLP или при анализе соцсетей

from wordcloud import WordCloud

import matplotlib.pyplot as plt

# Read text from a file
with open('cl.txt', 'r', encoding='utf-8') as file:
text = file.read()

# Generate word cloud
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)

# Display the generated word cloud using matplotlib
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()


Облако слов — это визуальное представление списка категорий/тегов. Чем чаще слово встречается, тем больший размер оно принимает в облаке.

pip install wordcloud

Github

@pythonl

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

Python/ django

🖥 Нереально полезные встроенные библиотеки Python

🔜Tempfile
Создаёт временный файл как папка tmp в linux:

import tempfile
with tempfile.NamedTemporaryFile() as tmp:
print(tmp.name)
tmp.write(...)


🔜IO
Чтобы не использовать временные файлы, можно использовать временный буфер сразу в программе:
from io import BytesIO

imagefile = BytesIO()
animage.save(imagefile, format='PNG')
imagedata = imagefile.getvalue()


🔜Struct
Позволяет создавать бинарные структуры и парсить их. Может ускорить передачу между клиентом и сервером:
>> from struct import *
>> pack(">bhl", 1, 2, 3)
b'\x01\x00\x02\x00\x00\x00\x03'
>> unpack('>bhl', b'\x01\x00\x02\x00\x00\x00\x03')
(1, 2, 3)
>> calcsize('>bhl')
7


🔜CMD
С помощью этой библиотеки можно создать полноценный tui:
Welcome to the turtle shell.   Type help or ? to list commands.

(turtle) ?

Documented commands (type help <topic>):
========================================
bye color goto home playback record right
circle forward heading left position reset undo

(turtle) help forward
Move the turtle forward by the specified distance: FORWARD 10
(turtle) record spiral.cmd
(turtle) position
Current position is 0 0


Удивительно что такие полезные пакеты находятся в стандартной комплектации питона.
И не нужно скачивать кучу пакетов через pip.

@pythonl

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

Python/ django

🔥 В карточках кратко рассказали, как парсить данные веб-сайтов с помощью Python. Пособие подойдет новичкам и продолжающим — сохраняйте пост в закладки и переходите на телеграм-канал @Selectel. Там ребята каждый день публикуют полезные материалы для тех, кто интересуется IT.

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