aidial_adapter_dial/utils/app_data.py (13 lines of code) (raw):

import re from typing import Self from pydantic import BaseModel class AppData(BaseModel): user_bucket: str app_name: str @classmethod def parse(cls, appdata: str) -> Self: match = re.match(r"^(.+)/appdata/(.+)$", appdata) if not match: raise ValueError("Invalid appdata format") user_bucket, app_name = match.groups() return cls(user_bucket=user_bucket, app_name=app_name)