refactor: extract function

This commit is contained in:
Vlad Stan
2026-07-06 11:49:45 +03:00
parent 76a8e5acfc
commit 9ec0a1232c
2 changed files with 11 additions and 10 deletions
+10 -5
View File
@@ -7,6 +7,7 @@ import os
import shutil
import zipfile
from asyncio.tasks import create_task
from collections.abc import Mapping
from pathlib import Path
from typing import Any
@@ -83,6 +84,14 @@ class ExtensionPermission(BaseModel):
description: str | None = None
policy: dict[str, Any] | None = None
@staticmethod
def list_from_config(config_json: Mapping[str, Any]) -> list[ExtensionPermission]:
return [
ExtensionPermission.parse_obj(permission)
for permission in config_json.get("permissions") or []
if isinstance(permission, dict) and permission.get("id")
]
class ExtensionConfig(BaseModel):
name: str
@@ -642,11 +651,7 @@ class InstallableExtension(BaseModel):
version=version,
short_description=config_json.get("short_description"),
icon=config_json.get("tile"),
permissions=[
ExtensionPermission.parse_obj(permission)
for permission in config_json.get("permissions") or []
if isinstance(permission, dict) and permission.get("id")
],
permissions=ExtensionPermission.list_from_config(config_json),
meta=ExtensionMeta(
installed_release=ExtensionRelease(
name=ext_id,
+1 -5
View File
@@ -121,11 +121,7 @@ def _validate_extension_permissions(
requested_permissions = validate_extension_permissions(
ext_info.id,
[
ExtensionPermission.parse_obj(permission)
for permission in extension_config.get("permissions") or []
if isinstance(permission, dict) and permission.get("id")
],
ExtensionPermission.list_from_config(extension_config),
)
if not requested_permissions:
return []