Skip to main content

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

Project description

M🌚ri Message Linter

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

Introduction

Quick start

General API Documentation

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


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.7.tar.gz (29.1 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.7-py3-none-any.whl (34.7 kB view details)

Uploaded Python 3

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

Hashes for morilint-0.1.7.tar.gz
Algorithm Hash digest
SHA256 693b142b6bd06ed26c302ff3b3fc98038bf97b1fe43e7a38a1d5d90f9754d012
MD5 1eaf577e01f6dd73251dbacc1e99f2ba
BLAKE2b-256 47fddb329924c25cd39def5ecbea0bc0df586b34243a914564d980ba2a3c777b

See more details on using hashes here.

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

Hashes for morilint-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 20d4a00f69f7436cf2b84d77a7957cadd97548b61f2c9037b1167e8347bea185
MD5 41b87811a06c836d89a86557577f9c2a
BLAKE2b-256 8db3ff061a6c45c09bb8c83918a1a5e22c9e68c2b04fb8b7a014038dc6002730

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