URL manipulation made simple.
65
{
"context": "Evaluates whether the solution uses the furl library to parse URLs and surface scheme/credential/host/port/netloc/origin data as required by the spec. Scoring favors direct use of furl's parsing and serialization helpers and penalizes manual URL manipulation.",
"type": "weighted_checklist",
"checklist": [
{
"name": "furl constructor",
"description": "Parses each URL by instantiating `furl.furl` (or `furl` imported directly) instead of manual string splitting.",
"max_score": 25
},
{
"name": "Component access",
"description": "Populates scheme, username, password, host, and port fields by reading the parsed object's attributes (e.g., `f.scheme`, `f.username`, `f.password`, `f.host`, `f.port`) rather than re-deriving them.",
"max_score": 25
},
{
"name": "Netloc and origin",
"description": "Derives netloc and origin via furl APIs (`f.netloc`/`f.netloc.url` and `f.origin`) instead of custom concatenation, respecting credentials when present.",
"max_score": 20
},
{
"name": "Default ports",
"description": "Relies on furl's default port inference (e.g., http→80, https→443, ftp→21) from `f.port` rather than hard-coded mappings to satisfy cases without explicit ports.",
"max_score": 15
},
{
"name": "Full URL string",
"description": "Returns the canonical URL string using furl helpers (`f.url` or `f.tostr()`), preserving credentials and paths without manual reconstruction.",
"max_score": 15
}
]
}Install with Tessl CLI
npx tessl i tessl/pypi-furlevals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10