-
-
Notifications
You must be signed in to change notification settings - Fork 355
add modules for types #3355
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
add modules for types #3355
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3355 +/- ##
=======================================
Coverage 94.54% 94.54%
=======================================
Files 78 80 +2
Lines 9423 9467 +44
=======================================
+ Hits 8909 8951 +42
- Misses 514 516 +2
🚀 New features to boost your workflow:
|
…ure with comprehensive exports This approach builds on PR zarr-developers#3355's zarr.core.types foundation while massively expanding zarr.types public exports to enable comprehensive type documentation linking. The hybrid strategy provides the best of both worlds: - Maintains clean architectural separation (internal zarr.core.types vs public zarr.types) - Enables comprehensive documentation coverage (~75% vs ~7% with vanilla PR zarr-developers#3355) - Provides excellent developer experience with single import location - Supports all common types used in function signatures for proper Sphinx linking Key additions to zarr.types public API: - Core classes: Array, AsyncArray, Group, AsyncGroup, ZDType, DefaultFillValue - Store types: Store, StorePath, StoreLike, ByteGetter, ByteSetter - Array types: NDArrayLike, ArrayLike, ZDTypeLike - Metadata types: ArrayV2Metadata, ArrayV3Metadata, GroupMetadata, ConsolidatedMetadata - Codec types: BaseCodec, ArrayArrayCodec, BytesBytesCodec, CompressorLike, etc. - Configuration types: ArrayConfig, ArrayConfigLike, ChunkKeyEncodingLike - Enum types: BloscCname, BloscShuffle, Endian, Order, etc. This enables the core goal: "ideally everything in a type hint will be linkable" while maintaining good software engineering practices. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> Co-Authored-By: Davis Bennett <[email protected]>
The trouble with defining objects in two places (here, To prevent this, could we either:
? Related, there are types that are in |
that might be the first step to refining this PR -- we should figure out exactly which types are public. Definitely anything used as an annotation of a public function signature should be public. In this case, these types should be defined just once in |
This does a few things:
zarr.core.types
,zarr.types