Skip to main content

Мощный, либеральный, классный - Проверит сообщения, скажет, что не так

Project description

M🌚ri Message Linter

Мощный, либеральный, классный - Проверит сообщения, скажет, что не так 💖

Introduction

Quick start

General API Documentation

About

M🌚ri Message Linter разработан в связи с несколькими прецедентами по количеству слов, а также общему содержанию в пожеланиях Доброго утра и Спокойной ночки. Чтобы избежать в будущем подобных инцидентов, было проведено исследование по анализу всех ранее написанных пожеланий утречка и ночки, выведены основные показатели KPI и метрики, влияющие на положительный результат в настроении и эмоциональном фоне МикроМаши.

Основная идея проекта заключается в автоматизации и оптимизации проверки сообщений на соответствие стандартам, полученных в результате исследований и анализа информации, собранной из сообщений за прошедшее время и периоды. Такой подход к контролю качества сообщений позволит предупредить и исключить некоторые возможные неприятные и непредвиденные ситуации.

Installation

   pip install morilint

или укажите специфическую версию, в примере версия 0.1.5

  pip install morilint==0.1.5

Lint message

Для проверки сообщения нужно использовать класс MoriLinter

from mori_lint import MoriLinter
from mori_lint.typing import LintResponse


# Создаем экземпляр линтера
linter = MoriLinter()

# Выполняем проверку сообщения
lint_result: LintResponse = linter.lint(
    message="""
Доброй доброй ночки
Ты микрокот милый и мелкий 

Добрая, умная, весёлая и такая хорошенькая (добавляешь сахарность(или как там было с овсянкой) в мою жизнь ☃️)
Очень ценю тебя, искренне считаю тебя особенной и очень красивой!!!!1!1 люблю смотреть на тебя 💜
Сладких снов, высыпайся, завтра червячки

Ты самая лучшая ❤️
"""
)

# Вывод результата на экран
print(lint_result)

Configure Linter

Для детальной настройки линтера вы можете создать экземпляр класса LintConfig и указать нужные вам значения соответствующих параметров. Далее созданный экземпляр класса LintConfig просто передайте как параметр config при создании экземпляра класса MoriLinter.

from mori_lint import MoriLinter, LintConfig
from mori_lint.typing import LintResponse


config = LintConfig(
    check_length=False,  # линтер не будет проверять соответствие длинны сообщения
)

# Создаем экземпляр линтера
linter = MoriLinter(config=config)

# Выполняем проверку сообщения
lint_result: LintResponse = linter.lint(
    message="""
Доброй доброй ночки
Ты микрокот милый и мелкий 

Добрая, умная, весёлая и такая хорошенькая (добавляешь сахарность(или как там было с овсянкой) в мою жизнь ☃️)
Очень ценю тебя, искренне считаю тебя особенной и очень красивой!!!!1!1 люблю смотреть на тебя 💜
Сладких снов, высыпайся, завтра червячки

Ты самая лучшая ❤️
"""
)

# Вывод результата на экран
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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

morilint-0.1.5.tar.gz (28.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

morilint-0.1.5-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

Details for the file morilint-0.1.5.tar.gz.

File metadata

  • Download URL: morilint-0.1.5.tar.gz
  • Upload date:
  • Size: 28.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for morilint-0.1.5.tar.gz
Algorithm Hash digest
SHA256 19b8f87ac5a6c99184868240bec0afd61f35726c9639adff8ab712bc3cd0b57d
MD5 8e6cc1ab61ee2230039ce2fdf59ebec9
BLAKE2b-256 1771269d70c4825a84860e2f617a3feac697e6f546898019710fc8569219e06b

See more details on using hashes here.

File details

Details for the file morilint-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: morilint-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 34.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for morilint-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 20ab2c13e87a340edb16ad39f78e3646f7b585b30bbf8097fa2ba88328397af6
MD5 d340c0fe67888358b8b0d3ee1a506bcd
BLAKE2b-256 14a0f3f8165ecb9702a0827a697006af26008d55f913362c0ebc1dc8fa431144

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page