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

Пребарај: #dentusd

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

@CryptoM · Post #64892 · 10.04.2026 г., 07:17

🚀 Binance to Adjust Tick Sizes for USDⓈ-M Perpetual Futures Contracts According to the announcement from Binance, the exchange is set to adjust the tick size for several USDⓈ-M Perpetual Futures Contracts to enhance market liquidity and improve trading experiences. The adjustments will occur on specific dates, starting from April 13, 2026, at 06:30 (UTC). The trading pairs affected include BASEDUSDT, GTCUSDT, ENAUSDT, and ENAUSDC, with the tick size changing from 0.0001 to 0.00001. Further adjustments will follow on April 15 and April 16, 2026, impacting pairs such as GUAUSDT, SIRENUSDT, CHRUSDT, ALICEUSDT, DENTUSDT, OGNUSDT, and DYDXUSDT. The adjustment will not affect the trading operations of USDⓈ-M Futures, except for specific contracts like CHRUSDT, ALICEUSDT, DENTUSDT, OGNUSDT, and DYDXUSDT. During the adjustment period, trading functions for these contracts will be temporarily suspended. For instance, the USDⓈ-M CHRUSDT contract will be suspended from April 16, 2026, 06:30 (UTC) to 06:31 (UTC), while the ALICEUSDT contract will be suspended from 06:45 (UTC) to 07:46 (UTC). Similar suspensions will occur for DENTUSDT, OGNUSDT, and DYDXUSDT contracts. During these times, users will be unable to place new orders or modify existing ones, and the contract status will change from "TRADING" to "PENDING_TRADING." API users can query the latest status and tick size changes using GET /fapi/v1/exchangeInfo. Binance emphasizes that the tick size update will not affect existing orders, as orders placed before the update will still be matched with the original tick size. Users are advised to refer to the Trading Parameters for more details and adjust their trading strategies accordingly to avoid unnecessary impacts. This notice is released under Binance Exchange Rule 17, and users are encouraged to stay informed through the API Changelog for further updates. #Binance#TickSize#USDPerpetualFutures#MarketLiquidity#TradingExperience#BASEUSD#GTCUSD#ENAUSD#GUAUSD#SIRENUSD#CHRUSD#ALICEUSD#DENTUSD#OGNUSD#DYDXUSD#API#FuturesContracts#TradingSuspension#ExchangeInfo#CryptoTrading