Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
Дорогие коллеги,
Публикуем информацию от Astana Financial Services Authority (AFSA) о последних изменениях в регуляторной базе по ПОД/ФТ.
Будет полезно для лицензированных компаний, работающих в юрисдикции Международного финансового центра "Астана".
Хорошего дня!
#amlcft
ЕС укрепляет инструментарий по борьбе с отмыванием денег и финансированием терроризма.
https://www.europarl.europa.eu/news/en/press-room/20240419IPR20586/new-eu-rules-to-combat-money-laundering-adopted
#amlcft
Юридические компании также сталкиваются с вызовами в области ПОД/ФТ.
https://www.reuters.com/legal/legalindustry/law-firm-clyde-co-fined-635k-breaching-uk-money-laundering-rules-2024-01-11/
#amlcft
18 января Financial Action Task Force (FATF) проводит вебинар "Crowdfunding for Terrorism Financing".
Тема будет актуальна для AML/MLRO офицеров, особенно работающих в области финтех и краудфандинге.
Более подробная информация в прилагаемой ссылке.
Кстати, вы уже провели ежегодную оценку подверженности продуктов/услуги организации риску отмывания денег и финансирования терроризма?
https://www.fatf-gafi.org/en/topics/methods-and-trends/Webinar-crowdfunding-for-terrorist-financing.html
#amlcft
20 марта текущего года наши коллеги приняли участие в форуме AML and KYC in Digital World, где поделились с коллегами из Узбекистана, Кыргызстана, Украины, Азербайджана и других стран полезной информацией:
- о глобальных вызовах и мерах в области ПОД/ФТ и должной осмотрительности;
- о программах реализации мер ПОД/ФТ для сферы цифровых активов.
#amlcft#compliance
Federal Bureau of Investigation (FBI) опубликовало очередной отчёт о преступлениях в интернете. В целом ничего нового, среди популярных преступлений фишинг, кража персональных данных и схемы с использованием цифровых активов.
#compliance#amlcft
Дорогие друзья,
Мы продолжаем серию полезных и бесплатных вебинаров, направленных на развитие антиотмывочной и антикоррупционной культуры, а также повышения осведомленности в вопросах противодействия мошенничеству.
В этот раз ACFE Chapter in Kazakhstan и Compliance Hub приглашают вас на вебинар на тему "Supervision and Compliance in Anti-Money Laundering and Combating the Financing of Terrorism & Antifraud".
Вебинар является бесплатным и предоставит слушателям 1,5 CPE.
Дата: 15 марта 2024 г.
Время: С 20:00 до 21:20
Формат: Онлайн
Язык: Английский
Для участия необходимо пройти регистрацию по следующей ссылке:
https://us06web.zoom.us/meeting/register/tZUode-urj0oEtPK0j0U6CMZGv93PnNr7GaN
#amlcft#compliance
На ресурсе Inbusinesskz опубликована интересная статья, посвященная топ-20 самым высокооплачиваемым среди молодежи специальностям в Казахстане за последние несколько лет.
Есть специальность, связанная с комплаенс.
https://inbusiness.kz/ru/news/nazvan-tor-20-samyh-vysokooplachivaemyh-specialnostej-v-kazahstane
#compliance#amlcft
NAVEX 18 января проведет вебинар, на котором расскажет об основных трендах в области комплаенс - "Top 10 Risk & Compliance Trends for 2024".
Регистрацию можно пройти по прилагаемой ссылке.
https://www.navex.com/en-us/campaigns/2024-top-ten-risk-compliance-trends/?utm_campaign=wbn-2024top10trends&utm_medium=syndication&_hsmi=289203842&_hsenc=p2ANqtz-9tEy7J499R4SSMDmWwRug2MLMaGKE8p6J4Q2YP8KvsL88-pETD37dJeQ5ukKcfLCW5ECZxEzeHxJqfxbnQElYbviS867XLh-gMwex0n-PhCRkvp4c&utm_source=cci
Посмотрим насколько видение коллег из другой юрисдикции будет перекликаться с трендами, которые мы обсудили ранее. Как минимум заявлены цифровая трансформация, искусственный интеллект и ESG.
Ссылка на тренды 2024 года:
https://www.youtube.com/watch?v=VWW_kpnjPT8
Ссылка на тренды 2023 года:
https://www.youtube.com/watch?v=x-8THzNixU4
#compliance#amlcft