bfu_ua_display: Add Ukrainian text rendering library#1114
bfu_ua_display: Add Ukrainian text rendering library#1114BrainFromUkraine wants to merge 3 commits into
Conversation
758de50 to
32cd805
Compare
Add bfu_ua_display package for rendering Ukrainian text on MicroPython displays. Features: * Full Ukrainian alphabet support. * 5x7 bitmap font optimized for ESP32. * Works with displays supporting pixel() method. * Tested with SSD1306 OLED displays. Package provides ua_text, ua_text_center, and ua_text_scaled. Signed-off-by: Oleksandr Polishchuk <oleksandr.polishchuk@icloud.com>
32cd805 to
ae6148a
Compare
|
Дякую for the contribution. A few initial comments: Also on a first look the PR appears to be created using AI. For more information, consult the MicroPython Generative AI Policy: |
Signed-off-by: Oleksandr Polishchuk <oleksandr.polishchuk@icloud.com>
|
Thank you for the review and feedback. I've moved the package from All related files were relocated while keeping the public API and functionality unchanged. All formatting, linting, and CI checks are now passing successfully. I also want to clarify that AI tools were used during development and documentation assistance for this contribution, while the implementation, testing, fixes, and final review were performed manually. Thanks again for the guidance and review. |
|
Thanks for clarifying. Have you considered an optional framebuffer fast path for framebuffer-backed drivers? Right now rendering is per-glyph/per-pixel via pixel() (and fill_rect() for scaled text), which is nicely portable. |
|
Thanks for the suggestion. Yes, I have considered framebuffer-backed rendering paths as a possible future optimization, especially for ESP32 display stacks using framebuf/blit operations. The current implementation intentionally prioritizes portability and compatibility across different MicroPython display drivers by relying on the generic pixel() fallback path. I agree that an optional framebuffer/blit accelerated path could significantly reduce Python call overhead and improve rendering performance for scaled or repeated text rendering. I’ll definitely explore this direction further while keeping compatibility with existing drivers. |
e86e6d8 to
f8587ad
Compare
|
Hi, I checked the latest Ruff failure. The package added in this PR passes Ruff locally: py -m ruff check python-ecosys/bfu_ua_display
# All checks passed!The current Ruff CI failure appears to come from pre-existing unrelated files outside this PR, for example I did not modify the global Ruff workflow, to keep this PR focused only on adding Please let me know if there is anything else you would like me to adjust in the package itself. |
476c3c2 to
fcf2005
Compare
Signed-off-by: Oleksandr Polishchuk <oleksandr.polishchuk@icloud.com>
fcf2005 to
b247123
Compare
|
Quick follow-up regarding the Ruff issue: I found the actual cause and resolved it. During debugging, I temporarily introduced a local Ruff configuration override, which unintentionally bypassed the repository exclude rules and caused unrelated legacy directories to be linted by CI. The temporary override has been removed, the package was adjusted to fully comply with the existing repository Ruff rules, and all CI checks are now passing successfully. Thanks again for the review and guidance. Thank you |
Add bfu_ua_display package for rendering Ukrainian text on MicroPython displays.
Features:
Package provides ua_text, ua_text_center, and ua_text_scaled functions.