Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #197429
| Path | csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail |
|---|---|
| From | Anders Munch <ajm@flonidan.dk> |
| Newsgroups | comp.lang.python |
| Subject | RE: Module urljoin does not appear to work with scheme Gemini |
| Date | Thu, 24 Apr 2025 08:36:12 +0000 |
| Lines | 47 |
| Message-ID | <mailman.30.1745483776.3008.python-list@python.org> (permalink) |
| References | <20250421083845.5e5b6d69@workstation.localdomain> <f5bikmwp8of.fsf@lochinver.inf.ed.ac.uk> <20250422182253.00b9327d@workstation.localdomain> <f5bwmbbnexs.fsf@lochinver.inf.ed.ac.uk> <VI1PR05MB106805790212AE1658621959AB4852@VI1PR05MB10680.eurprd05.prod.outlook.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset="us-ascii" |
| Content-Transfer-Encoding | quoted-printable |
| X-Trace | news.uni-berlin.de e0Z93rGqjnoH4ywXaxqFrAvcaysy1AqzbG3P1iRnFJUA== |
| Cancel-Lock | sha1:tT4Mvq6g7IeNv+h1OcLU1e8YZ5Y= sha256:yzR1Xa5JxQcAH31ZfO8dttv4+7QSEAnU24X4t692UQk= |
| Return-Path | <ajm@flonidan.dk> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| Authentication-Results | mail.python.org; dkim=pass reason="1024-bit key; unprotected key" header.d=FlonidanAS.onmicrosoft.com header.i=@FlonidanAS.onmicrosoft.com header.b=1AWzJOVe; dkim-adsp=none (unprotected policy); dkim-atps=neutral |
| X-Spam-Status | OK 0.006 |
| X-Spam-Evidence | '*H*': 0.99; '*S*': 0.00; 'argument': 0.04; 'e.g.': 0.07; 'used.': 0.07; 'considering.': 0.09; 'flags': 0.09; 'lookup': 0.09; 'parse': 0.09; 'subject:not': 0.09; 'import': 0.15; 'that.': 0.15; 'flag': 0.16; 'functions.': 0.16; 'given,': 0.16; 'parsing': 0.16; 'refactor': 0.16; 'sets,': 0.16; 'subject:Module': 0.16; 'subject:does': 0.16; 'urllib.parse': 0.16; 'wrote:': 0.16; 'instead': 0.17; 'to:addr:python-list': 0.20; 'written': 0.22; 'code': 0.23; 'saying': 0.25; 'object': 0.26; 'old': 0.27; 'seem': 0.31; 'approach': 0.31; 'objects': 0.32; 'but': 0.32; 'header:In-Reply-To:1': 0.35; '...': 0.37; 'lists': 0.37; "skip:' 10": 0.37; 'way': 0.38; 'use': 0.39; 'quite': 0.39; 'adding': 0.39; 'wrote': 0.39; 'still': 0.40; 'best': 0.61; 'once': 0.63; 'that,': 0.67; 'exactly': 0.68; 'henry': 0.69; 'order.': 0.69; 'note:': 0.71; 'name,': 0.75; 'yourself': 0.75; 'names,': 0.81; 'strategy': 0.84; 'preference.': 0.84; 'six,': 0.84 |
| ARC-Seal | i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TSGELAkDUYjNt6Vy7jWjmoWqVvajKPsfWyz+sa4+xZY/+meGGTYqAHXH84h9FHOWfawkgIcodu8zBYyCOjo+10AgHX5Z/7cmjT9yVJ45Yc6z8dcv0yEBVKhED0gTGE6ZRihbi/06W3hjkyRUE33BPMrXyM3OyoIDYw2Hl4bN0ql0wekte8kURE0LyYg4SWv1+nDloWQwpYxbEeABeRztwRduZpq55WTrsS9MeMELou73yVYFnAMh2rhqXojp93wgfIVDSdXzCPGUSA6kOtJX1uS+8RW/sV4gYV4gjADHmVZyZB/DgKKY/5IduJVTXBuZ5eG5njCIkdjiAH7nrhHe6A== |
| ARC-Message-Signature | i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=EwxZ+f7jOoEnKluuBEoiMZPz2lKOsQLvT7N07JZQRyE=; b=JjvN8gFANpMMkJQuHgJ20RGwZRVYGkOa3t3id5IyhWtmxbsViEafNaRDevgQfaIfoCSVZvEnA/CAc9AhQJrhMWYnLVJ74U861Cv6tX43TpaOPSgnQbA4APMoqpJf9Vv7VzpYLugNGuKclAdi8XRJC57txWRf6f0i8y+xPPabx8ZeBRrJWou978c5P7STMP7EhSQzcHH2JQTJe9xNWGu7A3k4L6JX8JH64tyDy8XQ6F8ozn4+2g8bzYPA5MNz2p+SixcdeUk2gtnA23b7D/ydsL+djL+14a3ocGgFOSnY11DEUAGpB721RjZBMmCy5Jm165wYBbqibF6/QYJT0es5fQ== |
| ARC-Authentication-Results | i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=flonidan.dk; dmarc=pass action=none header.from=flonidan.dk; dkim=pass header.d=flonidan.dk; arc=none |
| DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=FlonidanAS.onmicrosoft.com; s=selector2-FlonidanAS-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EwxZ+f7jOoEnKluuBEoiMZPz2lKOsQLvT7N07JZQRyE=; b=1AWzJOVe2EdsB1J1J1PLz4IGo1SdqL7H9rH2UHWAjbt6VwecxE16Y9rs4xzIsLD7V1DaDGc4k2M9xIOukJmBL8rwSdPic659M3os6u2IupDkISGVjqkXWXOApT6QwgTIeL1bvP5F1RDgV0U53p+b6EdWJofF+C76y+Dcnyow/7M= |
| Thread-Topic | Module urljoin does not appear to work with scheme Gemini |
| Thread-Index | AQHbsoDCxKkhgz/pXEmmzUCCpt+KL7OvzZNGgAACQICAAYnzQ4ABKFCA |
| In-Reply-To | <f5bwmbbnexs.fsf@lochinver.inf.ed.ac.uk> |
| Accept-Language | en-US |
| Content-Language | en-US |
| X-MS-Has-Attach | |
| X-MS-TNEF-Correlator | |
| authentication-results | dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=flonidan.dk; |
| x-ms-publictraffictype | |
| x-ms-traffictypediagnostic | VI1PR05MB10680:EE_|DU0PR05MB9506:EE_ |
| x-ms-office365-filtering-correlation-id | 3fb8fa36-ea9f-4b63-f2d6-08dd830b1237 |
| x-ms-exchange-senderadcheck | 1 |
| x-ms-exchange-antispam-relay | 0 |
| x-microsoft-antispam | BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; |
| x-microsoft-antispam-message-info | RZyEfOEKREN4OmDhtR68KuRNA7gEwSYJ0xHz1auUuxQ17jxqT4vZu8vyLg4n3BSjNgwqBpznnDnb2sp8bkIbFTfy5bR5ui3UDdW63nq8RDEc7kq572s8IW89CgOWN4dPJGHSOHnFIA4a6UqWScnM0EJ7S2pgmAtbuFqPeBtjanEV5dJ/ersKk74eA8eJ/aSQy1SUXG/lWSp0CsNYQV6ki7jh37dRJyg0piAOhIpm8pM7PuQUn1gVAxpEOJptNkkaeMn66Fr5Tj5Lc/gGU6L1P3GV3m9d4dJjoIPR+I4q2Vvnw6NMXYS1sOJx2Bbd+AMndn3xTtoiahT4JrcCP51/KxdS2yptLEA+Tos5ZNbFo1QQRQVzoaMMB/eW2h7SMeXK2bfOcv7J71a+LxqUQGAtqJmuaJRMEXZCKoiO+5/7yDK5Kxlyh+8NkPmMrqU40dGjdownkqzcIG12NPu3zodMz9GuuWGJpMk1WrNzQJqVjvl/3hZMrS2zpwWPY8fJQPIEktahjLzHhr6N5SGt1+xhAKW3Bg5vP1xt1DdgSNh2fQWKMPb9xmIcQcmGeK/vQQsHvzI5JBU35XIqhmtauX/Tp8ruIPXuFrdqiFlXoy2o9Q+5ExGfBKLcCFsYoY1Fv3I07gMKGYA0ZW5Dofa0n9zkxaEFwfjU/m6fT+dooDJSRHnul2FMjx1/SOTkg22Z50OFP2cidB7hBChIRWhIvo0VXHvT7tJPreA08T7GNwo5jjVpN65jSP1mk1a61+1liOqfpzbVw5YnQUZVybSXDc9+PBVpuU4Z85m1MzNJAfVGCkyPGkps1OZ1+DkOTX+6Glal8b+15cPP5sWjWrozju7pTwD7OGVvteoeiUAj7oibLveNXkbd2hsedgR4OWXys10u69TtJXYgE5fYERV2zeeDnRvYf0Z4LNeF3vC4121vZ8WEFZzKo8X3exhewrthA5SlzQ5UjOfY3HVMgc0acc+k+VDtZBTZuUbJJQJh84LnV1+zBu4+L8giZ4wj7ZZ0XTQLQyertTmNhwBCx5GR1V819Yp7C/lJXrXiEbgd1LG7GFSgW20SHd7LcdaRFVwSeEOsDh/DiNV1GIbb0sCh4Prw8vJjbMEhHLahBXp17l6yVM6ePajUQ9czhVu6kfvFSXs+gM3cdEUgVb8TuszurQF6uk2PanKMJtAhA8+iYg5V6sH5D14FzAcnf7fr529V9Vxn7AOcbOLuKyFZVh4OIju+ygvqAo/WA5BIItFmtAxDbu03VqPtlcMmXrs+rpxLUYxZMwZsqiYBaQwR4j7BN1UZ3GY6pmEhY373YYEtoh2HadC5uOiHcdqlCAH0TdRCIJiVNwIt/efi7zNlWUZattwRpQ/p7Gi1JGwGPfV8VqUlnvkNWi4okdA5yZ6YH1kW4D1XdKLxtH4/8TTxr+yOW2/oO/50sCZ4AaoCsec0wScY/aQOgmQtbUGZ8uUTDw7HeQgbL4izL/fU+AZ6lT804BWYQg== |
| x-forefront-antispam-report | CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB10680.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1102; |
| x-ms-exchange-antispam-messagedata-chunkcount | 1 |
| x-ms-exchange-antispam-messagedata-0 | ri+QKBEhlFMkzZ5nFkI1Zp40DdCb3wmCDtg0ZACZc/DVHxE1EGLT6d3BclNfhHCqzKo+9L6DvQvsjWf15A+gpwAZApUzRl0JS7N+JkJbdlrXyh1cLti+pSJA/N5SuHOfI4U3TBnGBqZ6/V/DrCSUzGBl1XSpP4N589J+6IHHydAJUxVmhDH2JWyiTiSCpbWTqxMe79EkRFSMSLZYpfhxP5NdCFWh881UtJYiRbLmK+oq9go5sdXDbqyb+nsVRi3ZpPqNYDK1xsR45n5NP+IJuSkjLwk/+N6/gZX7E7SSdaLhzaH4YAiWxILmawDlBaorIk+1IjeA9OqrweFg2O445HSuD2NmW6/O9QKPBkLLL7SAUKffNSOzCclS6oyxDYiLvJmTOmwavDqlOT1jTL9nq9iKS9ap3m6onOFwi6nXdj0RlnaHF2LNV9fHKVg5zGMSjOZep/reyG+CrWN9SBoWSfg1hBqsJy6DDR3JTEeODmhmoLxuLQ5p3CSic+EPNdQfAXvxXkRERyRig1N1GB9cTXT2A7JsNZN2syAtyjF3W/oe5JqPSIXN7Cl3zTf5XnOTizprNMRp96GLTRQuYL39Vq8EqV7kkD9gkZbDqF1t4Viq3Ow8MNVMtTYZbHYKckm60LLububL0uv10+vkhUKG+6kpAyYQ6vY/4MUqymbvSaJ5UCEDi0PUDMpfSgN7DM0J3ra2rSZgQv8OhWTKCmjL80Gkmjw582xU99Cfh8aDYLlzWNfIUNXZEcwf7cek/q2m/IdSefYxK6Pof/KvHHm1TuKpqY+IV/hIP/2dgKDoDNk5K74GgO32dZ4M3Kga1C4JPn5yxO5c6A27m5+KcsxmeyOZQAN60Tvt7Jyw1UwWzjKFlNlZBK+LPH1uqdp9hioAid/QxxLzo1BUo98Dmr0VHMOHQyqi4oJB1uBD38dCPbQoB/GPWm4p4oWc+wfEGLC0iXjcr0AtfdQgwcwmzVDLvuj33hvljbzmINg5AndFn51XytXDLjmQLrbvVGq4G53jjeVqEV2vH4ip9rI1V83XZBV0jXv8+/OssZ5HjYhfn4eZ5BJMp89HFhb0lSu9LVG+wNObeoI3thRb2jI9/WIJ0nHp3T+ZMSS02HFuWKfESfP2X1wX2QH7nfgB001+timFFD4Bp26xpIrx8/WvKLovvd7eM19+IQonocyCc64oAaMLJetsO791ROnb/O7lUtzgdxX0WwuVVAGe8DdYgDekNXNv2TiNOfCD+i+e9jdO3b7sLbKGfZJHidcLZZDrl/s1m5kTsNdH921IcIGS2fAFwSAqMQYW/qDQ1jX/t4RA/OpmBN7EHSw06lZBl+MVHie0NMtLYaV+SjvXJ0CYmOkPqoUHbWdnF6yAvzirwYupUFMdD6PiEexKc4be+RP9y7Lul31LPYcGb4V8rLldxUQk1dsdQ1f2//RyUjRwmO/5OMNzBoTp5zIIkaJ/tFCbHvNUJVgGkKxDXd4NxDYpXooKVXQUQ+HKaxki0L/YlCBl8nc2czi94e+tO3QQfptc1HGsyepJrqrCNOkY8Fu87NJ/bc9UVaQ4IsP9Qute6LUgUcQ= |
| X-OriginatorOrg | flonidan.dk |
| X-MS-Exchange-CrossTenant-AuthAs | Internal |
| X-MS-Exchange-CrossTenant-AuthSource | VI1PR05MB10680.eurprd05.prod.outlook.com |
| X-MS-Exchange-CrossTenant-Network-Message-Id | 3fb8fa36-ea9f-4b63-f2d6-08dd830b1237 |
| X-MS-Exchange-CrossTenant-originalarrivaltime | 24 Apr 2025 08:36:12.9737 (UTC) |
| X-MS-Exchange-CrossTenant-fromentityheader | Hosted |
| X-MS-Exchange-CrossTenant-id | 66f919b0-b207-4d78-ae72-d81c18f86ec5 |
| X-MS-Exchange-CrossTenant-mailboxtype | HOSTED |
| X-MS-Exchange-CrossTenant-userprincipalname | TBt1tpXUT+XET9mnCKfVIqxMqr+2cRVakfquxg/1NO17POm/R10SZfiKxi8M+nps |
| X-MS-Exchange-Transport-CrossTenantHeadersStamped | DU0PR05MB9506 |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.39 |
| Precedence | list |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <https://mail.python.org/pipermail/python-list/> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| X-Mailman-Original-Message-ID | <VI1PR05MB106805790212AE1658621959AB4852@VI1PR05MB10680.eurprd05.prod.outlook.com> |
| X-Mailman-Original-References | <20250421083845.5e5b6d69@workstation.localdomain> <f5bikmwp8of.fsf@lochinver.inf.ed.ac.uk> <20250422182253.00b9327d@workstation.localdomain> <f5bwmbbnexs.fsf@lochinver.inf.ed.ac.uk> |
| Xref | csiph.com comp.lang.python:197429 |
Show key headers only | View raw
Henry S. Thompson wrote:
> Some approach to support future-proofing in general would seem to be in order.
> Given some other precedents, adding a boolean argument called either 'strict' or 'lax' would be my preference.
An alternative would be to refactor urllib.parse to use strategy objects
for schemes.
parse.py contains a number of lists of scheme names, that act as flags to
control parsing behaviour:
uses_relative, uses_netloc, uses_params, non_hierarchical, uses_query and uses_fragment.
(If written today they would be sets, but this is very old code that predates sets!)
Group that information by scheme instead of by flag name, in e.g. a dataclass, and
you have made yourself a strategy object lookup table:
scheme_options = {
'https': SchemeOptions(uses_relative=True, uses_netloc=True, uses_params=True),
'git': SchemeOptions(uses_relative=False, uses_netloc=True, uses_params=False),
...
}
Once you have that, you can add the strategy object as an optional argument to
functions. If the argument is not given, you find a strategy object from
scheme_options to use. If the argument is given, you use that.
The best part of this approach is that you now have a way of saying "treat this
scheme exactly like https":
from urllib import parse
parse.urljoin('sptth://...', '../one-level-up', options=parse.scheme_options['https'])
Note: I wrote this before I realised that the lists non_hierarchical, uses_query
and uses_fragment are not used. With only three options instead of six, making
a strategy object is not quite as attractive. But still worth considering.
regards, Anders
Back to comp.lang.python | Previous | Next | Find similar
RE: Module urljoin does not appear to work with scheme Gemini Anders Munch <ajm@flonidan.dk> - 2025-04-24 08:36 +0000
csiph-web