You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be great if I could use TypedDict (PEP 589) equivalent for my type definition of Box.
I'm very new to python, so perhaps there is already a way to do this... I searched the Box docs, several pages of issues here, and asked in #python (they recommended I just make my own dataclasses/attrs)
but this is example TypedDict code:
from typing import TypedDict
class Movie(TypedDict):
name: str
year: int
def my_func(movie : Movie):
"""do some stuff"""
how to convert this so def my_func(movie: Box) works while also preserving the TypedDict Movie check?
one workaround might be:
def my_func(movie: Movie):
movie_box = Box(movie)
"""do some stuff"""
would this be too slow to always convert it? assume the calling function already has a box so would be converting to dict from a box, only to have it convert back to a box...
if I wanted to return a TypedDict I'd also have to convert my Box to a dict on return, only to have it reconverted back to a box.
These are just internal methods to my project, so I'm not worried about making the API require a Box, I thought it would save me having to convert them constantly, as I use Box everywhere.
As #python channel mentioned another alternative is to use dataclasses/attrs, but that seems to reinvent the wheel somewhat and brings me away from the convenience of Box and TypedDict's.
If there is already a way to do this, I humbly suggest a page on how to type Box's in the wiki docs be added. I hear basic typing of Box[str, Any] should work... but it is also not specifically documented.
Thanks for the great project!
The text was updated successfully, but these errors were encountered:
It would be great if I could use TypedDict (PEP 589) equivalent for my type definition of Box.
I'm very new to python, so perhaps there is already a way to do this... I searched the Box docs, several pages of issues here, and asked in #python (they recommended I just make my own dataclasses/attrs)
but this is example TypedDict code:
how to convert this so
def my_func(movie: Box)
works while also preserving the TypedDictMovie
check?one workaround might be:
would this be too slow to always convert it? assume the calling function already has a box so would be converting to dict from a box, only to have it convert back to a box...
if I wanted to return a TypedDict I'd also have to convert my Box to a dict on return, only to have it reconverted back to a box.
These are just internal methods to my project, so I'm not worried about making the API require a Box, I thought it would save me having to convert them constantly, as I use Box everywhere.
As #python channel mentioned another alternative is to use dataclasses/attrs, but that seems to reinvent the wheel somewhat and brings me away from the convenience of Box and TypedDict's.
If there is already a way to do this, I humbly suggest a page on how to type Box's in the wiki docs be added. I hear basic typing of
Box[str, Any]
should work... but it is also not specifically documented.Thanks for the great project!
The text was updated successfully, but these errors were encountered: