使用taskwarrior和timewarrior的pomodoro技术

pomw的Python项目详细描述


pomodorowarrior

与taskwarrior和timewarrior集成以实现pomodoro技术的命令行工具。

配置

配置文件位于$HOME/.config/pomw/pomwrc

TimeWarrior集成

波莫多罗瓦雷奥的目标是和时间战士打得很好。默认情况下,pomodorowarrior创建的所有间隔也将在timewarrior中更新。要更改默认值,请将以下部分添加到配置文件中:

[timew]sync=false

pomodoro长度

pomodoro长度也可配置。默认长度为25分钟。

[pomw]length=30

命令行界面

pomodorowarrior使用的命令行界面类似于taskwarrior和timewarrior。

命令可以引用taskwarrior任务id和pomodorowarrior间隔id。为了明确区分,我们强制间隔id前面加上@符号。

这些命令可以分为两类。那些处理pomodoros的,和那些处理一般时间间隔的。

工作流示例

早上的第一件事,我们就为今天的活动做准备。我们查看任务战士任务列表。

$ task next
ID Age  P Project      Tag  Due Description                      Urg 
1 6w   M pomw                2d Create documentation for pomw     10
2 6w   M python              1w Find the holy grail                8

我们决定计划用5个pomodoros来编写此文档

$ pomw plan -q 41# Plan 4 pomodoros for task 1

我们查看今天的待办事项表

$ pomw tdt # Print the To Do Today sheet
To Do Today                                                        2019-03-21
-----------                                                        ----------
                                     ┌─┐┌─┐┌─┐┌─┐
1  Create documentation for pomw     │ ││ ││ ││ │
                                     └─┘└─┘└─┘└─┘

哦,我们想要5个波莫多罗斯,但我们只计划了4个。我们现在有两个选项,我们可以覆盖计划的pomodoros的数量

$ pomw plan -q 51# Plan 5 pomodoros for task 1

或将更多的POMODOROS添加到现有计划的POMODROSOS

$ pomw plan -q +1 1# Increment the planned pomodoros for task 1 by 1

我们再次检查TDT表,一切正常!

To Do Today                                                        2019-03-21
-----------                                                        ----------
                                     ┌─┐┌─┐┌─┐┌─┐┌─┐
1  Create documentation for pomw     │ ││ ││ ││ ││ │
                                     └─┘└─┘└─┘└─┘└─┘

由于我们无法使用pomodoros找到圣杯,因此我们将使用(非pomodoro)时间间隔来添加用于此任务的时间。

我们今天的待办事项表看起来不错,我们开始制作第一个pomodoro。

在工作了几分钟之后,我们开始梦见格温维尔夫人,在我们意识到10分钟过去之前。因为我们相信严格遵循pomodoro技术,所以我们取消了pomodoro。

$ pomw void 1# Void the current pomodoro for task 1

我们的TDT表反映了空隙的pomodoro

To Do Today                                                        2019-03-21
-----------                                                        ----------
                                     ┌─┐┌─┐┌─┐┌─┐┌─┐
1  Create documentation for pomw     │/││ ││ ││ ││ │
                                     └─┘└─┘└─┘└─┘└─┘

在我们的第二次尝试中,我们完成了一个pomodoro。一旦它响了,我们就把波莫多罗标记为完成。

$ pomw done1# Complete a pomodoro for task 1
To Do Today                                                        2019-03-21
-----------                                                        ----------
                                     ┌─┐┌─┐┌─┐┌─┐┌─┐
1  Create documentation for pomw     │/││x││ ││ ││ │
                                     └─┘└─┘└─┘└─┘└─┘
                                      --------
                                      00:25:00

我们在寻找圣杯。一个小时后,我们放弃小睡。我们将时间记录为间隔

$ pomw add -d 602# Add a 60 minute time interval for task 2
To Do Today                                                        2019-03-21
-----------                                                        ----------
                                     ┌─┐┌─┐┌─┐┌─┐┌─┐
