| Total Complexity | 5 |
| Total Lines | 23 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | """This module contains the data structures that power Injectify.""" |
||
| 2 | |||
| 3 | from collections import UserList |
||
| 4 | from typing import Sequence |
||
| 5 | |||
| 6 | |||
| 7 | class listify(UserList): |
||
| 8 | """A ``list``-like object that wraps an object into a list if it is not |
||
| 9 | a sequence, or converts the object to a list if it is a sequence.""" |
||
| 10 | |||
| 11 | def __init__(self, initlist): |
||
| 12 | self.data = [] |
||
| 13 | |||
| 14 | if initlist is not None: |
||
| 15 | if isinstance(initlist, list): |
||
| 16 | self.data[:] = initlist |
||
| 17 | elif isinstance(initlist, UserList): |
||
| 18 | self.data[:] = initlist.data[:] |
||
| 19 | elif isinstance(initlist, Sequence): |
||
| 20 | self.data = list(initlist) |
||
| 21 | else: |
||
| 22 | self.data.append(initlist) |
||
| 23 |