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

Uploaded Python 3

File details

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

File metadata

  • Download URL: morilint-0.1.10.tar.gz
  • Upload date:
  • Size: 29.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.10.tar.gz
Algorithm Hash digest
SHA256 54c2186c35e54a3873e848586a851954ce69656292ad7095d6d0882296e8cf7c
MD5 3e0d05f6bdd6267eadb9a1a0826188a2
BLAKE2b-256 b6687ab158dbf86e9b205688e941180e440b90f7ac8881cac0374044bc239eb2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: morilint-0.1.10-py3-none-any.whl
  • Upload date:
  • Size: 34.8 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.10-py3-none-any.whl
Algorithm Hash digest
SHA256 1bc9c26ae0234c78b6d842339ab88650dc8aa9fa1081e9e9d5d8359514c6e566
MD5 16ab63355a152b6db16b792463d907a5
BLAKE2b-256 c2d1fdd6ee4c887d4e395ddd78dfdf385276b6e56c89a01afa30a19581525e10

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