Commit graph

342 commits

Author SHA1 Message Date
e688cd2364 Config: Support refuse_mode_mask

refuse_mode_mask can be passed to the constructor and determines which permission bits need to be absent from config file modes if they smell like they contain secrets.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-30 09:54:03 +01:00
17ab47e96a Add db.schema framework

jw.db.schema is a set of classes meant as an interface to describe a database schema.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-28 10:18:57 +01:00
cc7aeeac31 misc: Add load_function()
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-29 16:54:10 +01:00
e004f8ade7 db: Add TableIoHandler
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-28 14:27:27 +01:00
7399388f60 Fix errors reported by mypy
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-29 16:51:07 +01:00
bee3e28ff5 Config: Accept strings as value for glob_paths

Make Config's ctor accept strings as values for glob_paths, as opposed to lists. This covers the canonical case of one configuration file being passed.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-29 12:56:32 +01:00
2ec6e72cff Cmds: Add parsed args as attribute

The parsed args container is passed to the run() function and friends for convenient use. Sometimes, though, the base classes or umbrella commands need to make use of it, too, even more so as they may define command line arguments via add_arguments(). However, run() or _run() or whatever is never called on them, neither any other callback, so make args available to them as a member variable.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-29 12:51:01 +01:00
055c008a33 Cmds: Make run() accept argv argument
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-28 20:27:25 +01:00
d5e268a03b log: Add throw()
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-28 10:17:27 +01:00
2462ad8c60 log: Add log_level()
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-28 10:17:17 +01:00
ce347772dd misc: Add debug logging to load_class()
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-28 10:16:06 +01:00
ddb1fd0eb4 Add db.rows
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-28 08:11:54 +01:00
8c0b975e1b Config: Mutually exclude loading from tree or files

Initializing Config from a StringTree object doesn't stop it from looking for config files to read. Stop that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-28 08:05:16 +01:00
64ce94b142 String Tree: Fix order of overwrites
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-28 07:18:50 +01:00
126ecbb411 StringTree: Beautify debug logging
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-28 05:08:50 +01:00
1ff24b870a Release 1.0.0-19@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2025-01-27 15:59:03 +00:00
08fbe19397 Start version: 1.0.0-19
Signed-off-by: janware DevOps <devops@janware.com>
2025-01-27 15:58:42 +00:00
84a4053157 Add class Config
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-20 11:39:56 +01:00
224a16ec71 Cmds: Add TODO Rename to App

There's an ungreppable TODO remark in Cmds about renaming the class to App, make it greppable.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-18 20:53:45 +01:00
45b5a8fb5a log: Add prio_gets_logged()
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-18 16:42:33 +01:00
24bfa0f806 stree/serdes: Support -include lines
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-16 13:44:09 +01:00
a0234e7d54 Add module jwutils.cast
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-16 12:39:20 +01:00
57ff96608b StringTree.value(): Add keyword-argument default

Add argument default to StringTree.value(), defaulting to None, doing the obvious.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-16 10:53:09 +01:00
381514ab2c misc: Add load_class()

Add load_class() to complement load_object(), returning the class as opposed to instantiated object.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-16 10:51:28 +01:00
3a7fb50979 Apply monkeytype traces

Run

monkeytype run jw-acc.py --log-level debug db import --format mdb-json-dir dbs monkeytype list-modules | grep ^jw | while read m; do monkeytype apply $m done

and fix the fallout.

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-15 15:35:29 +01:00
440b40e267 Release 1.0.0-18@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2024-12-22 15:45:41 +00:00
0583167961 Start version: 1.0.0-18
Signed-off-by: janware DevOps <devops@janware.com>
2024-12-22 15:45:17 +00:00
385edd7169 StopWatch: Fix compilation error
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-03 13:34:26 +01:00
4b8d67b8ee Cmd.add_subcommand(): Add support for passing cmd argument as string
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-03 13:34:25 +01:00
3cd7926693 stree.parse(): Beautify debug logging
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-10-06 17:13:41 +02:00
08045442e2 StringTree: Fix exception in child_list()

child_list() throws an exception saying that <str> has no to_list() method. No, it hasn't. No idea how this has even worked at all, ever.

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-10-06 17:04:25 +02:00
f6cdd395da Release 1.0.0-17@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2024-07-16 12:55:18 +00:00
9e185fafe8 Start version: 1.0.0-17
Signed-off-by: janware DevOps <devops@janware.com>
2024-07-16 12:54:58 +00:00
4e53e37c7c Cmds.py: Emit usage message by default

Running an application derived from Cmds throws an error if invoked without arguments, fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-07-11 20:38:07 +02:00
047ce7227c Release 1.0.0-16@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2024-06-04 12:55:04 +00:00
e51676fae9 Start version: 1.0.0-16
Signed-off-by: janware DevOps <devops@janware.com>
2024-06-04 12:54:43 +00:00
748247f1ed Add jwutils.StopWatch

Add StopWatch class, intended to be useful for benchmarking.

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-06-03 12:33:36 +02:00
27813efc04 Fix bogus type errors dug up by mypy
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-06-02 12:05:44 +02:00
7888b2cff4 Release 1.0.0-15@suse-tumbleweed/x86_64
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-05-28 18:16:22 +00:00
3885ee2c51 Start version: 1.0.0-15
Signed-off-by: janware DevOps <devops@janware.com>
2024-05-28 18:16:02 +00:00
bab0cfd680 Release 1.0.0-14@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2023-03-17 13:28:45 +00:00
97d528746d Start version: 1.0.0-14
Signed-off-by: janware DevOps <devops@janware.com>
2023-03-17 13:28:24 +00:00
319d97e8bc log.py: Fix mypy warning (Incompatible types in assignment)

Fix mypy warning

jwutils/log.py:209: error: Incompatible types in assignment (expression has type int, variable has type Literal[5])

Signed-off-by: Jan Lindemann <jan@janware.com>
2022-10-04 13:11:44 +02:00
a46a0eb02a Release 1.0.0-13@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2020-11-22 13:15:35 +00:00
1a6260ea5e Start version: 1.0.0-13
Signed-off-by: janware DevOps <devops@janware.com>
2020-11-22 12:49:54 +00:00
8029b672bf slog(): Add only_printable keyword argument

Add only_printable keyword argument to slog(). It defaults to False. If it's true, non-printable characters are not logged but replaced with a printable character.

Signed-off-by: Jan Lindemann <jan@janware.com>
2020-05-16 15:33:13 +00:00
be4389a1f0 project.conf: Fix syntax
Signed-off-by: Jan Lindemann <jan@janware.com>
2020-05-15 20:44:44 +00:00
c63d1a729e misc: Add dump()

Add misc.dump(), which takes an iterable, assumes all elements have a dump() method, and calls it on all of them.

Signed-off-by: Jan Lindemann <jan@janware.com>
2020-04-23 10:34:28 +02:00
4a047ca260 log.remove_from_prefix(): Add support for str argument

In addition to an integer, a string can now be passed, which allows

prefix = ' | ' append_to_prefix(prefix) slog(INFO, "something") remove_from_prefix(prefx)
Signed-off-by: Jan Lindemann <jan@janware.com>
2020-04-23 10:32:05 +02:00
86e25a2dfb misc: Add load_(classes|class_names|object)()

Add some functions to aid in dynamically loading objects.

Signed-off-by: Jan Lindemann <jan@janware.com>
2020-04-22 14:02:35 +02:00