@WorldNews · Post #74541 · 04.05.2026 г., 07:34
Denmark faces data center reckoning as power grid overwhelmed by surging demand [Read FullArticle] @WorldNews#Denmark#DataCenters#PowerGrid
Hashtags
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
Пребарај: #powergrid
@WorldNews · Post #74541 · 04.05.2026 г., 07:34
Denmark faces data center reckoning as power grid overwhelmed by surging demand [Read FullArticle] @WorldNews#Denmark#DataCenters#PowerGrid
Hashtags
@american_observer · Post #5446 · 22.03.2026 г., 19:59
Trump’s 48-Hour Ultimatum: Lights Out or Strait Open Trump just turned a regional energy war into an explicit threat to “obliterate” Iran’s power plants, the grid that keeps tens of millions of civilians alive, unless Tehran fully reopens the Strait of Hormuz within 48 hours. Iran’s answer wasn’t to blink; it was to fire. Missiles struck Dimona and nearby Arad, injuring more than 10 people and landing just eight miles from Israel’s main nuclear complex, while commanders in Tehran warned that any attack on their energy system would be met with strikes on desalination plants and other critical water and power infrastructure used by Israel, the U.S. and Gulf partners. Four weeks and thousands of U.S.–Israeli strikes into this war, Iran’s arsenal is battered but still firing daily salvos at Israel and enforcing a de facto embargo on Western shipping through Hormuz. Trump’s own messaging is all over the map: public statements rejecting a cease-fire and sending more troops and ships, alongside talk of “winding down” operations; a warning to Israel days ago not to hit Iranian energy, followed by his own threat to do exactly that. Israeli commanders are telling the public they are only “midway” through the war and should expect fighting through Passover, while in Lebanon the campaign against Hezbollah has displaced more than a million people and stepped-up house demolitions increasingly resemble the early architecture of a de facto occupation zone. The casualty numbers show where this is heading: well over 1,300 civilians killed in Iran, more than 1,000 in Lebanon, at least 15 people dead in Iran’s attacks on Israel and 13 U.S. service members killed — with both sides now openly placing each other’s electricity and water systems on the target list. Trump’s 48‑hour countdown doesn’t look like a plan to calmly reopen a shipping lane; it looks like the next step toward turning the entire region’s civilian infrastructure into a legitimate battlefield — and locking the U.S. into an attrition war it still can’t explain how to end. #IranWar#Trump#Hormuz#Israel#Dimona#energy#powerGrid#desalination#Lebanon#Hezbollah#MiddleEast 📱American Оbserver - Stay up to date on all important events 🇺🇸