Getting Started Guide with ARGOS-LABS RPA+ plugin
ARGOS-LABS RPA+ have open architecture using Plugin.
This guide is the Getting Started Guide with ARGOS-LABS RPA+ plugin.
Once you finish this simple plugin guide you can build your own plugin. This plugin program is not only for ARGOS-LABS RPA+ but can be used any kind of purpose as general CLI program.
Running Environments
Plugin can be developed in Windows, Linux or Mac. However this guide is built these environments:
- OS: Windows 10 Pro
- Prerequsite Programs:
- Python interpreter 3.7.x
- PyCharm CE IDE
PyCharm and Python interpreter support Linux and Mac also, You can build this environment in Mac or Linux.
Our plugin manager and SDK is made by Python programming language. So the environments are familiar to most of python programmer.

Prerequsite Programs
First of all let’s install PyCharm IDE.
PyCharm
If you have already your own IDE then skip to the next section.
- Open Web browser. (Next example, Chrome browser is used but other browsers are fine.)
- Goto google search
- Type
pycharm download - You can see
Download PyCharmpage. - Click the
Downloadbutton at Community to download PyCharm setup program. (You can use PyCharm Community Edition without payment)If you want to get Professional editon with payment, you can get it. However it’s enough to develop plugin program with Community Edition.

- After download the PyCharm setup program, run it.
- At welcome page just click
Next>button.

- There is a setup widzard page, “Choose Install Location”.
- Just click the
Next>button to use default location if you have any special reason.

- There is a setup widzard page, “Installation Options”.
- Default is nothing checked.
- Just click the
Next>button to use default options if you have any special reason. - There is another explanation for PyCharm settings.

- There is a setup widzard page, “Choose Start Menu Folder”.
- Just click the
Next>button to use default Menu Folder if you have any special reason.

- There is the last setup widzard page, “Completing PyCharm Community Edition Setup”.
- Please do not check
Run PyCharm Community Editionat this time because another Python Interpreter installation is needed. - Click the
Finishto complete PyCharm setup program.

Python 3
Next is for setting up Python Interpreter.
- Open Web browser.
- Goto google search
- Type
python 3.7 windows download. - Select first result, Download Python - Python.org

- There is a Python Download page.
- Select Windows. (You can choose Mac OS X or Linux platform according to your platform.)
- Click
Python 3.7.3to download Python Setup program. (The most recent version of March 2019 is 3.7.3. You can download the above version will be fine.)We recommand to install Python 3.7 but 3.6 is fine. The minimal required version is 3.6.
For Windows there are two kind of Python, 32-bit and 64-bit. We recommand 32-bit Python even though your Windows system is 64-bit.

- After download the Python Setup program, run the setup program.
- There is the first widzard page, “Install Python 3.7.3 (32-bit)”
- First check “Add Python 3.7 to PATH”.
- Select “Customize installation”.

- There is a widzard page, “Optional Features”.
- Uncheck all options except
pip. - Click the
Nextbutton.

- There is a widzard page, “Advanced Options”.
- Check “Create shortcuts for installed applications”.
- Check “Add Python to environment variables”
- Uncheck the rest options.
- Please type
C:\Python37-32at “Customize install location” input box. - Click the
Installbutton.

- There is the last widzard page, “Setup was successful”.
- Just click
Closebutton.

- Now that we install the python interpreter let us check it is installed well or not.
- Execute
CMD.EXE. (WindowsKey+Rand then typecmdand thenEnterkey)

- type
python -Vat command prompt. It must sayPython 3.7.3. - type
pip listto list installed modules. Next shows the command and results.In example machine, the user name is
Administrator. So the prompt showsC:\Users\Administrator>. If your user name is toor then then prompt will showC:\Users\toor>.
C:\Windows\system32>python -V
Python 3.7.3
C:\Windows\system32>pip list
Package Version
---------- -------
pip 19.0.3
setuptools 40.8.0

