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