Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
«Как продать грузовик, когда экономика тормозит сильнее, чем тормоза у фуры». 🚛
Вы замечали, как у нас любят искать «оживление»?
Стоит где-то цифре чуть-чуть дернуться вверх — и всё:
эксперты уже достают шампанское, а в телеграме -
«рынок ожил! идёт разворот!»
Вот и
в октябре 2025-го - ба-бах!
…продажи тяжёлых грузовиков выросли до 5000 штук…
И все такие: «О-о-о! Всё, камбэк! Промышленность поехала!»
Ага.
Только поехала - на холостом ходу,
без особо больших объемов грузов.
И без заказов.
Я смотрю на график — красная линия продаж
грузовиков лежит на уровне пульса пенсионера после обеда.
К тому же, поднявшегося перед обедом пешком на 25 этаж.
На 23-й подниматься было «легко». На 24 - сложнее оказалось.
А 25 - просто ☠️.
Это не оживление, это лёгкое подёргивание ресниц🤷♂️.
На фоне:
- падение погрузки на сети РЖД,
- снижение перевозок металлопроката,
- сокращение погрузки зерна.
И вагоностроительные заводы уже не выпускают вагоны как горячие пирожки, а вспоминают, как строили полувагоны десятками тысяч в квартал.
А как вы считаете - в ноябре объёмы продаж тяжелых грузовиков (>16 тонн) будут как и в октябре?
Объёмы продаж 🚛:
👍 - останутся прежними 5000 в месяц ;
✍️- продажи снизятся ;
🤔- вырастут объёмы продаж.
С уважением,
Ваш ИВЛ (в логистике).
#truck#фура#волны
А с какой целью мы сравниваем не только год-к-году? 🤨
Часть 3 (из 4-х)
🧱Эффект низкой базы:
сравнение «ноябрь к прошлому ноябрю» (а 2024, все помнят, был провальным) создаёт иллюзию улучшения. 🚫
Категорически неверно в «эпоху перемен» какие-либо индексы или индикаторы сравнивать - с аналогичным периодом прошлого года или даже с началом нынешнего:
- если были значимые «провалы» в прошлых периодах, то сравнение с прошлогодними значениями любых в настоящем изменений «вверх» будет показывать ложный позитив, а по этой причине смотреть необходимо не только на прошлый год, но и на «ближайшие» месяцы и, самое главное (!!), - на синхронность изменений или - на скорость изменения 🏎️🏎️.
Читайте про Атракс Часть 4 - через 60 минут.
Подписаться. Игорь Латышев.
С уважением,
ваш ИВЛ (в логистике).
#фура#truck#FTL#Атракс#волны
За 20 лет
парк грузовых автомобилей ❄️❄️
вырос на 2 млн. единиц ✌️.
(с 4,8 до 7 млн. ед.).
_______________
Подписаться. Игорь Латышев.
С уважением,
ваш ИВЛ (в логистике).
#перевозки#фура#трак#truck#объём
«Мир Транспорта и Логистики» - вышел N3 бюллетеня.
Тренд прошлого года в продажах грузового транспорта: оцепенение.
Опубликовали мою статью.
https://ates.media/f/ates_0326_1.pdf
Тренд прошлого года в грузовых
автоперевозках:
попытка осознать новую реальность.
Тренд автотранспортной отрасли в 2026: выжить.
Мы.
В новой.
Реальности.💡
_______________
Подписаться. Игорь Латышев.
С уважением,
ваш ИВЛ (в логистике).
#транспорт#фура#truck#волны#производство#объёмы
🎯 «Автотранспорт не побеждает железную дорогу. Он просто догоняет: цифры за 25 лет»
Почему разговоры о «победе автотранспорта» — это ошибка интерпретации длинных рядов данных.
📉 В начале XXI-го века доля автомобильного транспорта была выше 75% и сокращалась в течение 20 лет, оставаясь с 2009-го по 2021-й — ниже 70%.
🚆😕😕😕😕😕
В отличие от железнодорожного транспорта, доля которого в перевозках грузов поднялась с 13% и оставалась с 2010 по 2023 годы уверенно выше 15%, целое десятилетие держась на внушительных 17% (!!!).
📊На начало века и на текущий 2025 год доли в транспортировке грузов распределились следующим образом:
АВТО — 74% и 73% (снижение более чем на 1 п.п.);
ЖД — 13% и 14% (рост на 1 п.п.).
🔜Весьма вероятно, что в начале 2026 года мы увидим пропорции, которые в прошлый раз были актуальны аж 25 лет назад.
А значит, никакого спора о том, что «автотранспорт побеждает перевозки по железным дорогам», нет и быть не может.
➡️Он не побеждает. Он догоняет.
Отставая почти «на круг» в течение 20 лет.
_______________
Подписаться. Игорь Латышев.
С уважением,
ваш ИВЛ (в логистике).
#жд#авто#объёмы#фура#трак#truck
📦📦Весенние запреты для фур не для всех - горячие новости для логистов!✌️
Коллеги, держите свежие новости по весенним ограничениям и Ярославлю!
🔥
📄 История и документы
Весенние запреты берут начало с Постановления Совмина РСФСР № 129 от 5.03.1969.
Документ разрешал ограничивать движение фур на период распутицы из-за погодных условий. С тех пор такие меры стали ежегодными.
🗺️ Ярославская область — 2026
Не прошло и 60 лет -
в этом году весенние запреты в Ярославской области не вводятся! 🚫
Диагностика дорог показала: оснований для ограничений нет.
Ибокачественно сделаны 💪
🎆 Что это значит для логистов 🤔
- Свободное движение фур по дорогам Ярославской области в весенний период. 🛣️⛓️💥
- Нет необходимости получать дополнительные согласования и планировать объезды. 😈
- Экономия времени и средств для транспортных компаний. 💰
Если нужна информация по другим регионам — пишите! 🔥
#логистика#фура#truck#Ярославль
#запреты#просушка
А что говорят классики ?
Обратимся к всемирно известному создателю водки Периодической таблицы - Дмитрию Ивановичу Менделееву:
- эффективная транспортная система - это не конкуренция, а комплементарность видов транспорта.
Морской путь, реки, железная дорога и сухопутные маршруты должны работать совместно, усиливая друг друга!
Только такая модель способна обеспечить устойчивость логистики России и её конкурентоспособность в глобальной экономике ХХІ века.
_______________
Подписаться. Игорь Латышев.
С уважением,
ваш ИВЛ (в логистике).
#РЖД#перевозки#фура#трак#truck#объём#ВВП
«Рынок транспортных услуг: взаимодействие и партнерство»
В ближайшие минуты совместно с Ген. директором «Нефтехимической Транспортной Компании» - Сапроновым Александром Алексеевичем - подсветим актуальные вопросы железнодорожного и автомобильного транспорта.
_______________
Подписаться. Игорь Латышев.
С уважением,
ваш ИВЛ (в логистике).
#РЖД#перевозки#фура#трак#truck#объём#ВВП
Началась XXIII-я конференция
«Рынок транспортных услуг: взаимодействие и партнерство»
исейчас идёт
РАЗГОВОР БЕЗ КУПЮР.
🚂. ❄️❄️
Профессор кафедры экономической и социальной географии России географического факультета МГУ,
доктор географических наук
Наталья Васильевна Зубаревич очень оптимистично сообщила:
Следующий 2026 год будет жутко интересный! 🎃
Обрабатывающая промышленность вытягивает экономику.
В прошлом 2024 году
ВВП составил +4,3%.
В нынешнем 2025 году рост ВВП составит около 1% - что означает резкое замедление экономического развития.
_______________
Подписаться. Игорь Латышев.
С уважением,
ваш ИВЛ (в логистике).
#РЖД#перевозки#фура#трак#truck#объём#ВВП
Комплементарность - это вообще про что ??🤯
На основании данных из моей презентации журналисты отраслевого издания
«РЖД-Партнер» опубликовали небольшую часть тезисов.
И, самое главное, описали положительные эффекты, которые дает применение принципа комплементарности - для грузоотправителей, для руководителей автотранспортных 🚚🚛компаний и Операторов жд вагонов. 🚆🚋🚋🚋
А в полном виде презентация на эту тему будет выложена на следующей неделе.
_______________
Подписаться. Игорь Латышев.
С уважением,
ваш ИВЛ (в логистике).
#РЖД#перевозки#фура#трак#truck#ВВП#комплементарность