17db96d56Sopenharmony_cifrom typing import Any, Dict, Iterator, List, Protocol, TypeVar, Union
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_ci_T = TypeVar("_T")
57db96d56Sopenharmony_ci
67db96d56Sopenharmony_ci
77db96d56Sopenharmony_ciclass PackageMetadata(Protocol):
87db96d56Sopenharmony_ci    def __len__(self) -> int:
97db96d56Sopenharmony_ci        ...  # pragma: no cover
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ci    def __contains__(self, item: str) -> bool:
127db96d56Sopenharmony_ci        ...  # pragma: no cover
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_ci    def __getitem__(self, key: str) -> str:
157db96d56Sopenharmony_ci        ...  # pragma: no cover
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_ci    def __iter__(self) -> Iterator[str]:
187db96d56Sopenharmony_ci        ...  # pragma: no cover
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ci    def get_all(self, name: str, failobj: _T = ...) -> Union[List[Any], _T]:
217db96d56Sopenharmony_ci        """
227db96d56Sopenharmony_ci        Return all values associated with a possibly multi-valued key.
237db96d56Sopenharmony_ci        """
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci    @property
267db96d56Sopenharmony_ci    def json(self) -> Dict[str, Union[str, List[str]]]:
277db96d56Sopenharmony_ci        """
287db96d56Sopenharmony_ci        A JSON-compatible form of the metadata.
297db96d56Sopenharmony_ci        """
307db96d56Sopenharmony_ci
317db96d56Sopenharmony_ci
327db96d56Sopenharmony_ciclass SimplePath(Protocol):
337db96d56Sopenharmony_ci    """
347db96d56Sopenharmony_ci    A minimal subset of pathlib.Path required by PathDistribution.
357db96d56Sopenharmony_ci    """
367db96d56Sopenharmony_ci
377db96d56Sopenharmony_ci    def joinpath(self) -> 'SimplePath':
387db96d56Sopenharmony_ci        ...  # pragma: no cover
397db96d56Sopenharmony_ci
407db96d56Sopenharmony_ci    def __truediv__(self) -> 'SimplePath':
417db96d56Sopenharmony_ci        ...  # pragma: no cover
427db96d56Sopenharmony_ci
437db96d56Sopenharmony_ci    def parent(self) -> 'SimplePath':
447db96d56Sopenharmony_ci        ...  # pragma: no cover
457db96d56Sopenharmony_ci
467db96d56Sopenharmony_ci    def read_text(self) -> str:
477db96d56Sopenharmony_ci        ...  # pragma: no cover
48