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

Резултати

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

Пребарај: #chaabi

当前筛选 #chaabi清除筛选
Tibicen

@world_music_geek · Post #455 · 29.10.2023 г., 08:01

Orchestre el Ânq (اركسترا العنق) — Chaâbi Sweet Spot (Sawt el Ânq, 1980-s) #traditional#chaabi#Morocco В конце 1980-х лейбл Sawt el Ânq (انتاج صوت العنق) выпустил эту малоизвестную пластинку марокканского коллектива, скорее всего происходящего из Касабланки. Коллектив исполняет чааби — стиль народной музыки Северной Африки, который можно услышать в кафе и ресторанах, во время свадеб и фестивалей. В палитре инструментов, используемых в этом стиле, встречаются как традиционные инструменты, струнные и дарбука, так и более современные инструменты, электрогитара и электроорган. YouTube | Telegram | VK

Tibicen

@world_music_geek · Post #1157 · 09.02.2026 г., 20:42

Various Artists — Born in the City of Tanta (Sublime Frequencies, 2025) #traditional#chaabi#oud#Egypt Популярная музыка Египта большую часть XX века жила по строгим правилам. Это была тщательно выверенная форма искусства, укоренённая в традиции, одобренная высшими классами египетского общества, иногда осторожно приоткрывавшаяся к неарабским влияниям. Её создавали профессиональные музыканты внутри устойчивой индустрии, центром которой был Каир — шумный, космополитичный, уверенный в своём культурном авторитете город. Но стоило отъехать от этого центра — в сторону Танты и дальше, по направлению к ливийской границе, — и картина резко менялась. Здесь десятки артистов работали в жанре шааби — музыке, особенно популярной среди рабочего класса. Египетский мейнстрим — с фигурами масштаба Умм Кульсум и Абдель Халима Хафеза — стремился к репрезентации «высокой» культуры в её наиболее рафинированной форме. Шааби звучал иначе. Это была музыка повседневности: неотполированная, живая, иногда грубоватая. Соответственно, поддерживали этот стиль не музыкальные институты и крупные звукозаписывающие компании, а россыпь малоизвестных лейблов. Один из них — Astuanat al-Bourini (اسطونات البوريني), или Bourini Records — был основан в конце 1960-х в Бенгази, Ливия. В период с 1968 по 1975 год он выпустил около пятидесяти пластинок, музыка на большей части которых была исполнена египетскими музыкантами. Компиляция Born in the City of Tanta как раз посвящена самым ярким записям этого лейбла — тем самым голосам, которые никогда не попадали в официальные списки «заслуженных исполнителей» египетской музыки. 🔗Bandcamp | Telegram

Мой Алжир 🇩🇿🥰

@myalgeria123 · Post #2512 · 19.01.2026 г., 05:25

🇩🇿🇩🇿Хадж Мхаммад Л'анка — отец Шааби песни Сегодня исполнилось 46 лет со дня его смерти. Думаю, это подходящий момент, чтобы поговорить об отце алжирской песни в жанре "Шааби". Кажется, каждый, кто хоть раз бывал в Касбе Алжира, видел его изображения на стенах. 🎸Пионер жанра Шааби песни и один из величайших алжирских композиторов. Он также воспитал несколько поколений алжирских артистов. Его настоящее имя — Мхаммад Идир Айт Араб, он родился в Касбе 20 мая 1907 года. Он из простой семьи, корни которой восходят к Айт Дженнад из города Тизи Узу. Его талант был открыт шейхом Мустафой ан Надуром, который был им сильно впечатлен и принял его в свою музыкальную группу в качестве игрока на бубне, когда тот был еще маленьким мальчиком. Л’Анка продолжил путь, начатый с его шейхом, несмотря на противодействие отца, который угрожал и даже избивал его. 🇩🇿После игры на бубне он освоил игру на мандолине🪕, овладев ею за короткий срок. Его учитель, шейх ан Надур, дал ему прозвище "Л’Анка" العنقاء - " (феникс) в честь мифической птицы, упомянутой в древнеарабских легендах, в том числе в исламской традиции как огромная птица с телом, подобным быку, чьи яйца величиной с горы, а полет звучит, как гром или рев реки..." После смерти его учителя в 1925 году он возглавил музыкальную группу, и это стало началом его самостоятельного становления, до тех пор пока он не получил титул хаджа, будучи еще молодым человеком. Л’Анка скончался 23 ноября 1978 года в Алжире. 📻Среди его самых известных песен: - "سبحان الله" (СубханАллах) - "الحمام لي ربيتو" (Голубь, которого я вырастил) - "الحمد لله مابقاش إستعمار في بلادنا" (Слава богу, больше нет колонизатора в нашей стране) #ШаабиМузыка#Алжир#Музыка#Шааби#песня#algeria#Chaabi#музыкальныйжанр

Tibicen

@world_music_geek · Post #156 · 16.02.2021 г., 18:00

Bab L' Bluz — Nayda! (Real World Records, 2020) #gnawa#tishoumaren#chaabi#psychedelic#blues#funk#sintir#tanpura#Morocco Nayda! – дебют марокканско-французского квартета Bab L 'Bluz, родившегося из мечты продвинуть синтир, традиционный музыкальный инструмент народна гнауа, на международную музыкальную сцену. Группа относится к той волне молодых марокканских артистов, которые черпают вдохновение из своего наследия и исполняют композиции на диалекте дарижа. Этот диалект характеризуется большим количеством заимствований из языков исторических владельцев колоний Магриба, французского и испанского, а также из местных берберских языков. Помимо влияния культуры гнауа, музыка Bab L 'Bluz содержит элементы психоделического рока, фанка и блюза таурегов. На записи можно найти звуки Атлантического океана, элементы североафриканского стиля чааби и звуки индийской танпуры. Spotify | AppleMusic | Bandcamp

