• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kivy / kivy / 25399660901
59%

Build:
DEFAULT BRANCH: master
Ran 05 May 2026 08:22PM UTC
Jobs 2
Files 330
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

05 May 2026 08:10PM UTC coverage: 58.544% (+0.8%) from 57.723%
25399660901

push

github

web-flow
SvgWidget, AsyncSvgWidget with SVG Provider backed by ThorVG  (#9284)

* Add SVG example apps: layers, scale, download, and icon toggle button

* Add SvgWidget and AsyncSvgWidget backed by ThorVG

Adds kivy.core.svg (SVG core provider + ThorVG backend), kivy.uix.svg
(SvgWidget / AsyncSvgWidget), registers both in the factory, and adds
a canvas style rule in style.kv.

* Add tests for kivy.core.svg, kivy.uix.svg, and provider registry

* Remove thorvg-python workarounds now fixed in v1.1.2

Both bugs are fixed in thorvg-python 1.1.2 (ThorVG 1.0.3):

- Accessor.accessor_generate_id() now returns a plain int correctly;
  drop the ctypes bypass in _generate_id() and use it directly.
- Picture.get_paint() no longer causes an access violation; drop
  _picture_get_paint() and call pic.get_paint() directly.

Remove the _tvg_generate_id_fn and _tvg_get_paint_fn ctypes caches
and the associated imports (ctypes, PaintPointer, Paint) that existed
solely to support the workarounds.

* Use ThorVG accessible mode for SVG element ID discovery

Replace XML-based _parse_element_ids with a two-path approach:

- Primary: Picture.set_accessible(True) + Accessor.get_name() retrieves
  original SVG id strings directly from ThorVG (PR #4294 / issue #4217),
  avoiding a second XML parse and correctly excluding the root <svg> element.
- Fallback: _extract_element_ids_xml (renamed from _parse_element_ids) is
  used when the installed thorvg-python predates the accessible-mode API.

_probe_size_from_data is merged into _probe_from_data which returns both
the document size and element IDs from a single Picture load.

Update test_core_svg.py to import the renamed _extract_element_ids_xml.

* svg_thorvg: migrate from thorvg-python to kivy.lib.thorvg

Switch the ``kivy.core.svg`` ThorVG provider to Kivy's internal ThorVG
binding so that SVG support ships with official Kivy wheels and no longer
requires users to ``pip install thorvg-python``.

Key changes:

* Drop the module-level ``... (continued)

3142 of 6341 branches covered (49.55%)

988 of 1129 new or added lines in 6 files covered. (87.51%)

27279 of 46596 relevant lines covered (58.54%)

1.15 hits per line

Uncovered Changes

Lines Coverage ∆ File
90
76.06
kivy/uix/svg.py
38
75.95
kivy/core/svg/svg_thorvg.py
6
97.49
kivy/tests/test_core_svg.py
3
94.23
kivy/core/svg/__init__.py
2
0.0
0.0% kivy/factory_registers.py
2
99.34
kivy/tests/test_uix_svg.py
Jobs
ID Job ID Ran Files Coverage
1 25399660901.1 05 May 2026 08:22PM UTC 330
56.97
GitHub Action Run
2 25399660901.2 05 May 2026 08:22PM UTC 330
58.45
GitHub Action Run
Source Files on build 25399660901
  • Tree
  • List 330
  • Changed 15
  • Source Changed 5
  • Coverage Changed 14
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #25399660901
  • 35ef09e9 on github
  • Prev Build on master (#25397440657)
  • Next Build on master (#25517353690)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc