Skip to content

Commit 67b07fb

Browse files
dstansbyjhamman
andauthored
Add more typing to zarr.group (#1870)
Co-authored-by: Joe Hamman <joe@earthmover.io>
1 parent f3305d9 commit 67b07fb

File tree

1 file changed

+30
-30
lines changed

1 file changed

+30
-30
lines changed

src/zarr/group.py

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from __future__ import annotations
2-
from typing import TYPE_CHECKING
2+
from typing import TYPE_CHECKING, Iterator
33
from dataclasses import asdict, dataclass, field, replace
44

55
import asyncio
@@ -256,7 +256,7 @@ async def _save_metadata(self) -> None:
256256
await asyncio.gather(*awaitables)
257257

258258
@property
259-
def attrs(self):
259+
def attrs(self) -> dict[str, Any]:
260260
return self.metadata.attributes
261261

262262
@property
@@ -301,7 +301,7 @@ async def create_array(
301301
zarr_format=self.metadata.zarr_format,
302302
)
303303

304-
async def update_attributes(self, new_attributes: dict[str, Any]):
304+
async def update_attributes(self, new_attributes: dict[str, Any]) -> "AsyncGroup":
305305
# metadata.attributes is "frozen" so we simply clear and update the dict
306306
self.metadata.attributes.clear()
307307
self.metadata.attributes.update(new_attributes)
@@ -319,7 +319,7 @@ async def update_attributes(self, new_attributes: dict[str, Any]):
319319

320320
return self
321321

322-
def __repr__(self):
322+
def __repr__(self) -> str:
323323
return f"<AsyncGroup {self.store_path}>"
324324

325325
async def nmembers(self) -> int:
@@ -394,31 +394,31 @@ async def arrays(self) -> AsyncGenerator[AsyncArray, None]:
394394
if isinstance(value, AsyncArray):
395395
yield value
396396

397-
async def tree(self, expand=False, level=None) -> Any:
397+
async def tree(self, expand: bool = False, level: int | None = None) -> Any:
398398
raise NotImplementedError
399399

400-
async def empty(self, **kwargs) -> AsyncArray:
400+
async def empty(self, **kwargs: Any) -> AsyncArray:
401401
raise NotImplementedError
402402

403-
async def zeros(self, **kwargs) -> AsyncArray:
403+
async def zeros(self, **kwargs: Any) -> AsyncArray:
404404
raise NotImplementedError
405405

406-
async def ones(self, **kwargs) -> AsyncArray:
406+
async def ones(self, **kwargs: Any) -> AsyncArray:
407407
raise NotImplementedError
408408

409-
async def full(self, **kwargs) -> AsyncArray:
409+
async def full(self, **kwargs: Any) -> AsyncArray:
410410
raise NotImplementedError
411411

412-
async def empty_like(self, prototype: AsyncArray, **kwargs) -> AsyncArray:
412+
async def empty_like(self, prototype: AsyncArray, **kwargs: Any) -> AsyncArray:
413413
raise NotImplementedError
414414

415-
async def zeros_like(self, prototype: AsyncArray, **kwargs) -> AsyncArray:
415+
async def zeros_like(self, prototype: AsyncArray, **kwargs: Any) -> AsyncArray:
416416
raise NotImplementedError
417417

418-
async def ones_like(self, prototype: AsyncArray, **kwargs) -> AsyncArray:
418+
async def ones_like(self, prototype: AsyncArray, **kwargs: Any) -> AsyncArray:
419419
raise NotImplementedError
420420

421-
async def full_like(self, prototype: AsyncArray, **kwargs) -> AsyncArray:
421+
async def full_like(self, prototype: AsyncArray, **kwargs: Any) -> AsyncArray:
422422
raise NotImplementedError
423423

424424
async def move(self, source: str, dest: str) -> None:
@@ -462,16 +462,16 @@ def __getitem__(self, path: str) -> Array | Group:
462462
else:
463463
return Group(obj)
464464

465-
def __delitem__(self, key) -> None:
465+
def __delitem__(self, key: str) -> None:
466466
self._sync(self._async_group.delitem(key))
467467

468-
def __iter__(self):
468+
def __iter__(self) -> Iterator[str]:
469469
raise NotImplementedError
470470

471-
def __len__(self):
471+
def __len__(self) -> int:
472472
raise NotImplementedError
473473

474-
def __setitem__(self, key, value):
474+
def __setitem__(self, key: str, value: Any) -> None:
475475
"""__setitem__ is not supported in v3"""
476476
raise NotImplementedError
477477

@@ -502,7 +502,7 @@ def attrs(self) -> Attributes:
502502
def info(self):
503503
return self._async_group.info
504504

505-
def update_attributes(self, new_attributes: dict[str, Any]):
505+
def update_attributes(self, new_attributes: dict[str, Any]) -> "Group":
506506
self._sync(self._async_group.update_attributes(new_attributes))
507507
return self
508508

@@ -521,7 +521,7 @@ def members(self) -> tuple[tuple[str, Array | Group], ...]:
521521
result = tuple(map(lambda kv: (kv[0], _parse_async_node(kv[1])), _members))
522522
return result
523523

524-
def __contains__(self, member) -> bool:
524+
def __contains__(self, member: str) -> bool:
525525
return self._sync(self._async_group.contains(member))
526526

527527
def group_keys(self) -> tuple[str, ...]:
@@ -537,37 +537,37 @@ def array_keys(self) -> tuple[str, ...]:
537537
def arrays(self) -> tuple[Array, ...]:
538538
return tuple(Array(obj) for obj in self._sync_iter(self._async_group.arrays()))
539539

540-
def tree(self, expand=False, level=None) -> Any:
540+
def tree(self, expand: bool = False, level: int | None = None) -> Any:
541541
return self._sync(self._async_group.tree(expand=expand, level=level))
542542

543-
def create_group(self, name: str, **kwargs) -> Group:
543+
def create_group(self, name: str, **kwargs: Any) -> Group:
544544
return Group(self._sync(self._async_group.create_group(name, **kwargs)))
545545

546-
def create_array(self, name: str, **kwargs) -> Array:
546+
def create_array(self, name: str, **kwargs: Any) -> Array:
547547
return Array(self._sync(self._async_group.create_array(name, **kwargs)))
548548

549-
def empty(self, **kwargs) -> Array:
549+
def empty(self, **kwargs: Any) -> Array:
550550
return Array(self._sync(self._async_group.empty(**kwargs)))
551551

552-
def zeros(self, **kwargs) -> Array:
552+
def zeros(self, **kwargs: Any) -> Array:
553553
return Array(self._sync(self._async_group.zeros(**kwargs)))
554554

555-
def ones(self, **kwargs) -> Array:
555+
def ones(self, **kwargs: Any) -> Array:
556556
return Array(self._sync(self._async_group.ones(**kwargs)))
557557

558-
def full(self, **kwargs) -> Array:
558+
def full(self, **kwargs: Any) -> Array:
559559
return Array(self._sync(self._async_group.full(**kwargs)))
560560

561-
def empty_like(self, prototype: AsyncArray, **kwargs) -> Array:
561+
def empty_like(self, prototype: AsyncArray, **kwargs: Any) -> Array:
562562
return Array(self._sync(self._async_group.empty_like(prototype, **kwargs)))
563563

564-
def zeros_like(self, prototype: AsyncArray, **kwargs) -> Array:
564+
def zeros_like(self, prototype: AsyncArray, **kwargs: Any) -> Array:
565565
return Array(self._sync(self._async_group.zeros_like(prototype, **kwargs)))
566566

567-
def ones_like(self, prototype: AsyncArray, **kwargs) -> Array:
567+
def ones_like(self, prototype: AsyncArray, **kwargs: Any) -> Array:
568568
return Array(self._sync(self._async_group.ones_like(prototype, **kwargs)))
569569

570-
def full_like(self, prototype: AsyncArray, **kwargs) -> Array:
570+
def full_like(self, prototype: AsyncArray, **kwargs: Any) -> Array:
571571
return Array(self._sync(self._async_group.full_like(prototype, **kwargs)))
572572

573573
def move(self, source: str, dest: str) -> None:

0 commit comments

Comments
 (0)