You installed PyCharm IDE and Python Interpreter to develop ARGOS-LABS RPA+. The installation is needed only once.
Next we will have some preparation process.
Preparation
There are some needs to do before starting development. It is related to environmental configuration.
Making Virtual Environment
VirtualEnv is the python’s independent running environment. venv is one of such virtual environmental implementations.
You can make your own virtual environment as follows:
- Change into home folder using command:
cd %USERPROFILE%at first. - Create a new python virtual environment named
py3using command:python -m venv py3- You can make venv as much as you want with different name.
- You can change each venv.
pipis the python package manager.- venv,
py3has some folders.- Scripts: some execuable files including
python.exeandpip.exe. - Lib\site-packages:
- If you install some third-party modules with
pipthen such modules will be located in this folder. (Some other platform usedist-packages) - If you install our plugin module using alabs.ppm (will explain later) then our plugin modules will be located in this folder.
- If you install some third-party modules with
- Scripts: some execuable files including
- Change into this
py3virtual environment using command:py3\Scripts\activate.- After changed into venv your prompt will be changed
C:\Users\user>into(py3) C:\Users\user>. The prompt will be prefixed with(name-of-venv). - At this virtual environment your installed modules including plugin programs are valid only at this virtual environment. This means each virtual environment has it’s own running environment with dependent modules or plugins.
- After changed into venv your prompt will be changed
pip listcommand shows the modules including plugins which are installed bypip install ...command.(py3) C:\Users\user>prompt meanspy3virtual environment.- Every modules or plugins in
py3venv are only valid onpy3venv.
C:\>cd %USERPROFILE%
C:\Users\Administrator>python -m venv py3
C:\Users\Administrator>py3\Scripts\activate
(py3) C:\Users\Administrator>pip list
Package Version
---------- -------
pip 19.0.3
setuptools 40.8.0

Plugin Package Manager
Enter Virtual Environment
Above Making Virtual Environment section shows how to make a new virtual environment named py3. Once the py3 virtual environment is made, next time you just enter the virtual environment.
C:\>cd %USERPROFILE%
C:\Users\Administrator>py3\Scripts\activate
(py3) C:\Users\Administrator>
Or directly the execute activate.
C:\Users\Administrator>%USERPROFILE%\py3\scripts\activate
(py3) C:\Users\Administrator>
When everything is done, you need to exit the virtual environment. you can do this deactivate command.
(py3) C:\Users\Administrator>deactivate
C:\Users\Administrator>

Install Plugin Package Manager
Our plugin SDK include two parts.
- Plugin Package Manager named
alabs.ppm - Plugin library module named
alabs.common
Next explanation is how to install Plugin Package Manager.
- You need command prompt which is entered virtual environment. You can refer above
Enter Virtual Environmentsection. - Install with command:
pip install -U alabs.ppm alabs.icon --index https://pypi-official.argos-labs.com/pypi
(py3) C:\Users\Administrator>pip install -U alabs.ppm alabs.icon --index https://pypi-official.argos-labs.com/pypi
Looking in indexes: https://pypi-official.argos-labs.com/pypi
Collecting alabs.ppm
Downloading https://pypi-official.argos-labs.com/api/package/alabs-ppm/alabs.ppm-1.627.1628-py3-none-any.whl
Collecting alabs.icon
Downloading https://pypi-official.argos-labs.com/api/package/alabs-icon/alabs.icon-1.711.2351-py3-none-any.whl (136kB)
100% |████████████████████████████████| 143kB 655kB/s
Collecting alabs.common (from alabs.ppm)
Downloading https://pypi-official.argos-labs.com/api/package/alabs-common/alabs.common-1.612.1212-py3-none-any.whl
Collecting requests (from alabs.ppm)
Using cached https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl
Collecting requirements-parser (from alabs.ppm)
Using cached https://files.pythonhosted.org/packages/03/80/eb6ba1dd0429089436e90e556db50884ea21da060b10f2e5668c4cac99da/requirements-parser-0.2.0.tar.gz
Collecting PyYAML (from alabs.ppm)
Using cached https://files.pythonhosted.org/packages/f5/93/b5ebdabc7e450418c26a1395d995d878a59bc4272d6ac63d2ada922126ad/PyYAML-5.1.1-cp37-cp37m-win_amd64.whl
Collecting beautifulsoup4 (from alabs.ppm)
Using cached https://files.pythonhosted.org/packages/1d/5d/3260694a59df0ec52f8b4883f5d23b130bc237602a1411fa670eae12351e/beautifulsoup4-4.7.1-py3-none-any.whl
Collecting icon-font-to-png (from alabs.icon)
Using cached https://files.pythonhosted.org/packages/3d/70/c3b6c5904ae8592cb97c3ddb5de40801837f66922aa140e285d4a2e49a42/icon_font_to_png-0.4.1-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests->alabs.ppm)
Using cached https://files.pythonhosted.org/packages/69/1b/b853c7a9d4f6a6d00749e94eb6f3a041e342a885b87340b79c1ef73e3a78/certifi-2019.6.16-py2.py3-none-any.whl
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests->alabs.ppm)
Using cached https://files.pythonhosted.org/packages/e6/60/247f23a7121ae632d62811ba7f273d0e58972d75e58a94d329d51550a47d/urllib3-1.25.3-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests->alabs.ppm)
Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting idna<2.9,>=2.5 (from requests->alabs.ppm)
Using cached https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl
Collecting soupsieve>=1.2 (from beautifulsoup4->alabs.ppm)
Using cached https://files.pythonhosted.org/packages/35/e3/25079e8911085ab76a6f2facae0771078260c930216ab0b0c44dc5c9bf31/soupsieve-1.9.2-py2.py3-none-any.whl
Collecting Pillow>=4.0.0 (from icon-font-to-png->alabs.icon)
Using cached https://files.pythonhosted.org/packages/ae/96/6f83deebfcd20a5d4ad35e4e989814a16559d8715741457e670aae1a5a09/Pillow-6.1.0-cp37-cp37m-win_amd64.whl
Collecting six>=1.10.0 (from icon-font-to-png->alabs.icon)
Using cached https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Collecting tinycss>=0.4 (from icon-font-to-png->alabs.icon)
Using cached https://files.pythonhosted.org/packages/05/59/af583fff6236c7d2f94f8175c40ce501dcefb8d1b42e4bb7a2622dff689e/tinycss-0.4.tar.gz
Installing collected packages: certifi, urllib3, chardet, idna, requests, PyYAML, alabs.common, requirements-parser, soupsieve, beautifulsoup4, alabs.ppm, Pillow, six, tinycss, icon-font-to-png, alabs.icon
Running setup.py install for requirements-parser ... done
Running setup.py install for tinycss ... done
Successfully installed Pillow-6.1.0 PyYAML-5.1.1 alabs.common-1.612.1212 alabs.icon-1.711.2351 alabs.ppm-1.627.1628 beautifulsoup4-4.7.1 certifi-2019.6.16 chardet-3.0.4 icon-font-to-png-0.4.1 idna-2.8 requests-2.22.0 requirements-parser-0.2.0 six-1.12.0 soupsieve-1.9.2 tinycss-0.4 urllib3-1.25.3
-Uor--upgradeoption afterinstallcan upgrade to latest version.

.argos-rpa.conf
alabs.ppm Plugin Package Manager use configuration file .argos-rpa.conf located in C:\Users\Administrator or %USERPROFILE%.
First create this file.
- In
CMD.EXEprompt goto User folder with commandcd %USERPROFILE%. - Make and edit with
notepad .argos-rpa.confYou can use explorer to create
.argos-rpa.conffile.

