miio.descriptorcollection module

class miio.descriptorcollection.DescriptorCollection(*args, device: Device)[source]

Bases: UserDict, Generic[T]

A container of descriptors.

This is a glorified dictionary that provides several useful features for handling descriptors like binding names (method_name, setter_name) to device callables, setting property constraints, and handling duplicate identifiers.

add_descriptor(descriptor: Descriptor)[source]

Add a descriptor to the collection.

This adds a suffix to the identifier if the name already exists.

clear() None.  Remove all items from D.

Add descriptors from an object.

This collects descriptors from the given object and adds them into the collection by: 1. Checking for ‘_descriptors’ for descriptors created by the class itself. 2. Going through all members and looking if they have a ‘_descriptor’ attribute set by a decorator

classmethod fromkeys(iterable, value=None)
get(k[, d]) D[k] if k in D, else d.  d defaults to None.
items() a set-like object providing a view on D's items
keys() a set-like object providing a view on D's keys
pop(k[, d]) v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem() (k, v), remove and return some (key, value) pair

as a 2-tuple; but raise KeyError if D is empty.

setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D
update([E, ]**F) None.  Update D from mapping/iterable E and F.

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values() an object providing a view on D's values