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-slimtopython:3.12-slimso the production image matches the CI matrix andsetup.cfg’s declaredpython_requires = >=3.11. The NNSelfimport works as-is on 3.12.Lazy-imported
PIL.Imageandtorch.nninbesser/generators/nn/utils_nn.py. The two helpers that need them (compute_mean_stdfor image-dataset preprocessing and thePermutenn.Modulesubclass) are referenced only by Jinja templates that emit user-runtime training scripts — the BESSER backend never calls them itself. Withtry/except ImportErrorguards (and ann.Modulestub for the class definition), the file now loads on a backend host that does not have Pillow or torch installed, which letsPytorchGeneratorandTFGeneratorregister correctly. When the user runs the generated training script on their own machine, the same module re-imports the realPILandtorchsince 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).