Skip to main content

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

Metadata

Release files for spark-tudu 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spark-tudu 0.1.2
File Size Uploaded Provenance
spark_tudu-0.1.2.tar.gz 14.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for spark-tudu 0.1.2
File Interpreter ABI Platform
spark_tudu-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 27.2 kB

Release files / spark_tudu-0.1.2.tar.gz

Download URL spark_tudu-0.1.2.tar.gz
Size 14.2 kB
Tags Source
SHA-256 checksum
How to use checksums
5ba8eb92f9618754425f727a7f49d5e136f915b24efcdffe6ca40cc256266397
BLAKE2b-256 checksum
How to use checksums
052b619ba45acd895686db91e4f197a56be1504c9d8a93c689e7c356ffc61559
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release files / spark_tudu-0.1.2-py3-none-any.whl

Download URL spark_tudu-0.1.2-py3-none-any.whl
Size 13.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dbfb923ec76cd5bdf1cc6c42f635adc7adcad7eba853c48d2b070c038c01b437
BLAKE2b-256 checksum
How to use checksums
1d17e9be36ef448b59b6ac9cb0745feb8d0a81487a77280bdb530dd1774d241f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Security for spark-tudu 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page