Classes¶
Utilities for dealing with Python classes.
- disseminate.utils.classes.all_attributes_values(cls, attribute)¶
Retrieve a list of all values for a given class’s attribute for the given class and all its parent classes.
- Parameters
- clsType
The class object to inspect for parent classes.
- attributestr
The attribute whose value should be retrieved from each class.
- Returns
- parent_attributeslist
The list of all parent classe attributes.
Examples
>>> class A(object): ... value = 'a' >>> class B(A): ... value = 'b' ... value2 = (1, 2) >>> class C(B): ... value = 'c' ... value2 = (2, 3) >>> sorted(all_attributes_values(C, 'value')) ['a', 'b', 'c'] >>> sorted(all_attributes_values(C, 'value2')) [1, 2, 3]
- disseminate.utils.classes.all_dicts(cls)¶
Produce a dict with entries from a given class’s __dict__ and the __dict__ of all its parent classes.
Precedence is given to the subclasses over parent classes if the attributes were overwritten by subclasses.
Examples
>>> class A(object): ... a1 = 1 ... a2 = 2 >>> class B(A): ... a2 = 3 ... b1 = 4 >>> d = all_dicts(B) >>> d['a1'] 1 >>> d['a2'] 3 >>> d['b1'] 4
- disseminate.utils.classes.all_parent_classes(cls)¶
Retrieve a list of all of parent classes for a given class.
- Parameters
- clsType
The class object to inspect for parent classes.
- Returns
- parent_classeslist
The list of all parent classes (not including the object class).
Examples
>>> class A(object): pass >>> class B(A): pass >>> class C(B): pass >>> all_parent_classes(C) [<class 'disseminate.utils.classes.B'>, <class 'disseminate.utils.classes.A'>]
- disseminate.utils.classes.all_subclasses(cls)¶
Retrieve all subclasses, sub-subclasses and so on for a class
- Parameters
- clsType
The class object to inspect for subclasses.
- Returns
- subclasseslist
The list of all subclasses.
Examples
>>> class A(object): pass >>> class B(A): pass >>> class C(B): pass >>> all_subclasses(A) [<class 'disseminate.utils.classes.B'>, <class 'disseminate.utils.classes.C'>]
- disseminate.utils.classes.i_chain¶
alias of
itertools.chain
- class disseminate.utils.classes.weakattr¶
Bases:
object
A descriptor to store a weakref to an object attribute