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

source-academy / py-slang / 29927944717
86%

Build:
DEFAULT BRANCH: main
Ran 22 Jul 2026 02:33PM UTC
Jobs 1
Files 114
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

22 Jul 2026 02:18PM UTC coverage: 86.428% (+0.2%) from 86.179%
29927944717

push

github

web-flow
Keep integers out of the module interface; unify pair/array; fix py2js DataType.ARRAY handling (#307)

* Keep integers out of the module interface

Squashes the full history of this branch's INTEGER work into one commit -
the intermediate commits explored tagging a Python int as DataType.INTEGER
across the module boundary and coercing it back to NUMBER at various points
(scalar args/returns, then array elements), based on an initial misreading
of what was needed. After discussion with Martin, the actual, final design
is simpler and is what this commit leaves in place:

Martin, explicit and final: "'would print 1.0, not 1' is a feature, not a
bug. We should keep integers out of modules." binary_tree's entry() printing
1.0 for a tree built from a Python int is the correct, intended behavior.
A Python int silently becomes DataType.NUMBER (a float) the moment it
crosses into any module, unconditionally - CSE/py2js/PVML's pythonToModule
(the "bigint" case) and PVML's pvmlToModule all convert directly to NUMBER,
with no separate INTEGER tag and no per-position/per-declared-type
exception, including for a value sitiing inside an OPAQUE-wrapped payload.

Net effect versus main, kept:
- GenericDataHandler.closure_call_unchecked now throws on an invalid closure
  identifier instead of silently returning undefined - independent,
  unrelated fix (every caller immediately calls .next() on the result, so
  the previous undefined return was a latent TypeError waiting to happen)
  that happened to be bundled into these commits; kept on its own merits.
- Each engine's moduleToPython/moduleToPvml/WASM's typedToHostValue keeps a
  minimal DataType.INTEGER case, converting to a float, purely for switch
  exhaustiveness over conductor's DataType enum (which permanently has the
  member now that conductor#47/0.7.2 is published) - dead code in practice,
  since nothing in py-slang produces INTEGER anymore.
- @sourceacademy/conductor bumped to ^0.7.2 - conductor#47 is backwa... (continued)

4384 of 5459 branches covered (80.31%)

Branch coverage included in aggregate %.

79 of 90 new or added lines in 6 files covered. (87.78%)

1 existing line in 1 file now uncovered.

9447 of 10544 relevant lines covered (89.6%)

178847.72 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
61.35
15.69% src/conductor/GenericDataHandler.ts
3
60.18
-0.54% src/engines/cse/modules.ts
1
93.02
7.31% src/engines/pvml/modules.ts
1
81.76
0.0% src/engines/py2js/moduleInterop.ts
1
32.89
-0.44% src/engines/wasm/moduleInterop.ts

Coverage Regressions

Lines Coverage ∆ File
1
60.18
-0.54% src/engines/cse/modules.ts
Jobs
ID Job ID Ran Files Coverage
1 29927944717.1 22 Jul 2026 02:33PM UTC 114
86.43
GitHub Action Run
Source Files on build 29927944717
  • Tree
  • List 114
  • Changed 12
  • Source Changed 11
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29927944717
  • 7d0db065 on github
  • Prev Build on main (#29887602191)
  • Next Build on main (#29929146837)
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