From da631c8b22d10703e24c8e53af33ceadff46e5b8 Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Tue, 19 Jul 2022 08:23:27 -0700 Subject: [PATCH] add username, password, hostname, and port --- jc/parsers/url.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/jc/parsers/url.py b/jc/parsers/url.py index 9e5625f0..abdecbe9 100644 --- a/jc/parsers/url.py +++ b/jc/parsers/url.py @@ -14,11 +14,15 @@ Schema: { "scheme": string, "netloc": string, - "path": string, + "path": string or null, "query": { object or null, : string }, - "fragment": string or null + "fragment": string or null, + "username": string or null, + "password": string or null, + "hostname": string or null, + "port": integer or null } Examples: @@ -32,7 +36,11 @@ Examples: "q1": "foo", "q2": "bar" }, - "fragment": "frag" + "fragment": "frag", + "username": null, + "password": null, + "hostname": "example.com", + "port": null } $ echo "ftp://localhost/filepath" | jc --url -p @@ -41,7 +49,11 @@ Examples: "netloc": "localhost", "path": "/filepath", "query": null, - "fragment": null + "fragment": null, + "username": null, + "password": null, + "hostname": "localhost", + "port": null } """ from urllib.parse import urlparse @@ -117,7 +129,11 @@ def parse( 'netloc': parts.netloc or None, 'path': parts.path or None, 'query': query or None, - 'fragment': parts.fragment or None + 'fragment': parts.fragment or None, + 'username': parts.username, + 'password': parts.password, + 'hostname': parts.hostname, + 'port': parts.port } return raw_output if raw else _process(raw_output)