from typing import TypeVar, Protocol, Generic


VP = TypeVar("VP", bound="BinaryPackagePath")
S = TypeVar("S", str, bytes)


class DirEntryLike(Protocol, Generic[S]):
    def is_file(self, *, follow_symlinks=True) -> bool:
        raise NotImplementedError()

    @property
    def name(self) -> S:
        raise NotImplementedError()

    @property
    def path(self) -> S:
        raise NotImplementedError()
