Append ``a`` to the list of the virtual ancestors, unless it is already included.
(a, vancestors)
| 304 | # ############################ dispatch_on ############################ # |
| 305 | |
| 306 | def append(a, vancestors): |
| 307 | """ |
| 308 | Append ``a`` to the list of the virtual ancestors, unless it is already |
| 309 | included. |
| 310 | """ |
| 311 | add = True |
| 312 | for j, va in enumerate(vancestors): |
| 313 | if issubclass(va, a): |
| 314 | add = False |
| 315 | break |
| 316 | if issubclass(a, va): |
| 317 | vancestors[j] = a |
| 318 | add = False |
| 319 | if add: |
| 320 | vancestors.append(a) |
| 321 | |
| 322 | |
| 323 | # inspired from simplegeneric by P.J. Eby and functools.singledispatch |