Rozental As A Service
Библиотека для поиска опечаток в строковых константах в исходном коде. Скажем нет опечаткам в докстрингах и пользовательских сообщениях.
ВНИМАНИЕ: Это проект находится в стадии "почти никем не используется в бою и поддерживается очень эпизодически". Используйте на свой страх и риск.
Фамилия Розенталя на английском пишется так: 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.
Как использовать
- Разово запустить на существующей кодовой базе и исправить некоторые опечатки.
- Заполнить
.vocabulary-файл, исправить все существующие опечатки и поставить проверку Розенталя в билд: если кто-то опечатается, билд сломается.
Contributing
Да, пожалуйста!
Мы соблюдаем правила поведения Django и стайлгайд BestDoctor.
Если хотите принять участие в разработке – напишите Илье в Телеграмм, он всё расскажет. Я пишу о себе в третьем лице, ну отлично.
Metadata
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| rozental_as_a_service-1.2.2.tar.gz | 12.7 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|
Security for rozental-as-a-service 1.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.