Open gadenbuie opened 5 months ago
I think that we can allow other attributes with the new __extra_items__
syntax as described in https://peps.python.org/pep-0728/.
One of the useful things about the typed dictionaries is that they will tell you if you're missing a required field. The non-required fields can be useful for autocompletion.
(An aside: I can't remember why they're built the way they are, by combining two TypedDicts, one with required fields and one with non-required fields, instead of a single TypedDict with NotRequired
for some of the fields. Perhaps this code was written before NotRequired
was available?)
Oh I see, the part I was missing is that you have to open the dictionary key ""
to trigger the autocomplete.
I appreciate the effort in this type (and the one for script objects as well), but I think it might be overly limiting.
https://github.com/posit-dev/py-htmltools/blob/a3a98259ee4c5164763a6f70b86e531c13a5bcc1/htmltools/_core.py#L1322-L1341
I recently wanted to add a
data-
attribute to the<link>
tag for a set of stylesheets in the shinyswatchHTMLDependency
. I was pleased that stylesheet implementation lets me pass arbitrary attributes, but I had to disable type checking for the input.I also noticed that the presence of these types did not lead to any hints in the IDE, just type errors when checked. That might be a configuration issue on my end, or it might signal that the type annotation isn't as useful as expected.
Personally, I think the
TagAttrValues
type would balance flexibility and type checking.