Coverage for src/github_actions_practice/utils.py: 100%
16 statements
« prev ^ index » next coverage.py v7.10.1, created at 2025-08-04 09:35 +0000
« prev ^ index » next coverage.py v7.10.1, created at 2025-08-04 09:35 +0000
1"""工具函數模組."""
3import requests
4from typing import Dict, Any
7def fetch_data(url: str) -> Dict[str, Any]:
8 """從指定 URL 取得 JSON 資料.
10 Args:
11 url: 要取得資料的 URL
13 Returns:
14 解析後的 JSON 資料
16 Raises:
17 requests.RequestException: 當請求失敗時
18 ValueError: 當回應不是有效的 JSON 時
19 """
20 response = requests.get(url, timeout=10)
21 response.raise_for_status()
22 return response.json() # type: ignore[no-any-return]
25def process_data(data: Dict[str, Any]) -> str:
26 """處理取得的資料.
28 Args:
29 data: 要處理的資料字典
31 Returns:
32 處理後的結果字串
33 """
34 if not isinstance(data, dict):
35 raise ValueError("資料必須是字典格式")
37 # 簡單的資料處理邏輯
38 keys_count = len(data.keys())
39 has_nested = any(isinstance(v, (dict, list)) for v in data.values())
41 return f"找到 {keys_count} 個鍵,{'包含' if has_nested else '不包含'}巢狀結構"
44def calculate_sum(numbers: list[int]) -> int:
45 """計算數字列表的總和.
47 Args:
48 numbers: 整數列表
50 Returns:
51 總和
52 """
53 return sum(numbers)
56def is_even(number: int) -> bool:
57 """檢查數字是否為偶數.
59 Args:
60 number: 要檢查的數字
62 Returns:
63 如果是偶數回傳 True,否則回傳 False
64 """
65 return number % 2 == 0