Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
✈️У России появилась новая спецливрея «Родина SSJ-100»
📌Борт RA-89044 получил название «Комсомольск-на-Амуре». Рядом с названием города тем же шрифтом было написано: «Родина SSJ-100» на русском языке и «Birthplace of the SSJ-100» на английском.
⏺Специальная ливрея была создана в честь 120-летия Министерства промышленности и торговли. Наш Минпромторг считает 120 лет от Министерства торговли и промышленности Российской империи, основанного в 1905 году.
⏺Отсылка к 1905 году прослеживается в виде элементов стимпанка на ливрее: многочисленные шестерёнки – как раз про это. На дровах они летели и поэтому дымились!
Лёгкое небо
#aviation#Россия#Rossiya#ssj100
✈️ Российские самолёты входят в цифровую эру
📌Росавиация и аэрокосмическая компания «Бюро 1440» запустили проект по оснащению российских самолётов бортовыми терминалами для высокоскоростного интернета. Первым партнёром стал Аэрофлот, с которым уже подписано соглашение о сотрудничестве.
⏺Разработанные терминалы отличаются компактностью — до 60 см в длину и ширину при весе менее 15 кг. Оборудование обеспечивает пропускную способность до 1 Гбит/с и использует технологию АФАР для стабильного спутникового соединения на любой высоте.
⏺Первыми интернет получат SSJ-100, МС-21 и Ту-214. Интеграция терминалов потребует технических доработок с учётом требований авиационной безопасности, а Росавиация будет сопровождать все сертификационные процедуры.
⏺Появление Wi-Fi на рейсах Аэрофлота ожидается в 2027–2028 годах. Вопрос о бесплатном доступе для пассажиров пока остаётся открытым — авиакомпания проводит экономические расчёты модели предоставления услуги.
Для пассажиров это означает возможность работать онлайн на высоте 10 000 метров, смотреть фильмы в стриминге и оставаться на связи в соцсетях без перебоев. Проект может серьёзно изменить восприятие внутренних авиаперелётов
Как думаете, получится ли обогнать старлинк (2-ое фото)?
Лёгкое небо
#aviation#news#Россия#мс21#ssj100
Дениска Евдокимов, осуждённый за катастрофу SSJ 100, намерен добиваться оправдания в Верховном суде
Бывший пилот «Аэрофлота» Денис Евдокимов, осуждённый на шесть лет лишения свободы по делу о крушении самолёта SSJ 100, в результате которого погиб 41 человек, планирует обратиться с жалобой в Верховный суд. Сейчас он собирает необходимые документы, находясь в колонии-поселении в Зеленограде.
Евдокимов отказался подавать прошение об отправке на службу в зоне СВО, опасаясь, что его могут задействовать в боевых действиях без учёта профессионального опыта пилота.
Заявляет его адвокат
В настоящее время Денис работает в швейном цеху, а условия содержания адвокат называет удовлетворительными. Близость колонии к месту жительства семьи позволяет супруге навещать его каждую неделю.
📌Осенью 2025 года у Евдокимова появится право подать в суд ходатайство о замене оставшегося срока на принудительные работы. Возможность подать заявление на условно-досрочное освобождение появится в мае 2026 года. Адвокат подчёркивает, что защита намерена воспользоваться обеими возможностями.
Следствие, суд и Межгосударственный авиационный комитет пришли к выводу, что причиной катастрофы стали ошибочные действия пилота при посадке — во время выравнивания и при многократных козлах. Во время второго и третьего касаний разрушились силовые элементы фюзеляжа и топливные баки, что привело к возгоранию. Погиб 41 человек, самолёт сгорел.
Евдокимов, не согласный с приговором, указывает, что суд не учёл его прошлую службу в органах госбезопасности и статус ветерана боевых действий как смягчающие обстоятельства. По его мнению и мнению адвокатов, при расследовании и судебном процессе были допущены серьёзные процессуальные нарушения.
Они считают, что действия пилота соответствовали установленным нормам, а заключение о причине катастрофы — ошибочно.
Основной аргумент защиты состоит в том, что разрушение шасси произошло не по сертифицированному сценарию, что привело к повреждению топливных баков, разливу топлива, быстрому распространению огня и задымлению салона, что и стало причиной гибели пассажиров
_____
А как считаете вы, заслуживает ли Евдокимов смягчения наказания?
🇷🇺 - Нет, ему нет места на свободе, нарушил кучу правил и очернил общественное мнение о ✈️
🔥 - Конечно, катастрофа произошла по вине детской болезни ссж
Лёгкое небо | Донат
#aviation#news#SSJ100#Евдокимов
Сегодня в Пулково отменены все рейсы самолетов Sukhoi Superjet 100 из-за рекордно высокого атмосферного давления, которое достигло 1055,1 гПа. Это превышает максимально допустимый показатель для эксплуатации данных воздушных судов (1052 гПа). 🛬
⏺Всего не состоялось как минимум 30 вылетов, включая рейсы в Москву, Калининград и Самару, а также 27 прилетов в Санкт-Петербург.
⏺Авиакомпания “Россия” приняла меры для снижения неудобств пассажиров, заменяя часть рейсов на более вместительные воздушные суда, включая дальнемагистральные лайнеры.
⏺Синоптики прогнозируют нормализацию погодных условий к вечеру 8 февраля. Пассажирам рекомендуется уточнять актуальную информацию о рейсах у авиаперевозчиков и следить за обновлениями на сайте аэропорта.
Лёгкое небо
#SSJ100#Пулково#aviation#airport
🇷🇺 SSJ-100: "Россия" - всё познаётся в сравнении!
Авиакомпания «Россия» начала масштабное исследование 🔍 стоимости эксплуатации двух типов двигателей для SSJ-100:
* Отечественный ПД-8
* Франко-российский SaM146
Что анализируют?📊
* Топливная эффективность
* Стоимость техобслуживания
* Цены на запчасти
* Время ремонта
* Доступность подменных двигателей
Важные цифры:
* В парке «России» — 78 самолётов SSJ-100 (крупнейший эксплуатант в мире)
* Директивная цена ПД-8 — 1 млрд рублей
* Результаты анализа — конец 2025 года
Интересный факт:🗓️ в марте 2025 SJ-100 с ПД-8 совершил первый полёт!
Цитата от гендиректора Яна Бурга:
> «Когда двигатель разрабатывается, его создатели используют гипотезы о ресурсе его комплектующих и других параметрах. Заложенные в конструкцию решения должны обеспечить достижение этих параметров. Никогда двигатель с завода не выходит сразу с полным ресурсом. Например, если в модель заложено целевое значение ресурса 20 тыс. циклов, первый двигатель, скорее всего, будет выпущен с ресурсом 500 циклов. Двигатели, которые проходят испытания и не идут в коммерческую эксплуатацию, нарабатывают часы и циклы, потом их разбирают или иными методами определяют, как ведут себя детали. Также оцениваются результаты эксплуатации двигателей, находящихся в коммерческой эксплуатации, и нередко по результатам этой оценки уже в эксплуатации выполняются доработки».
Почему это важно?⚠️
После санкций 2022 года поставки французских комплектующих прекратились, а SaM146 критиковали за низкую надёжность.
#авиация#ssj100#ПД8#импортозамещение#авиапром#Россия#технологии#новостиавиации#авиацияРоссии
🛫Крым на крыльях прогресса
Инновационные датчики для «Суперджета» SSJ-100 и МС-21 начали выпускать в Крыму⚙️🇷🇺
На выставке «Иннопром» в Екатеринбурге крымское предприятие «Фиолент» представило свои новейшие разработки в сфере гражданской авиации ✈️
💬 Глава республики Сергей Аксенов отметил, что предприятие «Фиолент» представило не только электроинструмент, но и разработки в области гражданской авиации.
🔧 Среди новинок — линейка инновационных датчиков для самолётов «Сухой Суперджет» и МС-21.
Также на выставке представили новый продукт от «Сэлмы» — «Строитель МИГ-4000»:
💡
Это линейка инновационных датчиков, которые применяются в самолетах «Сухой Суперджет» и МС-21. Представители «Сэлмы» познакомили гостей выставки с новым продуктом «Строитель МИГ-4000». Это единственный отечественный высокопроизводительный цифровой программно-аппаратный комплекс для автоматизированной сварки с уникальными технологическими возможностями.
Сергей Аксёнов
🚀 Импортозамещение продолжается не словами, а делом — в авиации, промышленности и высоких технологиях.
#авиация#МС21#SSJ100#Крым#Фиолент#Сэлма#иннопром#импортозамещение#инновации#технологии#авиапром#сварка🛠️✈️🇷🇺
🔧🛩SSJ-100 впервые самостоятельно отремонтировали в Якутии
Авиакомпания «Якутия» успешно выполнила самостоятельный ремонт самолёта SSJ-100 в собственном ангаре на три борта. Работы проводились после 7500 часов налёта, и теперь всё ТО выполнено силами авиакомпании и специально обученного персонала.
💬
«
Компания «Якутия» получила сертификат на работы от производителя — ОКБ «Яковлев»»
сообщил телеканал «ВестиСаха».
В ходе четырёхмесячного ремонта провели обслуживание двигателей, фюзеляжа, шасси, систем управления и других бортовых агрегатов. Такой подход сильно удешевляет ремонты и даёт авиакомпании значительный технический апгрейд.
#SSJ100#Якутия#авиаремонт#ЯкутияАвиа#Яковлев#техническообслуживание#авиапром#авианьюс#летныечасы#РемонтСамолётов
🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣
📌Дорогие подписчики, мы продолжаем модернизацию канала, поэтому сегодня собрали для вас глоссарий с основными хэштегами канала
Основные:
#aviation
#news
#LN_EDU
#airport
Страны:
#Россия
#Белоруссия
Остальные:
#vibe
#metar
#S7TRAINING
ВС:
#A320
#B777
#A350
#B777X
#B737
#A380
#А330
#МС21
#Ту214
#Су57
#ssj100
#B737
#B787
#drone
#аэростаты
Системы:
#Leonardo
#FFS
Компании:
#Airbus
#Boeing
#Embraer
#Cessna
#ВертолётыРоссии
#ОАК
#Росавиация
#Ростех
#winwing#winctrl
#flightradar24#fr24
#Авиатор
Авиакомпании:
#Аэрофлот
#S7#S7Airlines
#ЮТэйр
#Белавиа
#Azur
#Ямал
Аэропорты:
#Шереметьево#Sheremetyevo
#Домодедово
#Внуково
#Жуковский
#Пулково
События:
#Emergency
#деньрождения
#ковёр
#sqw7700
#MayDay
#quiz
#spotting#споттинг
#конкурс
#DubaiAirShow2025#DAS25
Профессии:
#бортпроводники
#crew
#FlightAttendant
🔵Мы непрерывно работаем над тем, чтобы каждый день радовать вас качественным контентом и удобной навигацией по каналу
⬅️Если у вас есть идеи по новым рубрикам на канале - пишите их в комментарии. Кто знает, возможно именно ваша идея будет воплощена в жизнь 👀
Лёгкое небо