Skip to main content

要素数が確定されたシーケンスの途中で処理を挟むタイミングの判定を補助します。

Project description

NotificationFrequency

要素数が確定されたシーケンスの途中で処理を挟むタイミングの判定を補助します。

使い方

  1. n回毎あるいはn%毎など、頻度を指定してインスタンスnfを生成します。
  2. nf.lengthに管理するシーケンスの要素数を与えます。
  3. enumerate付きのfor文などで(通知を行うか否か(bool), 進捗率(int))を取得できます。
from otsunotificationfrequency import NotificationFrequency

# 2212個の要素を持つリストで実行する例
data = [x * 2 for x in range(2212)]
length = len(data)

# 25%毎に表示を行う
nf25per = NotificationFrequency('25%')
nf25per.set_length(length)

# 20個毎に表示を行う
# nf20 = NotificationFrequency(20)
# nf20.length = length

for i, d in enumerate(data):
    i += 1
    sa, per = nf25per.check_and_get_percentage(i)
    # sa, per = nf20(i)
    if sa:
        print(f'{d}: {per}% ({i}/{length})')

25%毎に表示する例

1104: 25% (553/2212)
2210: 50% (1106/2212)
3316: 75% (1659/2212)
4422: 100% (2212/2212)

20個毎に表示する例

38: 0% (20/2212)
78: 1% (40/2212)
118: 2% (60/2212)
158: 3% (80/2212)
198: 4% (100/2212)
238: 5% (120/2212)
278: 6% (140/2212)
318: 7% (160/2212)
358: 8% (180/2212)
398: 9% (200/2212)
438: 9% (220/2212)
...
4158: 94% (2080/2212)
4198: 94% (2100/2212)
4238: 95% (2120/2212)
4278: 96% (2140/2212)
4318: 97% (2160/2212)
4358: 98% (2180/2212)
4398: 99% (2200/2212)
4422: 100% (2212/2212)

otsunotificationfrequency.validatorモジュール

otsuvalidatorライブラリがインストールされていない場合インポートできず、ImportErrorが発生します。
otsucfgmngなどでバリデータやコンバータが必要な場合に利用してください。
NotificationFrequencyを使用するだけの場合、このモジュールは何の機能も持ちません。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

otsunotificationfrequency-1.0.4.311.tar.gz (5.6 kB view hashes)

Uploaded Source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page