PyNesca/docs/developing_custom_module.ru.md

2.6 KiB
Raw Blame History

Создание собственного модуля

Каждый модуль PySca - класс, отвечающий за конкретные задачи в цепочке сканирования. Чтобы ваш код стал модулем сканера, необходимо соблюдать следующие условия:

  • Модуль должен представлять из себя отдельный файл, содержащий в себе единственный класс, в методах которого и реализована логика модуля. Имя файла модуля должно совпадать с именем содержащегося в нём класса.
  • Наследование класса модуля от одного из абстрактных классов AbstractParser, AbstractAddressGenerator, AbstractScanner, AbstractStorage в соответствии с функционалом.
  • Расположение файла модуля в общей системе папок PySca зависит от класса-родителя модуля и определяется по этой таблице:
    Класс-родитель Адрес1
    AbstractParser modules/address_generation
    AbstractAddressGenerator modules/address_generation
    AbstractScanner modules/network_scan
    AbstractStorage modules/storage
  • Реализация всех методов класса-родителя с соблюдением условий:
    • Аннотация всех аргументов методов (если они необходимы)2 ключами требуемых значений.
    • Аннотация возвращаемых методами значений в виде множества/списка возвращаемых ключей (если метод должен что-то возвращать).
    • Соответствие возвращаемых методом значений аннотации - возвращение словаря с парами ключ-значение, где ключ - элемент из списка заявленных ключей, а значение - соответствующие ему данные, либо возвращение None.

  1. Все адреса приведены относительно корневого каталога PySca. ↩︎

  2. Разумеется, self в аннотации не нуждается, более того, аннотация self может сломать сканер. ↩︎