-
Notifications
You must be signed in to change notification settings - Fork 6
Roadmap
David Foster edited this page May 25, 2024
·
101 revisions
- Fix issues in the v1.3 milestone:
- Recognize generic TypedDicts, like Point[int] (#28)
To satisfy the §"Statically narrowing" goal mentioned in trycast's Philosophy:
- Use TypeForm, to narrow the caller's argument when passing a non-Type
- Standardize TypeForm:
- ▶︎ Draft/shepherd PEP for TypeForm so that it can move to typing module
- ––
- Wait for a Python 3.x to be released with TypeForm in typing
- Revise imports of TypeForm to pull from typing module instead of typing_extensions when possible
- Release 0.y.1 version of trycast
- ❙ ❙ Implement TypeForm support in mypy -- https://github.com/python/mypy/issues/9773
- Revise {checkcast, trycast, isassignable} signatures to use TypeForm
- Standardize TypeForm:
- Use TypeIs instead of TypeGuard, to narrow the caller's argument in the negative case (when passing either a Type or a TypeForm)
- Shepherd/assist in acceptance of related PEP
- Revise {checkcast, trycast, isassignable} signatures to use TypeIs
Also:
- Improve documentation:
- Automate computation of code coverage % across all supported Python versions. Advertise in README prominently. Resources:
Support more types:
- (?) Add support for additional common non-JSON types:
- typing.Iterable
- typing.Iterator
- typing.Generator
- typing.ContextManager
- –––
- ⎋ Consider special items supported by typeguard
- ⎋ Consider special items supported by PEP 585 (Type Hinting Generics In Standard Collections)
- (?) Recognize other types and special forms, beyond just the JSON-related ones:
- User-defined generic types
- Typeguard supports these types by allowing users to write custom matchers as a plugin
- TypeVar
- Nominal vs structural subtyping: Sized, Iterable
-
Special typing primitives
- ... (many more)
-
Generic concrete collections
- typing.Set
- typing.FrozenSet
- ... (many more)
-
Abstract Base Classes
- typing.Iterable
- typing.Iterator
- typing.Generator
- typing.ContextManager
- ... (many more)
- Protocols
- User-defined generic types