Re: Python in Dual-Space software engineering

Walid AlMasri via Python-list <[email protected]> Sun, 28 Jun 2026 01:37:25 +0300
Newsgroups gmane.comp.python.general
Message-ID <CAO31ZoJdpFq-8BbYJ7NAhc1vUdp61C3RJNugXR9NPRxD34E5zA@mail.gmail.com>
VGhhbmtzIQ0KDQpJIHN0YXJ0ZWQgZG9pbmcgc29tZSBuZXcgc3RlcHMgaW50byBvcHRpbWl6YXRp
b24gdG9vbCBmb3IgZGlhZ25vc2luZyB0aGUNCmNvZGVzDQoNCmZvciBleGFtcGxlIHRoZSBjb2Rl
DQojIFByaW1hbCBTcGFjZTogSGlnaCBNKFApLCBIaWdoIENfY3ljLCBMb3cgQ29tcEQNCmRlZiBw
cm9jZXNzX2RhdGEoZGF0YSk6DQogICAgdG90YWwgPSAwDQogICAgY291bnQgPSAwDQogICAgZm9y
IHggaW4gZGF0YToNCiAgICAgICAgaWYgeCA+IDA6DQogICAgICAgICAgICB0b3RhbCArPSB4ICog
eA0KICAgICAgICAgICAgY291bnQgKz0gMQ0KICAgIHJldHVybiB0b3RhbCAvIGNvdW50IGlmIGNv
dW50ID4gMCBlbHNlIDANCg0KaGFzIHRoZSBmb2xsb3dpbmcgbWV0cmljcw0KKlByZS1SZWZhY3Rv
cmluZyAoUHJpbWFsIFNwYWNlOiBQeXRob24gZm9yIGxvb3ApKg0KDQogICAtICpBYnN0cmFjdGlv
biAoXENvbXBEKToqIDEvMTAgKFJlbGllcyBvbiBiYXNpYyBpbXBlcmF0aXZlIGNvbnRyb2wgZmxv
dzsNCiAgIGxvdyBhbGdlYnJhaWMgc3BhbikuDQogICAtICpTZWN1cml0eSAoVFBJKToqIDgvMTAg
KENvbnRhaW5zIG11dGFibGUgc3RhdGUgdmFyaWFibGVzIHRvdGFsIGFuZA0KICAgY291bnQsIGlu
dHJvZHVjaW5nIHRvcG9sb2dpY2FsIGRlZmVjdHMvc3RhdGUgZW50YW5nbGVtZW50KS4NCiAgIC0g
KkVmZmljaWVuY3kgKEUpOiogODUvMTAwIChIaWdoIHByaW1hbCBmcmljdGlvbjogTShQKT0yLCBD
Y3ljPTQsIGhpZ2gNCiAgIHN5bnRhY3RpYyBLb2xtb2dvcm92IGNvbXBsZXhpdHkpLg0KICAgLSAq
U2VtYW50aWMgRHVhbGl0eSBHYXAgKM6UZ2FwKToqIDAgKFRoZSBjb2RlIGNvcnJlY3RseSBjb21w
dXRlcyB0aGUNCiAgIG1hdGhlbWF0aWNhbCBpbnRlbnQsIGJ1dC4uLikuDQogICAtICpSdW50aW1l
IEZyaWN0aW9uOiogKkhpZ2gqLiBUaGUgY29kZSBpcyBib3R0bGVuZWNrZWQgYnkgdGhlIFB5dGhv
bg0KICAgaW50ZXJwcmV0ZXIncyBieXRlY29kZSBldmFsdWF0aW9uIGxvb3AuDQoNCg0KDQp3aGls
ZSB0aGUgY29kZQ0KIyBEdWFsIFNwYWNlOiBNKFApPTAsIENfY3ljPTEsIEhpZ2ggQ29tcEQNCmlt
cG9ydCBudW1weSBhcyBucA0KDQpkZWYgcHJvY2Vzc19kYXRhKGRhdGEpOg0KICAgIGFyciA9IG5w
LmFycmF5KGRhdGEpDQogICAgcG9zaXRpdmVzID0gYXJyW2FyciA+IDBdDQogICAgcmV0dXJuIG5w
Lm1lYW4ocG9zaXRpdmVzICoqIDIpIGlmIHBvc2l0aXZlcy5zaXplID4gMCBlbHNlIDAuMA0KDQpo
YXMNCipQb3N0LVJlZmFjdG9yaW5nIChEdWFsIFNwYWNlOiBOdW1QeSBUZW5zb3IgT3BlcmF0aW9u
cykqDQoNCiAgIC0gKkFic3RyYWN0aW9uIChcQ29tcEQpOiogOS8xMCAoVXRpbGl6ZXMgVGVuc29y
IEFsZ2VicmEsIGJvb2xlYW4NCiAgIG1hc2tpbmcsIGFuZCB2ZWN0b3JpemVkIG9wZXJhdGlvbnM7
IGhpZ2gtZGltZW5zaW9uYWwgYWxnZWJyYWljIHNwYW4pLg0KICAgLSAqU2VjdXJpdHkgKFRQSSk6
KiAxMC8xMCAoU3RyaWN0bHkgaW1tdXRhYmxlIGFycmF5IG9wZXJhdGlvbnM7IE0oUCk9MCwNCiAg
IGFjaGlldmluZyBwZXJmZWN0IHJlZmVyZW50aWFsIHRyYW5zcGFyZW5jeSkuDQogICAtICpFZmZp
Y2llbmN5IChFKToqIDE1LzEwMCAoTWFzc2l2ZSByZWR1Y3Rpb24gaW4gc3RydWN0dXJhbCBwcmlt
YWwNCiAgIGZyaWN0aW9uOyBNKFApPTAsIENjeWM9MSwgaGlnaGx5IGNvbXByZXNzZWQgQVNUKS4N
CiAgIC0gKlNlbWFudGljIER1YWxpdHkgR2FwICjOlGdhcCk6KiAwIChTZW1hbnRpYyBlcXVpdmFs
ZW5jZSBQPTEgaXMgc3RyaWN0bHkNCiAgIHByZXNlcnZlZDsgbm8gdGVjaG5pY2FsIGRlYnQgaW50
cm9kdWNlZCkuDQogICAtICpIYXJkd2FyZSBJc29tb3JwaGlzbSBJbmRleDoqICriiYgxMDAlKi4g
VGhlIGR1YWwtc3BhY2UgdGVuc29yDQogICBvcGVyYXRpb25zIG1hcCBiaWplY3RpdmVseSB0byBu
YXRpdmUgQy9Gb3J0cmFuIEJMQVMgYW5kIFNJTUQgaW5zdHJ1Y3Rpb25zLA0KICAgYWNoaWV2aW5n
IHplcm8gcnVudGltZSBhYnN0cmFjdGlvbiBwZW5hbHR5IGFuZCBlbGltaW5hdGluZyB0aGUgaW50
ZXJwcmV0aXZlDQogICBvdmVyaGVhZC4NCg0KDQpUaGlzIGlzIGFuIGVsZW1lbnRhcnkgZXhhbXBs
ZSwgYnV0IGZvciBjb21wbGljYXRlZCBjb2RlcyBzdWNoIG1ldHJpY3MgZ2l2ZQ0Kb3ZlcmFsbCBp
ZGVhIGFib3V0IHRoZSBjb2RlIG5hdHVyZQ0KDQpCZXN0IFdpc2hlcywNCldhbGlkDQoNCk9uIFNh
dCwgSnVuIDI3LCAyMDI2IGF0IDM6MDXigK9QTSBBZGFtIElkcmVzcyA8aWRyZXNzYTQxNEBnbWFp
bC5jb20+IHdyb3RlOg0KDQo+IEhpIFdhbGlkLA0KPg0KPiBSZWFsbHkgYXBwcmVjaWF0ZWQgeW91
ciB0aG91Z2h0cyBvbiB0cmFuc2xhdGluZyByZXNlYXJjaCBpbnRvIHByYWN0aWNhbA0KPiB0b29s
cyB0aGF0IG1lYXN1cmUgcGVyZm9ybWFuY2UsIGFic3RyYWN0aW9uLCBhbmQgc2VjdXJpdHkuIEl0
IGdvdCBtZQ0KPiB0aGlua2luZyDigJQgdGhlIGNvbmNlcHQgb2YgInRyYW5zbGF0aW9uIiBhcHBs
aWVzIGJleW9uZCBqdXN0IGNvZGUsIHRvby4NCj4NCj4gQXMgZGV2ZWxvcGVycywgd2Ugb2Z0ZW4g
d29yayB3aXRoIGdsb2JhbCB0ZWFtcywgaW50ZXJuYXRpb25hbCBjbGllbnRzLCBhbmQNCj4gbXVs
dGlsaW5ndWFsIGRvY3VtZW50YXRpb24uIFRoZSBzYW1lIHByZWNpc2lvbiB3ZSBhcHBseSB0byB3
cml0aW5nIGNsZWFuLA0KPiBvcHRpbWl6ZWQgY29kZSBzaG91bGQgYXBwbHkgdG8gaG93IHdlIGNv
bW11bmljYXRlIGFjcm9zcyBsYW5ndWFnZXMg4oCUDQo+IHdoZXRoZXIgaXQncyB0ZWNobmljYWwg
c3BlY3MsIHVzZXIgZ3VpZGVzLCBvciByZXNlYXJjaCBwYXBlcnMuDQo+DQo+IElmIHlvdSBldmVy
IG5lZWQgdG8gbG9jYWxpemUgUHl0aG9uIGRvY3VtZW50YXRpb24sIHNvZnR3YXJlIGludGVyZmFj
ZXMsIG9yDQo+IHJlc2VhcmNoIG1hdGVyaWFscyBmb3IgaW50ZXJuYXRpb25hbCBhdWRpZW5jZXMs
IEkga25vdyBhIHJlbGlhYmxlIHRlYW0gdGhhdA0KPiBoYW5kbGVzIHRoaXMgd2l0aCB0aGUgc2Ft
ZSBhdHRlbnRpb24gdG8gZGV0YWlsIHdlIHZhbHVlIGluIHByb2dyYW1taW5nLg0KPiBUaGVpciBm
b2N1cyBpcyBvbiBhY2N1cmFjeSwgY29uc2lzdGVuY3ksIGFuZCBjdWx0dXJhbCBudWFuY2Ug4oCU
IGVzc2VudGlhbA0KPiBmb3IgdGVjaG5pY2FsIGNvbnRlbnQuDQo+DQo+IE5vIHByZXNzdXJlIGF0
IGFsbCDigJQganVzdCB0aG91Z2h0IGl0IHdhcyB3b3J0aCBtZW50aW9uaW5nIHNpbmNlIHlvdXIg
d29yaw0KPiBjbGVhcmx5IGhhcyBnbG9iYWwgcG90ZW50aWFsLg0KPg0KPiBXb3VsZCBsb3ZlIHRv
IGhlYXIgbW9yZSBhYm91dCB5b3VyIHJlc2VhcmNoIGRpcmVjdGlvbi4gQXJlIHlvdSBleHBsb3Jp
bmcNCj4gc3BlY2lmaWMgbGFuZ3VhZ2UgY29tcGFyaXNvbnM/DQo+DQo+IEJlc3QsDQo+IGFkYW0g
aWRyZXNzDQo+DQo+IE9uIFNhdCwgSnVuIDI3LCAyMDI2IGF0IDQ6MTjigK9QTSBXYWxpZCBBbE1h
c3JpIHZpYSBQeXRob24tbGlzdCA8DQo+IHB5dGhvbi1saXN0QHB5dGhvbi5vcmc+IHdyb3RlOg0K
Pg0KPj4gLS0tLS0tLS0tLSBGb3J3YXJkZWQgbWVzc2FnZSAtLS0tLS0tLS0NCj4+IEZyb206IFdh
bGlkIEFsTWFzcmkgPG13YWxtYXNyaTIwMDNAZ21haWwuY29tPg0KPj4gRGF0ZTogU2F0LCAyNyBK
dW4gMjAyNiwgMTQ6MTENCj4+IFN1YmplY3Q6IFJlOiBQeXRob24gaW4gRHVhbC1TcGFjZSBzb2Z0
d2FyZSBlbmdpbmVlcmluZw0KPj4gVG86IEFsYW4gR2F1bGQgPGxlYXJuMnByb2dyYW1AZ21haWwu
Y29tPg0KPj4NCj4+DQo+PiBUaGFua3MgYSBsb3QgQWxhbiENCj4+DQo+PiBJIGJlbGlldmUgdGhp
cyB3b3JrIGlzIG1vcmUgYWJvdXQgdGhlb3JldGljYWwgc3R1ZHkgdGhhdCBhY3R1YWwNCj4+IGVu
Z2luZWVyaW5nDQo+PiBleGVjdXRpb24uIEl0IGlzIGFib3V0IG1ldHJpY3MgcGVyZm9ybWFuY2Ug
b2YgZWFjaCBwcm9ncmFtbWluZyBsYW5ndWFnZQ0KPj4gYW5kDQo+PiBhYnN0cmFjdCBpbnZlc3Rp
Z2F0aW9uLg0KPj4NCj4+IFRoZSBiaWcgZGVhbCBpZiBvbmUgY291bGQgdHJhbnNsYXRlIHRoZXNl
IHRvIGJ1aWxkIG9wdGltaXplZCB0b29scyB0aGF0DQo+PiBjYW4NCj4+IGRldGVjdCBhbmQgc3Rh
dGVzIGhvdyBtdWNoIGlzIHRoZSBjb2RlIGluIGEgZ2l2ZW4gbGFuZ3VhZ2UgaXMgY2xvc2UgdG8N
Cj4+IG9wdGltYWwgcGVyZm9ybWFuY2UgLCBhYnN0cmFjdGlvbiBhbmQgc2VjdXJpdHkuDQo+Pg0K
Pj4gQmVzdHMsDQo+PiBXYWxpZA0KPj4NCj4+IE9uIFNhdCwgMjcgSnVuIDIwMjYsIDE0OjAyIEFs
YW4gR2F1bGQsIDxsZWFybjJwcm9ncmFtQGdtYWlsLmNvbT4gd3JvdGU6DQo+Pg0KPj4gPiBPbiAy
Ni8wNi8yMDI2IDE4OjUxLCBXYWxpZCBBbE1hc3JpIHZpYSBQeXRob24tbGlzdCB3cm90ZToNCj4+
ID4gPiBIaSBBbGwsDQo+PiA+ID4NCj4+ID4gPiBJIHN0YXJ0ZWQgYSBwcm9qZWN0IGluc3BpcmVk
IGJ5IG15IGtub3dsZWRnZSBpbiBwaHlzaWNzIGluIHNvZnR3YXJlDQo+PiA+ID4gZW5naW5lZXJp
bmcuDQo+PiA+ID4NCj4+ID4gPiBJIGZvdW5kIG9uZSBjb3VsZCBmaW5kIGEgZnJhbWV3b3JrIGJh
c2VkIG9uIGNvbnZleCBhbmFseXNpcywNCj4+IG9wdGltaXphdGlvbg0KPj4gPiA+IGFuZCBkdWFs
aXR5IHRoZW9yeSB0byBjbGFzc2lmeSBhbmQgZGlhZ29uaXNlIHByb2dyYW1taW5nIGxhbmd1YWdl
cw0KPj4gPiA+IHBlcmZvcm1hbmNlIHF1YWxpdGF0aXZlbHkNCj4+ID4NCj4+ID4gV2hpbGUgdGhh
dCBpcyBtaWxkbHkgaW50ZXJlc3RpbmcgSSdtIG5vdCBzdXJlIGhvdyBtdWNoIGl0IGhlbHBzDQo+
PiA+IHNvZnR3YXJlIGVuZ2luZWVyaW5nLiBJdCdzIGEgYml0IGxpa2UgbG9va2luZyBhdCBjaXZp
bCBlbmdpbmVlcmluZw0KPj4gPiBhbmQgc3R1ZHlpbmcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBo
YW5kLXNwYWRlcy9mb3JrcyBhbmQNCj4+ID4gbWVjaGFuaWNhbCBkaWdnZXJzIGFuZCB0dW5uZWwg
Ym9yaW5nIG1hY2hpbmVzLiBUaGVzZSBhcmUgdGhlDQo+PiA+IHRvb2xzIHdpdGggd2hpY2ggd2Ug
ZG8gY2l2aWwgZW5naW5lZXJpbmcgYnV0IGhhdmUgcmVsYXRpdmVseQ0KPj4gPiBsaXR0bGUgdG8g
ZG8gd2l0aCB0aGUgZW5naW5lZXJpbmcgaXRzZWxmLiBJdCdzIHRoZSBzYW1lIHdpdGgNCj4+ID4g
c29mdHdhcmUgZW5naW5lZXJpbmcsIHRoZSBsYW5ndWFnZXMgYXJlIG1lcmVseSB0aGUgdG9vbHMg
dXNlZA0KPj4gPiB0byBidWlsZCB0aGUgZW5naW5lZXJpbmcgc3RydWN0dXJlLiBPbiBhbG1vc3Qg
YWxsIG1ham9yDQo+PiA+IHByb2plY3RzIG11bHRpcGxlIGxhbmd1YWdlcyB3aWxsIGJlIHVzZWQs
IGFzIGRlZW1lZCBtb3N0DQo+PiA+IHN1aXRhYmxlIHRvIHRoZSBmdW5jdGlvbi4NCj4+ID4NCj4+
ID4gQWxzbywgbGFuZ3VhZ2VzIHRoZW1zZWx2ZXMgZG8gbGl0dGxlIHRvIGRldGVybWluZSB0aGUg
cXVhbGl0eQ0KPj4gPiBvZiB0aGUgY29kZSBhY3R1YWxseSBwcm9kdWNlZC4gWW91IGNhbiB3cml0
ZSBzcGFnaGV0dGkgY29kZQ0KPj4gPiBpbiBhbnkgbGFuZ3VhZ2UhDQo+PiA+DQo+PiA+IC0tDQo+
PiA+IEFsYW4gRw0KPj4gPiBBdXRob3Igb2YgdGhlIExlYXJuIHRvIFByb2dyYW0gd2ViIHNpdGUN
Cj4+ID4gaHR0cDovL3d3dy5hbGFuLWcubWUudWsvDQo+PiA+IGh0dHA6Ly93d3cuYW1hem9uLmNv
bS9hdXRob3IvYWxhbl9nYXVsZA0KPj4gPiBGb2xsb3cgbXkgcGhvdG8tYmxvZyBvbiBGbGlja3Ig
YXQ6DQo+PiA+IGh0dHA6Ly93d3cuZmxpY2tyLmNvbS9waG90b3MvYWxhbmdhdWxkcGhvdG9zDQo+
PiA+DQo+PiA+DQo+PiA+DQo+PiAtLQ0KPj4gaHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1h
bjMvL2xpc3RzL3B5dGhvbi1saXN0LnB5dGhvbi5vcmcNCj4+DQo+DQotLSAKaHR0cHM6Ly9tYWls
LnB5dGhvbi5vcmcvbWFpbG1hbjMvL2xpc3RzL3B5dGhvbi1saXN0LnB5dGhvbi5vcmcK