Skip to main content

Python based TUI app for managing TODO and similar messages in your projects.

Project description

spark-tudu

Navigation

About project

spark-tudu is a simple TUI app written in Python to help you develop your projects. It searches for lines like TODO or FIXME in app's syntax (about syntax) and provides it to you in one place in TUI written in Textual.

Motivation for the project

Motivation for this project comes from both the need for simple project when returning to coding, and from needing a simple program that puts all my TODOs from different files inside one space.

Learning outcomes

I learned how to use Textual and how to make TUI apps.

Project status

Project reached all requirements for 0.1.0 release. Currently app is fully functional. 0.1.1 added fixes for python 3.11 and 0.1.2 added more arguments to the config as well as arguments to command.

Planned features

  • Currently none

Syntax

App detects comments with this syntax:

language comment prefix marker/priority/comment/deadline

Example:

# TODO/HIGH/Add themes/22.10.2027

COMMENT MUST BE IN SEPARATE LINE THAN CODE

Scanned file extensions

spark-tudu scans only files with these extensions by default:

".py"
".pyi"
".pyw"
".pyx"
".px"
".pxi"
".c"
".h"
".cpp"
".hpp"
".cc"
".hh"
".cxx"
".hxx"
".js"
".jsx"
".ts"
".tsx"
".md"

These can be changed in config by adding for example this:

[files.comment_prefixes]
".py" = ["##"]

Above example makes it so .py files will be scanned only for comments starting with "##", empty lists can be made to disable scanning for given extension.

Installation and usage

Use pip install spark-tudu or download Linux binary/Windows executable from here to install it.

Use it by either running spark-tudu in directory you want to scan or by running downloaded binary/executable from there, depending on how you installed app.

You can also use spark-tudu PROJECT_DIR to scan given directory, as well as spark-tudu -h or spark-tudu --help to get more informations about the command

Supported markers

Currently supported markers:

  • TODO
  • FIXME
  • BUG
  • HACK
  • NOTE
  • IDEA
  • REVIEW
  • SECURITY
  • DOCS
  • TEST
  • PERF
  • CLEANUP
  • BLOCKED

Supported priorities

Currently supported priorities:

  • CRITICAL
  • HIGH
  • MEDIUM
  • LOW
  • OPTIONAL

Config

spark-tudu supports a config file. The config file must be present in the project directory being scanned.

If the config file does not exist, spark-tudu uses the default config made for VS Code.

The config file must be named spark-tudu.toml and can include these options:

[editor]
command = ["command", "arguments"]
wait = true/false
terminal = true/false

[files.comment_prefixes]
"file extension" = ["comment prefixes to scan"]

Default config:

[editor]
command = ["code", "-g", "{file}:{line}"]
wait = false
terminal = false

[files.comment_prefixes]
".py" = ["#"]
".pyi" = ["#"]
".pyw" = ["#"]
".pyx" = ["#"]
".px" = ["#"]
".pxi" = ["#"]
".c" = ["//", "/*", "*"]
".h" = ["//", "/*", "*"]
".cpp" = ["//", "/*", "*"]
".hpp" = ["//", "/*", "*"]
".cc" = ["//", "/*", "*"]
".hh" = ["//", "/*", "*"]
".cxx" = ["//", "/*", "*"]
".hxx" = ["//", "/*", "*"]
".js" = ["//", "/*", "*"]
".jsx" = ["//", "/*", "*"]
".ts" = ["//", "/*", "*"]
".tsx" = ["//", "/*", "*"]
".md" = ["#", "<!--"]

Different editor presets

Here are presets for common editors:

VS Code / Code OSS (default):

[editor]
command = ["code", "-g", "{file}:{line}"]
wait = false
terminal = false

VSCodium:

[editor]
command = ["codium", "-g", "{file}:{line}"]
wait = false
terminal = false

Nano:

[editor]
command = ["nano", "+{line},1", "{file}"]
wait = true
terminal = true

Vim:

[editor]
command = ["vim", "+{line}", "{file}"]
wait = true
terminal = true

Neovim:

[editor]
command = ["nvim", "+{line}", "{file}"]
wait = true
terminal = true

Sublime Text:

[editor]
command = ["subl", "{file}:{line}"]
wait = false
terminal = false

JetBrains IDE:

[editor]
command = ["idea", "--line", "{line}", "{file}"]
wait = false
terminal = false

Dependencies

  • textual
  • rich

Install with pip:

pip install textual rich

Install command for Arch-based distributions:

sudo pacman -S python-textual

(python-rich is installed as dependency of python-textual)

License

All files are licensed under the Apache 2.0 License.

See LICENSE for full terms

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spark_tudu-0.1.2.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spark_tudu-0.1.2-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file spark_tudu-0.1.2.tar.gz.

File metadata

  • Download URL: spark_tudu-0.1.2.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for spark_tudu-0.1.2.tar.gz
Algorithm Hash digest
SHA256 5ba8eb92f9618754425f727a7f49d5e136f915b24efcdffe6ca40cc256266397
MD5 cfc3a5d96a5fe08f9ba55a97b1451d01
BLAKE2b-256 052b619ba45acd895686db91e4f197a56be1504c9d8a93c689e7c356ffc61559

See more details on using hashes here.

File details

Details for the file spark_tudu-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: spark_tudu-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for spark_tudu-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dbfb923ec76cd5bdf1cc6c42f635adc7adcad7eba853c48d2b070c038c01b437
MD5 7bed2dc0a11f99e1f6ae1360c6c591fe
BLAKE2b-256 1d17e9be36ef448b59b6ac9cb0745feb8d0a81487a77280bdb530dd1774d241f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page