feat: add cdef to unpack_variants (#95)
This commit is contained in:
parent
baa3e9fd6b
commit
dbf42c3707
@ -4,3 +4,5 @@ import cython
|
||||
|
||||
|
||||
cpdef unpack_variants(object data)
|
||||
|
||||
cdef _unpack_variants(object data)
|
||||
|
||||
@ -5,10 +5,14 @@ from .signature import Variant
|
||||
|
||||
def unpack_variants(data: Any) -> Any:
|
||||
"""Unpack variants and remove signature info."""
|
||||
if isinstance(data, Variant):
|
||||
return unpack_variants(data.value)
|
||||
return _unpack_variants(data)
|
||||
|
||||
|
||||
def _unpack_variants(data: Any) -> Any:
|
||||
if isinstance(data, dict):
|
||||
return {k: unpack_variants(v) for k, v in data.items()}
|
||||
return {k: _unpack_variants(v) for k, v in data.items()}
|
||||
if isinstance(data, list):
|
||||
return [unpack_variants(item) for item in data]
|
||||
return [_unpack_variants(item) for item in data]
|
||||
if isinstance(data, Variant):
|
||||
return _unpack_variants(data.value)
|
||||
return data
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user