Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1x18aD-00509U-0i for pgsql-www@arkaria.postgresql.org; Mon, 31 Aug 2026 20:26:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1x18aC-001yCG-0b for pgsql-www@arkaria.postgresql.org; Mon, 31 Aug 2026 20:26:20 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1x18aB-001yC8-2q for pgsql-www@lists.postgresql.org; Mon, 31 Aug 2026 20:26:20 +0000 Received: from meldrar.postgresql.org ([2a02:c0:301:0:ffff::31]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1x18a9-00000003MJK-2Ln1 for pgsql-www@lists.postgresql.org; Mon, 31 Aug 2026 20:26:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Content-Type:In-Reply-To:From:References:Cc: To:Subject:MIME-Version:Date:Message-ID:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=55iXNBaAzErmZPDojDpcBIRHcW0ldKjsVN/pIhE/k6o=; b=J0MCQWuEggp90lWnNDSoE1dGhe bq4GDrWuAxbZ53vYfkaWgPoT+W6EIVe2znDzVO1ySrzVuHxaFzKgY8tTHY0D/ComQOsSnqvGcVqCV YBaA5FEVWw6AyCi8v1ls55qPIgYnyZ4JYmrkbaKVVP3Tj4embXM6aJTWvHWPa+G0DZAPlVhvmz3XX 5SfImSkJ6ukQyHYHDmdh30P5FEeQ3XUUOQA02tdAFMpRPbsjg18VTMOLYhf53YlFgKyjgnXF1A1j6 eYDS1D4IiNS5n6jVldes3A6S+ObmC5gYT2P6Aq8Xt3nsdRAU2hW1qOXGct/g9hoItV8KXugixpbqE 4VZT5YSg==; Received: from [52.119.84.39] (helo=[192.168.88.86]) by meldrar.postgresql.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1x18a6-00000005DLw-1BiV; Mon, 31 Aug 2026 20:26:16 +0000 Message-ID: Date: Mon, 31 Aug 2026 16:26:12 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Python Tooling To: Tristan Partin , Magnus Hagander Cc: pgsql-www References: Content-Language: en-US From: "Jonathan S. Katz" Autocrypt: addr=jkatz@postgresql.org; keydata= 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 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------kKjenvSgxnWAPTeBjWwVJgML" X-Host-Lookup-Failed: Reverse DNS lookup failed for 52.119.84.39 (failed) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------kKjenvSgxnWAPTeBjWwVJgML Content-Type: multipart/mixed; boundary="------------V7MnQuLkQgP63IK9t0X2Ufno"; protected-headers="v1"; hp="clear" Message-ID: Date: Mon, 31 Aug 2026 16:26:12 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Python Tooling To: Tristan Partin , Magnus Hagander Cc: pgsql-www References: Content-Language: en-US From: "Jonathan S. Katz" Autocrypt: addr=jkatz@postgresql.org; keydata= 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 In-Reply-To: --------------V7MnQuLkQgP63IK9t0X2Ufno Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gOC8zMS8yNiA0OjIzIFBNLCBUcmlzdGFuIFBhcnRpbiB3cm90ZToNCg0KPj4gVGhlIGJh c2ljIGFuc3dlciBpcywgInVzZSB3aGF0ZXZlciBpcyBpbiBkZWJpYW4iIGJlY2F1c2UgdGhh dCdzIHdoYXQgaXQncw0KPj4gZGVwbG95ZWQgb24sIGFuZCBhdCB0aGlzIHBvaW50IHRoYXQn cyB0cml4aWUuDQo+Pg0KPj4gVGhhdCBhbHNvIG1lYW5zIHdlIGRvICpub3QqIHdhbnQgdG8g Y2hhbmdlIHRoZSBkZXBlbmRlbmNpZXMgdG8gYW55dGhpbmcNCj4+IG90aGVyIHRoYW4gd2hh dHIncyB0aGVyZS4NCj4gDQo+IERvZXMgdGhpcyBtZWFuIHRoYXQgd2UgcmVseSBvbiB0aGUg dmVyc2lvbnMgb2YgUHl0aG9uIHBhY2thZ2VzIHdpdGhpbg0KPiBUcml4aWUgYW5kIHRoZSBy ZXF1aXJlbWVudHMudHh0IGlzIGJhc2ljYWxseSBpZ25vcmVkPw0KDQpGV0lXIEkgd2lsbCB1 c2UgcmVxdWlyZW1lbnRzLnR4dCBpbiBteSBsb2NhbCBlbnZpcm9ubWVudCwgYnV0IHRoYXQg b25seSANCmhhcHBlbnMgd2hlbiBpdCBnZXRzIG51a2VkLCBzbyBpdCdzIGEgb25jZS1ldmVy eS1mZXcteWVhcnMgb3JkZWFsLg0KDQooSSBjb3VsZCBwcm9iYWJseSBnZXQgdGhlIHBnd2Vi IGVudiB0byBsb2FkIGZyb20gYSBjb250YWluZXI7IHBlcmhhcHMgDQp0aGlzIGlzIGEgc3Vn Z2VzdGlvbiB0b3dhcmRzIGEgRG9ja2VyZmlsZT8pDQoNCkpvbmF0aGFuDQo= --------------V7MnQuLkQgP63IK9t0X2Ufno-- --------------kKjenvSgxnWAPTeBjWwVJgML Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEE+oS2la8r95ogZD/x8QSccp8cZScFAmqV42QFAwAAAAAACgkQ8QSccp8cZSdO fw/+KVeDGHsckl845MVgOt7GaiPxSKQMupIbRD1njvcQ0aF0NCQBQZu1+7GKC76izngW9QlXurNr wUjvwQaEU8zTAMKVF94UPACeQ3J+oPtF0SpCpfKBADl/ZzKaBNX4wMs+SuVywwFfMqO0JB+Jo2FN MJDKIYW85iaESFF3nHyKI9cQ3BQqYef9uxA/gBUfnhBsji3H3kG3d/+P9yasDwMsy8Af6UqkzGMx HoGWffevDMquhVC+RAwD0uIBvTuGUViT7OLFwsbJjrn3RalCLkHB9OQqAgL40EJ5wgkSEspMkijc wEtOYPysdULDWZHS+TG4EcNvZe1x+foS/0cQ7WOGqHirmk6FAw1HXXG5UdiqiggFbdQqfOrMbSWd fyA1QY3HPbOnkKfBpSYjRLpRtag9Tt9jiFEgY0L7MkYmDpESDwbi8f2vxkIP4NbaI7F1TZYr7TAu 8PKpDQKtfK5Jnue5uYaD/8aMpkL0e1mNQhGKi02KCUYPl/Cl5m2W0X/Hyof8f5tCnL96O6Vvv7Ot /907c2He/JmrXys6yU7rToouVLUMd7rDR/oR/gEOfs+5waLdBm1ZESCPxtL5e9YUKzwoX9lJyjZh sTauGkaPgG/RhU/tVNlFamMuv3363jM8x2rnqRewKsTf8XqXU9Mmkj3PZBeNT4x6wHBftV7CCBQP hFs= =2h0Y -----END PGP SIGNATURE----- --------------kKjenvSgxnWAPTeBjWwVJgML--