mktask
A work task prioritizer built on mkio (config-driven microservice backend) and mkui (config-driven Web Components workspace with dockable panes).
Tasks live in a local SQLite database and show up in a live-updating blotter you can sort, filter, and arrange however you like. Each task carries an importance and an urgency (1–5); the blotter derives a score from them so the most pressing work floats to the top.
A task can be split into child tasks, and a child can be split again, to any depth. The blotter nests children under their parent, each level sorted by score, with carets to fold a subtree away. Completing a task completes everything split from it; reopening a child reopens its ancestors; deleting a task deletes its whole subtree.
Every task gets a Task ID like TKMA00000042: TK, two letters from
the username the server runs as (--user), and a sequence number that
starts at 00000001, never repeats, and grows past eight digits rather than
wrapping (TKMA100000000 follows TKMA99999999).
Quick start
pip install mktask
mktask # http://127.0.0.1:8080/
Everything installs via pip; nothing is fetched at runtime.
CLI
mktask [config] [-p PORT] [--host HOST] [-d PATH] [-u USER] [--version]
config— path to amktask.toml. Defaults to./mktask.tomlif present, otherwise the one bundled with the package.-p, --port— override the listening port (default 8080).--host— override the listening host (default127.0.0.1).-d, --db— database file;.dbis appended when there is no extension.:memory:runs without persistence.-u, --user— the username whose first two alphanumeric characters, uppercased, prefix new Task IDs (mark→TKMA…; a one-character name is padded withX). Defaults to the OS login name.
The server prints the URL to open once it is listening. If the port is already taken it exits immediately with an error instead of starting.
Customizing
Copy the bundled config out and edit it:
python -c "import mktask, pathlib; print(pathlib.Path(mktask.__file__).parent / 'mktask.toml')"
mktask.toml declares the SQLite tables, the mkio services, and the static
routes; static/app.json next to it declares the UI (menus, panes, frames,
dialogs). Both are plain config — see the mkio and mkui READMEs for the
formats. The one piece of code is mktask/services.py, which the tasks
service points at: it assigns Task IDs and runs the complete, reopen, and
delete cascades.
Upgrading
Until 1.0, a release may change the database schema without migrating an
older database. 0.2.0 does (Task IDs, splitting, and complete replacing
done): delete your mktask.db before starting the new version.
Development
pip install -e '.[test]'
mktask -d :memory:
python -m pytest
The tests cover the CLI and config loading, Task ID formatting, a real
server over HTTP and WebSocket (every task op, splitting and the cascades,
the Task ID sequence across restarts and past eight digits, the query
filter, saved layouts, the port, host, and user flags), and the static
integrity of app.json against mktask.toml.
License
Apache License 2.0. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mktask-0.2.0.tar.gz.
File metadata
- Download URL: mktask-0.2.0.tar.gz
- Upload date:
- Size: 35.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
039b0237abd7878d97c66783db55ba4259d0ad0dd5734c6c2cc37b1c3fd27c08
|
|
| MD5 |
3aee8ceaa810acd1e1b3defadd9d7f41
|
|
| BLAKE2b-256 |
1ee90e95ecc43af13ae3e166685250b2603060d1ecfc1ee8da6944e2e36bbe2c
|
File details
Details for the file mktask-0.2.0-py3-none-any.whl.
File metadata
- Download URL: mktask-0.2.0-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbe83fa10ac0e9dc03f90b653990b2dcd747f5900315efc739ce3bd784c17e52
|
|
| MD5 |
e45c882e6509a929421b27e070b2164d
|
|
| BLAKE2b-256 |
4da43e4514638e491ba4457c94b2a9baa484af788fc728d864371dbde9922e00
|