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

kivy / kivy / 25517353690
59%

Build:
DEFAULT BRANCH: master
Ran 07 May 2026 07:37PM UTC
Jobs 2
Files 336
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

07 May 2026 07:27PM UTC coverage: 59.297% (+0.8%) from 58.544%
25517353690

push

github

web-flow
Add Lottie animation provider and LottieWidget (#9293)

* Add Lottie core provider (ThorVG backend)

Register lottie in core provider config and kivy.__init__. Implement LottieBase, null and ThorVG backends (markers, eos, texture refresh on stop).

* Add LottieWidget UIX widget

LottieWidget with eos/state handling; factory registration and default style alongside Image/AsyncImage.

* Add Lottie provider and widget tests

Unit tests for LottieBase/ThorVG, LottieWidget, bundled test JSON, and provider registry completeness for lottie.

* Add Lottie widget examples with bundled JSON

Examples: async status (markers), quality (blur), slot theme (logo + logoFill), spinning star (ButtonBehavior + spin/grow markers).

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

Switches the ``lottie_thorvg`` core provider and the Lottie docs/tests/
examples from the external ``thorvg-python`` pip package to Kivy's
internal :mod:`kivy.lib.thorvg` Cython binding.  No more external pip
install is required on desktop platforms - ThorVG is statically linked
into the Kivy build.

Provider changes (kivy/core/lottie/lottie_thorvg.py):

  * Replaced ``import thorvg_python as tvg`` /
    ``from thorvg_python.base import Result`` with
    ``from kivy.lib import thorvg as tvg`` /
    ``from kivy.lib.thorvg import Result``.
  * Dropped the per-instance ``self._engine`` and the ``Engine`` /
    ``engine.term()`` plumbing - ``kivy.lib.thorvg`` initialises and
    terminates the ThorVG engine itself at module load / interpreter
    shutdown, matching the svg_thorvg and img_thorvg_svg providers.
  * Collapsed the six duplicate ``canvas.destroy(); engine.term();
    return`` error-cleanup blocks in ``load()`` to plain ``return``
    statements; the locals are Python-owned so dropping their
    references lets ``__dealloc__`` tear the ThorVG handles down
    cleanly.
  * Simplified ``_teardown`` accordingly.
  * Replaced ``tvg.__version__`` (thorvg-python attribute) with the
    ... (continued)

3238 of 6451 branches covered (50.19%)

1072 of 1216 new or added lines in 8 files covered. (88.16%)

731 existing lines in 40 files now uncovered.

28351 of 47812 relevant lines covered (59.3%)

1.17 hits per line

Uncovered Changes

Lines Coverage ∆ File
66
72.61
kivy/core/lottie/lottie_thorvg.py
50
79.76
kivy/uix/lottie.py
13
92.17
kivy/core/lottie/__init__.py
7
97.23
kivy/tests/test_uix_lottie.py
6
97.79
kivy/tests/test_lottie_provider.py
1
0.0
0.0% kivy/factory_registers.py
1
92.33
0.02% kivy/tests/test_provider_registry.py

Coverage Regressions

Lines Coverage ∆ File
117
60.76
-5.84% kivy/uix/textinput.py
108
2.07
-44.63% kivy/core/video/video_ffpyplayer.py
71
4.81
-68.27% kivy/core/audio_output/audio_ffpyplayer.py
71
53.71
-14.23% kivy/lang/builder.py
31
65.48
-6.15% kivy/core/text/__init__.py
29
60.11
-5.53% kivy/lang/parser.py
26
74.58
-4.82% kivy/core/image/__init__.py
26
36.36
-59.09% kivy/tests/test_audio.py
23
53.85
-35.38% kivy/input/postproc/tripletap.py
19
56.45
-30.65% kivy/input/postproc/doubletap.py
19
70.64
-4.53% kivy/uix/widget.py
16
4.55
-36.36% kivy/core/image/img_ffpyplayer.py
16
34.43
-26.23% kivy/tests/test_coverage.py
15
52.55
-4.78% kivy/tests/async_common.py
15
80.3
-7.39% kivy/uix/label.py
14
67.02
-1.64% kivy/core/window/__init__.py
14
59.3
-16.28% kivy/effects/dampedscroll.py
13
72.58
-4.19% kivy/base.py
9
78.71
-4.46% kivy/input/motionevent.py
9
87.16
-8.26% kivy/uix/behaviors/togglebutton.py
8
38.68
-7.55% kivy/cache.py
7
41.54
-10.77% kivy/factory.py
7
37.73
-3.18% kivy/logger.py
7
58.52
-3.98% kivy/utils.py
6
55.15
-3.09% kivy/uix/behaviors/focus.py
5
30.42
-1.09% kivy/clock.py
4
74.13
-0.92% kivy/animation.py
4
72.26
-1.46% kivy/uix/scatter.py
3
80.58
-2.91% kivy/core/audio_output/__init__.py
3
48.76
-0.5% kivy/core/window/window_sdl3.py
3
32.03
-1.96% kivy/metrics.py
2
19.21
-0.61% kivy/config.py
2
78.38
-5.41% kivy/core/image/img_sdl3.py
2
53.02
-1.34% kivy/core/__init__.py
2
73.11
-0.84% kivy/uix/treeview.py
1
74.04
-0.96% kivy/core/video/__init__.py
1
65.73
-0.26% kivy/modules/inspector.py
1
49.26
-0.3% kivy/tests/common.py
1
98.8
-0.6% kivy/tests/test_benchmark.py
1
84.29
-0.71% kivy/vector.py
Jobs
ID Job ID Ran Files Coverage
1 25517353690.1 07 May 2026 07:37PM UTC 336
57.77
GitHub Action Run
2 25517353690.2 07 May 2026 07:38PM UTC 336
59.21
GitHub Action Run
Source Files on build 25517353690
  • Tree
  • List 336
  • Changed 5
  • Source Changed 5
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #25517353690
  • 5a5c7c94 on github
  • Prev Build on master (#25399660901)
  • Next Build on master (#25518363839)
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