.. _sec-plugins-infrastructure: Plugin Infrastructure ===================== .. _sec-plugins-infrastructure-controlproperties: Control Properties ------------------ ``__plugin_name__`` Name of your plugin, optional, overrides the name specified in ``setup.py`` if provided. ``__plugin_version__`` Version of your plugin, optional, overrides the version specified in ``setup.py`` if provided. ``__plugin_description__`` Description of your plugin, optional, overrides the description specified in ``setup.py`` if provided. ``__plugin_author__`` Author of your plugin, optional, overrides the author specified in ``setup.py`` if provided. ``__plugin_url__`` URL of the webpage of your plugin, e.g. the Github repository, optional, overrides the URL specified in ``setup.py`` if provided. ``__plugin_license__`` License of your plugin, optional, overrides the license specified in ``setup.py`` if provided. ``__plugin_implementations__`` Instances of one or more of the various :ref:`plugin mixins ` ``__plugin_hooks__`` Handlers for one or more of the various :ref:`plugin hooks ` ``__plugin_check__`` Method called upon discovery of the plugin by the plugin subsystem, should return ``True`` if the plugin can be instantiated later on, ``False`` if there are reasons why not, e.g. if dependencies are missing. ``__plugin_init__`` Method called upon initializing of the plugin by the plugin subsystem, can be used to instantiate plugin implementations, connecting them to hooks etc. .. _sec-plugins-infrastructure-injections: Injected Properties ------------------- ``self._identifier`` The plugin's identifier. ``self._plugin_name`` The plugin's name, as taken from either the ``__plugin_name__`` control property or the package info. ``self._plugin_version`` The plugin's version, as taken from either the ``__plugin_version__`` control property or the package info. ``self._basefolder`` The plugin's base folder where it's installed. Can be used to refer to files relative to the plugin's installation location, e.g. included scripts, templates or assets. ``self._logger`` A `python logger instance `_ logging to the log target ``octoprint.plugin.``. ``self._settings`` The plugin's personalized settings manager, injected only into plugins that include the :class:`SettingsPlugin` mixin. ``self._plugin_manager`` OctoPrint's plugin manager. ``self._printer_profile_manager`` OctoPrint's printer profile manager. ``self._event_bus`` OctoPrint's event bus. ``self._analysis_queue`` OctoPrint's analysis queue for analyzing GCODEs or other files. ``self._slicing_manager`` OctoPrint's slicing manager. ``self._file_manager`` OctoPrint's file manager. ``self._printer`` OctoPrint's printer management object. ``self._app_session_manager`` OctoPrint's application session manager.