Commit graph

33 commits

Author SHA1 Message Date
db11128beb
ref: Extract sys module use from main func
Main function instead returns the given error code and only when invoked
as a cli script will we use the error code to exit with the
corresponding code to the shell.
2025-11-28 23:08:15 +01:00
ce8ffa3ae8
ref: Extract stdio operations into adapter 2025-11-28 23:08:14 +01:00
d103a632d0
ref: Use OPTION dict defaults for TConf 2025-11-28 23:08:14 +01:00
f8f0a2077d
ref: Extract determining default taskrc from TConf class
To start streamlining the TConf class a little, by removing some
internal logic which may be better residing in the Options dict,
we extract determining the correct taskrc file.
2025-11-28 23:08:13 +01:00
0d2e68a03d
ref: Extract configuration assembly into separate function
Some checks failed
website / build (push) Has been cancelled
website / deploy (push) Has been cancelled
2025-11-26 23:18:48 +01:00
c164be29d3
ref: Rename taskrc parsing function to parse_rc 2025-11-26 23:18:47 +01:00
b20d56a007
ref: Load all options from single dictionary source 2025-11-26 23:18:47 +01:00
fccfb85026
ref: Rename configparser to cfg 2025-11-26 23:18:46 +01:00
a088fcbe76
feat: Inform user if no file was written
Some checks failed
website / build (push) Has been cancelled
website / deploy (push) Has been cancelled
When the user exits the note-writing editor process without having
written any file, we also don't attach an annotation to the
corresponding task since it would lead nowhere.

This small change makes this condition obvious to the user, by informing
them that the program is 'doing nothing' when they exit the editor
without having saved a file.
2025-11-11 20:15:41 +01:00
1652e01885
doc: Add better cli option metavar annotations 2025-09-15 10:56:28 +02:00
5e6ab6854f
ref: Use recommended subprocess method to edit 2025-09-15 10:56:28 +02:00
7dbd93796d
ref: Remove property setters from dataclass
Some checks failed
website / deploy (push) Has been cancelled
website / build (push) Has been cancelled
Removed the property setters and getters from variables with complex
defaults. Instead, they are now given a specific const default value
`Path("%%%%I_DONT_EXIST_%%%%")` which is very unlikely to be used by a user
in normal circumstances.

This is necessary to be able to remove the properties since Python does
not distinguish between an empty Path() and a non-given Path() (i.e.
there is no Path value which returns Falsy).

However, this slightly clunky construct does allow setting the various
Paths once and only once, and also to remove all the previously
necessary getters and setters with their hidden backing variables.

Lastly it should open the gates for changing the _real_path
transformation to be part of the TConf class itself and not a global
function.
2025-04-22 22:09:58 +02:00
ee4f3781f8
feat: Use xdg location or home dir taskrc if it exists
The preference structure goes highest to lowest:

1. ~/.taskrc
2. $XDG_CONFIG_HOME/task/taskrc
3. ~/.config/task/taskrc

Uses first file found.
2025-04-08 21:00:27 +02:00
5976651a26
feat: Create note parent directories if necessary 2025-04-08 21:00:26 +02:00
4642b24c6b
ref: Parse conf file with dict comprehension and named tuple 2025-04-08 21:00:26 +02:00
9d5fa3e244
feat: Only annotate tasks if note file was created
In the case of opening the notes but then backing out again without
actually writing a notes file we should also not annotate the task with
anything, since it technically still does not have a note.
2025-04-08 21:00:25 +02:00
caec33120c
feat: Locate notes dir in task data dir by default 2025-04-08 21:00:25 +02:00
46d57042cd
ref: Turn TConf from dict into class factory method
Code from here:

https://stackoverflow.com/questions/56849331/what-is-the-proper-way-in-python-to-define-a-dataclass-that-has-both-an-auto-gen
2025-04-08 21:00:24 +02:00
4ad9f4c981
ref: Move default opt handling into TConf object 2025-04-08 21:00:24 +02:00
4227465bfb
fix: Use tw default dirs 2025-04-08 21:00:23 +02:00
0277f15ca2
doc: Add docstring documentation 2025-04-07 10:49:16 +02:00
0f10789e9c
chore: Change conf options to dot-notation 2025-04-07 10:49:15 +02:00
6e1761e690
chore: Fit env var names to conf option names 2025-04-07 10:49:14 +02:00
8c3ecfa431
chore: Restructure script 2025-04-07 10:49:14 +02:00
cf7e9dd5fe
ref: Ensure paths are Path objects 2025-04-07 10:49:13 +02:00
0e167cf08a
ref: Turn dict into conf obj 2025-04-07 10:49:13 +02:00
c6f05d0b64
feat: Specify taskrc as cli option
In addition to task-data we also allow specifying the taskrc file on the
command line.
2025-04-07 10:49:12 +02:00
3fded7315c
fix: Parse EDITOR and VISUAL env vars with lower precedence
Since the precedence now goes (from lowest to highest):

defaults -> conf_file -> env -> cli

existing EDITOR or VISUAL variables would overwrite those
explicitly set in the conf file. While we do want the general
precedence of env over conf file, this is a special case where
we get the value of the _DEFAULT_ variable from the env, and
only then start parsing our own options. So now, for these vars
we do:

default -> env (EDITOR/VISUAL) -> conf_file -> env (TOPEN_EDITOR) -> cli
2025-04-07 10:49:12 +02:00
96422d254b
fix: Reintegrate env var parsing
Was removed from parsing when conf parsing was added, now re-added into
configuration parsing.
2025-04-07 10:49:11 +02:00
f1f3041928
feat: Add taskrc parsing
We first parse the taskrc file now, before overwriting those options
with ones given on the command line.
2025-04-07 10:49:11 +02:00
1ec3755344
chore: Simplify funcs by removing default args
In preparation for reading the config also from a taskrc file I want to
simplify the configuration management beforehand. There should be one
place where we grab it from the environment, one place to grab from CLI
and then one place from conf file. This helps with simplifying a little
by not again injecting defaults at the mid-point.

Ultimately, we should create one 'config' data structure, probably dict
or NameSpace which we pass around and each function receives it.
2025-04-07 10:49:07 +02:00
790b5b4bad
doc: Update pyproject and cli descriptions
Reflects forge project description.
2025-04-01 14:24:20 +02:00
bda8c3b992
fix: Allow correct installation of script 2025-04-01 10:57:07 +02:00
Renamed from topen (Browse further)