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

Резултати

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

Пребарај: #iranusnegotiations

当前筛选 #iranusnegotiations清除筛选
Crypto M - Crypto News

@CryptoM · Post #65135 · 11.04.2026 г., 10:24

🚀 Iran-US Negotiations Progress Slower Than Anticipated According to NS3.AI, a Pakistani government official has indicated that the ongoing negotiations between Iran and the United States are progressing at a slower pace than initially expected. The official noted that while the U.S. side seems eager to achieve specific objectives, Iran is taking a more measured approach and is not rushing to reach a conclusion. #IranUSNegotiations#SlowerProgress#USIranTalks#Diplomacy#NegotiationChallenges#Iran#UnitedStates#PakistaniOfficial

Crypto M - Crypto News

@CryptoM · Post #64997 · 10.04.2026 г., 13:15

🚀 Polymarket Odds for Strait of Hormuz Normalization Drop The probability of the Strait of Hormuz returning to normal by May 31 has significantly decreased on Polymarket, with a 6% drop in one hour and a 12% decline over 24 hours. According to Odaily, the event contract stipulates that if the International Monetary Fund's Portwatch reports a seven-day moving average of ship arrivals at the Strait of Hormuz equal to or above 60 on any date from market creation until May 31, 2026, the market will resolve as 'yes'; otherwise, it will resolve as 'no'. The daily count includes container ships, bulk carriers, roll-on/roll-off ships, general cargo ships, and tankers, excluding those not reported by the IMF Portwatch. Pakistani media confirmed today that an Iranian delegation has arrived for negotiations, with major talks between Iran and the United States scheduled for tomorrow. The discussions in Pakistan will focus on reopening the Strait of Hormuz and extending the ceasefire. Additionally, the U.S. delegation participating in the talks has departed for Islamabad, Pakistan, with U.S. Vice President Vance already on board. Before departure, Vance expressed anticipation for the negotiations on the Iran issue, stating that U.S. President Donald Trump has provided 'quite clear guidelines' for the talks. #StraitOfHormuz#Polymarket#IranUSNegotiations#MaritimeTrade#Geopolitics#Ceasefire#ShipTraffic#IMFPortwatch#Pakistan#USPolitics

Crypto M - Crypto News

@CryptoM · Post #65330 · 12.04.2026 г., 23:28

🚀 Japanese Companies Face Challenges Amid Rising Oil Prices Japanese companies are entering the earnings season with a pessimistic outlook as crude oil prices surge following the unsuccessful U.S. peace talks with Iran. Bloomberg posted on X, highlighting the impact of geopolitical tensions on the global oil market. The failure of negotiations has led to increased uncertainty, affecting various sectors in Japan that rely heavily on energy imports. As oil prices climb, businesses are bracing for higher operational costs, which could impact their profitability in the coming months. The situation underscores the interconnectedness of global events and their influence on national economies. #JapaneseCompanies#OilPrices#GeopoliticalTensions#EnergyImports#OperationalCosts#Profitability#GlobalEconomy#EarningsSeason#Bloomberg#IranUSNegotiations