diff --git a/deps/requirements-pyright.txt b/deps/requirements-pyright.txt index 2bff5696..f9a7c899 100644 --- a/deps/requirements-pyright.txt +++ b/deps/requirements-pyright.txt @@ -1 +1 @@ -pyright==1.1.287 \ No newline at end of file +pyright==1.1.288 \ No newline at end of file diff --git a/src/hydra_zen/structured_configs/_type_guards.py b/src/hydra_zen/structured_configs/_type_guards.py index 4699ad9a..d75d1986 100644 --- a/src/hydra_zen/structured_configs/_type_guards.py +++ b/src/hydra_zen/structured_configs/_type_guards.py @@ -11,7 +11,7 @@ from hydra_zen.funcs import get_obj, zen_processing from hydra_zen.structured_configs._utils import safe_name from hydra_zen.typing import Builds, Just, PartialBuilds -from hydra_zen.typing._implementations import DataClass_ +from hydra_zen.typing._implementations import DataClass_, HasTarget from ._globals import ( JUST_FIELD_NAME, @@ -67,7 +67,7 @@ def safe_getattr(obj: Any, field: str, *default: Any) -> Any: return getattr(obj, field, *default) -def _get_target(x: Builds[Any]) -> Any: +def _get_target(x: HasTarget) -> Any: return safe_getattr(x, TARGET_FIELD_NAME) diff --git a/src/hydra_zen/structured_configs/_utils.py b/src/hydra_zen/structured_configs/_utils.py index 8591cb00..30b76775 100644 --- a/src/hydra_zen/structured_configs/_utils.py +++ b/src/hydra_zen/structured_configs/_utils.py @@ -599,11 +599,11 @@ def merge_settings( _DATACLASS_OPTION_KEYS: FrozenSet[str] = ( - DataclassOptions.__required_keys__ | DataclassOptions.__optional_keys__ # type: ignore + DataclassOptions.__required_keys__ | DataclassOptions.__optional_keys__ ) _STRICT_DATACLASS_OPTION_KEYS: FrozenSet[str] = ( - StrictDataclassOptions.__required_keys__ | StrictDataclassOptions.__optional_keys__ # type: ignore + StrictDataclassOptions.__required_keys__ | StrictDataclassOptions.__optional_keys__ ) _STRICT_DATACLASS_OPTION_KEYS.copy() @@ -697,7 +697,10 @@ def parse_dataclass_options(options: Mapping[str, Any]) -> DataclassOptions: def parse_strict_dataclass_options( options: Mapping[str, Any] ) -> TypeGuard[StrictDataclassOptions]: - return options.keys() <= _STRICT_DATACLASS_OPTION_KEYS and StrictDataclassOptions.__required_keys__ <= options.keys() # type: ignore + return ( + options.keys() <= _STRICT_DATACLASS_OPTION_KEYS + and StrictDataclassOptions.__required_keys__ <= options.keys() + ) _HYDRA_CONVERT_OPTIONS = ( diff --git a/src/hydra_zen/typing/_implementations.py b/src/hydra_zen/typing/_implementations.py index 756a3df9..1a489f2c 100644 --- a/src/hydra_zen/typing/_implementations.py +++ b/src/hydra_zen/typing/_implementations.py @@ -134,6 +134,11 @@ def __setattr__(self, __name: str, __value: Any) -> None: ... +@runtime_checkable +class HasTarget(Protocol): + _target_: str + + @runtime_checkable class Builds(DataClass, Protocol[T]): _target_: ClassVar[str] @@ -178,11 +183,6 @@ class HydraPartialBuilds(Builds[T], HydraPartialMixin[T], Protocol[T]): PartialBuilds: TypeAlias = Union[ZenPartialBuilds[T], HydraPartialBuilds[T]] -@runtime_checkable -class HasTarget(Protocol): - _target_: str - - Importable = TypeVar("Importable", bound=Callable[..., Any]) _HydraPrimitive: TypeAlias = Union[ diff --git a/src/hydra_zen/wrapper/_implementations.py b/src/hydra_zen/wrapper/_implementations.py index 518feee3..05c16fab 100644 --- a/src/hydra_zen/wrapper/_implementations.py +++ b/src/hydra_zen/wrapper/_implementations.py @@ -822,7 +822,9 @@ class _StoreCallSig(TypedDict): __kw={}, ) -_DEFAULT_KEYS: Final[FrozenSet[str]] = frozenset(_StoreCallSig.__required_keys__ - {"__kw"}) # type: ignore +_DEFAULT_KEYS: Final[FrozenSet[str]] = frozenset( + _StoreCallSig.__required_keys__ - {"__kw"} +) class _Deferred: