Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
AI Integration in Legal Education: A Growing Trend
A recent survey by the American Bar Association and the ABA Task Force on Law and Artificial Intelligence reveals a significant shift towards incorporating AI into legal education. Insights from 29 law school deans and faculty members highlight the increasing role of AI in shaping the future of legal practice.
According to the survey, 55% of law schools now offer classes specifically focused on AI. Additionally, 83% provide opportunities for students to learn how to use AI tools effectively, and 85% are considering curriculum changes to address the rise of AI technologies.
Notably, 69% of institutions have updated their academic integrity policies to account for generative AI. However, 62% have yet to decide on the use of generative AI by applicants. This trend indicates a growing recognition of the importance of AI literacy across legal disciplines, underscoring its essential role in the training of future legal professionals.
#AI#LegalEducation#LegalTech
Online Lecture on the Parliamentary System of the United Statesat Green University
📚First-year law students participated in an online lecture dedicated to the parliamentary system of the United States. The session focused on its structure, functions, and distinctive features.
🎙Guest Speakers:
🔵Diyorbek Sattarov — Master’s graduate of the University of Pennsylvania, currently gaining practical legal experience in the United States.
🔵Navruzbek Tilaboev — Master’s graduate of the University of Illinois, currently gaining practical legal experience in the United States.
🔅The lecture provided valuable insights into the U.S. system of governance and was followed by an engaging discussion that encouraged critical thinking among students.
#LawStudents#OnlineLecture#USLaw#LegalEducation#Governance#AcademicLife#GuestLecture#GreenUniversity __________________
Green University'daAQShning parlament tizimi bo‘yicha onlayn ma’ruza
📚Huquqshunoslik yo‘nalishining 1-bosqich talabalari AQShning parlament tizimiga bag‘ishlangan onlayn ma’ruzada ishtirok etdilar. Ma’ruza davomida ushbu tizimning tuzilishi, funksiyalari va o‘ziga xos jihatlari yoritildi.
🎙Ma’ruzachilar:
🔵 Diyorbek Sattarov — Pensilvaniya universiteti magistri, hozirda AQShda huquq sohasida amaliy faoliyat olib bormoqda.
🔵Navruzbek Tilaboev — Illinoys universiteti magistri, hozirda AQShda huquq sohasida amaliy faoliyat olib bormoqda.
🔅Ma’ruza talabalarning AQSh boshqaruv tizimi haqidagi bilimlarini boyitdi hamda tanqidiy fikrlash va faol muhokama muhitini shakllantirdi.
#HuquqTalabalari#OnlaynMa’ruza #AQShHuquqi#HuquqiyTa’lim #Boshqaruv#AkademikHayot#GreenUniversity
✉️[email protected]
☎️ +998 55 512 00 77
📍Location
🌐Website | 📱Telegram | 📱Instagram | 📱LinkedIn | 🟥YouTube
Contract Law (Law Express) — быстрый, умный гид по английскому договорному праву
О чем книга
Это не классический учебник и не философия права. Это концентрат. Finch и Fafinski берут весь массив английского contract law и раскладывают его по полочкам так, чтобы вы видели структуру, логику и типовые ловушки. От formation до remedies — без воды, но с нужной глубиной. Книга честно заявляет свою цель: помочь думать и отвечать, а не просто заучивать правила .
Ключевые моменты
– Четкая архитектура договора: offer, acceptance, intention, consideration — как единая система, а не разрозненные темы.
– Контрактные условия и исключения ответственности разобраны через кейсы и реальные экзаменационные сценарии.
– Ошибки, искажения воли, давление, undue influence — не как экзотика, а как практические риски.
– Remedies подаются через стратегию: что реально получить, а не что красиво звучит в теории.
– Постоянный акцент на common pitfalls — где студенты и практики теряют баллы и позиции.
Польза
Эта книга учит юридическому мышлению в формате “быстро распознать проблему → правильно квалифицировать → аккуратно применить право”. Она экономит время, снижает когнитивный шум и помогает видеть контракт не как набор правил, а как рабочий механизм. Особенно ценно то, что авторы постоянно показывают, как суд думает, а не просто что он решил.
Кому будет полезна
– Студентам LLB и GDL, которым нужно не просто сдать, а понять.
– Кандидатам на SQE и LPC как инструмент систематизации перед экзаменом.
– Юристам-практикам на раннем этапе, чтобы быстро “освежить” договорное право без перечитывания Treitel.
– Всем, кто работает с английскими контрактами и хочет меньше интуиции, больше структуры.
ВердиктELR
Law Express: Contract Law — это GPS по договорному праву. Не заменяет длинный путь, но показывает, где вы находитесь и куда идти дальше. Именно поэтому серия и стала бестселлером.
#ContractLaw#EnglishLaw#UKLaw#LawExpress
#LegalEducation#LawStudents
#LLB#GDL#SQE
#LegalThinking#CaseLaw
#CommonLaw#LegalRevision
#FutureLawyers#LawBooks
Поддержать канал можно: Tribute | Boosty | Tirikchilik