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

Пребарај: #newcastlemax

当前筛选 #newcastlemax清除筛选

🚢Rio Tinto продает два судна типоразмера Newcastlemax за $90 млн, формируя редкий сигнал для балкерного рынка. Горнодобывающая группа Rio Tinto через свое судоходное подразделение продала два балкера типоразмера Newcastlemax — "RTM Cartier" и "RTM Zheng" (205 000 dwt, 2012 г., верфь HHIC Philippines) — китайским покупателям за $90 млн единым пакетом. Сделка выделяется на фоне низкой активности на рынке S&P: покупатели остаются избирательными, а сделки проходят преимущественно по «точечным» возможностям. При этом активы были в эксплуатации у Rio Tinto с момента постройки и обеспечивали стабильную доходность. С отраслевой точки зрения продажа является нетипичной для Rio Tinto, которая традиционно использует флот для собственных логистических нужд, а не для спекулятивных операций с активами, что может указывать на переоценку стратегии или фиксацию прибыли на фоне сильного рынка. Дополнительно сделка подтверждает устойчивый спрос на крупнотоннажный балкерный флот, особенно в сегменте перевозок железной руды, где балкеры типоразмера Newcastlemax остаются ключевым типом судов. Таким образом, рынок демонстрирует баланс: ограниченное предложение качественного тоннажа поддерживает цены, а крупные игроки начинают частично монетизировать активы. 📌Rio Tinto Group — основана в 1873 году, одна из крупнейших горнодобывающих компаний мира, публичная, принадлежит институциональным инвесторам (Великобритания/Австралия). #drybulk#Newcastlemax#shipping#secondhand#markets

🚢Asyad Shipping усиливает позиции в балкерах с вводом в эксплуатацию трёх судов типоразмера Newcastlemax. Оманская Asyad Shipping Company приняла в эксплуатацию три балкера типоразмера Newcastlemax — "Ain Garziz", "Ain Razat" и "Ain Athum". Суда дедвейтом около 208 000 тонн поставлены в рамках ранее объявленной инвестиции на сумму около $209 млн. Все три судна уже обеспечены долгосрочными контрактами, что гарантирует стабильный денежный поток с момента ввода в эксплуатацию. Новые единицы оснащены системами очистки балластных вод, соответствуя современным экологическим требованиям. С отраслевой точки зрения ввод в эксплуатацию балкеров типоразмера Newcastlemax отражает стратегию укрепления позиций в сегменте перевозок железной руды и других массовых грузов. Крупнотоннажные балкеры остаются ключевыми активами для дальнемагистральных маршрутов, особенно на направлениях Австралия–Китай и Бразилия–Азия. Дополнительно наличие долгосрочных чартеров снижает рыночные риски и повышает предсказуемость доходов, что является важным фактором в условиях волатильности фрахтового рынка. Расширение флота подтверждает амбиции Asyad Shipping по укреплению статуса одного из ведущих операторов балкерного флота в регионе Ближнего Востока. 📌Asyad Shipping Company — основана в 2003 году, входит в государственную логистическую группу Asyad Group, принадлежащую правительству Омана. #drybulk#Newcastlemax#shipping#Oman#logistics

🚢Джон Фредриксен возвращается в сухогрузный сегмент с заказом балкеров типоразмера Newcastlemax. Инвестструктура Seatankers Management, связанная с Джоном Фредриксеном, разместила заказ на строительство до восьми балкеров типоразмера Newcastlemax на китайской верфи Panjin Dajin Offshore. Контракты заключены на четыре балкера (210,000 DWT) с опционами ещё на четыре, с поставкой в 2028–2029 гг. Стоимость оценивается в $73.5 млн за судно, что может довести общий объём инвестиций до $600 млн. С операционной точки зрения, сделка сигнализирует о возвращении крупного капитала в сегмент крупнотоннажных балкеров и ставке на дальнемагистральные перевозки с эффектом масштаба. Для рынка это подтверждает интерес к крупнотоннажным балкерам Newcastlemax как ключевому сегменту для перевозки сырья, а также усиление конкуренции среди крупных судовладельцев. 📌Seatankers Management Co. Ltd. — частная инвестиционная структура, связанная с норвежским судовладельцем Джоном Фредриксоном (John Fredriksen), контролируется через его бизнес-империю. #DryBulk#Newcastlemax#Shipping#Fredriksen#Shipbuilding

🚢Danaos увеличивает заказ балкеров и впервые выходит в сегмент балкеров типоразмера Newcastlemax. Греческий судовладелец Джон Кустас через Danaos Shipping увеличил заказ на новые балкеры типоразмера Newcastlemax на китайской верфи, удвоив первоначальный контракт. Согласно годовому отчёту компании, теперь в строительстве находятся четыре судна данного класса вместо двух, объявленных ранее. Общая стоимость заказа оценивается примерно в $300 млн. Заказ знаменует выход Danaos в сегмент крупнотоннажных балкеров типоразмера Newcastlemax. Инвестиция отражает стратегию диверсификации флота, поскольку компания традиционно известна как оператор контейнерного тоннажа. Для рынка сухих грузов это подтверждает растущий интерес инвесторов к крупным балкерам на фоне спроса на перевозки железной руды и угля, а также продолжающееся усиление роли китайских верфей в сегменте новостроя. 📌Danaos Corporation — греческая судоходная компания, основанная в 1972 году, специализируется на контейнерных перевозках. Акции компании обращаются на Нью-Йоркской фондовой бирже (NYSE); контролируется семьёй Кустас. #DryBulk#Newcastlemax#Danaos#Shipbuilding#ShippingMarkets

🚢Himalaya Shipping фиксирует чартер для балкера типоразмера Newcastlemax “Mount Matterhorn”. Сухогрузный оператор Himalaya Shipping заключил новый тайм-чартер для балкера типоразмера Newcastlemax “Mount Matterhorn” (дедвейт 210 000 тонн). Срок контракта составляет 12–14 месяцев, а начало работы по новому соглашению запланировано на вторую половину марта после завершения текущего чартерного контракта. Ставка будет индексированной и привязана к рынку с премией к индексу Baltic 5TC. Также контракт предусматривает возможность конвертации в фиксированную ставку на основе кривой фрахтовых деривативов FFA. Сделка отражает продолжающийся интерес фрахтователей к крупнотоннажным балкерам на фоне устойчивого спроса на перевозки железной руды и угля. Компания Himalaya Shipping, зарегистрированная на Бермудских островах, в настоящее время эксплуатирует 12 судов, преимущественно в сегменте балкеров типоразмера Newcastlemax. 📌Himalaya Shipping Ltd. — международная судоходная компания, основанная в 2021 году и специализирующаяся на эксплуатации крупнотоннажных балкеров Newcastlemax. Компания связана с судоходной группой предпринимателя Тора Олава Тройма (Tor Olav Trøim), а её акции торгуются на NYSE и Euronext Oslo. #DryBulk#Newcastlemax#HimalayaShipping#FreightMarket#ShippingFinance