1  Create documentation for pomw     │/││x││ ││ ││ │
                                     └─┘└─┘└─┘└─┘└─┘
                                      -------
                                      0:25:00
                                      
Non Pomodoro Time                     
-----------------
2  Find the holy grail                1:00:00
                                      -------
                                      1:00:00

亚瑟王只支付我们50分钟的时间,所以我们修改了时间间隔

$ pomw ls  # Lists the time intervals contained in the database
ID   Type    Date        Start     End       Project                Task
@1   NonPom  2019-03-21  13:43:32  14:43:32  python                 Find the holy grail
@2   Pom     2019-03-21  13:15:17  13:40:17  pomw                   Create documentation for pomw

从清单中,我们看到需要修改间隔@1。我们将新的结束时间设置为14:33:32

$ pomw mod -e 14:33:32 @1 # Modify interval @1, set new end time as 14:33:32
ID   Type    Date        Start     End       Project                Task
@1   NonPom  2019-03-21  13:43:32  14:33:32  python                 Find the holy grail
@2   Pom     2019-03-21  13:15:17  13:40:17  pomw                   Create documentation for pomw

亚瑟王不会为我们的文档创作工作买单。我们在间隔@2删除pomodoro。

$ pomw rm @2 # Delete interval @2 
ID   Type    Date        Start     End       Project                Task
@1   NonPom  2019-03-21  13:43:32  14:33:32  python                 Find the holy grail

希望这给了你一个(不太混乱)介绍的权力,波莫多洛瓦里尔。

比本例中所示的命令行参数多得多。对任何命令使用--help选项来了解其完整用法。

警告

TimeWarrior间隔没有唯一的ID,因此,pomodorowarrior将间隔匹配到开始和结束时间。

如果直接使用timewarrior修改间隔,则数据库之间该间隔的链接将丢失。

pomodorowarrior试图优雅地处理这种情况,但建议您使用pomodorowarrior修改任何间隔,以保持数据库同步。

开发

构建系统

0.0.3版本开始,我们将setuptools替换为poetry。 poetry与PEP 518兼容,并使用pyproject.toml进行配置。在我看来,它提供了一个更简单的开发经验。

poetry建议您将其与系统的其他部分隔离安装。这可以通过运行安装脚本来完成:

curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python

释放

脚本./release.py已经开发为自动化切割释放。它需要git-extras安装在您的系统上。

如果要手动创建发行版,必须遵循以下规则:

  • 仅从master
  • 释放
  • 用新版本号更新pomw/__version__.py
  • 用新版本号更新pyproject.toml
  • 使用自上一版本以来的提交更新Changelog

上传一个版本到pypi

创建标记并将其推送到gitlab后,gitlab ci发布阶段会自动将版本上载到pypi。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javajaxb在嵌套节点中生成xmlns:xsi声明   java重定向到youtube以上传jsp上可用的视频   java提高了JVM和ANT的性能   java如何将返回的JSON数据放在HTML表单中   java如何发送XWWWFORMURLENCODE在重新授权   java为什么jvm XX:+EliminateAllocations失败   堆移除和重建方法?(爪哇)   Stanford NPL in Spark(Scala)应用程序运行到Java堆空间(Java.lang.OutOfMemoryError)   调试java中打开/关闭println的任何方式(详细模式)   java IntelliJ在鼠标悬停时显示JavaDocs工具提示   Olingo Odata Java中的自动扩展选项   json将postgres文本arry转换为java列表?   oop需要帮助推断Java代码   复选框的java添加操作侦听器AbstractTableModel   java如何从公共静态void main(String[]args)传递值   java从数据库中获取大值   java Processing 2.0电影从jar运行时无法打开电影文件   java如何在不使用应用程序的情况下刷新活动?   尝试将JSON解析为ListView时的Android:JSON parse:null对象引用