When building custom tools for Alteryx using the Python SDK, there is no current way to test these outside of the Alteryx Designer.
This means that your development process is:
- write some code (no code-sense; intellisense; auto-complete because Jupyter; VSCode; Visual Studio; etc cannot access AlteryxEngine or any of the other imports)
- hope
- copy that .py module into your C:\Users\<username>\AppData\roaming\Alteryx\Tools\<toolname>
- fire up Alteryx
- drop this new custom tool on a canvas
- run it to see if you get any errors
- then copy these errors out of Alteryx result window into Notepad to be able to read them
- then go back into your development environment to make changes
- repeat.
This is very painful, and this will directly scare most people away from learning how to create custom tools since it's not only inefficient - but also scary and frustrating for beginners.
Proposal:
Could we instead create mock python libraries; and a development harness (like Google does with Android development in Eclipse) in this SDK where:
- you have full code intelligence (intellisense, autocomplete)
- you can simulate engine events in a test harness (for example in the Android SDK; you can simulate the user rotating their phone, turning off GPS, hitting a volume button, etc).
- you can also write test cases which can run automatically
- then once you know that your tool will work - only then you drop it into the Alteryx Designer environment.
NOTE: This IDE way of thinking also allows you to bring the configuration pieces (like number of inputs; etc) out of raw code and into configuration options.
Although you may be able to do remote debugging by using platforms like PyCharm - that really does not give you the full ability to check in the code of your tool; along with all the test cases; in a harness that allows you to automatically check different events; or to make sure that your tool works in the test harness before deploying.
Thank you
cc: @BlytheE @SteveA @Ozzie @tlarsen7572 @cam_w @jdunkerley79