Version 7.5.1

Hotfix patch for v7.5.0. The initial v7.5.0 deploy surfaced three issues in production that did not show up in CI: the Docker image still pinned Python 3.10 (the NN metamodel uses typing.Self, PEP 673, which is 3.11+); the NN code generators failed to register because their transitive utils_nn imports PIL and torch at module level even though the generator never calls them; and the modeling assistant widget was visible on NN diagrams it cannot reason about. All three are addressed here.

Fixes

  • Bumped the runtime Docker base image from python:3.10-slim to python:3.12-slim so the production image matches the CI matrix and setup.cfg’s declared python_requires = >=3.11. The NN Self import works as-is on 3.12.

  • Lazy-imported PIL.Image and torch.nn in besser/generators/nn/utils_nn.py. The two helpers that need them (compute_mean_std for image-dataset preprocessing and the Permute nn.Module subclass) are referenced only by Jinja templates that emit user-runtime training scripts — the BESSER backend never calls them itself. With try/except ImportError guards (and a nn.Module stub for the class definition), the file now loads on a backend host that does not have Pillow or torch installed, which lets PytorchGenerator and TFGenerator register correctly. When the user runs the generated training script on their own machine, the same module re-imports the real PIL and torch since they have those installed.

  • Hide the floating Modeling Assistant widget on the Neural Network diagram. The assistant is UML-oriented and has no reasoning over layers / hyperparameters / training, so the FAB and popup card are now suppressed whenever the active diagram type is NNDiagram (frontend submodule change).