TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

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

Резултати

Пронајдени 3 слични објави

Пребарај: #serra

当前筛选 #serra清除筛选
Savino Balzano

@savinobalzano · Post #1186 · 11.10.2025 г., 08:48

https://x.com/SavinoBalzano/status/1976931968307671183?t=IOlr12eUjFr0HT2zRXjArw&s=19 La stupidità del mainstream (e dunque di politicanti, pseudo giornalisti e pseudo opinionisti) raggiunge sempre nuove vette, insperati nuovi traguardi. Non è detto siano tutti in malafede: per esserlo, serve intelligenza, malizia. Molto spesso, si tratta di mere pecore: vanno a destra o a manca istintivamente, al fischio del pastore o al latrare del maremmano di turno. L'accordo appena sottoscritto in Medio Oriente non è perfetto, anzi. Restano numerosi nodi irrisolti, il ruolo dei palestinesi è marginale se non inesistente, però la domanda che dovremmo porci è: meglio questo o il perdurare dei bombardamenti sulla popolazione civile? Ancora: se non tramite questo accordo, in quale altro modo si poteva arrivare all'interruzione delle ostilità su #Gaza? L'attuale equilibrio è precario a dir poco, ma mi pare meglio - molto meglio - di quanto accadeva solo poche ore fa. E, dopotutto, a dirlo sono i gazawui che festeggiano per le strade. #DonaldTrump non è l'uomo della provvidenza. Però è suo il merito di questo risultato. Domandiamoci, solo per un secondo, cosa sarebbe accaduto con Biden alla Casa Bianca o - forse peggio - con l'amata Kamala. Ancora, chiediamoci quali sarebbero oggi i rapporti con la Russia se uno di quei due sedesse sulla poltrona della persona più potente dell'occidente. Forse non ne staremmo nemmeno parlando più. Fu #Trump, non dimentichiamolo, a ottenere quel fregile cessate il fuoco a Gaza appena eletto. Per il mainstream fu tanto imbarazzante che provarono a sostenere che Donald stesse solo raccogliendo i frutti del duro lavoro di Biden. Come se Biden fosse ancora in grado di intendere e di volere. Cos’è più insopportabile per certi commentatori: continuare ad assistere alla sofferenza del popolo palestinese o accettare che tale sofferenza sia stata lenita grazie a Trump? Questa è dura. Perché qualcuno potrebbe anche pensare che, del popolo palestinese, in fondo non gliene sia mai importato più di tanto. Solo qualche ora fa, il buon Michele #Serra, col solito tono da salotto perbene, bollava l'ipotesi di conferire il Nobel per la pace a Trump come una «battuta di spirito». E a chi sarebbe stato bene riconoscerlo invece? A qualcuno della sua tanto amata Unione Europea? A Von der Leyen? Kallas? Kubilius? A qualche tecnocrate impegnato solo a tagliare la spesa pubblica e lo stato sociale a danno dei più fragili? Magari se ne potrebbe conferire un secodo a tutta l'UE, da celebrare in un'altra piazza condita con note di suprematismo culturale (indimenticabile il delirio di Vecchioni), a spese del comune di Roma. Perché no? Tutti sono concentrati a spellarsi le mani e a godere come ricci per il conferimento a María Corina Machado. Una "sinistra" (meglio, sinistrucola) così è forse la peggiore di sempre: esultano come scimmie per una che è più liberista di Javier Milei, per una che ha nutrito rapporti quantomeno opachi con i Bush, per quella che sarà utilizzata come utile e sciocco grimaldello per sovvertire Hugo Chávez. Tutto in perfetto stile neocon. Con un'opposizione così, va bene anche Tajani agli esteri. E ho detto tutto.

Savino Balzano

@savinobalzano · Post #923 · 07.03.2025 г., 13:57

