Deutsch English Français Italiano |
<mailman.30.1745483776.3008.python-list@python.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!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> 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: Email 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: =?us-ascii?Q?RZyEfOEKREN4OmDhtR68KuRNA7gEwSYJ0xHz1auUuxQ17jxqT4vZu8vyLg4n?= =?us-ascii?Q?3BSjNgwqBpznnDnb2sp8bkIbFTfy5bR5ui3UDdW63nq8RDEc7kq572s8IW89?= =?us-ascii?Q?CgOWN4dPJGHSOHnFIA4a6UqWScnM0EJ7S2pgmAtbuFqPeBtjanEV5dJ/ersK?= =?us-ascii?Q?k74eA8eJ/aSQy1SUXG/lWSp0CsNYQV6ki7jh37dRJyg0piAOhIpm8pM7PuQU?= =?us-ascii?Q?n1gVAxpEOJptNkkaeMn66Fr5Tj5Lc/gGU6L1P3GV3m9d4dJjoIPR+I4q2Vvn?= =?us-ascii?Q?w6NMXYS1sOJx2Bbd+AMndn3xTtoiahT4JrcCP51/KxdS2yptLEA+Tos5ZNbF?= =?us-ascii?Q?o1QQRQVzoaMMB/eW2h7SMeXK2bfOcv7J71a+LxqUQGAtqJmuaJRMEXZCKoiO?= =?us-ascii?Q?+5/7yDK5Kxlyh+8NkPmMrqU40dGjdownkqzcIG12NPu3zodMz9GuuWGJpMk1?= =?us-ascii?Q?WrNzQJqVjvl/3hZMrS2zpwWPY8fJQPIEktahjLzHhr6N5SGt1+xhAKW3Bg5v?= =?us-ascii?Q?P1xt1DdgSNh2fQWKMPb9xmIcQcmGeK/vQQsHvzI5JBU35XIqhmtauX/Tp8ru?= =?us-ascii?Q?IPXuFrdqiFlXoy2o9Q+5ExGfBKLcCFsYoY1Fv3I07gMKGYA0ZW5Dofa0n9zk?= =?us-ascii?Q?xaEFwfjU/m6fT+dooDJSRHnul2FMjx1/SOTkg22Z50OFP2cidB7hBChIRWhI?= =?us-ascii?Q?vo0VXHvT7tJPreA08T7GNwo5jjVpN65jSP1mk1a61+1liOqfpzbVw5YnQUZV?= =?us-ascii?Q?ybSXDc9+PBVpuU4Z85m1MzNJAfVGCkyPGkps1OZ1+DkOTX+6Glal8b+15cPP?= =?us-ascii?Q?5sWjWrozju7pTwD7OGVvteoeiUAj7oibLveNXkbd2hsedgR4OWXys10u69Tt?= =?us-ascii?Q?JXYgE5fYERV2zeeDnRvYf0Z4LNeF3vC4121vZ8WEFZzKo8X3exhewrthA5Sl?= =?us-ascii?Q?zQ5UjOfY3HVMgc0acc+k+VDtZBTZuUbJJQJh84LnV1+zBu4+L8giZ4wj7ZZ0?= =?us-ascii?Q?XTQLQyertTmNhwBCx5GR1V819Yp7C/lJXrXiEbgd1LG7GFSgW20SHd7LcdaR?= =?us-ascii?Q?FVwSeEOsDh/DiNV1GIbb0sCh4Prw8vJjbMEhHLahBXp17l6yVM6ePajUQ9cz?= =?us-ascii?Q?hVu6kfvFSXs+gM3cdEUgVb8TuszurQF6uk2PanKMJtAhA8+iYg5V6sH5D14F?= =?us-ascii?Q?zAcnf7fr529V9Vxn7AOcbOLuKyFZVh4OIju+ygvqAo/WA5BIItFmtAxDbu03?= =?us-ascii?Q?VqPtlcMmXrs+rpxLUYxZMwZsqiYBaQwR4j7BN1UZ3GY6pmEhY373YYEtoh2H?= =?us-ascii?Q?adC5uOiHcdqlCAH0TdRCIJiVNwIt/efi7zNlWUZattwRpQ/p7Gi1JGwGPfV8?= =?us-ascii?Q?VqUlnvkNWi4okdA5yZ6YH1kW4D1XdKLxtH4/8TTxr+yOW2/oO/50sCZ4AaoC?= =?us-ascii?Q?sec0wScY/aQOgmQtbUGZ8uUTDw7HeQgbL4izL/fU+AZ6lT804BWYQg=3D=3D?= 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: =?us-ascii?Q?ri+QKBEhlFMkzZ5nFkI1Zp40DdCb3wmCDtg0ZACZc/DVHxE1EGLT6d3BclNf?= =?us-ascii?Q?hHCqzKo+9L6DvQvsjWf15A+gpwAZApUzRl0JS7N+JkJbdlrXyh1cLti+pSJA?= =?us-ascii?Q?/N5SuHOfI4U3TBnGBqZ6/V/DrCSUzGBl1XSpP4N589J+6IHHydAJUxVmhDH2?= =?us-ascii?Q?JWyiTiSCpbWTqxMe79EkRFSMSLZYpfhxP5NdCFWh881UtJYiRbLmK+oq9go5?= =?us-ascii?Q?sdXDbqyb+nsVRi3ZpPqNYDK1xsR45n5NP+IJuSkjLwk/+N6/gZX7E7SSdaLh?= =?us-ascii?Q?zaH4YAiWxILmawDlBaorIk+1IjeA9OqrweFg2O445HSuD2NmW6/O9QKPBkLL?= =?us-ascii?Q?L7SAUKffNSOzCclS6oyxDYiLvJmTOmwavDqlOT1jTL9nq9iKS9ap3m6onOFw?= =?us-ascii?Q?i6nXdj0RlnaHF2LNV9fHKVg5zGMSjOZep/reyG+CrWN9SBoWSfg1hBqsJy6D?= =?us-ascii?Q?DR3JTEeODmhmoLxuLQ5p3CSic+EPNdQfAXvxXkRERyRig1N1GB9cTXT2A7Js?= =?us-ascii?Q?NZN2syAtyjF3W/oe5JqPSIXN7Cl3zTf5XnOTizprNMRp96GLTRQuYL39Vq8E?= =?us-ascii?Q?qV7kkD9gkZbDqF1t4Viq3Ow8MNVMtTYZbHYKckm60LLububL0uv10+vkhUKG?= =?us-ascii?Q?+6kpAyYQ6vY/4MUqymbvSaJ5UCEDi0PUDMpfSgN7DM0J3ra2rSZgQv8OhWTK?= =?us-ascii?Q?CmjL80Gkmjw582xU99Cfh8aDYLlzWNfIUNXZEcwf7cek/q2m/IdSefYxK6Po?= =?us-ascii?Q?f/KvHHm1TuKpqY+IV/hIP/2dgKDoDNk5K74GgO32dZ4M3Kga1C4JPn5yxO5c?= =?us-ascii?Q?6A27m5+KcsxmeyOZQAN60Tvt7Jyw1UwWzjKFlNlZBK+LPH1uqdp9hioAid/Q?= =?us-ascii?Q?xxLzo1BUo98Dmr0VHMOHQyqi4oJB1uBD38dCPbQoB/GPWm4p4oWc+wfEGLC0?= =?us-ascii?Q?iXjcr0AtfdQgwcwmzVDLvuj33hvljbzmINg5AndFn51XytXDLjmQLrbvVGq4?= =?us-ascii?Q?G53jjeVqEV2vH4ip9rI1V83XZBV0jXv8+/OssZ5HjYhfn4eZ5BJMp89HFhb0?= =?us-ascii?Q?lSu9LVG+wNObeoI3thRb2jI9/WIJ0nHp3T+ZMSS02HFuWKfESfP2X1wX2QH7?= =?us-ascii?Q?nfgB001+timFFD4Bp26xpIrx8/WvKLovvd7eM19+IQonocyCc64oAaMLJets?= =?us-ascii?Q?O791ROnb/O7lUtzgdxX0WwuVVAGe8DdYgDekNXNv2TiNOfCD+i+e9jdO3b7s?= =?us-ascii?Q?LbKGfZJHidcLZZDrl/s1m5kTsNdH921IcIGS2fAFwSAqMQYW/qDQ1jX/t4RA?= =?us-ascii?Q?/OpmBN7EHSw06lZBl+MVHie0NMtLYaV+SjvXJ0CYmOkPqoUHbWdnF6yAvzir?= =?us-ascii?Q?wYupUFMdD6PiEexKc4be+RP9y7Lul31LPYcGb4V8rLldxUQk1dsdQ1f2//Ry?= =?us-ascii?Q?UjRwmO/5OMNzBoTp5zIIkaJ/tFCbHvNUJVgGkKxDXd4NxDYpXooKVXQUQ+HK?= =?us-ascii?Q?axki0L/YlCBl8nc2czi94e+tO3QQfptc1HGsyepJrqrCNOkY8Fu87NJ/bc9U?= =?us-ascii?Q?VaQ4IsP9Qute6LUgUcQ=3D?= 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> Henry S. Thompson wrote: > Some approach to support future-proofing in general would seem to be in o= rder.=20 > Given some other precedents, adding a boolean argument called either 'str= ict' 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_que= ry and uses_fragment. (If written today they would be sets, but this is very old code that predat= es sets!) Group that information by scheme instead of by flag name, in e.g. a datacla= ss, and you have made yourself a strategy object lookup table: scheme_options =3D { 'https': SchemeOptions(uses_relative=3DTrue, uses_netloc=3DTrue, uses_p= arams=3DTrue), 'git': SchemeOptions(uses_relative=3DFalse, uses_netloc=3DTrue, uses_pa= rams=3DFalse), ... } 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=3Dparse.scheme_o= ptions['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, ma= king ========== REMAINDER OF ARTICLE TRUNCATED ==========