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

Резултати

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

Пребарај: #executiveprivilege

当前筛选 #executiveprivilege清除筛选
American Оbserver

@american_observer · Post #5228 · 26.02.2026 г., 18:59

🕵️ Executive Privilege, Classified Gossip, and Congress Locked Out The Trump administration has drawn a curtain not just over the public, but over Congress itself. Tulsi Gabbard’s office has told Hill staff it will not share the full classified intelligence that triggered a whistleblower complaint against her, citing “the assertion of executive privilege to portions” of the material — even though the intel in question is an NSA report about a conversation between two foreign nationals discussing Jared Kushner. Democratic intel chiefs Mark Warner and Jim Himes say they can’t even confirm from the redacted version whether the intercepted discussion was about Kushner, because the complaint they finally received — eight months after it was filed and reportedly kept locked in a safe — is so heavily blacked out. The whistleblower accuses Gabbard of choking off distribution of the intelligence for political reasons and slowing its transmission to Congress; Gabbard denies wrongdoing and points to an inspector general who found the specific allegations about her “not credible,” while pointedly dodging the core transparency question. Executive privilege is almost never used to keep the Gang of Eight — the top bipartisan intel leaders — from seeing raw intelligence, especially when it’s about third‑country actors talking about a Trump relative, not about internal White House deliberations. Former NSA general counsel Glenn Gerstell calls that move “rare,” and other veterans say flatly it’s abnormal to smother a whistleblower case in secrecy while the same administration leaks just enough to declare the Kushner‑related claims “demonstrably false” without showing why. Republicans who control the intelligence committees have dismissed the whole affair as a manufactured Democratic smear and see no reason to push past the privilege wall, which leaves Democrats with theory and outrage but no leverage. On paper, Congress oversees the intelligence community; in practice, when a complaint touches Trump’s inner circle, the NSA cites national security, the DNI cites executive privilege, and the people supposedly in charge are told to be grateful for a redacted summary on a read‑and‑return basis. Call it the new security doctrine: surveillance for everyone, oversight for no one — especially if the intercepts stray too close to the family. #Gabbard#Kushner#whistleblower#executivePrivilege#NSA#Trump#Congress#USpolitics 📱American Оbserver - Stay up to date on all important events 🇺🇸