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.rate_limit.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 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")

```