Диагностики amxpyc#
Компилятор проверяет плагин по исходному коду, ничего не запуская. Ошибки останавливают
сборку, предупреждения — нет (кроме amxpy build --werror). Те же коды показывает
VS Code при сохранении файла — через Flake8 с плагином amxpy.
Таблица собрана из кода компилятора; … — подставляемая часть сообщения.
Плагин и его метаданные#
| Код | Уровень | Сообщения |
|---|---|---|
AMX001 |
ошибка | синтаксическая ошибка: … |
AMX002 |
ошибка | в плагине нет Plugin(...): создайте его, например plugin = Plugin("Имя") |
AMX003 |
ошибка | укажите название: Plugin("Имя", version="1.0.0") … должно быть строкой-литералом |
AMX004 |
ошибка | Plugin(...) создаётся больше одного раза |
AMX005 |
ошибка | в папке плагина нет __init__.py ожидается файл .py или папка с __init__.py |
AMX006 |
ошибка | имя плагина … должно быть идентификатором Python |
События#
| Код | Уровень | Сообщения |
|---|---|---|
AMX100 |
ошибка | укажите событие: @plugin.on(events.Имя) ожидается класс события из amxpy.events неизвестное событие … |
AMX101 |
ошибка | у … нет поля … |
AMX102 |
ошибка | обработчик события принимает один аргумент — событие |
AMX103 |
предупреждение | …() блокирует кадр сервера; используйте … |
AMX104 |
предупреждение | событие используется после await, когда оно уже недействительно — скопируйте нужные поля до первого await |
AMX105 |
предупреждение | в post-обработчике отменять поздно в post-обработчике изменение события ни на что не влияет |
AMX106 |
ошибка | … не возвращает результата … нельзя отменить ….… только для чтения |
AMX107 |
ошибка | у события … нет …-фазы |
AMX108 |
ошибка | post должен быть True или False у … нет поля … для фильтра… |
Нативы и форварды#
| Код | Уровень | Сообщения |
|---|---|---|
AMX201 |
ошибка | у натива только позиционные параметры параметр …: укажите тип (int, float, bool, str или Player) тип … не переводится в Pawn тип … не переводится в Pawn (int, float, bool, str, Player) |
AMX202 |
ошибка | натив … объявлен дважды форвард … объявлен дважды |
AMX203 |
ошибка | натив не может быть async: Pawn ждёт ответ сразу |
AMX204 |
ошибка | недопустимое имя натива … |
AMX205 |
предупреждение | натив …: укажите тип результата (-> int, -> None ...) |
AMX206 |
ошибка | имя форварда должно быть строкой-литералом из латиницы |
Импорт модуля#
| Код | Уровень | Сообщения |
|---|---|---|
AMX301 |
предупреждение | …() выполняется при импорте модуля; перенесите в обработчик events.Init — иначе это мешает горячей перезагрузке |
Команды и cvar'ы#
| Код | Уровень | Сообщения |
|---|---|---|
AMX401 |
ошибка | укажите имя команды: @plugin.command("/hp") имя серверной команды должно быть строкой-литералом из латиницы имя команды должно быть строкой-литералом недопустимое имя команды … |
AMX402 |
ошибка | первый параметр обработчика команды — игрок, который её вызвал |
AMX403 |
ошибка | команда … объявлена дважды |
AMX404 |
ошибка | тип cvar'а: bool, int, float или str prefix должен быть строкой-литералом |
AMX405 |
ошибка | значение по умолчанию должно быть литералом значение … не подходит под тип … |
AMX406 |
ошибка | недопустимое имя cvar'а … cvar … объявлен дважды |