@savinobalzano · Post #949 · 23.03.2025 г., 18:32
I democratici autentici, quelli che frignano per #Ventotene, apertissimi al confronto! Grazie per la medaglia Carlè! Ti ameremo per sempre, basta che continui a farci ridere.
Hashtags
TGINSIGHT SIMILAR POSTS
Изворен канал @pythonotes · Post #121 · 20 јул.
Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример). Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать? В Django по умолчанию есть готовая функция slugify для таких случаев. Но я её никогда не использую. Почему? Потому что её недостаточно! Приведём пример >>> from django.utils.text import slugify >>> slugify('This is a Title') 'this-is-a-title' Пока всё отлично >>> slugify('This is a "Title!"') 'this-is-a-title' Спец символы удалились, всё хорошо. >>> slugify('Это заголовок статьи') '' Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить >>> slugify('Это заголовок статьи', allow_unicode=True) 'это-заголовок-статьи' Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте. Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою. Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку: 🔸1. Исходный текст: >>> text = 'Мой заголовок №10 😁!' Взял специально посложней со специальными символами. 🔸2. Транслит Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги. from unidecode import unidecode >>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山") 'N S (r) u P 1/4 Yue Shan' Очень крутая библиотека, советую👍 В нашем случае получаем такое преобразование: >>> text = unidecode(text) >>> print(text) 'Moi zagolovok No. 10 !' Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы. А еще наш код уже поддерживает любой язык, будь то хинди или корейский. 🔸4. Фильтр символов Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона. >>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text) >>> print(text) 'Moi_zagolovok_No_10_' Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_". 🔸5. Slugify Осталось удалить лишние символы по краям и сделать нижний регистр >>> text = text.strip('_').lower() >>> print(text) 'moi_zagolovok_no_10' Получаем отличный slug! 😎 🌎 Полный код в виде функции. ______________ PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию. #libs#tricks#django
Пребарај: #ventotene
@savinobalzano · Post #949 · 23.03.2025 г., 18:32
I democratici autentici, quelli che frignano per #Ventotene, apertissimi al confronto! Grazie per la medaglia Carlè! Ti ameremo per sempre, basta che continui a farci ridere.
Hashtags
@savinobalzano · Post #950 · 24.03.2025 г., 07:17
https://x.com/SavinoBalzano/status/1904069576523911657?t=yjPdiKnEAty4eYCw8Qv4mg&s=19 Penso che qui Giordano colga perfettamente il punto della questione. Al di là del merito — sul quale c'è solo da stendere un velo pietoso — ciò che dovrebbe attirare la nostra attenzione è il metodo. Siamo passati dall’emergenza all’emergenzialismo, dallo Stato di eccezione di Schmitt allo Stato di eccezione permanente di Agamben. L’emergenzialismo come ideologia, come metodo di esercizio del potere, come strumento di sospensione definitiva della #democrazia. È tutto profondamente paradossale: se un’emergenza è perenne, non è più un’emergenza; se una sospensione è definitiva, non è più una sospensione. È ovvio. E proprio qui sta il punto: se sei in emergenza, devi “fare presto!”, e non hai il tempo di imbastire una discussione seria sul merito. La democrazia, con le sue procedure, diventa insostenibile. O almeno, così viene presentata all’opinione pubblica. Muore così la democrazia, sacrificata sull’altare di interessi che sono per definizione antidemocratici: interessi particolari, spesso economici e finanziari (più finanziari che economici), che nulla hanno a che vedere con il benessere collettivo, con la solidarietà, con l’equità. Nulla hanno a che vedere, in poche parole, con la nostra #Costituzione. In emergenza, oltre a non avere il tempo per discutere, nasce anche l’insofferenza verso chiunque osi avanzare dubbi. Bisogna essere “costruttivi”, dicono. Concreti. Non c’è spazio per il populismo, il qualunquismo, il complottismo, il negazionismo, il revisionismo, il benaltrismo e così via. In sostanza, chi si oppone - o anche solo solleva dubbi - va insultato, ridicolizzato, umiliato. Deve imparare a tacere, a lasciar fare, a non disturbare. A questo siamo ridotti. A questo ci hanno ridotto coloro che frignano per #Ventotene, che scendono in piazza sventolando le bandiere stellate dell’oppressione: gli emergenzialisti, italiani ed europei. Noi continueremo a rompergli i coglioni.
@savinobalzano · Post #951 · 26.03.2025 г., 10:17
https://x.com/SavinoBalzano/status/1904839821241049535?t=RTW-9j152czrYVi7bUIXrg&s=19 Da qualche tempo, qualcuno ha deciso di riesumare un fallito della #politica per eccellenza: Fausto #Bertinotti. Letteralmente un fallito: uno che, sotto la sua guida, ha reso la sinistra extraparlamentare. Con il suo progetto della Sinistra Arcobaleno ha praticamente buttato fuori dal #Parlamento quelli a est del #PD, per intenderci. Una perdita di cui paghiamo molto volentieri il prezzo, sia chiaro, ma tant'è. Ebbene, come fossero degli archeologi, hanno deciso di tirarlo fuori dal sarcofago della #politica che fu, perché rappresenti parte dell'#opposizione a questo #Governo. Se fossi in #Meloni, sarei la persona più felice del mondo. Oltre a #Prodi che tira i capelli alle giornaliste sgradite e #Franceschini che fa la rivoluzione con i cognomi, adesso è tornato il Faustone che si inchina al Manifesto di #Ventotene, definendolo un testo sacro, alla base della Repubblica e della Costituzione. Francamente non saprei proprio da dove cominciare a rispondergli: il #ManifestoDiVentotene, checché se ne voglia pensare, non c'entra assolutamente nulla con la nostra #Costituzione. Semplicemente nulla. Zero. Se un bambino leggesse i due testi lo comprenderebbe al volo. La nuova vecchia star della #sinistrucola, però, ci aiuta a comprendere come stanno combinati questi qua, come si sono ridotti: a riciclare le mummie dell'antiberlusconismo, quelli che, peraltro, #Silvio aveva bellamente asfaltato perché erano inconsistenti anche vent'anni fa. Non lo dico gongolando: l'opposizione ha un ruolo fondamentale in una democrazia, e ne servirebbe una seria anche in questo momento. So che le telecamere possono inebriare, ma fai una cosa, vecchio mio: scendi dalla giostra e torna a sonnecchiare. Puoi fare solo (altri) danni.