The contents of configuration is:
---
version: "1.1"
repository:
url: https://pypi-official.argos-labs.com/pypi
req: https://pypi-req.argos-labs.com
private-repositories:
- name: pypi-demo
url: https://pypi-demo.argos-labs.com/simple
username: guest
password: guestpasswd
The configuration format is YAML.
- repository is the official plugin module by ARGOS-LABS.
- url is the default address to access the office repository of ARGOS-LABS.
- Do NOT change the
https://pypi-official.argos-labs.com/pypi. - Once your plugin is doing well in you private repository and then you can submit the plugin as candidate for the official repository.
- If your plugin is submitted to the ARGOS-LABS and your candidate is evaluated and checked not to be harmful.
private-repositoriescan contain the list of private repositories.- You can biild your own private pypiserver.
- Each list item can have next four key:value pairs.
nameis the unique name to use atalabs.ppmurlis the URL address to access your own private pypi server.usernameandpasswordis the user credential to upload to this pypiserver.- Currently private pypiserver support
htaccesscredential method. - If another credential method must be used then contact us.
- If
alabs.ppm uploadcommand to upload plugin to private pypiserver is never used, then private-repositories can be empty.
- If
- Currently private pypiserver support
The simplist form is:
---
version: "1.1"
repository:
url: https://pypi-official.argos-labs.com/pypi
req: https://pypi-req.argos-labs.com
private-repositories:

alabs.ppm
alabs.ppm plugin package manager has many command options.
- To begin with
CMD.EXEenter virtual environment with command,%USERPROFILE%\py3\Scripts\activate alabs.ppmwithout any parameter says help output.
(py3) C:\work\plugin-demo-master\argoslabs\ai\tts>alabs.ppm
c:\users\administrator\py3\lib\site-packages\alabs\ppm\__init__.py:660: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
dcf = yaml.load(ifp)
Need command for ppm.
usage: alabs.ppm [-h] [--new-py] [--venv] [--clean] [--verbose]
{test,build,submit,upload,clear,clear-py,clear-all,get,install,show,uninstall,search,dumpspec,list,list-repository,pip,py,setup}
...
ARGOS-LABS Plugin Package Manager
This manager use private PyPI repository.
set C:\Users\Administrator\.argos-rpa.conf as follows:
---
version: "1.1"
repository:
url: https://pypi-official.argos-labs.com/pypi
req: https://pypi-req.argos-labs.com
private-repositories:
- name: pypi-demo
url: https://pypi-demo.argos-labs.com/simple
username: guest
password: guestpasswd
* repository is the main plugin modules's store
* url is the url of ARGOS RPA+ main pypi module
NB) ARGOS RPA+ main module is not allowed to upload directly
but submit first and then ARGOS team to decide
* private-repositories are the list of user's private plugin modules's store
* name is the name of private repository (for example "internal", "external")
* url is the url of pypi module
* username is the user name at pypi repository
* password is the user password at pypi repository
NB) username and password is only needed for upload
upload is only valid for private repositories
positional arguments:
{test,build,submit,upload,clear,clear-py,clear-all,get,install,show,uninstall,search,dumpspec,list,list-repository,pip,py,setup}
ppm command help
test test this module
build build this module
submit submit to upload server
upload upload this module to pypi server
clear clear all temporary folders
clear-py clear py.win32 virtual environment
clear-all clear all temporary folders and virtual environment
get get configuration
install install module
show show module info
uninstall uninstall module
search search keywords
dumpspec dumpspec keywords
list list installed module
list-repository list all modules at remote
pip pip command
py python command
setup setup command with setup.yaml
optional arguments:
-h, --help show this help message and exit
--new-py making new python venv environment at py.win32
--venv if set use package top py.win32 for virtual env. If not set. Use system python instead.
--clean, -c clean all temporary folders, etc.
--verbose, -v verbose output eg) -v, -vv, -vvv, ...

