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

aio-libs / yarl / 36719417094
98%

Build:
DEFAULT BRANCH: master
Ran 30 Sep 2026 01:09PM UTC
Jobs 1
Files 46
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

30 Sep 2026 01:07PM UTC coverage: 97.686%. Remained the same
36719417094

push

github

web-flow
Accept IRIs in the RFC 3986 oracle of the conformance report (#1949)

<!-- Thank you for your contribution! -->

## What do these changes do?

The RFC 3986 oracle in `tools/conformance/rfc3986_oracle.py` now accepts
IRIs and maps them to URIs as RFC 3987 section 3.1 does, before
resolving and comparing. A non-ASCII host goes through the RFC 5895
mapping and IDNA2008 when it is a valid IDNA2008 name and is
percent-encoded otherwise, as section 3.1 makes ToASCII optional; other
non-ASCII characters are percent-encoded as UTF-8. `compare.py` checks a
table of oracle answers for inputs the corpus does not cover on every
run. Code points outside the RFC 3987 grammar (C1 controls,
noncharacters such as U+FFFF, private-use characters outside the query)
and the bidi formatting characters forbidden by RFC 3987 section 4.1
stay invalid.

RFC 5895 is used rather than UTS #46 because UTS #46 silently deletes
invisible code points such as U+200B and U+00AD in hosts, which yarl
deliberately rejects.

This prepares a follow-up that makes RFC 3986 mode reject characters
outside the grammar instead of percent-encoding them, with RFC 3987 as
the baseline for non-ASCII.

Row movements in `REPORT.md` against master; "yarl differs, RFC 3986 and
WHATWG agree" still has only `http://[::%31]`:

| From | To | Rows |
|---|---|---|
| RFC mode differs from RFC 3986 | RFC 3986, WHATWG and yarl in both
modes agree | 18 |
| RFC mode differs from RFC 3986 | yarl follows each standard in its
mode | 1 |
| Both modes differ from their standard | WHATWG mode differs from
WHATWG, RFC mode follows RFC 3986 | 4 |
| RFC 3986, WHATWG and yarl in both modes agree | RFC mode differs from
RFC 3986 | 6 |
| WHATWG mode differs from WHATWG, RFC mode follows RFC 3986 | Both
modes differ from their standard | 2 |

The last two rows are hosts that are not valid IDNA2008 names
(`http://💩.123/`, `https://\xad/`, `http://%41.com`,
`http://GOO\u200bgoo.com`, ...). RFC 3987 percent-encodes them; RFC 3986
... (continued)

97 of 194 branches covered (50.0%)

Branch coverage included in aggregate %.

9361 of 9488 relevant lines covered (98.66%)

0.99 hits per line

Jobs
ID Job ID Ran Files Coverage
1 MyPy - 36719417094.1 30 Sep 2026 01:09PM UTC 46
97.69
GitHub Action Run
Source Files on build 36719417094
  • Tree
  • List 46
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #36719417094
  • 3bf8c775 on github
  • Prev Build on master (#36703904608)
  • Next Build on master (#36762649369)
  • Delete
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