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

Резултати

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

Пребарај: #balticexchange

当前筛选 #balticexchange清除筛选

🚢Танкерный рынок в поиске направления: волатильность усиливается по всем сегментам. По данным Baltic Exchange, рынок танкеров демонстрирует разнонаправленную динамику: в сегменте VLCC сохраняется высокая неопределённость на фоне кризиса в Ормузском проливе, что ограничивает количество сделок и искажает ценовые ориентиры. В сегментах LR и MR наблюдается рост ставок на отдельных маршрутах, особенно в Атлантике и США, тогда как средиземноморские направления остаются под давлением. Сегмент танкеров типа Suezmax демонстрирует умеренную коррекцию с ростом ставок на ключевых направлениях из Ближнего Востока. С операционной точки зрения, рынок переходит в фазу высокой волатильности: геополитика и маршрутизация становятся ключевыми драйверами, а традиционные бенчмарки теряют точность из-за ограниченного числа сделок. Для отрасли это означает усиление неопределённости и рост спредов между сегментами, где локальные факторы и доступность тоннажа формируют краткосрочную динамику ставок. 📌Baltic Exchange — основана в 1744 году в Лондоне, ведущая организация по расчёту фрахтовых индексов, принадлежит Singapore Exchange (SGX). #Tankers#Shipping#Freight#BalticExchange#Oil

🚢Танкерный рынок сохраняет неопределённость: VLCC под давлением, MR и Aframax выглядят устойчивее. По данным Baltic Exchange, танкерный рынок завершил неделю разнонаправленно: сегменты перевозки чистых нефтепродуктов и сырой нефти - демонстрируют высокую волатильность, при этом ключевым фактором остаётся неопределённость в районе Ближнего Востока и изменение физического грузопотока. В нефтепродуктовом сегменте ставки на танкеры типа LR2 на маршруте MEG–Japan удержались в районе WS550, тогда как направление MEG–UK Continent немного укрепилось. Тип LR1 также показал умеренный рост на маршруте MEG–Japan до WS656. В MR-сегменте рынок оставался более стабильным: маршруты из Ближнего Востока и Западной Африки удержались на высоких уровнях, а американский рынок демонстрировал смешанную динамику на фоне колебаний арбитражей и предложения тоннажа. В сегменте крупных нефтетанкеров ситуация менее однозначна. Рынок супертанкеров типа VLCC в Ближнем Востоке остаётся в зоне повышенной неопределённости: ставки по маршрутам MEG–China и West Africa–China снизились, что указывает на давление со стороны ограниченного числа грузов и осторожности фрахтователей. При этом отдельные трансатлантические направления показывают более устойчивую динамику. Сегмент танкеров типа Suezmax испытывает давление на маршруте Nigeria–UK Continent, где слабый спрос и избыток доступного тоннажа формируют риск дальнейшего снижения ставок. В то же время рынок Black Sea–Mediterranean показал укрепление, что отражает локальный дефицит тоннажа и активность по коротким рейсам. Aframax в Атлантике выглядит сильнее благодаря росту ставок из Мексиканского залива и Карибского бассейна. С отраслевой точки зрения, текущая картина подтверждает фрагментацию танкерного рынка: геополитика поддерживает премию за риск, но отсутствие стабильного физического грузопотока ограничивает потенциал роста. В краткосрочной перспективе наиболее чувствительными останутся танкеры VLCC и Suezmax, тогда как MR и отдельные Aframax-направления сохраняют более устойчивую коммерческую базу. 📌Baltic Exchange — основана в 1744 году, ведущая международная организация по формированию фрахтовых индексов и рыночных оценок в судоходстве, принадлежит Singapore Exchange (SGX). #tankers#VLCC#freight#shipping#BalticExchange

🚢Baltic Exchange пересматривает методологию ставок из-за кризиса на Ближнем Востоке. Baltic Exchange инициировала пересмотр методологии расчета фрахтовых индексов для Ближнего Востока на фоне растущей нестабильности в Ормузском проливе. Ключевое предложение — допустить использование альтернативных портов погрузки за пределами Персидского залива при расчете бенчмарков, сохранив при этом возможность учета традиционных маршрутов, что направлено на повышение гибкости и снижение риска приостановки индексов. С отраслевой точки зрения изменения отражают беспрецедентное давление геополитики на базовые рыночные инструменты. Индексы Baltic Exchange используются для расчетов деривативов, физических контрактов и оценки рынка, поэтому их корректность критически важна. Дополнительно рынок сталкивается с проблемой отсутствия реальных сделок (fixtures), что вынуждает брокеров использовать альтернативные методы оценки, включая сопоставимые маршруты и TCE-модели. Таким образом, кризис в Ормузе начинает напрямую влиять не только на перевозки, но и на саму архитектуру формирования рыночных бенчмарков. 📌Baltic Exchange — основана в 1744 году, независимая организация, базируется в Лондоне, принадлежит Singapore Exchange (SGX). #shipping#freight#BalticExchange#markets#risk