https://x.com/SavinoBalzano/status/1898010004059226241?t=yAXs3TvNrFgY02-iQsdsGw&s=19 Chiariamo subito una cosa: ognuno va in piazza per ciò che gli pare. Vuoi manifestare per la mortadella? Prego! Per la salvaguardia delle vongole del Pacifico o delle alici del Cantabrico? Accomodati. La libertà sta proprio in questo: nel permettere a tutti di esprimere la propria opinione. Il paradosso, se ci pensate, è davvero curioso: spesso, proprio quelli che gridano alla deriva autoritaria sono i primi a mostrare insofferenza verso le idee altrui. E così, se voti per quel politico o per quell’altro che a loro non piace, allora la colpa è – dicono – dell’analfabetismo funzionale strisciante. E quindi, ok, perfetto: volete andare in piazza con la bandiera dell’Unione Europea? Venghino signori, venghino! Magari sarà un’adunata oceanica e, in quel caso, naturalmente, l’analfabetismo funzionale non c’entrerà nulla. Ci mancherebbe! Lo potrete chiamare “risveglio”. D’altronde, chi è bravo con le parole trova sempre un modo per galleggiare. Lo sappiamo tutti molto bene. Quello che però dovrete spiegare alla gente è un dettaglio piccolo piccolo: la #sinistra, un tempo, diceva di preoccuparsi degli operai, dei pensionati, di chi se la passava male. E allora, cosa c’entra tutta questa gente con #UrsulaVonDerLeyen? Siete furbetti al punto giusto e provate a raccontarci che quella piazza non è per “questa” #UE. Ma la verità è che lo sapete benissimo anche voi di essere maledettamente ipocriti: non c’è mai stata un’altra UE, mai. E poi, la piazza la lanciate proprio adesso, proprio nel momento in cui Wanna #VonDerLeyen dà il via alla corsa al riarmo? Bel tempismo, cari #Serra e @corradoformigli. Strane coincidenze, vero? Non è mai esistita un’Unione Europea diversa. Da sempre raccomanda liberalizzazioni, tagli alla spesa pubblica e allo Stato sociale, lo sdoganamento dei contratti precari, la riduzione di salari e pensioni (lo ha ammesso di recente anche #Draghi: la strategia è sempre stata questa!), la semplificazione dei licenziamenti. L’Unione Europea è sempre stata questo. Non ne è mai esistita un’altra. È un meccanismo fatto per far soldi o, meglio, per togliere risorse a molti e concentrarle nelle mani di pochi. E ve ne voglio dire un’altra: basta con questa storia dell’#Europa come patria della #pace. L’Unione Europea non ha affatto garantito la pace. Ha invece prodotto settant’anni di #guerra economica, di impoverimento per alcuni a vantaggio di altri, molto meno numerosi dei primi. Anche questa guerra ha prodotto morti e tanti: andatelo a chiedere ai greci. La libera circolazione dei capitali, così com’è strutturata, ha scatenato uno scontro ferocissimo tra i Paesi per attirarli, comprimendo lo Stato sociale, abbassando i salari e riducendo la tassazione sulle grandi imprese. E allora, perché nessuno mette in discussione i paradisi fiscali che in Europa ancora esistono? E decidete di scendere in piazza proprio adesso, proprio ora, proprio in questo momento? Lo fate quando qualcuno chiede di spendere 800 miliardi di euro in armi. La sinistra: che fenomeno bizzarro... Chi continua a citare Ventotene, in realtà, o non lo ha mai letto davvero, oppure cerca meschinamente di nasconderne le profonde ambiguità. Ve ne cito un passaggio particolarmente interessante per i sindacalisti che desiderano ardentemente animare la piazza di Serra: «la liberazione delle classi lavoratrici può aver luogo solo (...) non lasciandole ricadere nella politica economica dei sindacati monopolistici, che trasportano semplicemente nel campo operaio i metodi sopraffattori caratteristici specialmente del grande capitale. I lavoratori debbono tornare a essere liberi di scegliere i fiduciari per trattare collettivamente le condizioni a cui intendono prestare la loro opera». Capito? basta con questa storia dei contratti pirata eh! CONTINUA SU X

Libertà è ragione

@libertaeragione · Post #4295 · 18.11.2024 г., 22:47

#Italia#Regionali#EmiliaRomagna Risultati definitivi (4529 sezioni scrutinate su 4529): Michele #DePascale (#PD-#PSI-#M5S-#AVS-#PRI-#Azione-#IV-#PiùE-#Volt)|S&D|LEFT|G\EFA|RE|Volt: 56,77% Elena #Ugolini (#FdI-#Lega-#FI-#AP-#UdC-#NM-#Indipendenza-#PdF)|ECR|PfE|EPP|Centro-destra|Destra antisistema|Destra cristiana: 40,07% Federico #Serra (#PRC-#PCI-#PAP)|LEFT|Estrema sinistra: 1,94% Luca #Teodori (Lista Civica Lealtà, Coerenza e Verità): 1,22% Michele De Pascale è ufficialmente eletto Presidente della Regione Emilia-Romagna. @OsservatorioItaliano