.pyi файлы - это стабы (stubs), их назначение и формат описаны в PEP 484. Эти файлы вообще никак не используются интерпретатором, их назначение - предоставлять информацию о типизации кода. К примеру, у тебя есть сторонний модуль без типизации, который не твой, редактировать его ты не можешь, а прописать типы хотелось бы:
# fizz.py def greet(who): return f'Hello {who}'
Выход находится с помощью стаба: создаешь файл fizz.pyi, который содержит типизированную сигнатуру greet без имплементации:
# fizz.pyi def greet(who: str) -> str: ...
date_object = datetime.strptime(date_string, "%I:%M %p %Z")
*args
, **kwargs
?