You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.7 KiB
81 lines
1.7 KiB
2 years ago
|
"""Helpers for use with type annotation.
|
||
|
|
||
|
Use the empty classes in this module when annotating the types of Pyrsistent
|
||
|
objects, instead of using the actual collection class.
|
||
|
|
||
|
For example,
|
||
|
|
||
|
from pyrsistent import pvector
|
||
|
from pyrsistent.typing import PVector
|
||
|
|
||
|
myvector: PVector[str] = pvector(['a', 'b', 'c'])
|
||
|
|
||
|
"""
|
||
|
from __future__ import absolute_import
|
||
|
|
||
|
try:
|
||
|
from typing import Container
|
||
|
from typing import Hashable
|
||
|
from typing import Generic
|
||
|
from typing import Iterable
|
||
|
from typing import Mapping
|
||
|
from typing import Sequence
|
||
|
from typing import Sized
|
||
|
from typing import TypeVar
|
||
|
|
||
|
__all__ = [
|
||
|
'CheckedPMap',
|
||
|
'CheckedPSet',
|
||
|
'CheckedPVector',
|
||
|
'PBag',
|
||
|
'PDeque',
|
||
|
'PList',
|
||
|
'PMap',
|
||
|
'PSet',
|
||
|
'PVector',
|
||
|
]
|
||
|
|
||
|
T = TypeVar('T')
|
||
|
KT = TypeVar('KT')
|
||
|
VT = TypeVar('VT')
|
||
|
|
||
|
class CheckedPMap(Mapping[KT, VT], Hashable):
|
||
|
pass
|
||
|
|
||
|
# PSet.add and PSet.discard have different type signatures than that of Set.
|
||
|
class CheckedPSet(Generic[T], Hashable):
|
||
|
pass
|
||
|
|
||
|
class CheckedPVector(Sequence[T], Hashable):
|
||
|
pass
|
||
|
|
||
|
class PBag(Container[T], Iterable[T], Sized, Hashable):
|
||
|
pass
|
||
|
|
||
|
class PDeque(Sequence[T], Hashable):
|
||
|
pass
|
||
|
|
||
|
class PList(Sequence[T], Hashable):
|
||
|
pass
|
||
|
|
||
|
class PMap(Mapping[KT, VT], Hashable):
|
||
|
pass
|
||
|
|
||
|
# PSet.add and PSet.discard have different type signatures than that of Set.
|
||
|
class PSet(Generic[T], Hashable):
|
||
|
pass
|
||
|
|
||
|
class PVector(Sequence[T], Hashable):
|
||
|
pass
|
||
|
|
||
|
class PVectorEvolver(Generic[T]):
|
||
|
pass
|
||
|
|
||
|
class PMapEvolver(Generic[KT, VT]):
|
||
|
pass
|
||
|
|
||
|
class PSetEvolver(Generic[T]):
|
||
|
pass
|
||
|
except ImportError:
|
||
|
pass
|