Мощный, либеральный, классный - Проверит сообщения, скажет, что не так
Project description
M🌚ri Message Linter
Мощный, либеральный, классный - Проверит сообщения, скажет, что не так 💖
Introduction
Quick start
- Установка
- Проверка сообщения
- Конфигурация и настройка линтера
- Проверка сообщений из файлов
- Конфигурация и настройка линтера через командную строку
General API Documentation
- Configuration
- Linter Interfaces
About
M🌚ri Message Linter разработан в связи с несколькими прецедентами по количеству слов, а также общему содержанию в пожеланиях Доброго утра и Спокойной ночки. Чтобы избежать в будущем подобных инцидентов, было проведено исследование по анализу всех ранее написанных пожеланий утречка и ночки, выведены основные показатели KPI и метрики, влияющие на положительный результат в настроении и эмоциональном фоне МикроМаши.
Основная идея проекта заключается в автоматизации и оптимизации проверки сообщений на соответствие стандартам, полученных в результате исследований и анализа информации, собранной из сообщений за прошедшее время и периоды. Такой подход к контролю качества сообщений позволит предупредить и исключить некоторые возможные неприятные и непредвиденные ситуации.
А на само создание меня вдохновила одна очень красивая и вообще самая лучшая девочка в Наблюдаемой Вселенной(абсолютная легендарка 10 звёзд) M💞riko
Installation
pip install morilint
или укажите специфическую версию, в примере версия 0.1.5
pip install morilint==0.1.5
Lint message
Для проверки сообщения нужно использовать класс MoriLinter
from morilint import MoriLinter
from morilint.typing import LintResponse
# Создаем экземпляр линтера
linter = MoriLinter()
# Выполняем проверку сообщения
lint_result: LintResponse = linter.lint(
message="""
Доброй доброй ночки
Ты микрокот милый и мелкий
Добрая, умная, весёлая и такая хорошенькая (добавляешь сахарность
(или как там было с овсянкой) в мою жизнь ☃️)
Очень ценю тебя, искренне считаю тебя особенной и очень красивой!!!!1!1
люблю смотреть на тебя 💜
Сладких снов, высыпайся, завтра червячки
Ты самая лучшая ❤️
"""
)
# Вывод результата на экран
print(lint_result)
Configure Linter
Для детальной настройки линтера вы можете создать экземпляр класса LintConfig и указать нужные вам значения
соответствующих параметров. Далее созданный экземпляр класса LintConfig просто передайте как параметр config
при создании экземпляра класса MoriLinter.
from morilint import MoriLinter, LintConfig
from morilint.typing import LintResponse
config = LintConfig(
check_length=False, # линтер не будет проверять соответствие длинны сообщения
)
# Создаем экземпляр линтера
linter = MoriLinter(config=config)
# Выполняем проверку сообщения
lint_result: LintResponse = linter.lint(
message="""
Доброй доброй ночки ⛄✨
Спи хорошенько, ты ведь сама такая хорошенькая 🥰
Отлично поиграли, нафармили 🌸
- много олова
- много железа(многа арехав)
С тобой очень хорошо, ты даришь много позитивных эмоций и наполняешь своей милотой
Мне нравится смотреть на тебя, слушать тебя, проводить время вместе,
делать что-то для тебя 🌼💜
Ты такая красивая просто 💖
И ещё ты самая лучшая девочка ❤️
"""
)
# Вывод результата на экран
print(lint_result)
Теперь у вас не будет отображаться ошибка проверки длины, как в первом примере. Весь список доступных параметров и то, за что они отвечают можно просмотреть в разделе с документацией к LintConfig
Lint Files
Если вам необходимо проверить множество сообщений из файлов, для этого вы можете использовать как класс
MoriFileLinter внутри вашей программы, так и воспользоваться запуском проверки через консоль.
Здесь будет показано, как запустить проверку через консоль, детальная информацию о возможностях класса
можно прочитать в разделе с документацией к MoriFileLinter
Для запуска проверки файлов через консоль, достаточно ввести команду
morilint .
После чего в текущей директории будут проверены все файлы с расширением .mori.
Пример директории:
.venv/
main.py
message_1.mori
message_2.mori
В результате в консоле будет выведен отчёт о проверке.
Configure File Linter
Также при запуске возможно передать флаги для настройки линтера. Вот пример команды с указанием настроек.
morilint . --message_length 15 --min_hearts_count 2 --req_keywords "Word1,word2" --hearts "❤️,💖,💘" --check_length --no-check_keyword --check_hearts
Описание параметров:
--message_length - Максимальная длина сообщения
--min_hearts_count - Минимальное количество сердечек
--req_keywords - Список обязательных ключевых слов, разделённых запятыми
--hearts HEARTS - Список эмодзи сердечек, разделённых запятыми
--check_length - Включить проверку длины
--no-check_length - Отключить проверку длины
--check_keyword - Включить проверку ключевых слов
--no-check_keyword - Отключить проверку ключевых слов
--check_hearts - Включить проверку сердечек
--no-check_hearts - Отключить проверку сердечек
Также для просмотра информации о параметрах можно использовать команду
morilint --help
LintConfig
Основной класс с конфигурацией линтера. Реализует интерфейс ILintConfig
Параметры:
message_length: int - минимально допустимый размер сообщения(в отдельных словах), по умолчанию 30
req_keywords: list[str] - список ключевых слов, хотя-бы одно из которых должно быть в сообщении.
hearts: frozenset[str] - множество сердечек, сообщение будет проверяться на наличие сердечек из этого множества, если проверка сердечек включена.
min_hearts_count: int - минимальное число сердечек, которое должно быть в сообщении, если включена соответствующая проверка.
check_length: bool - флаг проверки длины сообщения, по умолчанию включен
check_keyword: bool - флаг проверки наличия ключевых слов в сообщении, по умолчанию включен
check_hearts: bool - флаг проверки сердечек в сообщении, по умолчанию включен
MoriLinter
Основной класс работы с линтером.
В инициализатор принимает опциональный параметр:
config: LintConfig- конфигурация линтера, если не будет передан, то будет использоваться конфигурация по умолчанию
Метод lint(self, message: str) -> LintResponse
Метод принимает исходное сообщение, которое необходимо проверить.
Возвращает экземпляр класса LintResponse.
Класс LintResponse содержит следующие атрибуты:
total_checks: int- сколько всего проверок было запущеноsuccess: int- сколько успешных проверокfail: int- сколько неуспешных проверокfailed_checks_detail: list[str]- список строк, с детальным описанием каждой найденной проблемы.
MoriFileLinter
Класс созданный специально для проверки текста сообщений из файлов.
Работает с файлами с расширением .mori
В инициализатор принимает 1 параметр:
config: LintConfig- конфигурация линтера, если не будет передан, то будет использоваться конфигурация по умолчанию
Метод lint(self, directory: str, print_lint_result: bool = True) -> LintFilesResponse
Принимает параметры:
directory: str- имя директории, в которой необходимо проверить файлыprint_lint_result: bool = True- флаг, отвечающий за то, будет ли выводиться в консоль результат проверки, по умолчанию True
Возвращает экземпляр класса LintFilesResponse с атрибутами:
total_files_checked: int- общее число проверенных файловchecked_filenames: list[str]- список с названиями проверенных файловproblems_found: int- сколько проблем найдено во всех файлах в суммеsuccess: int- сколько файлов прошли проверкиfailed: int- сколько файлов не прошли проверкиdetail: list[LintFileData]- список из экземпляров классаLintFileData- здесь содержится информация об имени файла и данные о проверке файла
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file morilint-0.1.7.tar.gz.
File metadata
- Download URL: morilint-0.1.7.tar.gz
- Upload date:
- Size: 29.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
693b142b6bd06ed26c302ff3b3fc98038bf97b1fe43e7a38a1d5d90f9754d012
|
|
| MD5 |
1eaf577e01f6dd73251dbacc1e99f2ba
|
|
| BLAKE2b-256 |
47fddb329924c25cd39def5ecbea0bc0df586b34243a914564d980ba2a3c777b
|
File details
Details for the file morilint-0.1.7-py3-none-any.whl.
File metadata
- Download URL: morilint-0.1.7-py3-none-any.whl
- Upload date:
- Size: 34.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20d4a00f69f7436cf2b84d77a7957cadd97548b61f2c9037b1167e8347bea185
|
|
| MD5 |
41b87811a06c836d89a86557577f9c2a
|
|
| BLAKE2b-256 |
8db3ff061a6c45c09bb8c83918a1a5e22c9e68c2b04fb8b7a014038dc6002730
|