One of commands is searching specific plugin with a name.
The most official plugin modules are started with argoslabs. prefix.
You can search all plugin modules:
(py3) C:\work\plugin-demo-master\argoslabs\ai\tts>cd \
(py3) C:\>alabs.ppm search argoslabs
c:\users\administrator\py3\lib\site-packages\alabs\ppm\__init__.py:660: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
dcf = yaml.load(ifp)
start search ...
argoslabs.data.rdb (1.313.1857) - 1.313.1857
argoslabs.api.rossum (1.327.1355) - 1.327.1355
argoslabs.api.rest (1.315.1054) - 1.315.1054
argoslabs.data.excel (1.325.1359) - 1.325.1359
argoslabs.data.json (1.324.2344) - 1.324.2344
argoslabs.ai.tts (1.330.1500) - 1.330.1500
done.

Development
Now that all kind of preparation is done, it is time to start development.
Preparation of plugin development
Before starting plugin development there is no need all necessary files from the empty folder. We prepared the basic template argos.demo.* sample. This can be a good to use as a template.
Copy from template
To download argos.demo.* template, first visit site https://github.com/argos-labs/plugin-demo.

Click the “Clone or download” and then click Download ZIP button.

- If you unzip the downloaded zip then there is a folder named
plugin-demo-master. - Make a new folder
C:\work. - Move the folder
plugin-demo-masterintoC:\work.

Starting PyCharm
It is time to run PyCharm IDE.
- Double click the desktop’s
JetBrains PyCharm ...icon. - After flash window there come up
Welcome to PyCharmwindow. - Select
Open.

- Select foler
C:\work\plugin-demo-master. - Click
OKbutton.

- Next captured image shows the opened status just after starting.

PyCharm Settings
Just after starting this project you have to do some settings.
- Open
Filemenu and selectSettings...or just type short-cut keyCtrl+Alt+S.

Every project must have specific python interpreter.
- In
Settingswindow, selectProject: plugin-demo-masterand thenProject Interpreter.

- To add interpreter click right-most icon at
Project Interpreterrow. - Select
Add...

- Select
Existing environment. - Select
C:\Users\Administrator\py3\Scripts\python.exe. (please replaceAdministratorwith your own user id) - Click
OKbutton.

After select C:\Users\Administrator\py3\Scripts\python.exe interpreter, there are alabs.ppm and alabs.ppm modules in module list.

Next is optional options.
- In
Settingswindows searchrightkeyword at secher input. - In
Editor>Code Stylechange120into80atHard wrap atitem.Python coding convention PEP8 guides
80columns for editing.

- In
Settingswindows searchtypokeyword at secher input. - In
Editor>InspectionsuncheckTypo. If you want only valid dictionary word at script then leave this item checked.

First Run / Debug
This pluin-demo-master project has two demo plugin:
argoslabs\demo\helloworld: The most simple but complete plugin sample.argoslabs\demo\argtest: The most complex user arguments sample.
Every plugin has it’s own unittest.
Let’s just debug the unittest for argoslabs\demo\argtest.
Debug unittest
- Left panel show
Projectlist. - Double click
argoslabs\demo\helloworld\tests\test_me.py. - Then in editor pane
test_me.pyshows up.

- Right click
argoslabs\demo\helloworld\tests\test_me.py. - Select
Debug 'Unitests in test_me...'. - Then
Debugpane comes up at bottom.

- There are four unit tests.
- The result says,
Ran 4 tests in 0.028s. OK

- Unittest must be implemented and file name must be starts with
test_.alabs.ppm testautomatically run all test files starts withtest_.
Making New Plugin
It’s time making a new plugin named argoslabs.ai.tts.
This plugin source is located in https://github.com/argos-labs/plugin-tts.
Making proper python package
Let us categorize argoslabs / ai / tts that is to say argoslabs.ai.tts. Above argoslabs.demo.helloworld plugin has two python package demo and helloworld.
So next steps makeing ai and tts python package.
- To create a
aipython package, right click theargoslabsfolder atProjectpane and then selectNew>Python Package.

- Type
aiatNew Packagewindow. - Click
OKbutton. - And then sub folder named
aiis created fromargoslabs.

- To create a
ttspython package, right click theaifolder and then selectNew>Python Package.

- Type
ttsatNew Packagewindow. - Click
OKbutton. - And then sub folder named
ttsis created fromai.

Copying from HelloWorld
Now let us copy all files and sub folder from helloworld to tts.
- Expand folder
argoslabs\demo\helloworld. - Click first
testssub folder. - Press down
Shiftkey and click the last filesetup.yamland then releaseShiftkey. This action select all sub folder and files.

- In selected status, right click and select
Copy.

- Right click
argoslabs\ai\ttsand then selectPaste.

- The
Copywindow shows up. - Click
OKbutton.

- The
Copywindows says, “File ‘init.py’ already exists in directory ‘C:/work/plugin-demo-master/argoslabs/ai/tts’. - Click
Overwritebutton.

init.py
Plugin’s main script is located at __init__.py that python package so the file is argoslabs\ai\tts\__init__.py.
We can see the doc string from line 3 to 13 in __init__.py editor window.
And some comments from line 13 to 23. You can change any contents for this.

You can change the main function from helloworld into do_tts.
- Select by double click
helloworldat line 33. - Type
Shift+F6keys. - At
Renamewindow typedo_tts. - Click
Refactorbutton.

Refactoring Previewpane comes up at bottom side.- Click
Do Refactorbutton.

- At lines from 53 to 61 there is a instance definition of
ModuleContextclass withwithclause. - This
ModuleContextclass defines the plugin itself.owneris the plugin owner. Official plugin’s owner isARGOS-LABS.groupis the group name for plugin.vresionis the specific version.platformdefines the list of running platform.windowsis for Windows.darwinis for Mac OS X.linuxis for Linux.
output_typeis just for result type. Currently this option is not used any more.display_nameis the displayed name atStu.icon_pathis theicon.*icon file folder.get_icon_path(__file__)is the defult with same folder with__init__.py.descriptionis the description.

change icon
The helloworld default icon is:

But we can change it with:

- Your plugin will be submitted to ARGOS-LABS plugin submitted repository.
- The icon can be changed by ARGOS-LABS for consistency with other icons.
prerequisite modues
We need some other modules already provided offcial pypi repository.
requirements.txt
In python prerequisite third party modules defined in requirements.txt file.
We add two prerequisite modues.
gTTSmodule is for google TTS engine.playsoundmodule is for playmp3orwavesound file.

Install such prerequisite modues
You can install the prerequisite modues:
- Run
CMD.EXEand enter virtual environment with commandpy3\Scripts\activate. - Change into the plugin folder with command
cd \work\pluin-demo-master\argoslabs\ai\tts. - You can install modules with command
pip install -r requirements.txt.

Completion of init.py
Now you can complete the __init__.py script.
You can get the complete
argoslabs.ai.ttssource.
argoslabs.ai.tts plugin takes 5 arguments, so we define 5 argument definition.
5 arguments consists three options and two parameters:
- There are three options.
--save-mp3or-ooption is for saving result TTSmp3file at line 172 ~ 174. This option need filename to save.--langor-loption is for select the language used in TTS engine. Default isen, english. This argument need language made by two alphabet.--slowor-soption is flag to say slowly or not. This option need no more argument.
- There are two parameters which means mandatory arguments at line 182 ~ 185.
engineargument must be defined. At this source onlygoogleis allowed.msgargument must be defined for saying.
- Above argument definition is the main key to use ARGOS-LABS RPA+
Stuprogram.- We explain it in detailed article.

We complete the do_tts function at line 118~151.
One of the main advantage using python is simple code than any other programming language.

Unittest for plugin
You can edit test_me.py unittest file, argoslabs\ai\tts\tests\test_me.py.
make your own unittest
- Edit top comments or doc string with your own information.

