patroni.collections module
Patroni custom object types somewhat like collections
module.
Provides a case insensitive dict
and set
object types, and EMPTY_DICT frozen dictionary object.
- class patroni.collections.CaseInsensitiveDict(data: Dict[str, Any] | None = None)View on GitHub
Bases:
MutableMapping
[str
,Any
]A case-insensitive
dict
-like object.Implements all methods and operations of
MutableMapping
as well asdict
’scopy()
. All keys are expected to be strings. The structure remembers the case of the last key to be set, anditer()
,dict.keys()
,dict.items()
,dict.iterkeys()
, anddict.iteritems()
will contain case-sensitive keys. However, querying and contains testing is case insensitive.- __init__(data: Dict[str, Any] | None = None) None View on GitHub
Create a new instance of
CaseInsensitiveDict
with the given data.- Parameters:
data – initial dictionary to create a
CaseInsensitiveDict
from.
- _abc_impl = <_abc._abc_data object>
- copy() CaseInsensitiveDict View on GitHub
Create a copy of this dict.
- Returns:
a new dict object with the same keys and values of this dict.
- keys() KeysView[str] View on GitHub
Return a new view of the dict’s keys.
- Returns:
a set-like object providing a view on the dict’s keys
- class patroni.collections.CaseInsensitiveSet(values: Collection[str] | None = None)View on GitHub
Bases:
MutableSet
[str
]A case-insensitive
set
-like object.Implements all methods and operations of
MutableSet
. All values are expected to be strings. The structure remembers the case of the last value set, however, contains testing is case insensitive.- __init__(values: Collection[str] | None = None) None View on GitHub
Create a new instance of
CaseInsensitiveSet
with the given values.- Parameters:
values – values to be added to the set.
- _abc_impl = <_abc._abc_data object>
- add(value: str) None View on GitHub
Add value to this set.
Search is performed case-insensitively. If value is already in the set, overwrite it with value, so we “remember” the last case of value.
- Parameters:
value – value to be added to the set.
- discard(value: str) None View on GitHub
Remove value from this set.
Search is performed case-insensitively. If value is not present in the set, no exception is raised.
- Parameters:
value – value to be removed from the set.
- issubset(other: CaseInsensitiveSet) bool View on GitHub
Check if this set is a subset of other.
- Parameters:
other – another set to be compared with this set.
- Returns:
True
if this set is a subset of other, elseFalse
.
- class patroni.collections._FrozenDict(*args: Any, **kwargs: Any)View on GitHub
-
Frozen dictionary object.
- __init__(*args: Any, **kwargs: Any) None View on GitHub
Create a new instance of
_FrozenDict
with given data.
- _abc_impl = <_abc._abc_data object>
- copy() Dict[str, Any] View on GitHub
Create a copy of this dict.
- Returns:
a new dict object with the same keys and values of this dict.