Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
Sagen Sie Hallo zu diesem Geschwader von Boston Dynamics-ähnlichen Robotern - hergestellt von einer chinesischen Robotikfirma.
#BostonDynamics
Crazy World 🔥
Mehr auf 👇
https://t.me/CraziiWorld
🤖 Робопсы Спот компании Boston Dynamicsприняли участие в показе новой коллекции одежды бренда Coperni в Париже.
Один из роботов взял сумочку у модели, которая шла по подиуму. Для этого устройство использовало манипулятор, установленный вместо головы.
👀 Другой Спот долго рассматривал модель, а затем помог ей снять пиджак.
#BostonDynamics
🤖Boston Dynamicsнаучила двуногого робота Atlas поднимать и бросать предметы.
Инженеры прикрепили к верхним конечностям устройства захваты, включающие неподвижные и динамичные «пальцы». В ролике с помощью этих механизмов робот смог поднять и удержать сумку, которую затем бросил рабочему на строительных лесах.
⚙️ В конце видео Atlas совершил «многоосевой кувырок 540-градусным поворотом». По данным компании, этот трюк добавляет асимметрию в движения робота, что является гораздо более сложным навыком по сравнению с предыдущим паркуром.
#BostonDynamics#роботы
🎄Boston Dynamicsопубликовала ролик с роботами, украшающими елку.
В видео четвероногий Спот с манипулятором не может дотянуться до верхушки дерева, чтобы прикрепить бант. Поэтому он приводит двух робопсов, которые выступают в качестве ступеней.
В конце ролика компания поздравила всех с наступающим Новым годом и пожелала счастливых праздников. Также она показали неудачную попытку Спота повесить бант.
🤖 По данным Boston Dynamics, в видео робопсами управляли профессиональные операторы.
#BostonDynamics#роботы
🤖Boston Dynamicsопубликовала ролик с роботами в роли участников популярного южнокорейского бой-бэнда BTS. Видео создано для концерта группы Yet To Come в Пусане.
В ролике робопсы Спот поют и танцуют вместо музыкантов под песню Permission to Dance. Также в нескольких эпизодах появляется двуногое устройство Atlas.
#BostonDynamics#роботы
🤖Boston Dynamics обучила двуногого робота Atlas паркуру.
Компания опубликовала видео, где устройства преодолевают полосу препятствий и делают синхронное сальто назад.
🤯 Разработчики также показали, как обучали Atlas трюкам и с какими трудностями столкнулись в процессе тренировки.
#BostonDynamics#роботы
🎄Boston Dynamicsопубликовала ролик с роботами, украшающими елку.
В видео четвероногий Спот с манипулятором не может дотянуться до верхушки дерева, чтобы прикрепить бант. Поэтому он приводит двух робопсов, которые выступают в качестве ступеней.
В конце ролика компания поздравила всех с наступающим Новым годом и пожелала счастливых праздников. Также она показали неудачную попытку Спота повесить бант.
🤖 По данным Boston Dynamics, в видео робопсами управляли профессиональные операторы.
#BostonDynamics#роботы
🤖 Boston Dynamics показала работа Atlas, работающего на ИИ-мозге класса “Large Behavior Model”.
Робот выполняет полноценные складские задачи - например, укладывает коробки. Один модуль управляет всем: ходьбой, приседанием, подъёмом, балансом. Навыки не программировали вручную- Atlas научился им по демонстрациям человека.
Это шаг от «заранее прописанных движений» к автономному поведению: единая модель, способная учиться и выполнять сложные моторные задачи.
@ai_machinelearning_big_data
#ai#robots#BostonDynamics
#BostonDynamics#Humanoids#Atlas
В начале января на CES 2026 Boston Dynamics показала новую коммерческую версию робота Atlas (писал об этом здесь). Поскольку исследовательская версия уходит на пенсию, компания показала ролик, где предыдущая версия Atlas перед уходом демонстрирует прыжки, сальто назад, почти человеческий бег и, конечно, неудачные попытки всего этого.
🦾 Boston Dynamics показали впечатляющее видео своего робота.
Atlas получает изображение с камеры, данные о положении тела и текстовую команду. На основе этого модель генерирует плавные движения всего корпуса 30 раз в секунду.
Это не набор хрупких скриптов, а система, которая сама «думает», как выйти из ситуации.
Вместо того чтобы «прыгать» от точки к точке, система сразу строит короткую последовательность действий — примерно на полторы секунды вперёд.
Часть из них выполняется, а потом план обновляется, чтобы движения оставались точными и естественными.
Робот показывает, что может работать в реальном бардаке, где всё падает, двигается и мешает работе.
@ai_machinelearning_big_data
#ai#robots#BostonDynamics#atlas