TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #121 · 20 јул.

Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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

Резултати

Пронајдени 2 слични објави

Пребарај: #bovensiepen

当前筛选 #bovensiepen清除筛选
Car News

@car_news · Post #1291 · 26.05.2025 г., 09:19

🆕A secret BMW hides under this new coupe by Alpina founders ℹ️ The Bovensiepen family, which owns Germany's Alpina, has begun preparations for a business transformation. Early next year, the rights to the brand will be transferred to the BMW Group, and the niche carmaker will continue to operate under the new Bovensiepen brand. The sale of the Alpina brand (but not the company itself) to the BMW group was announced back in March 2022, but officially the change of ownership will take place only on January 1, 2026. Until then, the Bovensiepens have the right to produce Alpina cars on the basis of BMW. ☔️ According to Alpina tradition, the BMW 4 Series Convertible was taken as the basis for the project. However, it was transformed into a coupe with an almost completely new body. The interior architecture has not changed fundamentally. 🐎 Under the hood there is the M4’s 3.0-liter turbocharged inline-six engine with an output of 611 hp (700 Nm). Bovensiepen GT manages a 0–100 km/h sprint in just 3.3 seconds and reaches a top speed “beyond 300 km/h”, according to its makers. However, they have not yet said anything about the gearbox or the type of drive. 💷 Prices and planned production volumes will be revealed in the IV quarter of 2025. The start of deliveries is scheduled for the end of the II quarter of 2026. #BMW#tuning#Alpina#Bovensiepen@Car_News

Автоновости

@avtonovosti · Post #1222 · 26.05.2025 г., 10:14

🆕 Новый купе от основателей Alpina ℹ️ Семья Бовенсипен (Bovensiepen), владеющая немецкой компанией Alpina, начала подготовку к трансформации бизнеса. В начале следующего года права на бренд будут переданы BMW Group, а нишевый автопроизводитель продолжит работать под новым брендом Bovensiepen. О продаже бренда Alpina (но не самой компании) концерну BMW было объявлено ещё в марте 2022 года, но официально смена владельца произойдет только 1 января 2026 года. До этого времени у Bovensiepens есть право выпускать автомобили Alpina на базе BMW. ☔️ По традиции Alpina за основу проекта был взят кабриолет BMW 4 Series. Однако он был преобразован в купе с практически полностью новым кузовом. Архитектура интерьера принципиально не изменилась. 🐎 Под капотом – 3,0-литровый рядный двигатель M4 с турбонаддувом мощностью 611 л.с. (700 Нм). Bovensiepen разгоняется от 0 до 100 км/ч всего за 3,3 секунды и развивает максимальную скорость «свыше 300 км/ч», как утверждают производители. Однако они пока ничего не говорят о коробке передач и типе привода. 💷 Цены и планируемые объёмы производства будут раскрыты в IV квартале 2025 года. Начало поставок запланировано на конец II квартала 2026 года. #BMW#тюнинг#Alpina#Bovensiepen@avtoNovosti