Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
JETRO признала лидирующие позиции России по темпам роста онлайн-торговли
В ежегодном отчете JETRO о ключевых тенденциях в глобальной торговле и инвестициях Россия вошла в топ-10 стран по темпам расширения как внутренней так и трансграничной электронной торговли.
Мировой рынок электронной коммерции, импульс развитию которому предала пандемия COVID-19, в 2023 г. увеличился на 10% до 5,8 трлн долл. и, как полагают в JETRO, сохранит устойчивые темпы роста в ближайшем будущем.
На данный момент большая часть онлайн-продаж приходится на КНР (51,3%) и США (19,3%), однако качественный рост отрасли в целом обеспечивают Россия, Бразилия, Мексика, Индонезия, ОАЭ и другие быстро развивающиеся страны.
В то же время эксперты JETRO отмечают, что общая ситуация в глобальной торговле остаётся сложной. Так, по данным организации, в 2023 г. впервые после пандемии общемировой товарооборот сократился как в стоимостном, так и в физическом объёмах, составил 23,1 трлн долл. (-4,9%).
Усиление тренда на разрыв и перестройки цепочек поставок отражается и на инвестициях, которые также сокращаются в течение последних двух лет.
Более того, на фоне обострения глобальной конкуренции в торговле значительно растет число ограничительных мер со стороны государств, что способствует нарастанию неопределённости, - отмечают в JETRO.
Удивительно, что в первой десятке стран, наиболее пострадавших от введения ограничений, России нет.
При этом Китай пострадал больше всех, против него введено 1295 ограничитальных мер, более 1000 мер введено против Германии, Италии, Франции. Против Японии введена 921 мера. Почему японские эксперты не рассматривают санкции, введеные против России, в качестве ограничительных мер торговли, Торгпредство планирует уточнить у авторов доклада.
#JETRO#Япония#торговля#инвестиции
Экономическая программа Д. Трампа - главный объект внимания японского капитала
Председатель Японской организации содействия развитию внешней торговли (JETRO) Исигуро Нориюки в эксклюзивном интервью изданию Nikkei рассуждает о перспективах взаимодействия с США, которые задают тренды развития внешнеэкономической деятельности Японии.
Находящийся с деловым визитом в Нью-Йорке Н. Исигуро подтвердил, что в настоящий момент представительства JETRO в США сосредоточенно следят за первыми шагами формирующейся администрации Д. Трампа в контексте тарифной политики и её влияния на цепочки поставок, которые затронут не только китайские, но и японские компании. В то же время он призывал бизнес быть сдержанным в пересмотре инвестиционных стратегий.
В частности, руководитель JETRO отмечает, что в настоящее время значительная часть автомобилей и комплектующих поставляются в Штаты из соседних Канады и Мексики. Возможное поднятие пошлин до 25% фактически нивелирует преимущества японских производств, расположенных в этих странах. Однако в одночасье перестроить сложившиеся цепочки поставок не так просто, поэтому компаниям лучше принимать решения, исходя из долгосрочного планирования.
Кроме того, в течение одного президентского срока в 4 года политика администрации может меняться, поэтому большинство японских компаний, скорее всего, не будут резко останавливать производства, а постараются приспосабливаться к меняющимся условиям.
Так, сдерживающим фактором при введении повышенных тарифов выступит сам рынок, - полагает Н. Исигуро. Повышение тарифов, сокращение импорта из КНР и другие анонсированные шаги могут привести к росту цен, что ударит по интересам малоимущих граждан. Риск "разгона" инфляции может привести к пересмотру подходов нового главы Белого дома.
Япония в течение последних пяти лет выступает крупнейшим инвестором в экономику США. Комментируя присутствие японских предприятий на местном рынке, председатель JETRO подчеркнул, что «их желание инвестировать в американскую экономику не то что не снижается, наоборот, только возрастает». JETRO в своей работе отдает приоритет выстраиванию тесных отношений с администрациями отдельных штатов и представлению инвестиционных возможностей японских компаний.
Общаясь с журналистами, И. Нориюки воздержался от прямых оценок хода согласования сделки по покупке US Steel, при этом отметив, что в последующих инициативах важно с самого начала подчеркивать положительное влияние подобных соглашений на сохранение рабочих мест и развитие экономики регионов. Глава JETRO выразил надежду, что администрация Д. Трампа будет принимать данные обстоятельства во внимание.
#Япония#США#JETRO#инвестиции#стратегия
🇺🇿Biznes va tadbirkorlik oliy maktabi innovatsion tadbirkorlik sohasidagi hamkorlikni kengaytirmoqda
🇺🇿🇯🇵 Biznes va tadbirkorlik oliy maktabi vakillari Yaponiyaning tashqi savdoni rivojlantirish tashkiloti (JETRO)Toshkentdagi vakolatxonasiBosh direktori Yuta Ichinose va tashkilot vakillari bilan muzokaralar o‘tkazdilar.
Uchrashuvda innovatsion tadbirkorlik sohasida ikki tomonlama hamkorlikning aniq mexanizmlarini ishlab chiqish, hududlarda kichik va o‘rta biznesni qo‘llab-quvvatlash, yashil va resurs tejovchi texnologiyalarni joriy etish, shuningdek, aholi bandligini ta’minlashga qaratilgan startap-loyihalarni amalga oshirish masalalariga ko‘rib chiqildi.
Uchrashuv davomida, Oliy biznes maktabi tinglovchilarning boshqaruv va innovatsiyalar sohasida xalqaro tajriba orttirishlariga imkon yaratish maqsadida Yaponiyaning yetakchi kompaniyalarini ta’lim jarayoniga ekspert-amaliyotchilar sifatida jalb etish muhokama qilindi.
Yuta Ichinose Oliy maktab O‘zbekistonda boshqaruv kadrlarini tayyorlash bo‘yicha yetakchi muassasalardan biri ekanini hamda ta’limdan tashqar keng ko‘lamli faoliyatni amalga oshirayotganini ta’kidladi.
Tashrif davomida JETRO vakillari Oliy biznes maktab vakillari bilan birgalikda loyihalarni amalga oshirish uchun maydon sifatida muassasaning salohiyati va imkoniyatlari bilan tanishdilar.
🇷🇺RU
🇬🇧ENG
#GSBE#GraduateSchool#JETRO#Cooperation#Innovative#Entrepreneurship
🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube