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 слични објави

Пребарај: #valero

当前筛选 #valero清除筛选
Bloomberg4you

@Bloomberg4you · Post #47101 · 10.01.2026 г., 02:11

В пятницу президент Трамп оказывал давление на руководителей более чем 20 энергетических компаний США, но получил лишь несколько публичных обещаний быстро инвестировать огромные суммы, необходимые для восстановления разрушенной нефтяной промышленности Венесуэлы. Это вызвало сомнения в предыдущем заявлении Трампа о том, что американские компании были готовы потратить 100 миллиардов долларов или больше на восстановление инфраструктуры для добычи сырой нефти в стране. Генеральный директор Exxon Mobil Даррен Вудс дал самую резкую оценку, заявив Трампу во время прямой трансляции встречи в Белом доме, что Венесуэла «непривлекательна для инвестиций» без значительных изменений в коммерческой структуре страны, правовой системе и законах об углеводородах. Однако он сказал, что «уверен в том, что при этой администрации и президенте Трампе, работающем рука об руку с правительством Венесуэлы, эти изменения могут быть реализованы». «Там у нас дважды конфисковывали активы, так что можете себе представить, что для возвращения в третий раз потребуются довольно существенные изменения по сравнению с тем, что мы видели раньше», — сказал генеральный директор. Вудс действительно сказал, что #Exxon может направить техническую группу для оценки текущего состояния венесуэльских активов в ближайшие недели и может помочь вывести венесуэльскую нефть на рынок через свои интегрированные предприятия, которые занимаются переработкой и торговлей. Вице-председатель совета директоров #Chevron Марк Нельсон, присутствовавший на мероприятии вместо генерального директора Майка Вирта, которому ранее на этой неделе сделали операцию по замене коленного сустава, заявил, что компания увеличила добычу в Венесуэле до 240 000 баррелей в сутки на четырёх совместных предприятиях с государственной нефтяной компанией #PDVSA и может увеличить добычу «практически на 100% немедленно». У Chevron, единственной крупной американской нефтяной компании, которая все еще работает в Венесуэле, есть «уникальная возможность среди конкурентов увеличить добычу», и эти усилия могут увеличить ее годовой денежный поток на 400–700 миллионов долларов, но компания вряд ли будет инвестировать дальше, пока ситуация в стране не стабилизируется, заявил аналитик TD Cowen Джейсон Гейблман. По мнению аналитиков #UBS, Exxon по-прежнему может извлечь большую выгоду из увеличения добычи нефти в Венесуэле, в основном благодаря недооценке её роли в нефтепереработке, поскольку «доходы от нефтепереработки, как правило, стабильны и обеспечивают устойчивость и снижение волатильности доходов» в условиях низких цен на нефть. Они также добавили, что после #Valero у Exxon лучшие операции на побережье Мексиканского залива по переработке низкокачественной нефти из Венесуэлы. Генеральный директор ConocoPhillips Райан Лэнс заявил, что банки, в том числе Экспортно-импортный банк США, должны участвовать в любых обсуждениях, связанных с предоставлением финансирования и миллиардов долларов, необходимых для восстановления энергетической инфраструктуры Венесуэлы. Лэнс сказал Трампу, что компания #Conoco оставила после себя 12 миллиардов долларов, когда ушла из страны, и на сегодняшний день является крупнейшим негосударственным кредитором в Венесуэле. «Мы не будем смотреть на то, что люди потеряли в прошлом, потому что это была их вина... Вы заработаете много денег, но мы не собираемся останавливаться», — ответил Трамп. Джефф Хильдебранд из #Hilcorp взял на себя одно из немногих конкретных обязательств, взятых на себя руководителями нефтяных компаний, которые в настоящее время не ведут деятельность в Венесуэле. Он заявил, что его компания полностью привержена идее и готова восстанавливать инфраструктуру в стране. @Bloomberg4you Ещё больше информации о мировых рынках и экономике - ЗДЕСЬ