ワークフローカスタムコード記述規範
背景:セキュリティ上の考慮から、【python カスタムスキルコード】&&【高度なオーケストレーション-コードノード】について、コード記述に関する規範を説明します
サポートされる Python Package
1. 組み込み関数と型
dictsortedfiltermapenumerate
2. 標準ライブラリモジュール
データ処理
jsondecimaluuidbase64hashlib
文字列処理
re(正規表現)stringtextwrapdifflib(差分比較)
データ構造とアルゴリズム
copybisect(二分探索)heapq(ヒープキュー)statistics(統計計算)
数学計算
mathoperator(演算子関数)
日付と時刻
datetimetimecalendar
その他のツール
random(乱数生成)requests(HTTP リクエスト)
3. 型アノテーション (typing モジュール)
typing(モジュール自体)AnyUnionOptionalLiteralFinalClassVarTypeVarGenericProtocolruntime_checkableoverloadcastTYPE_CHECKINGNoReturnListDictSetTupleFrozenSetDequeCounterChainMapOrderedDictDefaultDictMutableMappingMutableSequenceMutableSetMappingSequenceAbstractSetCollectionContainerIterableIteratorReversibleSizedHashableCallableAwaitableCoroutineAsyncIterableAsyncIteratorAsyncGeneratorGeneratorContextManagerAsyncContextManager
構文規範
安全な環境分離などの制限を使用しているため、作成者は関連する規範に従ってコードを記述する必要があります。前提:組み込み構文と組み込みライブラリ、および限定された標準ライブラリのみをサポートします。
- math モジュールを使用する
import math
def calculate(a, b):
result = math.fsum([a, b])
return result
誤った書き方:
from math import fsum
def calculate(a, b):
result = fsum([a, b])
return result
説明:現在のコードブロックのインポート制限により、import パッケージ時には親パッケージのインポートのみが行われ、from a import b の構文はサポートされていません。
- datetime を使用する
正しい書き方:
import typing
from datetime import datetime
def get_weather(location: str, date: typing.Optional[str] = None) -> dict:
# 处理默认日期
if date is None:
formatted_date = datetime.datetime.now().strftime("%Y-%m-%d")
else:
try:
# 尝试解析常见日期格式
if len(date) == 8 and date.isdigit():
# 处理 YYYYMMDD 格式
date_obj = datetime.datetime.strptime(date, "%Y%m%d")
else:
# 尝试标准格式 YYYY-MM-DD
date_obj = datetime.datetime.strptime(date, "%Y-%m-%d")
formatted_date = date_obj.strftime("%Y-%m-%d")
except ValueError:
# 如果格式不匹配,使用原始输入(可能导致API调用失败)
formatted_date = date
# 这里是模拟数据,实际应用中可能会调用天气API
weather_data = {
"location": location,
"date": formatted_date,
"forecast": "sunny",
"temperature": "25°C",
"wind": "light breeze"
}
return weather_data
誤った書き方:
from typing import Optional, List, Dict, Any, Union, Callable
from datetime import datetime
...省略...