Re: Some pattern annoyance

Christian Tismer-Sperling <[email protected]> Thu, 3 Aug 2023 11:46:45 +0200
Newsgroups gmane.comp.python.devel
Message-ID <[email protected]>
SGkgU3RldmUsDQoNClllcyBJIGFtIHdlbGwgYXdhcmUgdGhhdCB0aGlzIHJlZ2V4IGV4YW1wbGUg
aXMgbm90IHdlbGwgc3VpdGVkIGZvciBTUE0uDQpUaGlzIHdhcyBhIHByb29mIG9mIGNvbmNlcHQu
IFB1c2hpbmcgdGhpbmdzIG5vIHRoZSBleHRyZW1lIGlzIG15DQp3YXkgb2YgdW5kZXJzdGFuZGlu
ZyB0aGluZ3MgZGVlcGx5LCBzbyB0aGlzIHdhcyBzb21ldGhpbmcgSSBuZWVkZWQuDQoNCkZvciBz
b21lIHJlYXNvbiwgSSBsb3ZlIGFuZCBoYXRlIHJlZ2V4LiBJIGhhdGUgaXQgYmVjYXVzZSBpdCBp
cw0KdW5weXRob25pYywgY2hhciBvbmx5IGFuZCB1Z2x5LiBJIGxvdmUgaXQgYmVjYXVzZSBpdCBp
cyBmYXN0LCBhbmQgYnkgdGhlDQp1c2Ugb2YgdGhlIHZlcmJvc2UgZmxhZyBhbHNvIHF1aXRlIHJl
YWRhYmxlLg0KDQpCdXQgZ2V0dGluZyByaWQgb2YgcmVnZXggaW4gZmF2b3Igb2Ygc29tZXRoaW5n
IGV2ZW4gbW9yZSBjYXBhYmxlIHdhcw0KYSBsb25nLXN0YW5kaW5nIHdpc2ggdGhhdCBpcyB5ZXQg
bm90IGZ1bGZpbGxlZCwgYmVjYXVzZSB0aGUgbmF0dXJlIG9mDQpib3RoIGZlYXR1cmVzIGlzIChz
dGlsbCkgcHJldHR5IGRpZmZlcmVudC4NCg0KSSB3b3VsZCBsb3ZlIHRvIGhhdmUgc2ltaWxhciBi
dWlsZGluZyBibG9ja3MgYXMgaW4gcmVnZXgsIGJ1dCB3aXRoIGENCnB5dGhvbmljIHN5bnRheCwg
YW5kIGV4dGVuZGluZyB0aGUgYmFzaWMgc3RyaW5nIG1hdGNoaW5nIHRvIGdlbmVyYWwNCm9iamVj
dHMuIEF0IHRoZSBtb21lbnQgSSBkb24ndCBzZWUgdGhpcyBpbiBTUE0gYmVjYXVzZSB0aGVyZSBh
cmUgYmFzaWMNCmZsZXhpYmxlIHBhdHRlcm5zIG1pc3NpbmcuIFRoZSBvbmx5IGZsZXhpYmxlIHRo
aW5nIGluIHNlcXVlbmNlcyBpcw0KdGhlIHN0YXIgb3BlcmF0b3IsIGJ1dCBpbiBteSBleGFtcGxl
IHRoaXMgaXMgYWx3YXlzIGVhdGVuIGJ5IHRoZSBuZWVkDQpvZiBhbiBvcGVuIGVuZCBpbiB0aGUg
cGF0dGVybi4gVGhpcyBpcyBzb21ldGhpbmcgdGhhdCBtaWdodCBpbXByb3ZlLg0KDQpBcyBhIGRy
aXZlLWJ5LCB3aGlsZSBsb29raW5nIGludG8gdGhlIFBpbGdyaW0gYWxnb3JpdGhtIGZvciBSb21h
bg0KbGl0ZXJhbHMsIEkgZm91bmQgYnkgY2hhbmNlIGEgZmFzdGVyIGFsZ29yaXRobSA6KQ0KTm90
IG9ubHkgdGhhdCBteSBTUE0gY3JhemluZXNzIGlzIG5vdyByZWFsbHkgZmFzdGVyIHRoYW4gdGhl
IHJlZ2V4DQpzb2x1dGlvbiwgYnV0IEkgZm91bmQgc29tZXRoaW5nIGJldHRlciwgYmFzZWQgb24g
UGlsZ3JpbSdzIGB0b1JvbWFuYA0KcGFydCBvZiB0aGUgYWxnb3JpdGhtIDpEDQoNCkdpdmVuIG9u
ZSBvZiB0aGUgYmFzaWMgYWxnb3JpdGhtcyBpbiB0aGUgaW50ZXJuZXQgd2hpY2ggYXJlIGZhc3QN
CmFuZCBpbmNvbXBsZXRlLCB0aGlzIGhlcmUgaXMgbXVjaCBmYXN0ZXIgdGhhbiB1c2luZyByZWdl
eDoNCg0KICAgICBkZWYgZnJvbV9yb21hbl9mYXN0ZXN0KG51bWVyYWwpOg0KICAgICAgICAgaWYg
bnVtZXJhbCA9PSAnTic6DQogICAgICAgICAgICAgcmV0dXJuIDANCiAgICAgICAgIG51bSA9IGZy
b21fcm9tYW5fbnVtZXJhbChudW1lcmFsKQ0KICAgICAgICAgY21wID0gcm9tYW4udG9Sb21hbihu
dW0pDQogICAgICAgICBpZiBudW1lcmFsICE9IGNtcDoNCiAgICAgICAgICAgICByYWlzZSBJbnZh
bGlkUm9tYW5OdW1lcmFsRXJyb3IoZiJJbnZhbGlkIFJvbWFuIG51bWVyYWw6IA0Ke251bWVyYWx9
IikNCiAgICAgICAgIHJldHVybiBudW0NCg0KVGhpcyBmb2xsb3dzIHRoZSBvbGQgb2JzZXJ2YXRp
b24gIkxpc3RlbmluZyBpcyBtdWNoIGhhcmRlciB0aGFuIHRhbGtpbmciLA0Kc28gdGhpcyBhbGdv
cml0aG0gZG9lcyBub3QgdHJ5IGEgY29tcGxleCBzb2x1dGlvbiwgYnV0IHVzZXMgYSBzaW1wbGUg
b25lDQphbmQgY2hlY2tzIGlmIHRoZSBpbnB1dCBzdHJpbmcgd2FzIGNvcnJlY3RseSByZWNvbnN0
cnVjdGVkLg0KDQpDaGVlcnMgLS0gQ2hyaXMNCg0KDQpPbiAwMi4wOC4yMyAyMjozMCwgU3RldmUg
SG9sZGVuIHdyb3RlOg0KPiBIaSBDaHJpcywNCj4gDQo+IE5pY2UgdG8gc2VlIHlvdSBvbiB0aGUg
bGlzdC4NCj4gDQo+IFdoaWxlIHRoaXMgaXMgZGVmaW5pdGVseSBvZmYtdG9waWMsIEkgdHJ1c3Qg
SSBtaWdodCBiZSBnaXZlbiBsaWNlbnNlIGJ5IA0KPiB0aGUgbGlzdCdzIGZldyByZW1haW5pbmcg
cmVhZGVycyB0byBwb2ludCBvdXQgdGhhdCB0aGUgbWF0Y2gtY2FzZSANCj4gY29uc3RydWN0IGlz
IGZvciBfc3RydWN0dXJhbF8gcGF0dGVybiBtYXRjaGluZy4gQXMgSSB3cm90ZSBpbiB0aGUgbGF0
ZXN0IA0KPiBOdXRzaGVsbDogIlJlc2lzdCB0aGUgdGVtcHRhdGlvbiB0byB1c2UgbWF0Y2ggdW5s
ZXNzIHRoZXJlIGlzIGEgbmVlZCB0byANCj4gYW5hbHlzZSB0aGUgX3N0cnVjdHVyZV8gb2YgYW4g
b2JqZWN0LiINCj4gDQo+IEkgZG9uJ3QgYmVsaWV2ZSBpdCdzIGFjY2lkZW50YWwgdGhhdCBtYXRj
aC1jYXNlIHNlcXVlbmNlIHBhdHRlcm5zIHdvbid0IA0KPiBtYXRjaCBzdHIsIGJ5dGVzIG9yIGJ5
dGVhcnJyYXnCoG9iamVjdHMgLSByZWdleGVuwqBhcmUgdGhlIHRvb2wgYWxyZWFkeSANCj4gb3B0
aW1pc2VkIGZvciB0aGF0IHB1cnBvc2UsIHNvIGl0J3MgcXVpdGUgaW1wcmVzc2l2ZSB0aGF0IHlv
dSBhcmUgDQo+IG1hbmFnaW5nwqB0byBhcHByb2FjaCB0aGUgc2FtZSBsZXZlbCBvZiBwZXJmb3Jt
YW5jZSENCj4gDQo+IEtpbmQgcmVnYXJkcywNCj4gU3RldmUNCj4gDQo+IA0KPiBPbiBXZWQsIDIg
QXVnIDIwMjMgYXQgMTg6MjYsIENocmlzdGlhbiBUaXNtZXItU3BlcmxpbmcgDQo+IDx0aXNtZXJA
c3RhY2tsZXNzLmNvbSA8bWFpbHRvOnRpc21lckBzdGFja2xlc3MuY29tPj4gd3JvdGU6DQo+IA0K
PiAgICAgT24gMDIuMDguMjMgMTg6MzAsIFBhdWwgTW9vcmUgd3JvdGU6DQo+ICAgICAgPiBPbiBX
ZWQsIDIgQXVnIDIwMjMgYXQgMTU6MjQsIFN0ZXBoZW4gSi4gVHVybmJ1bGwNCj4gICAgICA+IDx0
dXJuYnVsbC5zdGVwaGVuLmZ3QHUudHN1a3ViYS5hYy5qcA0KPiAgICAgPG1haWx0bzp0dXJuYnVs
bC5zdGVwaGVuLmZ3QHUudHN1a3ViYS5hYy5qcD4NCj4gICAgICA+IDxtYWlsdG86dHVybmJ1bGwu
c3RlcGhlbi5md0B1LnRzdWt1YmEuYWMuanANCj4gICAgIDxtYWlsdG86dHVybmJ1bGwuc3RlcGhl
bi5md0B1LnRzdWt1YmEuYWMuanA+Pj4gd3JvdGU6DQo+ICAgICAgPg0KPiAgICAgID7CoCDCoCDC
oFBhcnRseSBiZWNhdXNlIHRoYXQncyB3aGVyZSB0aGUgb3RoZXIgZGlzY3Vzc2FudHMgYXJlICh0
aGUNCj4gICAgIG5ldHdvcmsNCj4gICAgICA+wqAgwqAgwqBleHRlcm5hbGl0eSBpcyB1bmRlbmlh
Ymx5IHBvd2VyZnVsKSwgYW5kIHBhcnRseSAoSSBiZWxpZXZlKQ0KPiAgICAgYmVjYXVzZQ0KPiAg
ICAgID7CoCDCoCDCoGVmZmVjdGl2ZSB1c2Ugb2YgZW1haWwgaXMgYSBza2lsbCB0aGF0IHJlcXVp
cmVzIGVmZm9ydCB0bw0KPiAgICAgYWNxdWlyZS4NCj4gICAgICA+wqAgwqAgwqBQb3B1bGFyIG1h
aWwgY2xpZW50cyBhcmUgZGVzaWduZWQgdG8gYmUgcG9wdWxhciwgbm90IHRvIG1ha2UgdGhhdA0K
PiAgICAgID7CoCDCoCDCoGV4cGVydGlzZSBlYXN5IHRvIGFjcXVpcmUgYW5kIGV4ZXJjaXNlLsKg
IENsdW5reSB1c2Ugb2YgZW1haWwNCj4gICAgIG1ha2VzDQo+ICAgICAgPsKgIMKgIMKgbGlzdHMg
bXVjaCBsZXNzIHBsZWFzYW50IGZvciBldmVyeW9uZSB0aGFuIHRoZXkgY291bGQgYmUuDQo+ICAg
ICAgPg0KPiAgICAgID7CoCDCoCDCoEkgZ3Vlc3MgdGhhdCdzIHNhZCAoSSBhbSwgYWZ0ZXIgYWxs
LCBhIEdOVSBNYWlsbWFuDQo+ICAgICBkZXZlbG9wZXIpLCBidXQNCj4gICAgICA+wqAgwqAgwqBp
dCdzIHJlYWxpdHkuDQo+ICAgICAgPg0KPiAgICAgID4NCj4gICAgICA+IFBlcnNvbmFsbHksIEkn
bSBzYWQgYmVjYXVzZSBzb21lIHBlb3BsZSB3aG9zZSBjb250cmlidXRpb25zIEkNCj4gICAgIGVu
am95ICh5b3UNCj4gICAgICA+IGJlaW5nIG9uZSBvZiB0aGVtIDotKSkgZGlkbid0IG1vdmUgdG8g
RGlzY291cnNlLiBCdXQgbGlrZSB5b3UNCj4gICAgIHNheSwgaXQncw0KPiAgICAgID4gaG93IHRo
aW5ncyBhcmUuDQo+ICAgICAgPg0KPiAgICAgID4gQ2hyaXN0aWFuIC0geW91IGNhbiBtYWtlIG5h
bWVkIGNvbnN0YW50cyB1c2luZyBjbGFzcyBhdHRyaWJ1dGVzDQo+ICAgICAob3IgYW4NCj4gICAg
ICA+IGVudW0pOg0KPiAgICAgID4NCj4gICAgICA+IGNsYXNzIEE6DQo+ICAgICAgPsKgIMKgIMKg
IE0gPSAiTSINCj4gICAgICA+DQo+ICAgICAgPiBtYXRjaCBzZXE6DQo+ICAgICAgPsKgIMKgIMKg
IGNhc2UgQS5NLCBBLk0sIEEuTSwgQS5NLCAqcjoNCj4gICAgICA+wqAgwqAgwqAgwqAgwqAgcmV0
dXJuIDQqMTAwMCwgcg0KPiAgICAgID4NCj4gICAgICA+IEJhc2ljYWxseSwgdGhlICJuYW1lcyBh
cmUgdHJlYXRlZCBhcyB2YXJpYWJsZXMgdG8gYXNzaWduIHRvIiBydWxlDQo+ICAgICAgPiBkb2Vz
bid0IGFwcGx5IHRvIGF0dHJpYnV0ZXMuDQo+ICAgICAgPg0KPiAgICAgID4gSSdtIG5vdCBzdXJl
IGhvdyBoZWxwZnVsIHRoYXQgaXMgKGl0J3Mgbm90IHBhcnRpY3VsYXJseQ0KPiAgICAgKnNob3J0
ZXIqKSBidXQgSQ0KPiAgICAgID4gdGhpbmsgdGhlIGlkZWEgd2FzIHRoYXQgbW9zdCB1c2VzIG9m
IG5hbWVkIGNvbnN0YW50cyBpbiBhIG1hdGNoDQo+ICAgICAgPiBzdGF0ZW1lbnQgd291bGQgYmUg
ZW51bXMgb3IgbW9kdWxlIGF0dHJpYnV0ZXMuIEFuZCBjb21wcm9taXNlcw0KPiAgICAgaGFkIHRv
IGJlDQo+ICAgICAgPiBtYWRlLg0KPiAgICAgID4NCj4gICAgICA+IENoZWVycywNCj4gICAgICA+
IFBhdWwNCj4gDQo+ICAgICBUaGFua3MgYSBsb3QsIGV2ZXJ5Ym9keSENCj4gDQo+ICAgICBJIGhh
dmUgdHJpZWQgYSBsb3Qgbm93LCB1c2luZyBjbGFzc2VzIHdoaWNoIGJlY29tZXMgbW9yZSByZWFk
YWJsZQ0KPiAgICAgYnV0IC0gZnVubmlseSAtIHNsb3dlciEgVXNpbmcgdGhlIGNsdW1zeSBpZi1n
dWFyZHMgZmVsdCBzbG93IGJ1dCBpc24ndC4NCj4gDQo+ICAgICBUaGVuIEkgZ2VuZXJhdGVkIGZ1
bmN0aW9ucyBldmVuLCB3aXRoIGV2ZXJ5dGhpbmcgYXMgY29uc3RhbnRzLA0KPiAgICAgYW5kIG5v
dyB0aGUgU1BNIHZlcnNpb24gaW4gZmFjdCBvdXQtcGVyZm9ybXMgdGhlIHJlZ2V4IHNsaWdodGx5
IQ0KPiANCj4gICAgIEJ1dCBhdCBsYXN0LCBJIGZvdW5kIGFuIGV2ZW4gZmFzdGVyIGFuZCBjb3Jy
ZWN0IGFsZ29yaXRobQ0KPiAgICAgYnkgYSBkaWZmZXJlbnQgYXBwcm9hY2gsIHdoaWNoIGVuZHMg
bm93IHRoaXMgc3RvcnkgOikNCj4gDQo+ICAgICBHb2luZyB0byB0aGUgRGlzY291cnNlIHRpdGUs
IG5vdy4NCj4gDQo+ICAgICBDaGVlcnMgLS0gQ2hyaXMNCj4gICAgIC0tIA0KPiAgICAgQ2hyaXN0
aWFuIFRpc21lci1TcGVybGluZ8KgIMKgIDpeKSB0aXNtZXJAc3RhY2tsZXNzLmNvbQ0KPiAgICAg
PG1haWx0bzp0aXNtZXJAc3RhY2tsZXNzLmNvbT4NCj4gICAgIFNvZnR3YXJlIENvbnN1bHRpbmfC
oCDCoCDCoCDCoCDCoCA6IGh0dHA6Ly93d3cuc3RhY2tsZXNzLmNvbS8NCj4gICAgIDxodHRwOi8v
d3d3LnN0YWNrbGVzcy5jb20vPg0KPiAgICAgU3RyYW5kc3RyYcOfZSAzN8KgIMKgIMKgIMKgIMKg
IMKgIMKgIDogaHR0cHM6Ly9naXRodWIuY29tL1B5U2lkZQ0KPiAgICAgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9QeVNpZGU+DQo+ICAgICAyNDIxNyBTY2jDtm5iZXJnwqAgwqAgwqAgwqAgwqAgwqAgwqAg
OsKgIMKgIMKgR1BHIGtleSAtPiAweEZCN0JFRTBFDQo+ICAgICBwaG9uZSArNDkgMTczIDI0IDE4
IDc3NsKgIGZheCArNDkgKDMwKSA3MDAxNDMtMDAyMw0KPiANCj4gICAgIF9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ICAgICBQeXRob24tRGV2IG1haWxp
bmcgbGlzdCAtLSBweXRob24tZGV2QHB5dGhvbi5vcmcNCj4gICAgIDxtYWlsdG86cHl0aG9uLWRl
dkBweXRob24ub3JnPg0KPiAgICAgVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBweXRo
b24tZGV2LWxlYXZlQHB5dGhvbi5vcmcNCj4gICAgIDxtYWlsdG86cHl0aG9uLWRldi1sZWF2ZUBw
eXRob24ub3JnPg0KPiAgICAgaHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbjMvbGlzdHMv
cHl0aG9uLWRldi5weXRob24ub3JnLw0KPiAgICAgPGh0dHBzOi8vbWFpbC5weXRob24ub3JnL21h
aWxtYW4zL2xpc3RzL3B5dGhvbi1kZXYucHl0aG9uLm9yZy8+DQo+ICAgICBNZXNzYWdlIGFyY2hp
dmVkIGF0DQo+ICAgICBodHRwczovL21haWwucHl0aG9uLm9yZy9hcmNoaXZlcy9saXN0L3B5dGhv
bi1kZXZAcHl0aG9uLm9yZy9tZXNzYWdlL09GTEFVMzRLV0FLUkVLRzRIMk01R0VTM1BHVDZWQkFV
LyA8aHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcvYXJjaGl2ZXMvbGlzdC9weXRob24tZGV2QHB5dGhv
bi5vcmcvbWVzc2FnZS9PRkxBVTM0S1dBS1JFS0c0SDJNNUdFUzNQR1Q2VkJBVS8+DQo+ICAgICBD
b2RlIG9mIENvbmR1Y3Q6IGh0dHA6Ly9weXRob24ub3JnL3BzZi9jb2Rlb2Zjb25kdWN0Lw0KPiAg
ICAgPGh0dHA6Ly9weXRob24ub3JnL3BzZi9jb2Rlb2Zjb25kdWN0Lz4NCj4gDQo+IA0KPiBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBQeXRob24tRGV2
IG1haWxpbmcgbGlzdCAtLSBweXRob24tZGV2QHB5dGhvbi5vcmcNCj4gVG8gdW5zdWJzY3JpYmUg
c2VuZCBhbiBlbWFpbCB0byBweXRob24tZGV2LWxlYXZlQHB5dGhvbi5vcmcNCj4gaHR0cHM6Ly9t
YWlsLnB5dGhvbi5vcmcvbWFpbG1hbjMvbGlzdHMvcHl0aG9uLWRldi5weXRob24ub3JnLw0KPiBN
ZXNzYWdlIGFyY2hpdmVkIGF0IGh0dHBzOi8vbWFpbC5weXRob24ub3JnL2FyY2hpdmVzL2xpc3Qv
cHl0aG9uLWRldkBweXRob24ub3JnL21lc3NhZ2UvRFlUVlQ3Q1VGVlZHSURQWEcyTUtJT0VMV0pQ
RzNXNzMvDQo+IENvZGUgb2YgQ29uZHVjdDogaHR0cDovL3B5dGhvbi5vcmcvcHNmL2NvZGVvZmNv
bmR1Y3QvDQoNCi0tIA0KQ2hyaXN0aWFuIFRpc21lci1TcGVybGluZyAgICA6XikgICB0aXNtZXJA
c3RhY2tsZXNzLmNvbQ0KU29mdHdhcmUgQ29uc3VsdGluZyAgICAgICAgICA6ICAgICBodHRwOi8v
d3d3LnN0YWNrbGVzcy5jb20vDQpTdHJhbmRzdHJhw59lIDM3ICAgICAgICAgICAgICA6ICAgICBo
dHRwczovL2dpdGh1Yi5jb20vUHlTaWRlDQoyNDIxNyBTY2jDtm5iZXJnICAgICAgICAgICAgICA6
ICAgICBHUEcga2V5IC0+IDB4RkI3QkVFMEUNCnBob25lICs0OSAxNzMgMjQgMTggNzc2ICBmYXgg
KzQ5ICgzMCkgNzAwMTQzLTAwMjMNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KUHl0aG9uLURldiBtYWlsaW5nIGxpc3QgLS0gcHl0aG9uLWRldkBweXRo
b24ub3JnClRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcHl0aG9uLWRldi1sZWF2ZUBw
eXRob24ub3JnCmh0dHBzOi8vbWFpbC5weXRob24ub3JnL21haWxtYW4zL2xpc3RzL3B5dGhvbi1k
ZXYucHl0aG9uLm9yZy8KTWVzc2FnZSBhcmNoaXZlZCBhdCBodHRwczovL21haWwucHl0aG9uLm9y
Zy9hcmNoaXZlcy9saXN0L3B5dGhvbi1kZXZAcHl0aG9uLm9yZy9tZXNzYWdlL1hHVFFWVlRSTVFS
S1ZLWFNFNE81V1pZWklUTU41REJFLwpDb2RlIG9mIENvbmR1Y3Q6IGh0dHA6Ly9weXRob24ub3Jn
L3BzZi9jb2Rlb2Zjb25kdWN0Lwo=