19037
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
«Python для всех» Чарльза Северанса
Книга помогает плавно начать программировать. Она представляет собой курс программирования. Краткий и четкий стиль изложения и многочисленные упражнения позволят достаточно быстро овладеть основными навыками программирования и методами обработки данных. Издание предназначено широкому кругу читателей, которые не являются программистами и хотели бы освоить язык с нуля.
Профиль книги на Livelib
#книга
Шикарная шпаргалка по poetry — усовершенствованному наследнику pip.
#факты
Fake2db для игрушечных баз данных
Библиотека позволяет создавать базы и заполнять их фейковыми данными, что крайне полезно для тестирования. Поддерживает работу с sqlite, mysql, postgresql, mongodb, redis, couchdb.
Репозиторий на GitHub
#библиотека
Инженер команды SQL в AvitoTech в рамках проекта avito.code подготовил серию роликов про PostgreSQL и DBA
В первой части эксперт рассказывает о инициализации реплик без прямого использования pg_basebackup. Она уже доступна на канале AvitoTech.
Смотрите, ставьте пальцы вверх и стройте отказоустойчивую инфраструктуру: https://tprg.ru/uBnI
Реклама ООО «Авито Тех» LjN8KPaB2
functime для построения прогнозирования временных рядов
Утилита принимает многостолбцовые датафреймы, «дружит» с OpenAI и поддерживает метрики MASE, SMAPE и другие:import polars as plimport functime.llmy = pl.read_parquet("../data/commodities.parquet")context = "Этот датасет содержит данные о стоимости товаров за период 1980 - 2022."
Анализируем тренд и сезонность двух товаров:analysis = y_pred.llm.analyze( context=dataset_context, basket=["Aluminum", "Banana, Europe"])print("Analysis:\n", analysis)
Сравним группы товаров:basket_a = ["Aluminum", "Banana, Europe"]basket_b = ["Chicken", "Cocoa"]comparison = y_pred.llm.compare( basket=basket_a, other_basket=basket_b)print("Comparison:\n", comparison)
Репозиторий на GitHub
#библиотека
drf_yasg: автоматическая документация API для Django
Начиная с Django 2.2, Django Rest Framework 3.10 и Python 3.6 вы можете автоматически генерировать документацию API Django REST Framework.
Репозиторий на GitHub
#django
Пятничный Win Share
Что интересного получилось у вас в Python и IT в целом за прошедшую неделю? Поделитесь в комментариях.
#winshare
Умение работать с FastAPI является важным навыком для Python разработчиков, занимающихся веб разработкой
Этот фреймворк позволяет быстро разрабатывать надежные и эффективные веб-сервисы с автоматической генерацией документации, поддержкой асинхронной работы и встроенной валидацией данных, что упрощает процесс разработки и обеспечивает высокую производительность веб-приложений на Python.
Начните знакомство с этим инструментом с открытого урока «Создание веб-приложения на FastAPI» от OTUS. Преподаватель Сурен Хоренян — опытный Python-разработчик из МТС ИИ. Занятие пройдёт 28 сентября в 20:00 мск в рамках онлайн-курса «Web разработчик на Python».
На открытом уроке рассмотрят структуру проекта, аннотации типов, валидацию данных, инъекцию зависимостей при создании веб-приложения на FastAPI.
Занятие будет полезно тем, кто хочет познакомиться с фреймворком и посмотреть на валидацию данных при помощи аннотаций типов
Пройдите вступительный тест для регистрации и ставьте событие в календарь, чтобы не пропустить.
Реклама ООО «Отус онлайн-образование» ОГРН 1177746618576
Типы копирования в Python
Лаконичная статья, рассказывающая о типах копирования (поверхностном и глубоком). С её помощью вы познакомитесь с разницей в поведении составляющих копируемого объекта, а также с поведением copy() / deepcopy().
#факты
Unicaps: API для решения CAPTCHA
Инструмент поддерживает несколько десятков видов капчи и асинхронность:>>> from unicaps import CaptchaSolver, CaptchaSolvingService>>> solver = CaptchaSolver(CaptchaSolvingService.TWOCAPTCHA, api_key="<API_KEY>")>>> solved = solver.solve_image_captcha(open("captcha.jpg", "rb"), is_phrase=False, is_case_sensitive=True)>>> solved.solution.text... 'w93Bx'>>> solved.report_good()... True
Репозиторий на GitHub
#библиотека
SQL-запросы, которые вы рано или поздно погуглите
Разобрали в статье на примерах самые популярные команды, связанные с модификацией таблиц, обновлением записей и условиями и проч.
#SQL
FreezeGun: заморозка времени для тестов
С помощью библиотеки freezegun можно «заморозить» время до определённой точки, обеспечив точную проверку тестируемых функций.
Репозиторий на GitHub
#библиотека
atexit для завершающей логики
Хэндлер позволяет исполнять хуки при закрытии программы. Это подойдёт:
— для завершения ожидающих процессов;
— для отправки ожидающих сообщений в логи;
— для сохранения истории интерпретатора.
В примере ниже создаётся счётчик падений программы:try: with open('counterfile') as infile: _count = int(infile.read())except FileNotFoundError: _count = 0def incrcounter(n): global _count _count = _count + ndef savecounter(): with open('counterfile', 'w') as outfile: outfile.write('%d' % _count)import atexitatexit.register(savecounter)
#факты
Пятничный Win Share
Чем занимались на неделе, связанным с Python и IT в целом?
Поделитесь в комментариях.
#winshare
Как вызвать звук колокольчика в bash
Удобный способ оповестить разработчика об окончании работы скрипта.sh:echo $'\a'tput belprintf '\a'
Наверное, стоит повторить вызов несколько раз, чтобы не пропустить.
#bash
PyWebCopy для бэкапинга / слива сайта
PyWebCopy — бесплатный инструмент для копирования отдельных веб-страниц или же полного копирования сайта на жёсткий диск.
Модуль позволяет:
— сохранить одну страницу;
— скопировать сайт целиком.
При сохранении сайта стоит учитывать его размер и вероятную нагрузку на сервер.
Ссылка на репозиторий
#библиотека
Когда речь заходит про взаимодействие микросервисов, все сразу вспоминают о сложных архитектурных паттернах, вроде Event Bus и CQRS
В статье Антон Щербак, разработчик Selectel, рассказывает, как выполнить простенькую задачку для двух микросервисов без навороченной архитектуры.
Скорее читайте статью:
https://habr.com/ru/companies/selectel/articles/724278/
Реклама ООО «Селектел» 2Vtzqwwzcf4
PonyORM для мэппинга из реляционной базы
PonyORM — библиотека, позволяющая удобно работать с объектами, хранящимися в виде строк в реляционной базе данных.
В запросе ниже мы извлекаем всех клиентов, общая сумма покупок которых превышает 1000, причем с использованием лямбда-функции:Customer.select(lambda c: sum(c.orders.total_price) > 1000)
Документация
#библиотека
Задача о животных Ноя
Как и в библейские времена, нам нужно доставлять животных в ковчег парами. Мы заинтересованы только в том, чтобы получить по одной паре каждого животного, и не заинтересованы в животных, которых меньше двух… в конце концов, им нужно спариваться, чтобы заново заселить планету!
Вам будет предоставлен список животных, в котором нужно проверить, каких животных по двое, а затем вернуть словарь, содержащий название животного и их четное количество:>>> two_by_two(['goat', 'goat', 'rabbit', 'rabbit', 'rabbit', 'duck', 'horse', 'horse', 'swan'])... {'goat': 2, 'horse': 2, 'rabbit': 2}
Если список животных пуст, нужно вернуть False:>>> two_by_two([])... False
Если у животного нет пары, нужно вернуть пустой словарь:>>> two_by_two(['goat'])...{}
Ждем ваши решения в комментариях.
#задача
PyDork для сбора результатов из поисковиков
Утилита позволяет автоматизировать сбор поисковых результатов для Google, Bing, DuckDuckGo, Baidu и Yahoo Japan:>>> pydork search -n 10 -t google -- 'super mario'... Google: Text Search: super mario... Google: Finally got 10 links.... [GoogleSearch]: https://www.nintendo.co.jp/character/mario/... [GoogleSearch]: https://www.nintendo.co.jp/software/smb1/index.html... [GoogleSearch]: https://www.nintendo.co.jp/switch/adala/index.html
Репозиторий на GitHub
#библиотека
PandaSQL, чтобы обращаться к датафрейму на SQL
Инструмент позволяет использовать язык запросов SQL для обработки табличных данных pandas:
Вместо customers[customers["age"] <= 25]
Теперь можно фильтровать датафрейм так:import pandasql as pssql_query = '''SELECT * FROM customers WHERE "age" <= 25'''ps.sqldf(sql_query)
#библиотека
Книга «Django 3 на примерах» (2020)
Автор: Антонио Меле
Следуя за автором, вы создадите несколько проектов на базе фреймворка и познакомитесь с возможностями Django 3.
Репозиторий книги
#django
PyAutoGUI для снимков экранаimport pyautoguiscreen = pyautogui.screenshot()screen.save("my_image.png")
Скриншот всего экрана ляжет в текущий рабочий каталог, но путь можно изменить. Помимо этого инструмент поддерживает симуляцию нажатия клавиш, набора текста в поле ввода и проч.
Репозиторий на GitHub
#библиотека
whois для домена на Python
Библиотека позволяет выводить те же сведения о сайте, что и одноимённый сервис.>>> import whois>>> domain = whois.query('google.com')>>> print(domain.__dict__)... {... 'expiration_date': datetime.datetime(2020, 9, 14, ... 0, 0),... 'last_updated': datetime.datetime(2011, 7, 20, 0, 0),... 'registrar': 'MARKMONITOR INC.',... 'name': 'google.com',... 'creation_date': datetime.datetime(1997, 9, 15, 0, 0)... }>>> print(domain.expiration_date)... 2024-09-14 00:00:00
Репозиторий на GitHub
#библиотека
GIL: зачем он нужен и как с ним жить
Тимлид Evrone Григорий Петров очень доступно знакомит с Глобальной блокировкой интерпретатора в своей 35-минутной лекции. С помощью видео можно узнать на доступном языке:
— как засыпают и просыпаются потоки;
— от чего защищает GIL;
— как GIL работает изнутри.
#GIL
Задача о вычурном регистре
Напишите функцию, которая принимает строку и возвращает её же, причём все чётные символы в каждом слове записаны в верхнем регистре, а нечётные — в нижнем.
Пример:"Строка" => "СтРоКа"
Первый символ слова имеет нулевой индекс и является чётным, поэтому он должен быть в верхнем регистре. Вам предстоит начинать отсчёт заново для каждого слова.
Переданная строка будет состоять только из букв алфавита и пробелов. Пробелы будут присутствовать только в том случае, если слов несколько. Слова будут разделены одним пробелом.
#задача
tqdm для прогресс-баров на Python
Если вы создаёте свою библиотеку или автоматизируете процессы с помощью bash-скриптов, отобразить ход исполнения запущенных команд можно с помощью tqdm.
Репозиторий на GitHub
#библиотека
Gooey: из CLI-приложения в GUI
Gooey превратит вашу консольную программу в полноценное графическое приложение всего одной строкой кода.
Ссылка на репозиторий
#библиотека
Как устроиться в престижную компанию, когда тебе 18?
Несмотря на отсутствие большого опыта, есть возможность попасть в крупную IT-компанию, если проявить настойчивость и упорство.
Молодой специалист Александр поделился своей историей о том, как стал разработчиком, придумал идею проекта, опоздав на 40 минут на пару в колледже, и получил позицию в отделе AI Газпромбанка.
#карьера