fix: auto-fix code issues (cron)
- 修复重复导入/字段 - 修复异常处理 - 修复PEP8格式问题 - 添加类型注解
This commit is contained in:
@@ -10,20 +10,19 @@ InsightFlow Developer Ecosystem Manager - Phase 8 Task 6
|
||||
作者: InsightFlow Team
|
||||
"""
|
||||
|
||||
import os
|
||||
import json
|
||||
import os
|
||||
import sqlite3
|
||||
import uuid
|
||||
from typing import List, Dict, Optional
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
from enum import Enum
|
||||
from enum import StrEnum
|
||||
|
||||
# Database path
|
||||
DB_PATH = os.path.join(os.path.dirname(__file__), "insightflow.db")
|
||||
|
||||
|
||||
class SDKLanguage(str, Enum):
|
||||
class SDKLanguage(StrEnum):
|
||||
"""SDK 语言类型"""
|
||||
|
||||
PYTHON = "python"
|
||||
@@ -34,7 +33,7 @@ class SDKLanguage(str, Enum):
|
||||
RUST = "rust"
|
||||
|
||||
|
||||
class SDKStatus(str, Enum):
|
||||
class SDKStatus(StrEnum):
|
||||
"""SDK 状态"""
|
||||
|
||||
DRAFT = "draft" # 草稿
|
||||
@@ -44,7 +43,7 @@ class SDKStatus(str, Enum):
|
||||
ARCHIVED = "archived" # 已归档
|
||||
|
||||
|
||||
class TemplateCategory(str, Enum):
|
||||
class TemplateCategory(StrEnum):
|
||||
"""模板分类"""
|
||||
|
||||
MEDICAL = "medical" # 医疗
|
||||
@@ -55,7 +54,7 @@ class TemplateCategory(str, Enum):
|
||||
GENERAL = "general" # 通用
|
||||
|
||||
|
||||
class TemplateStatus(str, Enum):
|
||||
class TemplateStatus(StrEnum):
|
||||
"""模板状态"""
|
||||
|
||||
PENDING = "pending" # 待审核
|
||||
@@ -65,7 +64,7 @@ class TemplateStatus(str, Enum):
|
||||
UNLISTED = "unlisted" # 未列出
|
||||
|
||||
|
||||
class PluginStatus(str, Enum):
|
||||
class PluginStatus(StrEnum):
|
||||
"""插件状态"""
|
||||
|
||||
PENDING = "pending" # 待审核
|
||||
@@ -76,7 +75,7 @@ class PluginStatus(str, Enum):
|
||||
SUSPENDED = "suspended" # 已暂停
|
||||
|
||||
|
||||
class PluginCategory(str, Enum):
|
||||
class PluginCategory(StrEnum):
|
||||
"""插件分类"""
|
||||
|
||||
INTEGRATION = "integration" # 集成
|
||||
@@ -87,7 +86,7 @@ class PluginCategory(str, Enum):
|
||||
CUSTOM = "custom" # 自定义
|
||||
|
||||
|
||||
class DeveloperStatus(str, Enum):
|
||||
class DeveloperStatus(StrEnum):
|
||||
"""开发者认证状态"""
|
||||
|
||||
UNVERIFIED = "unverified" # 未认证
|
||||
@@ -113,13 +112,13 @@ class SDKRelease:
|
||||
package_name: str # pip/npm/go module name
|
||||
status: SDKStatus
|
||||
min_platform_version: str
|
||||
dependencies: List[Dict] # [{"name": "requests", "version": ">=2.0"}]
|
||||
dependencies: list[dict] # [{"name": "requests", "version": ">=2.0"}]
|
||||
file_size: int
|
||||
checksum: str
|
||||
download_count: int
|
||||
created_at: str
|
||||
updated_at: str
|
||||
published_at: Optional[str]
|
||||
published_at: str | None
|
||||
created_by: str
|
||||
|
||||
|
||||
@@ -148,17 +147,17 @@ class TemplateMarketItem:
|
||||
name: str
|
||||
description: str
|
||||
category: TemplateCategory
|
||||
subcategory: Optional[str]
|
||||
tags: List[str]
|
||||
subcategory: str | None
|
||||
tags: list[str]
|
||||
author_id: str
|
||||
author_name: str
|
||||
status: TemplateStatus
|
||||
price: float # 0 = 免费
|
||||
currency: str
|
||||
preview_image_url: Optional[str]
|
||||
demo_url: Optional[str]
|
||||
documentation_url: Optional[str]
|
||||
download_url: Optional[str]
|
||||
preview_image_url: str | None
|
||||
demo_url: str | None
|
||||
documentation_url: str | None
|
||||
download_url: str | None
|
||||
install_count: int
|
||||
rating: float
|
||||
rating_count: int
|
||||
@@ -169,7 +168,7 @@ class TemplateMarketItem:
|
||||
checksum: str
|
||||
created_at: str
|
||||
updated_at: str
|
||||
published_at: Optional[str]
|
||||
published_at: str | None
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -196,20 +195,20 @@ class PluginMarketItem:
|
||||
name: str
|
||||
description: str
|
||||
category: PluginCategory
|
||||
tags: List[str]
|
||||
tags: list[str]
|
||||
author_id: str
|
||||
author_name: str
|
||||
status: PluginStatus
|
||||
price: float
|
||||
currency: str
|
||||
pricing_model: str # free, paid, freemium, subscription
|
||||
preview_image_url: Optional[str]
|
||||
demo_url: Optional[str]
|
||||
documentation_url: Optional[str]
|
||||
repository_url: Optional[str]
|
||||
download_url: Optional[str]
|
||||
webhook_url: Optional[str] # 用于插件回调
|
||||
permissions: List[str] # 需要的权限列表
|
||||
preview_image_url: str | None
|
||||
demo_url: str | None
|
||||
documentation_url: str | None
|
||||
repository_url: str | None
|
||||
download_url: str | None
|
||||
webhook_url: str | None # 用于插件回调
|
||||
permissions: list[str] # 需要的权限列表
|
||||
install_count: int
|
||||
active_install_count: int
|
||||
rating: float
|
||||
@@ -221,10 +220,10 @@ class PluginMarketItem:
|
||||
checksum: str
|
||||
created_at: str
|
||||
updated_at: str
|
||||
published_at: Optional[str]
|
||||
reviewed_by: Optional[str]
|
||||
reviewed_at: Optional[str]
|
||||
review_notes: Optional[str]
|
||||
published_at: str | None
|
||||
reviewed_by: str | None
|
||||
reviewed_at: str | None
|
||||
review_notes: str | None
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -251,12 +250,12 @@ class DeveloperProfile:
|
||||
user_id: str
|
||||
display_name: str
|
||||
email: str
|
||||
bio: Optional[str]
|
||||
website: Optional[str]
|
||||
github_url: Optional[str]
|
||||
avatar_url: Optional[str]
|
||||
bio: str | None
|
||||
website: str | None
|
||||
github_url: str | None
|
||||
avatar_url: str | None
|
||||
status: DeveloperStatus
|
||||
verification_documents: Dict # 认证文档
|
||||
verification_documents: dict # 认证文档
|
||||
total_sales: float
|
||||
total_downloads: int
|
||||
plugin_count: int
|
||||
@@ -264,7 +263,7 @@ class DeveloperProfile:
|
||||
rating_average: float
|
||||
created_at: str
|
||||
updated_at: str
|
||||
verified_at: Optional[str]
|
||||
verified_at: str | None
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -296,11 +295,11 @@ class CodeExample:
|
||||
category: str
|
||||
code: str
|
||||
explanation: str
|
||||
tags: List[str]
|
||||
tags: list[str]
|
||||
author_id: str
|
||||
author_name: str
|
||||
sdk_id: Optional[str] # 关联的 SDK
|
||||
api_endpoints: List[str] # 涉及的 API 端点
|
||||
sdk_id: str | None # 关联的 SDK
|
||||
api_endpoints: list[str] # 涉及的 API 端点
|
||||
view_count: int
|
||||
copy_count: int
|
||||
rating: float
|
||||
@@ -330,16 +329,16 @@ class DeveloperPortalConfig:
|
||||
name: str
|
||||
description: str
|
||||
theme: str
|
||||
custom_css: Optional[str]
|
||||
custom_js: Optional[str]
|
||||
logo_url: Optional[str]
|
||||
favicon_url: Optional[str]
|
||||
custom_css: str | None
|
||||
custom_js: str | None
|
||||
logo_url: str | None
|
||||
favicon_url: str | None
|
||||
primary_color: str
|
||||
secondary_color: str
|
||||
support_email: str
|
||||
support_url: Optional[str]
|
||||
github_url: Optional[str]
|
||||
discord_url: Optional[str]
|
||||
support_url: str | None
|
||||
github_url: str | None
|
||||
discord_url: str | None
|
||||
api_base_url: str
|
||||
is_active: bool
|
||||
created_at: str
|
||||
@@ -373,7 +372,7 @@ class DeveloperEcosystemManager:
|
||||
repository_url: str,
|
||||
package_name: str,
|
||||
min_platform_version: str,
|
||||
dependencies: List[Dict],
|
||||
dependencies: list[dict],
|
||||
file_size: int,
|
||||
checksum: str,
|
||||
created_by: str,
|
||||
@@ -442,7 +441,7 @@ class DeveloperEcosystemManager:
|
||||
|
||||
return sdk
|
||||
|
||||
def get_sdk_release(self, sdk_id: str) -> Optional[SDKRelease]:
|
||||
def get_sdk_release(self, sdk_id: str) -> SDKRelease | None:
|
||||
"""获取 SDK 发布详情"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute("SELECT * FROM sdk_releases WHERE id = ?", (sdk_id,)).fetchone()
|
||||
@@ -452,8 +451,8 @@ class DeveloperEcosystemManager:
|
||||
return None
|
||||
|
||||
def list_sdk_releases(
|
||||
self, language: Optional[SDKLanguage] = None, status: Optional[SDKStatus] = None, search: Optional[str] = None
|
||||
) -> List[SDKRelease]:
|
||||
self, language: SDKLanguage | None = None, status: SDKStatus | None = None, search: str | None = None
|
||||
) -> list[SDKRelease]:
|
||||
"""列出 SDK 发布"""
|
||||
query = "SELECT * FROM sdk_releases WHERE 1=1"
|
||||
params = []
|
||||
@@ -474,7 +473,7 @@ class DeveloperEcosystemManager:
|
||||
rows = conn.execute(query, params).fetchall()
|
||||
return [self._row_to_sdk_release(row) for row in rows]
|
||||
|
||||
def update_sdk_release(self, sdk_id: str, **kwargs) -> Optional[SDKRelease]:
|
||||
def update_sdk_release(self, sdk_id: str, **kwargs) -> SDKRelease | None:
|
||||
"""更新 SDK 发布"""
|
||||
allowed_fields = [
|
||||
"name",
|
||||
@@ -499,7 +498,7 @@ class DeveloperEcosystemManager:
|
||||
|
||||
return self.get_sdk_release(sdk_id)
|
||||
|
||||
def publish_sdk_release(self, sdk_id: str) -> Optional[SDKRelease]:
|
||||
def publish_sdk_release(self, sdk_id: str) -> SDKRelease | None:
|
||||
"""发布 SDK"""
|
||||
now = datetime.now().isoformat()
|
||||
|
||||
@@ -529,7 +528,7 @@ class DeveloperEcosystemManager:
|
||||
)
|
||||
conn.commit()
|
||||
|
||||
def get_sdk_versions(self, sdk_id: str) -> List[SDKVersion]:
|
||||
def get_sdk_versions(self, sdk_id: str) -> list[SDKVersion]:
|
||||
"""获取 SDK 版本历史"""
|
||||
with self._get_db() as conn:
|
||||
rows = conn.execute(
|
||||
@@ -588,16 +587,16 @@ class DeveloperEcosystemManager:
|
||||
name: str,
|
||||
description: str,
|
||||
category: TemplateCategory,
|
||||
subcategory: Optional[str],
|
||||
tags: List[str],
|
||||
subcategory: str | None,
|
||||
tags: list[str],
|
||||
author_id: str,
|
||||
author_name: str,
|
||||
price: float = 0.0,
|
||||
currency: str = "CNY",
|
||||
preview_image_url: Optional[str] = None,
|
||||
demo_url: Optional[str] = None,
|
||||
documentation_url: Optional[str] = None,
|
||||
download_url: Optional[str] = None,
|
||||
preview_image_url: str | None = None,
|
||||
demo_url: str | None = None,
|
||||
documentation_url: str | None = None,
|
||||
download_url: str | None = None,
|
||||
version: str = "1.0.0",
|
||||
min_platform_version: str = "1.0.0",
|
||||
file_size: int = 0,
|
||||
@@ -679,7 +678,7 @@ class DeveloperEcosystemManager:
|
||||
|
||||
return template
|
||||
|
||||
def get_template(self, template_id: str) -> Optional[TemplateMarketItem]:
|
||||
def get_template(self, template_id: str) -> TemplateMarketItem | None:
|
||||
"""获取模板详情"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute("SELECT * FROM template_market WHERE id = ?", (template_id,)).fetchone()
|
||||
@@ -690,14 +689,14 @@ class DeveloperEcosystemManager:
|
||||
|
||||
def list_templates(
|
||||
self,
|
||||
category: Optional[TemplateCategory] = None,
|
||||
status: Optional[TemplateStatus] = None,
|
||||
search: Optional[str] = None,
|
||||
author_id: Optional[str] = None,
|
||||
min_price: Optional[float] = None,
|
||||
max_price: Optional[float] = None,
|
||||
category: TemplateCategory | None = None,
|
||||
status: TemplateStatus | None = None,
|
||||
search: str | None = None,
|
||||
author_id: str | None = None,
|
||||
min_price: float | None = None,
|
||||
max_price: float | None = None,
|
||||
sort_by: str = "created_at",
|
||||
) -> List[TemplateMarketItem]:
|
||||
) -> list[TemplateMarketItem]:
|
||||
"""列出模板"""
|
||||
query = "SELECT * FROM template_market WHERE 1=1"
|
||||
params = []
|
||||
@@ -735,7 +734,7 @@ class DeveloperEcosystemManager:
|
||||
rows = conn.execute(query, params).fetchall()
|
||||
return [self._row_to_template(row) for row in rows]
|
||||
|
||||
def approve_template(self, template_id: str, reviewed_by: str) -> Optional[TemplateMarketItem]:
|
||||
def approve_template(self, template_id: str, reviewed_by: str) -> TemplateMarketItem | None:
|
||||
"""审核通过模板"""
|
||||
now = datetime.now().isoformat()
|
||||
|
||||
@@ -752,7 +751,7 @@ class DeveloperEcosystemManager:
|
||||
|
||||
return self.get_template(template_id)
|
||||
|
||||
def publish_template(self, template_id: str) -> Optional[TemplateMarketItem]:
|
||||
def publish_template(self, template_id: str) -> TemplateMarketItem | None:
|
||||
"""发布模板"""
|
||||
now = datetime.now().isoformat()
|
||||
|
||||
@@ -769,7 +768,7 @@ class DeveloperEcosystemManager:
|
||||
|
||||
return self.get_template(template_id)
|
||||
|
||||
def reject_template(self, template_id: str, reason: str) -> Optional[TemplateMarketItem]:
|
||||
def reject_template(self, template_id: str, reason: str) -> TemplateMarketItem | None:
|
||||
"""拒绝模板"""
|
||||
now = datetime.now().isoformat()
|
||||
|
||||
@@ -874,7 +873,7 @@ class DeveloperEcosystemManager:
|
||||
(round(row["avg_rating"], 2) if row["avg_rating"] else 0, row["count"], row["count"], template_id),
|
||||
)
|
||||
|
||||
def get_template_reviews(self, template_id: str, limit: int = 50) -> List[TemplateReview]:
|
||||
def get_template_reviews(self, template_id: str, limit: int = 50) -> list[TemplateReview]:
|
||||
"""获取模板评价"""
|
||||
with self._get_db() as conn:
|
||||
rows = conn.execute(
|
||||
@@ -893,19 +892,19 @@ class DeveloperEcosystemManager:
|
||||
name: str,
|
||||
description: str,
|
||||
category: PluginCategory,
|
||||
tags: List[str],
|
||||
tags: list[str],
|
||||
author_id: str,
|
||||
author_name: str,
|
||||
price: float = 0.0,
|
||||
currency: str = "CNY",
|
||||
pricing_model: str = "free",
|
||||
preview_image_url: Optional[str] = None,
|
||||
demo_url: Optional[str] = None,
|
||||
documentation_url: Optional[str] = None,
|
||||
repository_url: Optional[str] = None,
|
||||
download_url: Optional[str] = None,
|
||||
webhook_url: Optional[str] = None,
|
||||
permissions: List[str] = None,
|
||||
preview_image_url: str | None = None,
|
||||
demo_url: str | None = None,
|
||||
documentation_url: str | None = None,
|
||||
repository_url: str | None = None,
|
||||
download_url: str | None = None,
|
||||
webhook_url: str | None = None,
|
||||
permissions: list[str] = None,
|
||||
version: str = "1.0.0",
|
||||
min_platform_version: str = "1.0.0",
|
||||
file_size: int = 0,
|
||||
@@ -1003,7 +1002,7 @@ class DeveloperEcosystemManager:
|
||||
|
||||
return plugin
|
||||
|
||||
def get_plugin(self, plugin_id: str) -> Optional[PluginMarketItem]:
|
||||
def get_plugin(self, plugin_id: str) -> PluginMarketItem | None:
|
||||
"""获取插件详情"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute("SELECT * FROM plugin_market WHERE id = ?", (plugin_id,)).fetchone()
|
||||
@@ -1014,12 +1013,12 @@ class DeveloperEcosystemManager:
|
||||
|
||||
def list_plugins(
|
||||
self,
|
||||
category: Optional[PluginCategory] = None,
|
||||
status: Optional[PluginStatus] = None,
|
||||
search: Optional[str] = None,
|
||||
author_id: Optional[str] = None,
|
||||
category: PluginCategory | None = None,
|
||||
status: PluginStatus | None = None,
|
||||
search: str | None = None,
|
||||
author_id: str | None = None,
|
||||
sort_by: str = "created_at",
|
||||
) -> List[PluginMarketItem]:
|
||||
) -> list[PluginMarketItem]:
|
||||
"""列出插件"""
|
||||
query = "SELECT * FROM plugin_market WHERE 1=1"
|
||||
params = []
|
||||
@@ -1051,7 +1050,7 @@ class DeveloperEcosystemManager:
|
||||
|
||||
def review_plugin(
|
||||
self, plugin_id: str, reviewed_by: str, status: PluginStatus, notes: str = ""
|
||||
) -> Optional[PluginMarketItem]:
|
||||
) -> PluginMarketItem | None:
|
||||
"""审核插件"""
|
||||
now = datetime.now().isoformat()
|
||||
|
||||
@@ -1068,7 +1067,7 @@ class DeveloperEcosystemManager:
|
||||
|
||||
return self.get_plugin(plugin_id)
|
||||
|
||||
def publish_plugin(self, plugin_id: str) -> Optional[PluginMarketItem]:
|
||||
def publish_plugin(self, plugin_id: str) -> PluginMarketItem | None:
|
||||
"""发布插件"""
|
||||
now = datetime.now().isoformat()
|
||||
|
||||
@@ -1182,7 +1181,7 @@ class DeveloperEcosystemManager:
|
||||
(round(row["avg_rating"], 2) if row["avg_rating"] else 0, row["count"], row["count"], plugin_id),
|
||||
)
|
||||
|
||||
def get_plugin_reviews(self, plugin_id: str, limit: int = 50) -> List[PluginReview]:
|
||||
def get_plugin_reviews(self, plugin_id: str, limit: int = 50) -> list[PluginReview]:
|
||||
"""获取插件评价"""
|
||||
with self._get_db() as conn:
|
||||
rows = conn.execute(
|
||||
@@ -1268,8 +1267,8 @@ class DeveloperEcosystemManager:
|
||||
return revenue
|
||||
|
||||
def get_developer_revenues(
|
||||
self, developer_id: str, start_date: Optional[datetime] = None, end_date: Optional[datetime] = None
|
||||
) -> List[DeveloperRevenue]:
|
||||
self, developer_id: str, start_date: datetime | None = None, end_date: datetime | None = None
|
||||
) -> list[DeveloperRevenue]:
|
||||
"""获取开发者收益记录"""
|
||||
query = "SELECT * FROM developer_revenues WHERE developer_id = ?"
|
||||
params = [developer_id]
|
||||
@@ -1287,7 +1286,7 @@ class DeveloperEcosystemManager:
|
||||
rows = conn.execute(query, params).fetchall()
|
||||
return [self._row_to_developer_revenue(row) for row in rows]
|
||||
|
||||
def get_developer_revenue_summary(self, developer_id: str) -> Dict:
|
||||
def get_developer_revenue_summary(self, developer_id: str) -> dict:
|
||||
"""获取开发者收益汇总"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute(
|
||||
@@ -1318,10 +1317,10 @@ class DeveloperEcosystemManager:
|
||||
user_id: str,
|
||||
display_name: str,
|
||||
email: str,
|
||||
bio: Optional[str] = None,
|
||||
website: Optional[str] = None,
|
||||
github_url: Optional[str] = None,
|
||||
avatar_url: Optional[str] = None,
|
||||
bio: str | None = None,
|
||||
website: str | None = None,
|
||||
github_url: str | None = None,
|
||||
avatar_url: str | None = None,
|
||||
) -> DeveloperProfile:
|
||||
"""创建开发者档案"""
|
||||
profile_id = f"dev_{uuid.uuid4().hex[:16]}"
|
||||
@@ -1382,7 +1381,7 @@ class DeveloperEcosystemManager:
|
||||
|
||||
return profile
|
||||
|
||||
def get_developer_profile(self, developer_id: str) -> Optional[DeveloperProfile]:
|
||||
def get_developer_profile(self, developer_id: str) -> DeveloperProfile | None:
|
||||
"""获取开发者档案"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute("SELECT * FROM developer_profiles WHERE id = ?", (developer_id,)).fetchone()
|
||||
@@ -1391,7 +1390,7 @@ class DeveloperEcosystemManager:
|
||||
return self._row_to_developer_profile(row)
|
||||
return None
|
||||
|
||||
def get_developer_profile_by_user(self, user_id: str) -> Optional[DeveloperProfile]:
|
||||
def get_developer_profile_by_user(self, user_id: str) -> DeveloperProfile | None:
|
||||
"""通过用户 ID 获取开发者档案"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute("SELECT * FROM developer_profiles WHERE user_id = ?", (user_id,)).fetchone()
|
||||
@@ -1400,7 +1399,7 @@ class DeveloperEcosystemManager:
|
||||
return self._row_to_developer_profile(row)
|
||||
return None
|
||||
|
||||
def verify_developer(self, developer_id: str, status: DeveloperStatus) -> Optional[DeveloperProfile]:
|
||||
def verify_developer(self, developer_id: str, status: DeveloperStatus) -> DeveloperProfile | None:
|
||||
"""验证开发者"""
|
||||
now = datetime.now().isoformat()
|
||||
|
||||
@@ -1473,11 +1472,11 @@ class DeveloperEcosystemManager:
|
||||
category: str,
|
||||
code: str,
|
||||
explanation: str,
|
||||
tags: List[str],
|
||||
tags: list[str],
|
||||
author_id: str,
|
||||
author_name: str,
|
||||
sdk_id: Optional[str] = None,
|
||||
api_endpoints: List[str] = None,
|
||||
sdk_id: str | None = None,
|
||||
api_endpoints: list[str] = None,
|
||||
) -> CodeExample:
|
||||
"""创建代码示例"""
|
||||
example_id = f"ex_{uuid.uuid4().hex[:16]}"
|
||||
@@ -1536,7 +1535,7 @@ class DeveloperEcosystemManager:
|
||||
|
||||
return example
|
||||
|
||||
def get_code_example(self, example_id: str) -> Optional[CodeExample]:
|
||||
def get_code_example(self, example_id: str) -> CodeExample | None:
|
||||
"""获取代码示例"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute("SELECT * FROM code_examples WHERE id = ?", (example_id,)).fetchone()
|
||||
@@ -1547,11 +1546,11 @@ class DeveloperEcosystemManager:
|
||||
|
||||
def list_code_examples(
|
||||
self,
|
||||
language: Optional[str] = None,
|
||||
category: Optional[str] = None,
|
||||
sdk_id: Optional[str] = None,
|
||||
search: Optional[str] = None,
|
||||
) -> List[CodeExample]:
|
||||
language: str | None = None,
|
||||
category: str | None = None,
|
||||
sdk_id: str | None = None,
|
||||
search: str | None = None,
|
||||
) -> list[CodeExample]:
|
||||
"""列出代码示例"""
|
||||
query = "SELECT * FROM code_examples WHERE 1=1"
|
||||
params = []
|
||||
@@ -1650,7 +1649,7 @@ class DeveloperEcosystemManager:
|
||||
|
||||
return doc
|
||||
|
||||
def get_api_documentation(self, doc_id: str) -> Optional[APIDocumentation]:
|
||||
def get_api_documentation(self, doc_id: str) -> APIDocumentation | None:
|
||||
"""获取 API 文档"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute("SELECT * FROM api_documentation WHERE id = ?", (doc_id,)).fetchone()
|
||||
@@ -1659,7 +1658,7 @@ class DeveloperEcosystemManager:
|
||||
return self._row_to_api_documentation(row)
|
||||
return None
|
||||
|
||||
def get_latest_api_documentation(self) -> Optional[APIDocumentation]:
|
||||
def get_latest_api_documentation(self) -> APIDocumentation | None:
|
||||
"""获取最新 API 文档"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute("SELECT * FROM api_documentation ORDER BY generated_at DESC LIMIT 1").fetchone()
|
||||
@@ -1675,16 +1674,16 @@ class DeveloperEcosystemManager:
|
||||
name: str,
|
||||
description: str,
|
||||
theme: str = "default",
|
||||
custom_css: Optional[str] = None,
|
||||
custom_js: Optional[str] = None,
|
||||
logo_url: Optional[str] = None,
|
||||
favicon_url: Optional[str] = None,
|
||||
custom_css: str | None = None,
|
||||
custom_js: str | None = None,
|
||||
logo_url: str | None = None,
|
||||
favicon_url: str | None = None,
|
||||
primary_color: str = "#1890ff",
|
||||
secondary_color: str = "#52c41a",
|
||||
support_email: str = "support@insightflow.io",
|
||||
support_url: Optional[str] = None,
|
||||
github_url: Optional[str] = None,
|
||||
discord_url: Optional[str] = None,
|
||||
support_url: str | None = None,
|
||||
github_url: str | None = None,
|
||||
discord_url: str | None = None,
|
||||
api_base_url: str = "https://api.insightflow.io",
|
||||
) -> DeveloperPortalConfig:
|
||||
"""创建开发者门户配置"""
|
||||
@@ -1746,7 +1745,7 @@ class DeveloperEcosystemManager:
|
||||
|
||||
return config
|
||||
|
||||
def get_portal_config(self, config_id: str) -> Optional[DeveloperPortalConfig]:
|
||||
def get_portal_config(self, config_id: str) -> DeveloperPortalConfig | None:
|
||||
"""获取开发者门户配置"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute("SELECT * FROM developer_portal_configs WHERE id = ?", (config_id,)).fetchone()
|
||||
@@ -1755,7 +1754,7 @@ class DeveloperEcosystemManager:
|
||||
return self._row_to_portal_config(row)
|
||||
return None
|
||||
|
||||
def get_active_portal_config(self) -> Optional[DeveloperPortalConfig]:
|
||||
def get_active_portal_config(self) -> DeveloperPortalConfig | None:
|
||||
"""获取活跃的开发者门户配置"""
|
||||
with self._get_db() as conn:
|
||||
row = conn.execute("SELECT * FROM developer_portal_configs WHERE is_active = 1 LIMIT 1").fetchone()
|
||||
|
||||
Reference in New Issue
Block a user