feat: add cdef to unpack_variants (#95)
This commit is contained in:
@@ -4,3 +4,5 @@ import cython
|
|||||||
|
|
||||||
|
|
||||||
cpdef unpack_variants(object data)
|
cpdef unpack_variants(object data)
|
||||||
|
|
||||||
|
cdef _unpack_variants(object data)
|
||||||
|
|||||||
@@ -5,10 +5,14 @@ from .signature import Variant
|
|||||||
|
|
||||||
def unpack_variants(data: Any) -> Any:
|
def unpack_variants(data: Any) -> Any:
|
||||||
"""Unpack variants and remove signature info."""
|
"""Unpack variants and remove signature info."""
|
||||||
if isinstance(data, Variant):
|
return _unpack_variants(data)
|
||||||
return unpack_variants(data.value)
|
|
||||||
|
|
||||||
|
def _unpack_variants(data: Any) -> Any:
|
||||||
if isinstance(data, dict):
|
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):
|
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
|
return data
|
||||||
|
|||||||
Reference in New Issue
Block a user