|
|
|
@ -386,6 +386,7 @@ def isInt(any): |
|
|
|
except: |
|
|
|
return False |
|
|
|
|
|
|
|
#AI SLOOP |
|
|
|
def _skip_group(buf, i, group_field, _depth=0, _max_depth=_MAX_NESTING_DEPTH): |
|
|
|
"""Пропускает все поля группы, начиная с позиции i, и возвращает новую позицию после end group.""" |
|
|
|
if _depth > _max_depth: |
|
|
|
@ -496,13 +497,14 @@ def decode(buf, schema=None, _depth=0, _max_depth=_MAX_NESTING_DEPTH): |
|
|
|
v = chunk |
|
|
|
else: |
|
|
|
v = chunk |
|
|
|
elif wt == 3: |
|
|
|
elif wt == 3:#AI SLOOP |
|
|
|
# Пропускаем всю группу, данные не сохраняем |
|
|
|
i = _skip_group(b, i, field, _depth, _max_depth) |
|
|
|
#i = _skip_group(b, i, field, _depth, _max_depth) |
|
|
|
continue # ничего не добавляем в out |
|
|
|
elif wt == 4: |
|
|
|
elif wt == 4:#AI SLOOP |
|
|
|
# Если мы здесь, значит end group встречен не вовремя — ошибка |
|
|
|
raise ValueError("unexpected end group") |
|
|
|
#raise ValueError("unexpected end group") |
|
|
|
continue |
|
|
|
elif wt == 5: |
|
|
|
v, i = _read_fixed32(b, i) |
|
|
|
if spec: |
|
|
|
|