Python受欢迎的原因之一就是其计算生态丰富,据不完全统计,Python 目前为止有约13万+的第三方库。
本系列将会陆续整理分享一些有趣、有用的第三方库。
-
通过百度网盘获取:
链接:https://pan.baidu.com/s/1FSGLd7aI_UQlCQuovVHc_Q?pwd=mnsj
提取码:mnsj
-
前往GitHub获取:
https://github.com/returu/Python_Ecosystem
dooit
是一个用 Python 编写的基于终端的待办事项和笔记管理应用程序,它提供了简洁高效的方式来组织和跟踪任务与笔记。pip install dooit dooit-extras
https://github.com/dooit-org/dooit
-
dooit 基础知识:
-
描述:
-
状态:
-
紧急程度:
-
截止日期:
-
努力程度(Effort):
-
周期性:
-
Workspace(工作区):主要用于对任务和笔记进行结构化管理,可以创建不同的目录、层级来组织相关内容,类似于电脑文件系统的文件夹结构,方便对大量任务和笔记进行分类存放。 -
Todos(待办事项区):聚焦于具体待办任务的展示和操作,在这里可以直观看到各项任务,并对其进行增删改查、标记完成等操作。


-
启动 Dooit:在命令行中输入 dooit 并回车,进入 Dooit 界面。 -
添加主任务:在Workspace区域通过 a 键,输入 “学习、娱乐” 两个主任务,然后通过 A 键在学习主任务下添加“Python、ArcGIS”两个子任务。 -
添加代办事项:选中“Python”子任务,通过 <tab>键切换到Todos区域,通过 a /A 键添加待办事项及其子项。 -
设置任务截止日期:通过 d 键,一次设置各个代办事项的截止日期。 -
设置任务紧急程度:通过 +/- 键,增加或降低待办事项的紧急程度。 -
标记任务完成:通过 c 键,切换待办事项的完成状态。 -
退出 Dooit:完成所有操作后,按下 <ctrl+q> 组合键退出应用。

-
格式化器(Formatters):通过格式化器,用户可以自定义任务、工作区、状态栏等的显示方式。例如,自定义任务的紧急程度图标、添加任务的进度显示、修改任务描述的样式。 -
状态栏(Status Bar):用户可以通过 API 定制状态栏的内容和样式,添加自定义的文本、图标、时钟、模式指示器等。
-
仪表盘(Dashboard):仪表盘是 Dooit 启动时显示的欢迎界面。通过 API,用户可以添加自定义的文本、ASCII 艺术、日期和时间等。
-
事件监听(Event Listeners):Dooit API 支持事件监听机制,用户可以通过订阅特定事件(如启动、任务完成等)来执行自定义代码。
Dooit 的官方文档和 Wiki 提供了详细的 API 使用指南和示例代码。可以访问 Dooit 官方文档 和 Dooit Extras 获取更多信息。
配置文件通常是 config.py 脚本文件,存放路径可以通过以下命令获取:
dooit config-loc
以下是一个示例,通过 Dooit API 自定义了待办事项管理器的格式化器和仪表盘。为工作区和任务设置了描述、状态、紧急程度、截止日期的显示格式,并在仪表盘中添加了自定义标题、ASCII 艺术文字和当前日期显示,同时使用主题颜色进行样式化。
# 导入 Dooit API 和相关模块
from dooit.ui.api import DooitAPI, subscribe
from dooit.ui.api.events import Startup
from rich.style import Style
from dooit_extras.formatters import *
from dooit_extras.bar_widgets import *
from dooit_extras.scripts import *
from rich.text import Text
# 定义一个函数,用于在 Dooit 启动时设置格式化器
@subscribe(Startup) # 使用装饰器订阅启动事件
def setup_formatters(api: DooitAPI, _):
fmt = api.formatter # 获取 Dooit 的格式化器对象
theme = api.vars.theme # 获取当前主题配置
# ------- 工作区(WORKSPACES)配置 -------
# 定义工作区描述的格式,显示子任务数量
format = Text(" ({}) ", style=theme.primary).markup # 使用主题的主色调
fmt.workspaces.description.add(description_children_count(format)) # 添加格式化器
# --------- 待办事项(TODOS)配置 ---------
# 状态格式化器:定义不同状态的图标
fmt.todos.status.add(status_icons(completed="✅ ", pending="⏳ ", overdue="❗ "))
# 紧急程度格式化器:定义不同紧急程度的图标
u_icons = {1: " ⏱️", 2: " ⚠️", 3: " 🔥", 4: " 💣"} # 紧急程度从低到高
fmt.todos.urgency.add(urgency_icons(icons=u_icons))
# 截止日期格式化器:定义截止日期的显示格式
fmt.todos.due.add(due_casual_format()) # 使用非正式日期格式
fmt.todos.due.add(due_icon(completed="📅 ", pending="⏰ ", overdue="🚨 ")) # 添加截止日期图标
# 描述格式化器:显示任务完成进度和标签
format = Text(" 📊 {completed_count}/{total_count}", style=theme.green).markup # 使用主题的绿色
fmt.todos.description.add(todo_description_progress(fmt=format)) # 添加任务进度显示
fmt.todos.description.add(description_highlight_tags(fmt="🏷️ {}")) # 添加标签高亮
# 定义一个函数,用于在 Dooit 启动时设置仪表盘
@subscribe(Startup) # 使用装饰器订阅启动事件
def setup_dashboard(api: DooitAPI, _):
from datetime import datetime # 导入 datetime 模块用于获取当前日期
theme = api.vars.theme # 获取当前主题配置
now = datetime.now() # 获取当前时间
formatted_date = now.strftime("%A, %d %b ") # 格式化日期为“星期, 日 月”的形式
# 定义仪表盘的标题
header = Text(
"I alone shall stand against the darkness of my overdue tasks", # 自定义文本
style=Style(color=theme.primary, bold=True, italic=True), # 使用主题的主色调,加粗并斜体
)
# 定义 ASCII 艺术文字
ascii_art = r"""
.
/ V
/ ` /
<< |
/ |
/ |
/ |
/ /
( ) | |
________| _/_ | |
<________________)__)
"""
# 定义仪表盘的内容
items = [
header, # 标题
"", # 空行
Text(ascii_art, style=api.vars.theme.primary), # ASCII 艺术文字,使用主题主色调
"", # 空行
Text(
formatted_date, # 当前日期
style=Style(color=theme.secondary, bold=True, italic=True), # 使用主题的次要色调,加粗并斜体
),
]
api.dashboard.set(items) # 设置仪表盘内容


更多内容可以前往官方文档查看:
https://dooit-org.github.io/dooit/


本篇文章来源于微信公众号: 码农设计师