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

source-academy / py-slang / 42646646932
88%

Build:
DEFAULT BRANCH: main
Ran 09 Nov 2026 03:54PM UTC
Jobs 1
Files 224
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

09 Nov 2026 03:38PM UTC coverage: 88.068% (+0.001%) from 88.067%
42646646932

push

github

web-flow
Typed Python §4: show the Any of is_pair and is_list as object (no more LList[Any] in messages) (#657)

* Typed Python §4: is_pair narrows an object to Pair[object, object], not Pair[Any, Any]

is_pair has an overload for a pair or None, which keeps its types, and one for an object. After the
second, head(x) and tail(x) are objects, and the message for arity(tail(x)) no longer says LList[Any].
is_list keeps Any in its TypeIs.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Typed Python §4: is_list narrows to Sequence[object], shown as list[object]; no Any in the prelude

list[object] would not keep a list[int] when a union is narrowed (list is invariant): int | list[int]
was rejected. Sequence is covariant. The messages call it list[object], with two rules for what a
student then tries: assigning to an element and calling append.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Typed Python §4: keep Any in the TypeIs of is_pair and is_list, and show it as object

The overloads of is_pair and the Sequence[object] of is_list broke the narrowing of unions: the branch of
is_pair(x) for str | Pair[int, int] was unreachable, and a str counted as a list for str | list[int].
Only Any narrows a union correctly. Messages show Any as the argument of a type as object (LList[object]),
and the documentation prints it as object.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Tests: the comment of the is_stream exclusion is as on main

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>

7657 of 9164 branches covered (83.56%)

Branch coverage included in aggregate %.

2 of 2 new or added lines in 1 file covered. (100.0%)

15872 of 17553 relevant lines covered (90.42%)

252717.99 hits per line

Jobs
ID Job ID Ran Files Coverage
1 42646646932.1 09 Nov 2026 03:54PM UTC 224
88.07
GitHub Action Run
Source Files on build 42646646932
  • Tree
  • List 224
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #42646646932
  • 78fe8b0e on github
  • Prev Build on main (#42641160364)
  • Next Build on main (#42770556223)
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