Зачем в Python .pyi файлы и чем они полезны? Stub файлы в Python

Зачем в Python .pyi файлы и чем они полезны? Stub файлы в Python

Диджитализируй!

3 года назад

30,277 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

Иван Закутний
Иван Закутний - 21.10.2023 16:05

а как сделать stub file для сторонней установленной библиотеки, которая написана без type хинтингов?

Ответить
Гамзат Клычев
Гамзат Клычев - 28.05.2023 11:10

Всё доходчиво!!! Подача материала супер. Успехов и 1 000 000 пользователей.

Ответить
Vktr L
Vktr L - 01.12.2022 04:12

Всем привет
Не у кого не возникала проблема, что при переходе на реализацию (хочешь перейти на описание функции ctrl+клик мыши) переходит на эти pyi файлы?

Ответить
Papricka
Papricka - 28.05.2022 17:16

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

Ответить
Zea Lot
Zea Lot - 02.02.2022 23:46

Большое спасибо за видео

Ответить
ntvisigoth
ntvisigoth - 21.12.2021 18:20

@Диджитализируй!
А можешь пояснить,а почему такое кол-во Issues в репозитории Mypy ? Может и не стоит доверять ему? ;)

Ответить
ntvisigoth
ntvisigoth - 21.12.2021 18:03

Мне как новичку в использовании аннотаций не совсем понятно вот что:
Допустим у меня есть requests библиотека. То что мне надо сделать? Самому написать pyi файлы к ней и если да, то где потом лучше всего расположить так, чтоб никого из будущих читателей кода не удивлять?

Ответить
Aleksandr Domanskiy
Aleksandr Domanskiy - 11.11.2021 09:36

Белый фон убивает если смотреть вечером, осенью, в не самой освещенной комнате )

Ответить
Миша Алексеев
Миша Алексеев - 06.10.2021 09:20

Всем привет, подскажите пж, как бороться с циклическими import при указании тайп хинтингов?

Ответить
Valerii Volkov
Valerii Volkov - 28.07.2021 00:58

Спасибо за практическое видео! Очень интересно и полезно оказалось!

Ответить
Ручей
Ручей - 30.05.2021 10:33

Т.е. эта фишка исключительно для идеешек? Но тогда мы просто наплодим кучу файлов?

Ответить
Ручей
Ручей - 30.05.2021 10:30

О, мастер джедай использует технику Vim в pycharme :)

Ответить
Ручей
Ручей - 30.05.2021 10:28

stub file - файл заглушка. Хм... как звучит. Предлагаю ввести понятие crutch file - файл костыль, более распространённое явление.

Ответить
M A
M A - 21.05.2021 12:38

Рисковый номер! Впервые на арене Алексей в приветствии не называет всех зрителей котами-котонами!

Ответить
Ерванд Агаджанян
Ерванд Агаджанян - 24.04.2021 22:55

Очень полезное видео! Продолжайте в том же духе)))

Ответить
Вячеслав Белоус
Вячеслав Белоус - 02.04.2021 01:21

вообще-то в расматриваемой функции и float и int можно использовать например. Это как-то можно захинтить чтоб оба варианта принимались?

Ответить
Денис Новик
Денис Новик - 20.03.2021 11:55

Спасибо!

Ответить
Антон Ковалевич
Антон Ковалевич - 07.02.2021 21:01

Спасибо за хорошее видео. Тайпхинтинг -- хорошая штука, но есть один нюанс. Для функции `custom_sum` мы указали, что входные аргументы имеют тип `int`, и функция возвращает `int`. Но работать она будет и с `float`. А потом оказывается, что прожуёт она и `decimal.Decimal`. Ну окей, у нас есть `typing.Union` -- в чём проблема перечислить? То же касается возвращаемого результата. А потом вдруг оказывается, что допустимы и типы `numpy.*` -- их предусмотреть уже нетривиальная задача. Не менее смешно, что функция прожуёт и sqlalchemy.Column -- и как такое предусмотреть?

Итого по тайпхинтам у меня вопросов больше, чем ответов.

Ответить
Sergio
Sergio - 24.01.2021 09:47

костыль :)

Ответить
Vladyslav Stadnyk
Vladyslav Stadnyk - 09.01.2021 20:23

Привет! Клевый канал, смотрю тебя периодически. Больше с точки зрения именно python, чем веб.
У тебя есть видео про декораторы? Смысл, как их делать, а главное зачем.
Никак не могу найти им применение в реальной жизни.
В смысле, понятно, где их можно юзать разработчику библиотек, а разработчику обычных программ есть смысл?

Ответить
Михаил Кадочников
Михаил Кадочников - 20.12.2020 20:01

Агонь! Вообще агонь!

Ответить
Aleks Botler
Aleks Botler - 04.11.2020 13:39

1.Разрабатываем ЯП, в котором не нужно прописывать тип переменной, радуемся тому, как круто теперь можно в любое время переменной присвоить значение любого типа и не задавать его при создании переменной.
2. Начинаем писать большие по объему сложные программные системы, начинаем терять контроль над типами, куда, что передавать, и что возвращает функция. При создании программы ide и при компиляции среда исполнения не могут нам помочь, но далее при исполнении начинает вылетать с ошибкой несоответствия типа.
3. Начинаем придумывать костыли, чтобы ПО могло проверить типы, и не надо было это делать вручную.

Ответить
YUYU live
YUYU live - 03.11.2020 22:36

прикольно не знал, спасибо

Ответить
LoloKsyu
LoloKsyu - 31.10.2020 02:38

Как быть если функции с одним и тем же именем? И где ищутся соответствующие функции, внутри той же директории?

Ответить
RomaxSinergy
RomaxSinergy - 29.10.2020 04:54

Рубрика... Monthy Python

Ответить
RomaxSinergy
RomaxSinergy - 29.10.2020 04:16

В .Net оно лучше.
Документирование через комменты, и файлы плодить не надо.

Ответить
Александр Болбат
Александр Болбат - 26.10.2020 19:28

Заголовочный файл, стало быть.

Ответить
Kostya Ten
Kostya Ten - 24.10.2020 02:17

А расскажи как возвращать dict с описанием типов {"a": 1, "b": "test", "c": {"hello": "word"}} ?

Ответить
Фаррухбек Улугбеков
Фаррухбек Улугбеков - 20.10.2020 00:35

Спасибо за видео!

Ответить
Engineer
Engineer - 18.10.2020 11:17

Когда курс ))? И в каком формате все таки он будет ?) уже статистика то есть по анкетам наверно , и решение выработано по-любому )...

Ответить
HeavyLexer
HeavyLexer - 17.10.2020 13:59

самое смешное, что благодаря этим *.pyi файлам, когда в пайчарме хочешь перейти к дефинишену функции, он тебя редиректит не на реальный дефинишн, а на функцию с тайпхинтингом. Как это перенастроить - хз! бесит, дико

Ответить
Alexander under
Alexander under - 15.10.2020 11:05

Оч круто! Спасибо)

Ответить
Алексей Б
Алексей Б - 14.10.2020 23:03

Кто-нибудь шарит за Dash? Или, возможно, кто-то может помочь, как реализовать рисование графа в браузере

Ответить
Grow Glow
Grow Glow - 13.10.2020 22:14

Как раз на крайнем Python Conf++ рассказывали про использование stubs для "обтипизации" Django силами monkeytype и волонтерами - хороший пример как и для чего можно применять сабж.

Ответить
August Custom Garage
August Custom Garage - 13.10.2020 20:10

.pyi чисто для IDE ?

Ответить
Oleh Diatlenko
Oleh Diatlenko - 13.10.2020 19:23

у меня колокольчик на взводе, не грусти

Ответить
Serg Mirny
Serg Mirny - 13.10.2020 17:48

Огонь

Ответить
Max
Max - 13.10.2020 15:44

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

Ответить
Roman Matveev
Roman Matveev - 13.10.2020 12:40

Некий аналог заголовочного файла (.h) в языке Си

Ответить
Елисей
Елисей - 13.10.2020 11:29

Автор, какого это бесплатно батрачить на Apple? Мало того, что вы у них купили технику за немалую сумму, так вы еще бесплатно работаете на них рекламным агентом, в каждом своем видео рекламируете их компанию. Мне даже интересно, сколько людей, смотревших ваши видео, в итоге пошли и купили продукцию Apple :) А корпорация вам за это не платит ни копейки... Я против рабского труда, если честно, поэтому и пишу об этом, чтобы вы перестали бесплатно батрачить на самую дорогую корпорацию в мире, которая поднялась таки благодаря миллионам бесплатных работников по всему миру, рекламирующих всем корпорацию Apple, и даже не подозревающих об этом, что они бесплатно батрачат на корпорацию.
Хотя бы заклейте их логотип что-ли... Разве вам не обидно, что в стольких ваших видео вы бесплатно рекламируете корпорацию?

Ответить
Ruslan Red
Ruslan Red - 13.10.2020 11:05

Зачем в Python .pyi файлы и чем они полезны?





За тем же, зачем в TypeScript нужны файлы *.d.ts.

Занавес, музыка из "Ералаша" (парам-пара-пам)

Ответить
Oleksander Shevchenko
Oleksander Shevchenko - 13.10.2020 10:56

Тайп хинтинги рулят. Бенефитов много... Кроме клин кодинга стоит подумать о клин спикинге... :-))))

Ответить
Aleksandr Aleksandrov
Aleksandr Aleksandrov - 13.10.2020 00:15

А почему нельзя в основном файле написать def custom_sum(a : int, b : int): return a + b + 123?

Ответить
Dmitriy
Dmitriy - 12.10.2020 18:09

А где же "здоров котаны©" ?

Ответить
Имя Фамилия
Имя Фамилия - 12.10.2020 16:14

Сначала мы придумаем язык программирования с динамической типизацией, а потом мы будем всячески бороться с этим

Ответить
evgeniy matashkov
evgeniy matashkov - 12.10.2020 16:04

Почаще ролики выпускай

Ответить
Andrey Grand
Andrey Grand - 12.10.2020 15:13

Спасибо большое за полезные видео!

Ответить
Kirill Andreev
Kirill Andreev - 12.10.2020 14:02

Подскажите, есть ли какая то информация по поводу ваших курсов? Когда планируется запуск?

Ответить
Benya
Benya - 12.10.2020 13:42

Хороший велосипед

Ответить