Skip to main content

Rozental As A Service

Build Status Maintainability Test Coverage PyPI version PyPI - Python Version

Библиотека для поиска опечаток в строковых константах в исходном коде. Скажем нет опечаткам в докстрингах и пользовательских сообщениях.

Говорите и пишите по-русски правильно

ВНИМАНИЕ: Это проект находится в стадии "почти никем не используется в бою и поддерживается очень эпизодически". Используйте на свой страх и риск.

Фамилия Розенталя на английском пишется так: Rosenthal, но эта библиотека называется rozental. Это не безграмотность, это метаирония. :)

Принцип работы

Розенталь парсит исходный код в указанной директории, извлекает из него строковые константы, отфильтровывает из них русские слова и проверяет их правильность с помощью Яндекс.Спеллера. Чтобы не тратить много времени на общение с внешним сервисом, Розенталь кэширует результат работы Я.Спеллера в локальной sqlite базе данных.

Также Розенталь поддерживает .vocabulary-файл: текстовый файл с перечислением точно верных слов. Это нужно для слов, специфичных для проекта и для слов, которые Я.Спеллер считает некорректными, хотя с ними всё ок.

Установка

pip install rozental_as_a_service

Для этого вам понадобится Python 3.7+.

Пример

def start_ad_company(company: Company) -> bool:
    if company.owner.total_budget < company.budget:
        company.owner.send_message('Для содание рекламной компании недостаточно бджета')
        return False
    ...

Использование:

$ rozental test.py
Найденное слово    Возможные исправления
-----------------  ---------------------------
бджета             бюджета, джетта, буджета
содание            создание, задание, создания

Аргументы:

  • --vocabulary_path, -vp – путь до файла словаря. По-умолчанию Розенталь ищет файл .vocabulary в директории для проверки.
  • --db_path, -db – путь до sqlite-базы данных с кэшем для Розенталя. По-умолчанию создаётся .rozental.sqlite в директории для проверки.
  • --exclude, -e – список каталогов, в которых не нужно проверять файлы. Например, tests/,cache/,lib/,dist/.
  • --exit_zero, -ez – в любом случае завершать процесс без ошибки. Пригодится, если вы не хотите ломать билд при наличии опечаток (полезно при внедрении).
  • --process_dots, -pd – проверять файлы и директории, название которых начинается с точки. По-умолчанию они пропускаются.
  • --processes, -p – количество процессов, которые будут использоваться для извлечения строк. По-умолчанию используется доступное количество процессоров.
  • --ban_obscene_words, -obs – считать вхождения мата за ошибки.
  • --backends, -b – Список бэкендов, которые использовать для проверки, через запятую, доступные бэкенды: vocabulary, yaspeller, autocorrect.
  • --verbose, -v – более многословный режим.

Эти же опции можно указать в .cfg-файле (секция rozental), путь до которого указать с помощью --config, -c (по-умолчанию Розенталь ищет setup.cfg в пути для проверки).

Какие файлы умеет смотреть Розенталь

  • .py, .pyi;
  • .po;
  • .md;
  • .html;
  • .js, .tsx.

Как использовать

  1. Разово запустить на существующей кодовой базе и исправить некоторые опечатки.
  2. Заполнить .vocabulary-файл, исправить все существующие опечатки и поставить проверку Розенталя в билд: если кто-то опечатается, билд сломается.

Contributing

Да, пожалуйста!

Мы соблюдаем правила поведения Django и стайлгайд BestDoctor.

Если хотите принять участие в разработке – напишите Илье в Телеграмм, он всё расскажет. Я пишу о себе в третьем лице, ну отлично.

Release files for rozental-as-a-service 1.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rozental-as-a-service 1.2.2
File Size Uploaded
rozental_as_a_service-1.2.2.tar.gz 12.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for rozental-as-a-service 1.2.2
File Interpreter ABI Platform
rozental_as_a_service-1.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 25.5 MB

Release files / rozental_as_a_service-1.2.2.tar.gz

Download URL rozental_as_a_service-1.2.2.tar.gz
Size 12.7 MB
Tags Source
SHA-256 checksum
How to use checksums
dfa56984b839022f190dcbefe5a3a1a3b484cd1908b7bf2e2c6514287b23a916
BLAKE2b-256 checksum
How to use checksums
cc5e36500355beea4fc770d908154a78721bd89a9fbec244a76eef74bb590eaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

Release files / rozental_as_a_service-1.2.2-py3-none-any.whl

Download URL rozental_as_a_service-1.2.2-py3-none-any.whl
Size 12.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
a5b130763d0ba6b3cd9774df08be173e035c98d7cf5ce9385f7db7b1eb8563e3
BLAKE2b-256 checksum
How to use checksums
d67621a2b4d42da7ff9aab0ddf4c405ad77857341b9c1a145ce0b0efc9a46b64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

Release history Release notifications | RSS feed

This release

1.2.2 This release

2 release files

1.2.1

1 release file

1.2.0

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.0

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

0.0.9

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page