patroni.collections module¶
Patroni custom object types somewhat like collections
module.
Provides a case insensitive dict
and set
object types.
-
class
patroni.collections.
CaseInsensitiveDict
(data: Optional[Dict[str, Any]] = None)¶ Bases:
collections.abc.MutableMapping
,typing.Generic
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: Optional[Dict[str, Any]] = None) → None¶ Create a new instance of
CaseInsensitiveDict
with the given data.Parameters: data – initial dictionary to create a CaseInsensitiveDict
from.
-
_abc_impl
= <_abc_data object>¶
-
copy
() → patroni.collections.CaseInsensitiveDict¶ Create a copy of this dict.
Returns: a new dict object with the same keys and values of this dict.
-
keys
() → KeysView[str]¶ 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: Optional[Collection[str]] = None)¶ Bases:
collections.abc.MutableSet
,typing.Generic
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: Optional[Collection[str]] = None) → None¶ Create a new instance of
CaseInsensitiveSet
with the given values.Parameters: values – values to be added to the set.
-
_abc_impl
= <_abc_data object>¶
-
add
(value: str) → None¶ 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¶ 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: patroni.collections.CaseInsensitiveSet) → bool¶ 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
.
-