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

pirl-unc / hitlist / 25684802403 / 1
76%
main: 76%

Build:
DEFAULT BRANCH: main
Ran 11 May 2026 05:03PM UTC
Files 28
Run time 2s
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

11 May 2026 05:01PM UTC coverage: 75.035% (+0.1%) from 74.898%
25684802403.1

push

github

web-flow
v1.30.47: speed up + memory-cap integration test tier (closes #244) (#245)

* v1.30.47: speed up + memory-cap integration test tier (closes #244)

Two changes both targeting the integration-test slowness/OOM in #244:

1. Vectorize the per-PMID discriminator-scoring winner application in
   generate_observations_table. Replaces ~13M per-row obs.at[idx, col]
   lookups (cProfile-confirmed hot spot, dominated by Arrow-backed
   string column gets) with a single MultiIndex.reindex per call.
   164.9s -> 33.5s on the full ~4.4M-row corpus (4.9x).

2. Share the full_observations_df fixture across pytest-xdist workers
   via an on-disk pickle in the session-shared tmp dir, guarded by a
   POSIX flock. First worker builds and writes; later workers read the
   cache. Cuts 10x parallel rebuilds (the OOM trigger) down to 1 build
   + N cheap loads.

* PR #245 review: airtight semantics + light public API for testing

Three changes addressing review feedback on PR #245:

1. apply_winners_vectorized (export.py): rename from
   _apply_winners_vectorized (drop underscore = public API) and
   refactor to track per-(key, col) presence separately from values.

   The previous ~pd.isna(matched[col]) mask conflated "key missing
   from winners" with "key present, value is NaN" — silently keeping
   obs values in the second case.  Original loop semantics
   (dict.get(col, fallback)) only fell back when the dict KEY was
   missing, not when its value was null.  Strict equivalence now
   matches the original in all cases, including hypothetical future
   meta_cols that can carry pd.NA from source.

   Cost: one extra MultiIndex.reindex per call (presence DataFrame).
   Negligible vs. the avoided ~13M obs.at lookups.

2. tests/xdist_cache.py: extracted load_or_build_pickled from
   conftest.py's _load_or_build_shared as a documented public helper.
   Adds atomic-rename cleanup on builder failure so .tmp files don't
   accumulate.  conftest.py imports it.

3. conftest.py mast... (continued)

4256 of 5672 relevant lines covered (75.04%)

0.75 hits per line

Source Files on job 25684802403.1
  • Tree
  • List 28
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 25684802403
  • 507ce2ff on github
  • Prev Job for on main (#25613983293.1)
  • Next Job for on main (#25711122998.1)
  • Delete
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