🚢Ставки VLCC достигли максимумов со времён нефтяного эмбарго ОПЕК 1973 года. Индекс ставок для нефтяных танкеров достиг исторического уровня после перенаправления части грузов Saudi Aramco через Красное море и ограничений транзита через Ормузский пролив. По данным Baltic Exchange, оценка маршрута Ближний Восток – Азия для танкеров типа VLCC достигла Worldscale 465,6, что эквивалентно примерно $481 200 в сутки. Это самый высокий показатель со времён нефтяного эмбарго ОПЕК 1973 года. Аналитики Fearnley Securities отмечают, что даже при возможном снижении спроса предложение тоннажа останется ограниченным. Часть сырья фактически «заперта» в Персидском заливе, а альтернативные маршруты, включая транзит через Красное море и обход Африки, увеличивают расстояние перевозок и усиливают тонно-мильный фактор. Для танкерного рынка это означает сочетание дефицита доступного флота, резкого роста страховых премий и удлинения рейсов, что поддерживает экстремальные уровни фрахтовых ставок. 📌Fearnley Securities AS — норвежская инвестиционно-аналитическая компания, основанная в 1869 году, специализируется на финансовых и рыночных исследованиях в судоходстве и энергетике. Компания является частной и входит в группу Fearnley. #VLCC#TankerMarket#FreightRates#BalticExchange#OilShipping

🚢VLCC: спотовые ставки выросли до шестилетнего максимума. Ключевой индикатор спотового рынка VLCC достиг максимальных значений почти за шесть лет на фоне активного спроса со стороны крупных азиатских фрахтователей на загрузки с Ближнего Востока и Западной Африки. Индекс спотового TCE (тайм-чартерного эквивалента), публикуемый Baltic Exchange, в пятницу приблизился к уровню $132 000 /сутки. За неделю показатель вырос на 22,8%, что стало самым высоким значением с апреля 2020 года. Средняя спотовая доходность по сегменту превысила отметку $130 000 /сутки. Рост ставок отражает сжатие доступного предложения тоннажа в сочетании с концентрацией спроса на ключевых экспортных направлениях. В текущей фазе рынок демонстрирует высокую волатильность и чувствительность к активности азиатских импортеров нефти, что усиливает краткосрочные колебания фрахтовых уровней в классе крупнотоннажных танкеров VLCC. 📌Baltic Exchange — британская организация, основанная в 1744 году в Лондоне, специализируется на публикации фрахтовых индексов и морской рыночной информации. С 2016 года принадлежит биржевой группе Singapore Exchange (SGX). #VLCC#TankerMarket#FreightRates#BalticExchange#OilShipping

🚢Балкеры типоразмера Panamax: широкий диапазон ставок и активность на трансатлантических маршрутах. На рынке балкеров типоразмера Panamax сегодня фиксировалась разнонаправленная динамика с диапазоном ставок от $10 500 до $26 500 в сутки в зависимости от региона и направления. Атлантика демонстрирует более высокие уровни. Рейсы Аргентина – Франция фиксировались около $26 500, Аргентина – ARAG — порядка $25 500, Нидерланды – Восточное побережье Индии (через USEC) — около $24 500. Трансатлантические направления US Gulf – Германия заключались в районе $18 500 + BB. Тихоокеанский рынок остаётся стабильным: Австралия – Южный Китай и Австралия – Япония фиксировались в диапазоне $17 000–19 500. Индийский океан: рейсы Юго-Восточная Азия – Индия проходили на уровнях $12 500–16 500. Маршруты ECSA продолжают поддерживать ставки благодаря зерновому экспорту из Аргентины и Бразилии, включая сделки с дополнительными бонусами (BB) до $750 000. В целом рынок демонстрирует устойчивость при сбалансированном тоннаж-листе и активной торговле аграрными и угольными грузами. 📌Baltic Exchange — британская морская биржа, основанная в 1744 году и публикующая ключевые фрахтовые индексы мирового судоходства. С 2016 года принадлежит Singapore Exchange (SGX). #Panamax#DryBulk#FreightRates#ECSA#BalticExchange