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

kivy / kivy / 30009365486 / 2
60%
master: 60%

Build:
DEFAULT BRANCH: master
Ran 23 Jul 2026 01:17PM UTC
Files 346
Run time 14s
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

23 Jul 2026 01:00PM UTC coverage: 58.517% (-1.3%) from 59.784%
30009365486.2

push

github

web-flow
Accept pathlib.Path in path-accepting APIs (#9350)

Kivy's path-accepting APIs historically required a str. This lets them also
accept any os.PathLike (e.g. pathlib.Path) by coercing to str via os.fspath()
at a small set of central choke points, keeping all internals (string parsing,
cache keys, Cython .encode()) string-based.

- utils: add path_to_str() helper (coerces os.PathLike -> str; leaves str,
  bytes, None, file-like and URIs unchanged).
- properties: StringProperty.convert() now coerces os.PathLike -> str, so every
  path-bearing StringProperty (Image.source, font_name, App.kv_file, the
  background_*/atlas image sources, Window.icon, ...) accepts Path. Non-path,
  non-str values still raise ValueError.
- resource_find / resource_add_path / resource_remove_path: coerce up front so
  cache keys and path-list membership stay consistent.
- core loaders: Image/ImageLoader (load/save/filename), SoundLoader.load,
  VideoBase.filename/generate_thumbnail, LabelBase.resolve_font_name/register,
  SvgLoader.load, Lottie filename.
- lang/atlas/storage: Builder.load_file/unload_file/load_string, Atlas,
  JsonStore, DictStore.
- app/config: App.load_kv/get_application_config; Config.read now accepts
  os.PathLike while still rejecting multiple filenames.
- tests: new kivy/tests/test_pathlib_support.py, parametrized over str vs Path.

Coercion only fires for isinstance(x, os.PathLike), so str inputs (including
atlas://, http://, data: URIs) and BytesIO pass through unchanged. On Windows a
Path canonicalizes to native separators; coercion is consistent per argument.

3136 of 6511 branches covered (48.16%)

28696 of 49039 relevant lines covered (58.52%)

0.59 hits per line

Source Files on job 30009365486.2
  • Tree
  • List 346
  • Changed 49
  • Source Changed 14
  • Coverage Changed 49
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 30009365486
  • 4dd388cf on github
  • Prev Job for on master (#30009088541.1)
  • Next Job for on master (#30009965577.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc