|
|
A Python plugin is a folder located in the user home dir.
|
|
|
Documents\AnyWave\Plugins\Python on Windows.
|
|
|
/home/username/AnyWave/Plugins/Python on Linux.
|
|
|
/users/username/AnyWave/Plugins/Python on MacOS.
|
|
|
|
|
|
# Requirements
|
|
|
The annywave_plugin_api package : https://pypi.org/project/anywave-plugin-api/1.0/
|
|
|
|
|
|
## Setup your python installation in the Preferences
|
|
|
|
|
|
![image](uploads/113e711808875537d38ef0068a465354/image.png)
|
|
|
|
|
|
If you want to use a venv, just pick the folder of your venv, AnyWave will detect the Python interpreter.
|
|
|
|
|
|
## Install the anywave package into your Python environment
|
|
|
First, make sure pip supports wheel format:
|
|
|
````bash
|
|
|
python pip install --upgrade pip
|
|
|
````
|
|
|
Install the package:
|
|
|
````
|
|
|
pip install anywave-plugin-api==1.0
|
|
|
````
|
|
|
|
|
|
|
|
|
# 1. Starting with anywave v2105 you can use the Plugin Creation Tool to create a new plugin.
|
|
|
![image](uploads/01116de2544c9f699dac89bacd3adeca/image.png)
|
|
|
|
|
|
# 1.1 Make it by your own
|
|
|
Create a folder in AnyWave/Plugins/Python directory.
|
|
|
In that directory, create two files:
|
|
|
- *desc.txt*
|
|
|
- *\_\_main.py\_\_*
|
|
|
|
|
|
# 1.1.1 desc.txt
|
|
|
This file is a simple text file that must contain the following lines:
|
|
|
*name = My Plugin*
|
|
|
*description = Do something on data*
|
|
|
|
|
|
# 1.1.1.1 optional lines
|
|
|
To tune up the behavior of your plugin you may add some flags to tell AnyWave what you plugin can do:
|
|
|
*flags=nodatarequired* -> this line will inform anywave that your plugin can run even if no data file is open.
|
|
|
*flags=canrunfromcommandline* -> this flag indicates that your plugin can be run from the command line.
|
|
|
You can combine flags by separating them with a colon (:)
|
|
|
flags=nodatarequired:canrunfromcommandline
|
|
|
|
|
|
Put your plugin in a submenu, by adding the following line:
|
|
|
*category=Process:MyCategory:My plugin*
|
|
|
This line will create a sub menu called MyCategory in the Processes Menu of AnyWave and a link to launch the plugin.
|
|
|
|
|
|
# 1.1.2 \_\_main\_\_.py
|
|
|
This is the module AnyWave will execute as your main entry point for the plugin.
|
|
|
The first lines of code must be the following:
|
|
|
````python
|
|
|
import anywave, sys
|
|
|
|
|
|
anywave.init(sys.argv)
|
|
|
````
|
|
|
|
|
|
# 2. Compiled plugin
|
|
|
There are several python tools to build an exe file from a python package, like pyexec.
|
|
|
This is supported by AnyWave that will run the py.exe as if it was a regular python plugin.
|
|
|
Inform AnyWave to run an exe by adding the following line in desc.txt:
|
|
|
*compiled plugin=nameofexefile*
|
|
|
|
|
|
# 3. check that AnyWave detects your plugin at startup
|
|
|
Close and relaunch AnyWave, your plugin should appear in the Processes menu. |