Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
♾️#Transparency#IconPack
Limited Time SALE 🎉
📲 Codes
WLH0A5YS6KL0M6MMAWXH9NZ
6Y3T4E6KJTW3BPSQ40GB2X7
7KX00KFBLVMEHMS7JCX8DVU
GDX1LQ8SARD78Q85MR51WPC
STBJNPFEP3QNBE0XYVKVYZN
FYLFUE2ZPW2MMBP2Q9S9TTF
KJSEPH59SDYGAM9T28Q7Z9G
NFTCRKMP8057CL9054DAT2Q
1M6PDFEXWHL0EW80P2AMNHU
09BBT4LBN8048BK0H68WH6D
🖥Download Here
⭐️Rate & Review to support me!
♾️#Transparency#IconPack
Limited Time SALE 🎉
📲 Codes
FE0TD4RNBXLY22L47T1QS66
YWLRU9N6T2R1G35F99ZMRL6
8EQLMG1C302TPXKXH71EXQR
4JF1HATU7NE4KUD9DR4T2YF
ML750QQ838JF3N1UJASFCM8
🖥Download Here
⭐️Rate & Review to support me!
♾️#Transparency#IconPack
Limited Time SALE 🎉
📲 Codes
10Q8E5XG3YTH3Q6GK37KNZH
1D9YHPTPNZBZ5APA09YH1GE
LTVZMQ3UHQ0JDMX769YRDEK
9E0UKB8H6W0WV0Q8NNXVZ6Y
HZL0200Q01PY8N1CWG1D3TA
🖥Download Here
⭐️Rate & Review to support me!
♾️#Transparency#IconPack
Limited Time SALE 🎉
📲 Codes
H7ED8GWS1S3LHJ7BEYFSTD1
WJ6EGRG6SH7WJCCHYY2T9W2
BJ71MLB3MNF7UQDMJ5G9XSR
ZU4SD1RVV4DREMTYVPVTWKP
ZH956VPZ330J7FQ7ABJGZ3H
🖥Download Here
⭐️Rate & Review to support me!
♾️#Transparency#IconPack
It's on SALE 🎉
📲 Codes
JMNGD1HKJ9ECEF0XL6BH0JC
T3HWF1GFVN8NUEL85RLA1XV
B40LZVXVFVKFCUHT940Q19B
USEDBJ5QKXPCX938WLRENB0
FX0GSNJF9MRWXEUS4Y0J2CL
🖥Download Here
⭐️Rate & Review to support me!
♾️#Transparency#IconPack
It's on SALE 🎉
📲 Codes
2PF3XK0AKFLH434SWDJ25NX
KE7EYBFHFKWYA1M7GCUEK6K
H7QJHWG2W3DDARXB4VMGRX9
51BU3MTTR22K83UUFDLCYDT
L2Q8QU569E7VNQAME5820UD
🖥Download Here
⭐️Rate & Review to support me!
♾️#Transparency#IconPack
It's on SALE 🎉
📲 Codes
5VYV95DBFKMEHL15GHMTXJW
JXNM0HU15RCNHAE3TVEE7Z2
9UEP2XMAC38HC4GE0J0MD15
49RBBCTLNNDE7TNPL2FUS82
N71CF3JDSRY16MT5871U0JS
🖥Download Here
⭐️Rate & Review to support me!
♾️#Transparency#IconPack
It's on SALE 🎉
📲 Codes
AD7Q774HDQ6E9PVA5PA306J
4AMGYSHJXKV1L8H747KXK7V
P8MNHL6MJXHSHBGYUYYXB4D
DX5XY9EXEC9GQWRRUW9MJ26
1WUUHCY0S0979SRS6BJ2FKQ
🖥Download Here
⭐️Rate & Review to support me!
♾️#Transparency#IconPack
It's on SALE 🎉
📲 Codes
8WXMRH294UXEGKEA5WBR4Q9
2K5Z38W15JL7LF3R5CZ32XH
AAKATT5VPNK0KX41CHV3A4F
3HQY70CGHH2M3XU7E72USD1
FFQ49JUS703L0M8ULYQZH1S
🖥Download Here
⭐️Rate & Review to support development!
🚨💰IRS GLITCH HIDES $51M IN POLITICAL DONATIONS
🔹 Technical error masks campaign contributions to state-level groups for Q4 2025 📊
🔹 Republican Attorney General's Association, RSLC affected - $41M in donations missing 💸
🔹 IRS workforce cut 27% by DOGE efficiency drive - system failures mounting rapidly 🏛️
🔹 527 organizations face April 15 deadline with completely broken e-filing system ⏰
🔹 Center for Political Accountability warns of "complete black hole" in transparency 🕳️
🔹 Affected groups include RGA ($32M), DLCC - major election funding obscured 📋
The most transparent democracy? More like broken bureaucracy failing voters 😤🇺🇸
#USNews#politics#transparency
@america
Microsoft Touts Responsible AI Efforts in New Report
Microsoft released a comprehensive report, the "Responsible AI Transparency Report," detailing its initiatives for developing and deploying responsible Artificial Intelligence technologies.
The report highlights Microsoft's commitment to building safe and responsible generative AI, a field where the company has actively pursued innovation.
Microsoft emphasizes its safety efforts, including:
✅ Launching over 30 tools to empower developers with responsible AI practices.
✅ Providing more than 100 features within Azure to assist customers in deploying safe AI solutions.
✅ Expanding its responsible AI community by 17%, now exceeding 400 members.
✅ Mandating responsible AI training for all employees, with a 99% completion rate for relevant modules.
The report concludes with a commitment from Microsoft to invest further in responsible AI development tools for its customers.
#ResponsibleAI#Transparency
🇺🇸When “AI-First” Means 700 Humans Behind the Curtain
BuilderAI, a Microsoft-backed startup once hailed as a pioneer in “AI-powered app creation,” has reportedly gone bankrupt — and not for lack of demand. While the company promoted itself as using artificial intelligence to automate software development, recent revelations show that it relied heavily on a workforce of 700 people in India to do the work manually.
#AI ##ResponsibleAI#Transparency