Passed
Push — main ( 7dfda8...6c744e )
by Sat CFDI
05:07
created

satcfdi.utils.iterate()   A

Complexity

Conditions 5

Size

Total Lines 10
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 5

Importance

Changes 0
Metric Value
cc 5
eloc 10
nop 1
dl 0
loc 10
ccs 10
cts 10
cp 1
crap 5
rs 9.3333
c 0
b 0
f 0
1 1
import enum
2 1
from collections.abc import Sequence, Mapping
3
4
5 1
class ScalarMap(dict):
6 1
    pass
7
8
9 1
def iterate(item):
10 1
    if isinstance(item, str | bytes | ScalarMap):
11 1
        return [item]
12 1
    if isinstance(item, Mapping):
13 1
        return item.values()
14 1
    if isinstance(item, Sequence):
15 1
        return item
16 1
    if item is None:
17 1
        return []
18 1
    return [item]
19
20
21 1
class StrEnum(str, enum.Enum):
22 1
    def __str__(self):
23 1
        return str(self.value)
24
25