fix: auto-fix code issues (cron)
- 修复重复导入/字段 - 修复异常处理 - 修复PEP8格式问题 - 添加类型注解
This commit is contained in:
@@ -3,13 +3,13 @@ InsightFlow - 协作与共享模块 (Phase 7 Task 4)
|
||||
支持项目分享、评论批注、变更历史、团队空间
|
||||
"""
|
||||
|
||||
import hashlib
|
||||
import json
|
||||
import uuid
|
||||
import hashlib
|
||||
from datetime import datetime, timedelta
|
||||
from typing import List, Optional, Dict, Any
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime, timedelta
|
||||
from enum import Enum
|
||||
from typing import Any
|
||||
|
||||
|
||||
class SharePermission(Enum):
|
||||
@@ -50,10 +50,10 @@ class ProjectShare:
|
||||
permission: str # 权限级别
|
||||
created_by: str # 创建者
|
||||
created_at: str
|
||||
expires_at: Optional[str] # 过期时间
|
||||
max_uses: Optional[int] # 最大使用次数
|
||||
expires_at: str | None # 过期时间
|
||||
max_uses: int | None # 最大使用次数
|
||||
use_count: int # 已使用次数
|
||||
password_hash: Optional[str] # 密码保护
|
||||
password_hash: str | None # 密码保护
|
||||
is_active: bool # 是否激活
|
||||
allow_download: bool # 允许下载
|
||||
allow_export: bool # 允许导出
|
||||
@@ -67,17 +67,17 @@ class Comment:
|
||||
project_id: str
|
||||
target_type: str # 评论目标类型
|
||||
target_id: str # 目标ID
|
||||
parent_id: Optional[str] # 父评论ID(支持回复)
|
||||
parent_id: str | None # 父评论ID(支持回复)
|
||||
author: str # 作者
|
||||
author_name: str # 作者显示名
|
||||
content: str # 评论内容
|
||||
created_at: str
|
||||
updated_at: str
|
||||
resolved: bool # 是否已解决
|
||||
resolved_by: Optional[str] # 解决者
|
||||
resolved_at: Optional[str] # 解决时间
|
||||
mentions: List[str] # 提及的用户
|
||||
attachments: List[Dict] # 附件
|
||||
resolved_by: str | None # 解决者
|
||||
resolved_at: str | None # 解决时间
|
||||
mentions: list[str] # 提及的用户
|
||||
attachments: list[dict] # 附件
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -93,13 +93,13 @@ class ChangeRecord:
|
||||
changed_by: str # 变更者
|
||||
changed_by_name: str # 变更者显示名
|
||||
changed_at: str
|
||||
old_value: Optional[Dict] # 旧值
|
||||
new_value: Optional[Dict] # 新值
|
||||
old_value: dict | None # 旧值
|
||||
new_value: dict | None # 新值
|
||||
description: str # 变更描述
|
||||
session_id: Optional[str] # 会话ID(批量变更关联)
|
||||
session_id: str | None # 会话ID(批量变更关联)
|
||||
reverted: bool # 是否已回滚
|
||||
reverted_at: Optional[str] # 回滚时间
|
||||
reverted_by: Optional[str] # 回滚者
|
||||
reverted_at: str | None # 回滚时间
|
||||
reverted_by: str | None # 回滚者
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -114,8 +114,8 @@ class TeamMember:
|
||||
role: str # 角色 (owner/admin/editor/viewer)
|
||||
joined_at: str
|
||||
invited_by: str # 邀请者
|
||||
last_active_at: Optional[str] # 最后活跃时间
|
||||
permissions: List[str] # 具体权限列表
|
||||
last_active_at: str | None # 最后活跃时间
|
||||
permissions: list[str] # 具体权限列表
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -130,7 +130,7 @@ class TeamSpace:
|
||||
updated_at: str
|
||||
member_count: int
|
||||
project_count: int
|
||||
settings: Dict[str, Any] # 团队设置
|
||||
settings: dict[str, Any] # 团队设置
|
||||
|
||||
|
||||
class CollaborationManager:
|
||||
@@ -138,8 +138,8 @@ class CollaborationManager:
|
||||
|
||||
def __init__(self, db_manager=None):
|
||||
self.db = db_manager
|
||||
self._shares_cache: Dict[str, ProjectShare] = {}
|
||||
self._comments_cache: Dict[str, List[Comment]] = {}
|
||||
self._shares_cache: dict[str, ProjectShare] = {}
|
||||
self._comments_cache: dict[str, list[Comment]] = {}
|
||||
|
||||
# ============ 项目分享 ============
|
||||
|
||||
@@ -148,9 +148,9 @@ class CollaborationManager:
|
||||
project_id: str,
|
||||
created_by: str,
|
||||
permission: str = "read_only",
|
||||
expires_in_days: Optional[int] = None,
|
||||
max_uses: Optional[int] = None,
|
||||
password: Optional[str] = None,
|
||||
expires_in_days: int | None = None,
|
||||
max_uses: int | None = None,
|
||||
password: str | None = None,
|
||||
allow_download: bool = False,
|
||||
allow_export: bool = False,
|
||||
) -> ProjectShare:
|
||||
@@ -224,7 +224,7 @@ class CollaborationManager:
|
||||
)
|
||||
self.db.conn.commit()
|
||||
|
||||
def validate_share_token(self, token: str, password: Optional[str] = None) -> Optional[ProjectShare]:
|
||||
def validate_share_token(self, token: str, password: str | None = None) -> ProjectShare | None:
|
||||
"""验证分享令牌"""
|
||||
# 从缓存或数据库获取
|
||||
share = self._shares_cache.get(token)
|
||||
@@ -256,7 +256,7 @@ class CollaborationManager:
|
||||
|
||||
return share
|
||||
|
||||
def _get_share_from_db(self, token: str) -> Optional[ProjectShare]:
|
||||
def _get_share_from_db(self, token: str) -> ProjectShare | None:
|
||||
"""从数据库获取分享记录"""
|
||||
cursor = self.db.conn.cursor()
|
||||
cursor.execute(
|
||||
@@ -320,7 +320,7 @@ class CollaborationManager:
|
||||
return cursor.rowcount > 0
|
||||
return False
|
||||
|
||||
def list_project_shares(self, project_id: str) -> List[ProjectShare]:
|
||||
def list_project_shares(self, project_id: str) -> list[ProjectShare]:
|
||||
"""列出项目的所有分享链接"""
|
||||
if not self.db:
|
||||
return []
|
||||
@@ -366,9 +366,9 @@ class CollaborationManager:
|
||||
author: str,
|
||||
author_name: str,
|
||||
content: str,
|
||||
parent_id: Optional[str] = None,
|
||||
mentions: Optional[List[str]] = None,
|
||||
attachments: Optional[List[Dict]] = None,
|
||||
parent_id: str | None = None,
|
||||
mentions: list[str] | None = None,
|
||||
attachments: list[dict] | None = None,
|
||||
) -> Comment:
|
||||
"""添加评论"""
|
||||
comment_id = str(uuid.uuid4())
|
||||
@@ -434,7 +434,7 @@ class CollaborationManager:
|
||||
)
|
||||
self.db.conn.commit()
|
||||
|
||||
def get_comments(self, target_type: str, target_id: str, include_resolved: bool = True) -> List[Comment]:
|
||||
def get_comments(self, target_type: str, target_id: str, include_resolved: bool = True) -> list[Comment]:
|
||||
"""获取评论列表"""
|
||||
if not self.db:
|
||||
return []
|
||||
@@ -484,7 +484,7 @@ class CollaborationManager:
|
||||
attachments=json.loads(row[14]) if row[14] else [],
|
||||
)
|
||||
|
||||
def update_comment(self, comment_id: str, content: str, updated_by: str) -> Optional[Comment]:
|
||||
def update_comment(self, comment_id: str, content: str, updated_by: str) -> Comment | None:
|
||||
"""更新评论"""
|
||||
if not self.db:
|
||||
return None
|
||||
@@ -505,7 +505,7 @@ class CollaborationManager:
|
||||
return self._get_comment_by_id(comment_id)
|
||||
return None
|
||||
|
||||
def _get_comment_by_id(self, comment_id: str) -> Optional[Comment]:
|
||||
def _get_comment_by_id(self, comment_id: str) -> Comment | None:
|
||||
"""根据ID获取评论"""
|
||||
cursor = self.db.conn.cursor()
|
||||
cursor.execute("SELECT * FROM comments WHERE id = ?", (comment_id,))
|
||||
@@ -551,7 +551,7 @@ class CollaborationManager:
|
||||
self.db.conn.commit()
|
||||
return cursor.rowcount > 0
|
||||
|
||||
def get_project_comments(self, project_id: str, limit: int = 50, offset: int = 0) -> List[Comment]:
|
||||
def get_project_comments(self, project_id: str, limit: int = 50, offset: int = 0) -> list[Comment]:
|
||||
"""获取项目下的所有评论"""
|
||||
if not self.db:
|
||||
return []
|
||||
@@ -583,10 +583,10 @@ class CollaborationManager:
|
||||
entity_name: str,
|
||||
changed_by: str,
|
||||
changed_by_name: str,
|
||||
old_value: Optional[Dict] = None,
|
||||
new_value: Optional[Dict] = None,
|
||||
old_value: dict | None = None,
|
||||
new_value: dict | None = None,
|
||||
description: str = "",
|
||||
session_id: Optional[str] = None,
|
||||
session_id: str | None = None,
|
||||
) -> ChangeRecord:
|
||||
"""记录变更"""
|
||||
record_id = str(uuid.uuid4())
|
||||
@@ -651,11 +651,11 @@ class CollaborationManager:
|
||||
def get_change_history(
|
||||
self,
|
||||
project_id: str,
|
||||
entity_type: Optional[str] = None,
|
||||
entity_id: Optional[str] = None,
|
||||
entity_type: str | None = None,
|
||||
entity_id: str | None = None,
|
||||
limit: int = 50,
|
||||
offset: int = 0,
|
||||
) -> List[ChangeRecord]:
|
||||
) -> list[ChangeRecord]:
|
||||
"""获取变更历史"""
|
||||
if not self.db:
|
||||
return []
|
||||
@@ -719,7 +719,7 @@ class CollaborationManager:
|
||||
reverted_by=row[15],
|
||||
)
|
||||
|
||||
def get_entity_version_history(self, entity_type: str, entity_id: str) -> List[ChangeRecord]:
|
||||
def get_entity_version_history(self, entity_type: str, entity_id: str) -> list[ChangeRecord]:
|
||||
"""获取实体的版本历史(用于版本对比)"""
|
||||
if not self.db:
|
||||
return []
|
||||
@@ -757,7 +757,7 @@ class CollaborationManager:
|
||||
self.db.conn.commit()
|
||||
return cursor.rowcount > 0
|
||||
|
||||
def get_change_stats(self, project_id: str) -> Dict[str, Any]:
|
||||
def get_change_stats(self, project_id: str) -> dict[str, Any]:
|
||||
"""获取变更统计"""
|
||||
if not self.db:
|
||||
return {}
|
||||
@@ -823,7 +823,7 @@ class CollaborationManager:
|
||||
user_email: str,
|
||||
role: str,
|
||||
invited_by: str,
|
||||
permissions: Optional[List[str]] = None,
|
||||
permissions: list[str] | None = None,
|
||||
) -> TeamMember:
|
||||
"""添加团队成员"""
|
||||
member_id = str(uuid.uuid4())
|
||||
@@ -851,7 +851,7 @@ class CollaborationManager:
|
||||
|
||||
return member
|
||||
|
||||
def _get_default_permissions(self, role: str) -> List[str]:
|
||||
def _get_default_permissions(self, role: str) -> list[str]:
|
||||
"""获取角色的默认权限"""
|
||||
permissions_map = {
|
||||
"owner": ["read", "write", "delete", "share", "admin", "export"],
|
||||
@@ -887,7 +887,7 @@ class CollaborationManager:
|
||||
)
|
||||
self.db.conn.commit()
|
||||
|
||||
def get_team_members(self, project_id: str) -> List[TeamMember]:
|
||||
def get_team_members(self, project_id: str) -> list[TeamMember]:
|
||||
"""获取团队成员列表"""
|
||||
if not self.db:
|
||||
return []
|
||||
|
||||
Reference in New Issue
Block a user