Skip to content

Progress Bar displayed in Notion like tqdm for Python

License

Notifications You must be signed in to change notification settings

shunyooo/notion-tqdm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

notion-tqdm

PyPI version MIT License

Progress Bar displayed in Notion like tqdm for Python using notion-py.

demo

notion-tqdm inherits from tqdm, so it can be run in the same way as tqdm.

Installation

pip install git+https://github.com/shunyooo/notion-tqdm

Usage

Preparation

  1. Get Notion's Token for reference here

  2. Duplicate this page in your own workspace and get the table link. (Note that it is a table link, not a page link.)

QuickStart

from notion_tqdm import notion_tqdm
from time import sleep

# Configure
token_v2 = '<token_v2>'
table_url = '<table_url>'
notion_email = '<notion_email>' # For multi-account users
notion_tqdm.set_config(token_v2, table_url, email=notion_email, timezone='Asia/Tokyo')

# Run Iterate
for i in notion_tqdm(range(100), desc='Processing'):
    sleep(1)
    print(i)

A row representing the progress should be added to the table as shown below.

Example: Running with the Other tqdm

from tqdm.auto import tqdm as tqdm_auto
from time import sleep
# Nest tqdm
tqdm = lambda *args, **kwags: tqdm_auto(notion_tqdm(*args, **kwags))
for i in tqdm(range(100)):
  sleep(1)
  print(i)

Example: Set Custom Property

Set the common parameters before the iterative process.

# After this setting, the value will be added to the column by default.
# The `machine` column must be added to the table beforehand.
notion_tqdm.set_common_props(machine='Jupyter1')

Set the dynamic parameters during the iterative process.

with notion_tqdm(range(50), desc='process') as pbar:
    for i in pbar:
        # ... some process ...
        # The `precision`, `highparam` column must be 
        # added to the table beforehand.
        pbar.update_props(precision=precision, highparam=highparam)

Example: Add text to a page in table row.

with notion_tqdm(range(500), desc='add text test') as pbar:
    for i in pbar:
        sleep(1)
        pbar.add_text(f'text: {i}')

image-20201127213525339

Example: Timeline View

With Notion's timeline view, you can visualize the execution time of the progress.

About

Progress Bar displayed in Notion like tqdm for Python

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages