9039dc7e40
python-tools.sh, py-mod.mk: Use --symbol-filter
...
CI / Packaging - Kali Linux (pull_request) Successful in 3m8s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m22s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m9s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m14s
CI / Packaging test (push) Successful in 0s
Letting python-tools.sh rewrite symbols is more robust than rewriting an entire __init__.py with PY_INIT_FILTER in the including Makefile. The latter can break in non-obvious ways if python-tools.sh changes __init__.py's format.
Make python-tools.sh support --symbol-filter to remedy that. The option takes an sed script which should expect a string of two non-whitespace tokens: The module from which the symbol is imported, and the name of the symbol in that module. It's output will then be used as the symbol to be exported from __init__.py.
Also, support the PY_SYMBOL_FILTER variable in py-mod.mk. If it's defined, it is used for --symbol-filter.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-12 07:33:07 +02:00
fc6f2fbb65
python-tools.sh: Fix __init__.py linter complaints
...
The __init__.py files as gnerated by python-tools.sh contain multiple issues, fix them:
- Make the machinery fail if the same type name is imported from
different modules
- Support relative imports from .Module import Module instead of
having to use the entire module path as import source
- Import types explicitly re-exported with "as":
from .Module import Module as Module
Otherwise ruff will regard the type as "imported but not used"
- Add "# ruff: noqa: E501" near the top. The import lines can get
long and are beyond manual control (except for renaming the
modules themselves, that is). This can cause ruff to fail, so get
it to accept long lines in __init__.py. The style violation
doesn't make much of a difference in generated code, anyway,
because nobody reads that. Plus what's happening in the code
isn't rocket science, so good style wouldn't help much with
understanding, either.
This promptly digs up two symbol name conflicts lib.pm.dpkg and lib.pm.rpm. Fix them along with this commit to keep it from breaking the build.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-05-31 17:51:51 +02:00
d0c1eac1a9
py-defs.mk, py-mod.mk: Support PY_UPDATE_INIT_PY
...
Allow to disable auto-updating of __init__.py in a directory via PY_UPDATE_INIT_PY = true | false.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-16 18:42:58 +01:00
0a9340af49
make: Re-add files necessary for building jw-python
...
Re-add everything necessary for building and packaging jw-python.
ldlibpath.mk is not strictly necessary, but might be with other Python packages backed by compiled C-code, so leave it in.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-13 17:27:14 +01:00
bc883deed4
Everywhere: Remove everything non-essential for "make clean all"
...
This commit removes everything not strictly necessary for running "make clean all" inside jw-build.
packaging jw-devtest. This cuts the repo down from 24077 to 4725 lines of code.
The idea is to
1) Further remove bloat from the remaining bits
2) Re-add what's necessary to build and package other essential repos.
The decision should be based on whether or not jw-build can also be useful in a non-janware context.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-14 15:02:56 +01:00
07d9eeea42
py-mod.mk: Support PY_INIT_FILTER
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-01-27 15:00:40 +00:00
de893a0fe5
py-mod.mk: Fix bogus # export match in commented line
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-22 14:06:09 +00:00
90ce1b5196
py-mod.mk: Fix bogus # export match on class {variable}
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-18 17:14:23 +00:00
4e405a5d1a
py-mod.mk: Add support to # extract variables
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-03 12:27:39 +00:00
35def547bf
py-mod.mk: Add support to async function definitions
...
The async keyword confused python-tools.sh, this commit fixes that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-10-28 12:20:51 +00:00
bdd66dbc26
Everywhere: Rename MOD_SCRIPT_DIR -> JWB_SCRIPT_DIR
...
Follow name change of MODDIR -> JWBDIR.
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-29 21:45:24 +00:00
b2d6e6f554
Everywhere: Rename MODDIR -> JWBDIR
...
Rename the omnipresent MODDIR variable to JWBDIR, since that's more to the point.
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-29 21:34:18 +00:00
fb2f57b7b9
py-mod.mk, py-rules.mk: Split up py-mod.mk in py-mod.mk and py-rules.mk
...
py-rules.mk is meant to be usable outside of a jw Python module context, just for generating .pyc, for example
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-22 10:11:44 +00:00
42e01d9dd8
py-mod.mk: Fix python version conditional
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-11 07:41:45 +00:00
c67ce9fa1b
py-mod.mk: Make python compilation errors fatal
...
Pass doraise=True to py_compile.compile()
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-04 10:38:07 +00:00
956aea82eb
py-*.mk: Fix python version detection
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-03 08:00:39 +00:00
fe161ff4d6
py-defs.mk, py-mod.mk: Add support for Python3's __pycache__
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-12 11:35:49 +00:00
0eaef0c326
conf/jcs, make, tmpl/doxygen: Align equal signs in makefiles to column 30
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-03 18:12:28 +00:00
d684f198b2
make: Add dev-utils.mk for convenience targets
...
dev-utils.mk is meant to provide targets like install-to-system, which will be invoked during development
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-11-27 15:10:18 +00:00
e68d4eb83b
make, scripts: Now excplicitly calling python2 executable instead of python
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-01-02 13:12:00 +00:00
0e5a2ef46e
py-mod.mk, qt-rules.mk, yapp.mk: Add HDRDIR_SCOPE_SUFFIX to ytools include files
...
Change ytools header location from #include <header.h> to #include <ytools/header.h>.
Signed-off-by: Jan Lindemann <jan@janware.com>
2017-12-18 18:31:37 +00:00
f5c43f706a
make: Replace some executables by absolute paths to improve performance
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2017-09-02 19:26:52 +00:00
92040c66e7
make, scripts: Preserve modification time on installation
...
Implemented -p switch on pkg.sh log-install and used it on standard installation rules.
Signed-off-by: Jan Lindemann <jan@janware.com>
2017-08-31 19:40:39 +00:00
3f782d3f3f
py-defs/py-mod.mk: Fix __init__.py generation
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2017-07-25 15:04:44 +00:00
55f9b50562
py-defs.mk, py-mod.mk, python-tools.sh: Improve python module handling
...
- Fix superflous dots in module names - Generate PYTHONPATH in projects.py - Add support for __init__.py.tmpl
Signed-off-by: Jan Lindemann <jan@janware.com>
2017-07-24 10:59:08 +00:00
cdabaad7ef
py-*.mk: Fill PYTHONPATH from build dependencies
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2017-07-22 18:16:08 +00:00
f8747fcdbd
py-defs.mk, py-mod.mk: Add exports to __init__.py
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2017-07-22 14:34:23 +00:00
d49340917b
make: Add py-defs.mk py-mod.mk py-run.mk
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2017-07-21 15:34:16 +00:00