TypeChat icon indicating copy to clipboard operation
TypeChat copied to clipboard

[python] Upgrade the imports in examples

Open pamelafox opened this issue 11 months ago • 3 comments

Pyupgrade recommends:

import asyncio
from typing import Annotated, Literal, TypedDict

import dotenv
from typing_extensions import Doc

As everything but Doc has been in typing since 3.8 or 3.9:

https://docs.python.org/3/library/typing.html#typing.Literal

Apparently Doc is non-standard, interesting discussion on the PEP here: https://discuss.python.org/t/pep-727-documentation-metadata-in-typing/32566/172

It seems unlikely to get accepted, but I assume its the only way to document when using TypedDict? That's what I saw in the examples.

pamelafox avatar Mar 17 '24 21:03 pamelafox

Ah but then there's a Pydantic error in 3.11:

Please use typing_extensions.TypedDict instead of typing.TypedDict on Python < 3.12

Dang! I'll just ignore my linter then / add a noqa. That might be worth mentioning in documentation about using TypeChat with TypedDict.

pamelafox avatar Mar 17 '24 21:03 pamelafox

I assume its the only way to document when using TypedDict

So if you use Annotated[SomeType, Doc(...)] we recognize that. Some folks working on Python recommended we future-proof on that.

But we also just recognize Annotated[SomeType, "Some comment string."] because that's so common anyway (and it just feels better to use).

DanielRosenwasser avatar Mar 18 '24 18:03 DanielRosenwasser

Ah okay, I saw that mentioned in the Discourse thread but wasnt sure if that was also a standard. I recommend documenting both of those.

pamelafox avatar Mar 18 '24 18:03 pamelafox