Then we can define each unittest functions like testnnnn_...:
test0100_empty_parameter: empty user argument make error, exception.test0110_unknown_engine: other thangoogleengine make error, exception.test0120_missing_msg: withoutmsgparameter make error, exception.test0200_say_hello: say “Hello world?” in english.test0210_say_hello_slow: say “Hello world?” in english more slowly.test0250_say_hello_ko: say some words in korean.test0260_say_hello_ja: say some words in japaneese.test0270_say_hello_zh_cn: say some words in chineese.test0300_say_hello_save_mp3andtest0310_say_hello_save_mp3: say some words in english and keep it withmp3file.
The more unittest make the program more robust moreover when you add new feature all previous unittest used as regression test.

debug unittest
You can debug the test_me.py unittest.
- Right click the
test_me.pyfile and then selectDebug 'Unittests in test_me...'.

Debugpane comes up bottom side.- Left
Test Resultssays the reuslt of all unittest. - Keep debugging the unittest until every unittest is passed.

configuration of plugin
setup.yaml is the configuration of plugin.
This is related with setup.py specification.
Note. Be careful with
argoslabs.ai.ttsbefore['icon.*']. Copyed contents isargoslabs.demo.helloworld. If this name is not matched the icon will not show.

build and submit
Once you finished the __init__.py main script and test_me.py unittest. It’s time to build and submit.
Edit build.bat
All of these job can be run by build.bat in Windows using alabs.pps plugin package manager.
alabs.ppm --venv testwill test all test scripts starts withtest.--venvmake the new temporary virtual environment at%USERPROFILE%\py.windows.- Using this venv every dependent modules are installed from the clean environment.
- If any unittest is not ok, then exit with
test have errormessage.
REM test
alabs.ppm --venv %VB% test
IF NOT %ERRORLEVEL% == 0 (
echo "test have error"
goto errorExit
)
alabs.ppm --venv buildwill build release type ofwheel.- If build command failed, then exit with
build have errormessage.
- If build command failed, then exit with
REM # build
alabs.ppm --venv %VB% build
IF NOT %ERRORLEVEL% == 0 (
echo "build have error"
goto errorExit
)
alabs.ppm --venv submitwill submit zipped plugin to ARGOS-LABS plugin upload server.- Your uploaded zipped plugin can be a candidate of official ARGOS-LABS plugin available to all users.
- Your candidate code will be scanned and checked with any security issue or harmful code.
- If your candidate passed then your plugin published to official plugin repository,
pypi.argos-labs.com. - You can skip this
submitprocess, instead you can upload this plugin to your own private pypi server and the result is noticed to you by email which is described atsetup.yaml. - If submit command failed, then exit with
submit have errormessage.
REM # submit to repository
alabs.ppm %VB% submit
IF NOT %ERRORLEVEL% == 0 (
echo "submit have error"
goto errorExit
)
alabs.ppm --venv uploadwill upload your plugin release to your private pypi server.- If there is no parameter after upload then then first item at
private-repositorieslist at.argos-rpa.conffile. - If you want choose one private pypi server then
nameitem will be followed after upload command. - You can use your own plugin for your site only with at your own risk.
- If there is no parameter after upload then then first item at
REM # upload to private repository
alabs.ppm --venv %VB% upload
IF NOT %ERRORLEVEL% == 0 (
echo "upload have error"
goto errorExit
)
- You can edit your build.bat. If you do not know well then just use this
build.bat.- In Mac OS X or Linux platform you can use
build.sh.

Run the build.bat
You can run the build.bat.
- Run
CMD.EXEand enterpy3virtual environment. - Go to the
ttsfolder. - Run the
build.bat
C:\>%USERPROFILE%\py3\Scripts\activate
(py3) C:\>cd \work\plugin-demo-master\argoslabs\ai\tts
(py3) C:\work\plugin-demo-master\argoslabs\ai\tts>build.bat

A few minites later you can see "Build all success!". Then all is done for your side.

Good luck!
