my_python_utils.decorators package
Submodules
my_python_utils.decorators.monitoring module
- my_python_utils.decorators.monitoring.monitoring(platform: Literal['discord', 'teams'], webhook_url: str | None = None) Callable
関数の実行時間の計測と実行・失敗状況を監視するデコレータ。 処理終了時およびエラー時に指定されたプラットフォームへ通知を送信する。 :param platform: 通知先のプラットフォーム. "discord" または "teams" を指定。 :param webhook_url: 通知先のWebhook URL. Noneの場合はDiscordの場合はDISCORD_WEBHOOK_URL, Teamsの場合はTEAMS_WEBHOOK_URLを環境変数から読み取り使用される.
サンプル
```python @monitoring(platform="discord", webhook_url="~~~discord_webhook_url~~~") def hoge_function():
...
```python @monitoring(platform="teams", webhook_url="~~~teams_webhook_url~~~") def hoge_function():
...
my_python_utils.decorators.rate_limit module
my_python_utils.decorators.retry module
- my_python_utils.decorators.retry.retry(retries=3, exceptions=(<class 'Exception'>, ), delay=0.5, backoff=2.0)
関数を最大retry回数まで実行し、エラーが発生した場合は指定された時間間隔で再実行するデコレータ。 :param retries: 最大実行回数 :param exceptions: エラーを再実行する例外クラスのタプル :param delay: 最初の再実行までの待ち時間 :param backoff: 待ち時間の倍率
- 戻り値:
デコレータ適用後の関数
- 戻り値の型:
Callable
サンプル
```python @retry(retries=3, exceptions=(Exception,), delay=0.5, backoff=2.0) def sample_function():
print("sample_function") raise Exception("sample_exception")
Module contents
- my_python_utils.decorators.monitoring(platform: Literal['discord', 'teams'], webhook_url: str | None = None) Callable
関数の実行時間の計測と実行・失敗状況を監視するデコレータ。 処理終了時およびエラー時に指定されたプラットフォームへ通知を送信する。 :param platform: 通知先のプラットフォーム. "discord" または "teams" を指定。 :param webhook_url: 通知先のWebhook URL. Noneの場合はDiscordの場合はDISCORD_WEBHOOK_URL, Teamsの場合はTEAMS_WEBHOOK_URLを環境変数から読み取り使用される.
サンプル
```python @monitoring(platform="discord", webhook_url="~~~discord_webhook_url~~~") def hoge_function():
...
```python @monitoring(platform="teams", webhook_url="~~~teams_webhook_url~~~") def hoge_function():
...
- my_python_utils.decorators.rate_limit(calls, period)
レートリミットを行う。period間に最大calls回の実行を許可する。 calls回実行後はperiod秒待つ。 :param calls: 最大実行回数 :param period: 期間
- 戻り値:
デコレータ適用後の関数
- 戻り値の型:
Callable
サンプル
```python @rate_limit(calls=10, period=60) def sample_function():
print("sample_function")
- my_python_utils.decorators.retry(retries=3, exceptions=(<class 'Exception'>, ), delay=0.5, backoff=2.0)
関数を最大retry回数まで実行し、エラーが発生した場合は指定された時間間隔で再実行するデコレータ。 :param retries: 最大実行回数 :param exceptions: エラーを再実行する例外クラスのタプル :param delay: 最初の再実行までの待ち時間 :param backoff: 待ち時間の倍率
- 戻り値:
デコレータ適用後の関数
- 戻り値の型:
Callable
サンプル
```python @retry(retries=3, exceptions=(Exception,), delay=0.5, backoff=2.0) def sample_function():
print("sample_function") raise Exception("sample_exception")