Three Tkinter Frame subclasses that display the Python logo and the “Python Powered” badges,
with the images bundled so you do not have to ship them yourself.
python_logo_widgets/
├── widgets.py LogoWidget, PoweredByLengthWidget, PoweredByWidthWidget
├── _compat.py the original function API, kept working
├── _demo.py the standalone demo
├── __main__.py python -m python_logo_widgets
└── imgs/ logo.gif, length.gif, width.gif
bg argument and sizing⚠️ The images are PSF property, not GPL-licensed content.
The repository’s LICENSE.md is GPL v3, which grants recipients the right to modify and
redistribute everything it covers. The Python logo and the “Python Powered” badges are trademarks
of the Python Software Foundation, governed by the
PSF Trademark Usage Policy — they are not the author’s
to place under GPL, and the policy restricts modifying them in ways the GPL explicitly permits.
Using the badges to indicate that your software is built with Python is the use the PSF intends. Treating the image files as GPL content you may alter and redistribute is not.
The position, decided: the repository’s licence stays GPL v3 for the code, and the images carry the PSF’s own terms. The README states the split, and this page and the FAQ repeat it, so nobody has to infer it from a licence file that does not mention the marks.
Recorded in internal/known-issues.md for the record.
docs/legal/PRIVACY.md and docs/legal/TERMS.md are generated boilerplate describing accounts,
personal data collection, and “the Service”. This package has none of those — it opens no
network connection, stores nothing, and reads only its own bundled images.
Same known-issues file.
Loads three GIFs from the installed package and puts each in a Label inside a Frame. That is
the whole implementation, and it is about seventy lines.
The value is in the details it gets right: resources resolved through importlib.resources so
they are found however the package is installed, and each image bound to self._image so Tkinter
cannot garbage-collect it out from under the label. Both are covered in
Architecture.