I created a simple Python CLI program to easily add configurable watermark text to an image or directory of images.
Re: https://lgbtqia.space/@alice/114988947359085193
Here's the #Codeberg repo: https://codeberg.org/alicewatson/watermarker
#Python #AlicePics #Photos #Watermark
Create and Modify PDF Files in Python via @realpython
#python #programming
https://realpython.com/creating-modifying-pdf/
To compare the items in a list with the items in a tuple, we could convert the list to a tuple or the tuple to a list, and then check for equality
Read more 👉 https://trey.io/0frqkp
pitonanza impossibile con i moduli di serpente
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!!!) 😩
#crap #Mannaggia #pestilenziale #Python #rant
Python π is
Автоматизируем печать документов с помощью Python
Меня зовут, Дмитрий, просто Дима. Каждый день, я готовлю однообразные документы, в которых нужно печатать страницы - одинаково (однообразно): 1 (ую) и 2 (ую) страницы, двойной печатью по длинному краю; 3 (ью) и 4 (ую) по короткому краю (эти листы горизонтальные); 5 (ую) страницу отдельно (только 1 лист). Каждый день, из раза в раз, нужно было настраивать диапазон для печати. И в один момент (спустя 3 дня) мне это надоело и было решено написать программу, с помощью которой можно будет распечатать этот документ - одним нажатием мыши. Спойлер - мне удалось. Но пришлось поискать информацию. А информации на русском не очень много, поэтому искал преимущественно в английских источниках. Что и вдохновило на написание это статьи. Узнать правду о печати с помощью Python!!!
https://habr.com/ru/articles/935200/
#python #печать_документов #автоматизация
Today is the final day to order your ticket and guarantee your 2025 PyCon AU T-shirt size! 🎟️👕 After that, you’ll still get a shirt—but sizing will be first-come, first-served.
Get yours at 👉 https://2025.pycon.org.au/attend?ref=fv
#PyConAU #Python #Data #AI #Science #Education #Tech

New Arsenal: LAMEHUG, the First AI-Powered Malware
APT28, a Russian threat group, has developed LAMEHUG, a Python-based malware that utilizes AI to generate and execute system commands. This malware, targeting Ukraine's security and defense sector, begins with a phishing email containing a malicious attachment. LAMEHUG employs the Qwen 2.5-Coder-32B-Instruct model via Hugging Face API to translate text instructions into system commands. It performs system reconnaissance, data theft, and exfiltration using AI-generated commands. The malware collects system information, searches for documents, and exfiltrates data via SFTP or HTTP POST requests. Multiple variants of LAMEHUG have been identified, each with different data exfiltration methods. This marks a significant evolution in malware capabilities, incorporating large language models to enhance attack flexibility and sophistication.
Pulse ID: 68948bfb370ac711edbb5278
Pulse Link: https://otx.alienvault.com/pulse/68948bfb370ac711edbb5278
Pulse Author: AlienVault
Created: 2025-08-07 11:20:27
Be advised, this data is unverified and should be considered preliminary. Always do further verification.
#APT28 #CyberSecurity #DataTheft #Email #HTTP #HuggingFace #InfoSec #Malware #OTX #OpenThreatExchange #Phishing #Python #RAT #Russia #UK #Ukr #Ukraine #bot #AlienVault
Content warning:Tester ny app
Sidder og leger med at skrive en TUI mastodon client. Dette er første besked sendt fra den.
#python #textual #programming #fun
Recursion gets easier when you can see that each function call has its own variables on the call stack with memory_graph: https://github.com/bterwijn/memory_graph?tab=readme-ov-file#recursion
#Python #memory_graph #Recusion
Python 3.13.6
https://lemmy.world/post/34107228
TIL that software (especially #scripting runtimes like #Python, #Perl, and #NodeJS) running in #Alpine #Linux containers is often slower than in other distros like #Ubuntu. This is despite the former being faster on startup and often vastly more efficient with CPU, memory, and storage.
It mostly comes down to Alpine’s use of musl libc rather than #GNU’s glibc. musl is optimized for minimalism, not raw performance. Also, the Alpine packages are often not compiled with as many optimizations.