Certo che è incredibile che più passa il tempo e più mi accorgo di quanto infinitamente Python sia pestilenziale, sempre più di quanto avrei finito per pensare in un momento precedente… E ok, non che gli altri linguaggi non siano comunque terrificanti, per carità, ma Python è una roba grave. Purtroppo, ahinoi, l’ecosistema è comodo, i pacchetti che stanno a giro facilitano il vibe coding (in senso classico eh, senza parlare di IA), e quindi cosa mai si potrà fare per rimediare? Assolutamente niente, perché noi ragazze magiche (…io in special modo) esistiamo per soffrire, e quindi la sofferenza continuerà fin quando non esploderò definitivamente. 💔
Giustamente — progetto segreto pretende — mi serve usare la API di Misskey nel programma che sto cercando di mettere su, e quindi dal web ho preso una bella libreria ormai abbandonata (e con la documentazione perlopiù in giapponese senza controparte inglese; un fatto che attorno a Misskey è una costante, ma ops), che però fortunatamente ancora funziona: Misskey.py. Il problema è che non è completa, e mancano (a parte certi metodi di convenienza, immagino) diverse funzioni necessarie… prima tra tutte, una per aggiornare i metadati del profilo utente, cosa che mi serve. E quindi le rogne sono ufficialmente certificate infinite da questo momento. 🥴
Non volendo fare un fork della libreria, che poi diventa un casino, ho provato a risolvere il problema nel modo corretto, ossia estendendo la classe, come il modello OOP prevede… ma, purtroppo, Python è per l’appunto pestilenziale, e tra moduli nelle classi permette di fare delle schifezze allucinanti; e quindi, in questo caso, per come la libreria è strutturata internamente, da nuovi metodi che aggiungo alla classe estesa non riesco a chiamare il metodo interno _api_request
(e ricrearlo io sarebbe una porcheria, quindi evito). Avrei allora provato semplicemente a ridefinire io la classe principale (che è semplicemente una composita dei vari pezzi divisi in moduli interni della libreria, mamma mia che roba!), ma Python è pestilenziale, e nel percorso della mia app non vuole saperne di importare quegli specifici moduli, che palesemente sono scritti per essere solo interni… ma, appunto, non voglio ricopiarmi l’intera libreria, quindi bella rogna. 🤮
Vabbè: dopo fin troppi minuti di lavoro effettivo, il risultato è insomma che alla fine ho reimplementato io una versione molto base della libreria da zero, con la stessa interfaccia… una classe di meno di una ventina di righe e appena 5 metodi, cioè quelli che al volo mi sono serviti ora, più cosa aggiungerò strada facendo (poca roba, credo). Ovviamente senza tipi stretti, o controllo di errori, o chissà che altro, ma purtroppo sono stata costretta a fare così dalla corrente pestilenza… e a funzionare funziona, quindi mi sa che me ne sbatterò il pitone, perché qui sennò vado davvero ai matti, fa tutto schifo. 🕳️
…Tra l’altro, qualcuno qui dirà sicuramente “skill issue“, ma io i miei metodi li ho provati, su Internet ho cercato, alle IA ho chiesto… e niente, nessun modo pulito, corretto, piacevole, per sistemare questa merdata. Boh… se non mi piacesse Flask, mi sa che lo butterei via Python, in casi come questo, in cui mi serve giusto qualcosa che interagisca con delle API e mostri un pannello admin… uffa. (Diventerò “pestilenzioctt” a brevissimo, se nessuno inventerà octolang per salvarmi, mannaggia!!!) 😩