Tibicen

@world_music_geek · Post #739 · 03.09.2024 г., 09:05

Стили #afro_caribbean#afro_colombian#afro_house#afro_jazz#afro_soul#afro_swing#afrobeat#amapiano#ambient#anatolian#andalusian#aor#appalachian#ashik#assouf#avantfolk#balkan#ballad#bambuco#baroque#baroque_pop#bluegrass#blues#bolero#bollywood#bon#boogie#boom_bap#bossa_nova#breakbeat#broken_beat#bwiti#calypso#candomble#canterbury_scene#canzone_napoletana#caribbean#carnatic#celtic#chaabi#champeta#chanson#chanting#cheb#chicha#chimurenga#christian#city_pop#classicism#coladeira#concrete_music#cool_jazz#country#cumbia#dancehall#dark_folk#deep_house#dhikr#dhrupad#disco#doom#dream_pop#drone#drumnbass#dub#dubke#early_music#electronic#ethio_jazz#europop#field_recording#field_recordings#flamenco#free_jazz#french_pop#funana#funk#fusion#gamelan#garage#ghazal#gnawa#gospel#gqom#grime#griot#guaracha#gypsy_jazz#hard_bop#highlife#hindustani#hip_hop#house#hussars_funk#idm#indie#indofuturism#indorock#industrial#ishumar#italo_disco#jarocho#jazz#jit#joik#jongo#khaliji#khoomei#khyal#klasik#klezmer#kraut#kwaito#kwela#laika#latin#lullaby#malhun#maloya#manouche#maqam#medieval#milonga#minimal#minyo#modal_jazz#mor_lam#mugham#musica_caipira#musica_popular_brasileira#muwashahah#nasheed#neo_rebetiko#new_age#new_wave#noise#nu_disco#operetta#oriental_noise_rock#persian_classical#pop#pop_rock#post_industrial#post_punk#post_punk#postdubstep#postdubstep#progressive#proto_zouk#psychedelic#qawwali#raga#rai#rebetiko#reggae#renaissance#rnb#rock#rocksteady#romance#romanticism#roots_reggae#ryukoka#salsa#salsa_dura#samba#shaabi#shashmaqom#shoegaze#ska#soca#soft_rock#son#son_cubano#son_montuno#soukous#soul#space_rock#spiritual#sufi#surf#surti#swing#synth#synth_pop#synthpop#taarab#takamba#taksim#tango#tarana#techno#throat_singing#thumri#tishoumaren#traditional#tribal#vallenato#voodoo#wahrani#wassoulou#yacht_rock#zeuhl#zolo#zouk

Hashtags

#afro_caribbean#afro_colombian#afro_house#afro_jazz#afro_soul#afro_swing#afrobeat#amapiano#ambient#anatolian#andalusian#aor#appalachian#ashik#assouf#avantfolk#balkan#ballad#bambuco#baroque#baroque_pop#bluegrass#blues#bolero#bollywood#bon#boogie#boom_bap#bossa_nova#breakbeat#broken_beat#bwiti#calypso#candomble#canterbury_scene#canzone_napoletana#caribbean#carnatic#celtic#chaabi#champeta#chanson#chanting#cheb#chicha#chimurenga#christian#city_pop#classicism#coladeira#concrete_music#cool_jazz#country#cumbia#dancehall#dark_folk#deep_house#dhikr#dhrupad#disco#doom#dream_pop#drone#drumnbass#dub#dubke#early_music#electronic#ethio_jazz#europop#field_recording#field_recordings#flamenco#free_jazz#french_pop#funana#funk#fusion#gamelan#garage#ghazal#gnawa#gospel#gqom#grime#griot#guaracha#gypsy_jazz#hard_bop#highlife#hindustani#hip_hop#house#hussars_funk#idm#indie#indofuturism#indorock#industrial#ishumar#italo_disco#jarocho#jazz#jit#joik#jongo#khaliji#khoomei#khyal#klasik#klezmer#kraut#kwaito#kwela#laika#latin#lullaby#malhun#maloya#manouche#maqam#medieval#milonga#minimal#minyo#modal_jazz#mor_lam#mugham#musica_caipira#musica_popular_brasileira#muwashahah#nasheed#neo_rebetiko#new_age#new_wave#noise#nu_disco#operetta#oriental_noise_rock#persian_classical#pop#pop_rock#post_industrial#post_punk#postdubstep#progressive#proto_zouk#psychedelic#qawwali#raga#rai#rebetiko#reggae#renaissance#rnb#rock#rocksteady#romance#romanticism#roots_reggae#ryukoka#salsa#salsa_dura#samba#shaabi#shashmaqom#shoegaze#ska#soca#soft_rock#son#son_cubano#son_montuno#soukous#soul#space_rock#spiritual#sufi#surf#surti#swing#synth#synth_pop#synthpop#taarab#takamba#taksim#tango#tarana#techno#throat_singing#thumri#tishoumaren#traditional#tribal#vallenato#voodoo#wahrani#wassoulou#yacht_rock#zeuhl#zolo#zouk