Skip to content

Support for protocols / runtime_checkable breaks #301

@vwxyzjn

Description

@vwxyzjn
from dataclasses import dataclass
from typing import Protocol, Optional, runtime_checkable

import pydantic
import tyro

@runtime_checkable
class ClassA(Protocol):
    def test(self) -> float:
        ...

@dataclass
class ClassB(pydantic.BaseModel):
    class_a: ClassA
    def test(self) -> float:
        return self.class_a.test()

@dataclass
class Args:
    class_b: ClassB

if __name__ == "__main__":
    args = tyro.cli(Args)
    print(args)
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions