Commit graph

54 commits

Author SHA1 Message Date
0be02c7154 lib.App, .Cmd: Add modules

Add App and Cmd as generic base classes for multi-command applications. The code is taken from jw-python: The exising jw.pkg.App is very similar to the more capable jwutils.Cmds class, so, to avoid code duplication, add it here to allow for jwutils.Cmds and jw.pkg.App to derive from it at some point in the future.

Both had to be slightly modified to work within jw-pkg's less equipped context, and will need futher code cleanup.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-01-26 17:58:23 +01:00
18467a6500 lib.Types: Add module

Types is a container for types, notably classes, which are dynamically loaded from other modules. Which modules are loaded is based on the following criteria passed to its constructor:

- mod_names: A list of modules to load and investigate

- type_name_filter: A regular filter expression or None (default). If it's None, all types pass this filter.
- type_filter: A list of types the returned types must match. Defaults to [], in which case all types pass this filter
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-01-26 17:58:23 +01:00
f7cc364be2 lib.log: Add module

A dedicated logging module is currently provided by jw-python, but since it's often needed also in jw-pkg, and it's relatively small and maintainable, it seems justified to move it into jw-pkg.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-01-26 17:58:23 +01:00
2e69639362 jw.pkg.build.lib: Move to jw.pkg.lib

In preparation of reorganizing the tree below cmds, move the lib subdirectory a level up.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-01-26 17:58:23 +01:00