Skip to content

Commit f76985a

Browse files
committed
optimized iterate function
1 parent 7471b43 commit f76985a

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

satcfdi/diot/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ def __init__(
341341
complementaria: DatosComplementaria = None,
342342
proveedores: ProveedorTercero | Sequence[ProveedorTercero] = None
343343
):
344-
proveedores = iterate(proveedores)
344+
proveedores = list(iterate(proveedores))
345345

346346
self.datos_identificacion = datos_identificacion
347347
self.datos_generales = DatosGenerales(

satcfdi/utils.py

+9-8
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@ class ScalarMap(dict):
2020

2121
def iterate(item):
2222
if isinstance(item, str | bytes | ScalarMap):
23-
return [item]
24-
if isinstance(item, Mapping):
25-
return item.values()
26-
if isinstance(item, Sequence):
27-
return item
28-
if item is None:
29-
return []
30-
return [item]
23+
yield item
24+
elif isinstance(item, Mapping):
25+
yield from item.values()
26+
elif isinstance(item, Sequence):
27+
yield from item
28+
elif item is None:
29+
return
30+
else:
31+
yield item
3132

3233

3334
class StrEnum(str, enum.Enum): # Compatible with Python 3.10

0 commit comments

Comments
 (0)