Validate arguments for traitlet link functions
(*tuples: t.Any)
| 259 | |
| 260 | |
| 261 | def _validate_link(*tuples: t.Any) -> None: |
| 262 | """Validate arguments for traitlet link functions""" |
| 263 | for tup in tuples: |
| 264 | if not len(tup) == 2: |
| 265 | raise TypeError( |
| 266 | "Each linked traitlet must be specified as (HasTraits, 'trait_name'), not %r" % t |
| 267 | ) |
| 268 | obj, trait_name = tup |
| 269 | if not isinstance(obj, HasTraits): |
| 270 | raise TypeError("Each object must be HasTraits, not %r" % type(obj)) |
| 271 | if trait_name not in obj.traits(): |
| 272 | raise TypeError(f"{obj!r} has no trait {trait_name!r}") |
| 273 | |
| 274 | |
| 275 | class link: |