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

Резултати

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

Пребарај: #musicdiscovery

当前筛选 #musicdiscovery清除筛选
TASTE OF AFRICA🌞

@taste_of_africa · Post #150 · 28.02.2026 г., 06:17

Taste of Africa: Джаз и кофе ☕🎷 🎷 Все знают эфиопский кофе. А знаете ли вы эфиопский джаз? Эфиопский джаз (ethio jazz) — это симбиоз джаза и эфиопской традиции. Он звучит одновременно знакомо и “инопланетно”: будто классический джаз попал в другую систему координат 🌍✨ 🥁 Основа: этнические ритмы и модусы Сердце жанра — эфиопская музыкальная логика: 🔸 Ритмика: пульсации 6/8 и 12/8, перекрёстные акценты, сложные группировки (иногда встречается и 9/8). Отсюда — тот самый гипнотический грув🎶 🔸 Лады (qenet): эфиопские пентатонические модусы Tizita, Bati, Ambassel, Anchihoye. Они дают “плывущее”, чуть меланхоличное настроение и необычную мелодику 🌫️🎼 🎺 Как возник этот стиль В середине XX века в городах Эфиопии усилилась оркестровая сцена — и в неё естественно “впитались” внешние влияния: джаз, фанк, латинские ритмы. Но главное случилось тогда, когда музыканты начали не копировать, а переводить джаз на эфиопский музыкальный язык: те же духовые, тот же грув — но другой ладовый фундамент и другое чувство времени ⏳🎷 👑 Развитие: оформление жанра Один из ключевых архитекторов ethio jazz — Мулату Астатке (композитор и вибрафонист). В конце 1960 х и в 1970 е он собрал формулу: 🎶 эфиопские модусы + джазовая гармония и аранжировка + фанковая ритм секция + вибрафон Так появился звук, который узнаётся с первых тактов: тёплый, городской, чуть “ночной” 🌙 — с африканским пульсом внутри джазовой формы. Он удивительно точно передаёт настроение Аддис Абебы. Кто был — поймёт. Кто ещё не был — можно “войти” через музыку ✈️🖤 Следите за Taste of Africa: Travel 🧭 ✨ Особенность музыки ✅ Мелодии часто строятся вокруг пентатоники и тянут “тоску” (tizita — слово, которое часто связывают с ностальгией) 🫧 ✅ Ритм не просто держит темп — он “разговаривает”: смещает опору, создаёт напряжение и разряжение 🥁 ✅ Оркестр может быть джазовым по составу, но ощущение — будто вы слышите другую традицию импровизации 🎺🎹 🌍 Ethio jazz сегодня Жанр давно вышел за пределы Эфиопии: его модусы и грув вдохновляют музыкантов по всему миру — в психоделическом фанке, электронике, даунтемпо, оркестровых проектах 🚀 И главное: это не музей. Ethio jazz живёт как современный язык — его можно смешивать и развивать, не теряя корней 🇪🇹✨ 🎧 С чего начать (Bandcamp) 1. Mulatu Astatke — “Yègellé Tezeta” mulatuastatke.bandcamp.com 2. Mulatu Astatke — “Yèkèrmo Sèw” (Éthiopiques) ethiopiquesseries.bandcamp.com 3. Mahmoud Ahmed — “Aykedashem Lebe” (Éthiopiques) ethiopiquesseries.bandcamp.com 4. Hailu Mergia — Wede Harer Guzo (альбом) hailumergia.bandcamp.com ☕🎷 Попробуйте выпить чашечку эфиопского кофе под ethio jazz — это идеальная комбинация. 🥁🌟 Ритмическое путешествие продолжается: вкусите музыку 🌟🌍💫 #TasteOfAfrica#Ethiopia#AddisAbaba#EthioJazz#EthiopianJazz#MulatuAstatke#AfricanMusic#Jazz#WorldMusic#EthiopianCoffee#CoffeeAndJazz#AfricaTravel#MusicDiscovery#BandcampFinds