Is for easier use notion-sdk-py.
-
Because Notion_sdk_py Usage documentation is less, cumbersome to use, and too many dictionary operations.
-
In order to make it easier to use Notion API, a lot of functions that may not be used have been created. :)
- pypi
pip install notion-kit
- Github
pip install git+https://github.com/bluewhitep/notion_kit.git
- Refer to the ./examples fold for details on usage
- Following the instruction for get token: Notion Authorization
- Use the token. [Recommend: Use environment variable]
token = os.environ["NOTION_TOKEN"]
- Initalize notion_kit
from notion_kit import kit as nkit notion_client = nkit.Client(token=token)
- Get id from notion url
notion_url = "<Notion url>" notion_id = nkit.get_id(url=notion_url)
- Get data
page = nkit.Page.get_data(notion_id) # or database = nkit.Database.get_data(notion_id)
- Notion_kit use class object operations
- object to dict
data_dict = data_object.Dict # or data_dict = data_object.asdict()
- object to dict
- Special cases:
PropertyType
object can use.full_dict()
to get{Property_name: Property_type_value}
dict.data_dict = data_object.full_dict()
PropertyType
object can use.label_dict()
to get short info dict.data_dict = data_object.label_dict() # short info dict: # {'name': Property_name, # 'type': Property_type, # 'id': Property_id # }
- Database
- ⭕️ Create a new database
- ⭕️ Retrieve databse [Get page list in database]
- ⭕️ Query database [Get database data]
- ⭕️ Create / Update property
- ❌ Delete database [Notion api not support]
- Page
- ⭕️ Create page in database / page
- ⭕️ Retrieve (get page data)
- ⭕️ Update property [ ** Page in Database]
- ⭕️ Block [add / update / delete block]
- ❌ Delete page [Notion api not support]
- Block
- ⭕️ Create
- ⭕️ Retrieve (get block data and block childrens)
- ⭕️ Update (rename function from notion_sdk_py)
- ⭕️ Delete block
- User
- ⭕️ Get user list
- ⭕️ Get user data by user_id
- ⭕️ who am i: Get bot user data
status
can't be updated, because notion api not support it.By notion api document,
title
,rich_text
,number
,select
,multi_select
,date
,people
,files
,checkbox
,url
,email
,phone_number
,formula
,relation
,rollup
,created_time
,created_by
,last_edited_time
,last_edited_by
can be updated.rollup
can't be updated on items.
This package supports the following minimum versions:
- Python >= 3.10
- MIT License