community
cancel
Showing results for 
Search instead for 
Did you mean: 

Dev Space

Customize & extend the power of Alteryx. SDKs, APIs, custom tools, and more!
SOLVED

Python Tool Challenge | BUILD a Python tool and win a prize!

Alteryx Certified Partner
Alteryx Certified Partner

I love this tool!  As a fellow Teknion consultant, I have used many of Jonathan's brilliant tools, and this is one where I can see a lot of uses.  For example, I could be waiting for files to populate in a directory, however, they arrive on a random basis, and don't come in on a regular schedule.  I may have a daily process that checks this directory to see if any (or a minimum number of) files have been uploaded, then run the process - with the Terminator tool, I can simply have it check to see if a minimum number of files have been loaded into the directory; if yes, then it kicks off the rest of my process.  Very cool, Jonathan!

 

@Deanna

Late to play but here's my go - A grouped record id.

 

2018-07-24_14-17-23.png

 

Source code on GitHub: https://github.com/jdunkerley/AlteryxAddIns/tree/master/OmniBus.GroupedRecordID

 

Supports presort XML to group and sort the incoming records. Packaged demo workflow attached as well.

 

Doesn't currently support adding as the first column. Aiming to add this. Additionally, UI is a bit chunky and would rather have a custom widget but haven't had time yet.

Alteryx
Alteryx

Hey guys. I have a very niche, but in my very humble opinion, a super fantastic probably best tool you'll ever encounter. 

 

Introducing.......a Translation Tool! So basically, it'll take strings in a field and translate it to a language of you're choosing. In this introductory version, I have about like 10 languages. Now you may ask, why not just use the API? Well that's because it costs money after a certain amount of requests, plus, this is cooler. Basically, this utilizes a python package, called Selenium, which process clicks in a web browser. This means it's slower than an API, but will get the job done. It has capabilities for a handful of browsers, but this tool utilizes Google Chrome. With the installation of the Tool, it will create a virtual python environment that installs the selenium package as well as the chromedriver.exe found here

 

Translate_Example.PNG

 

There are some features I would consider making with the Tool; the main two would be to have an option for headless and another for time delay between translations. Let me explain - 

1. Going Headless - this basically means hiding the browser that is automatically "clicking" or showing it. Showing is nicer, just because it's cool to see the machine do everything in front of your eyes, but hiding makes the process look nicer? Idk, I'd consider having it as an option (it's currently hidden)

*It can be manually changed at this line by commenting it out

chrome_options.add_argument("--headless")

 

2. Time Delay - Sometimes the Engine processes faster than the browser can "click". So the more this value is increased, it will capture everything and translate appropriately. Currently, I have it set to 0.5 seconds between records, as 0.25 seconds still had issues. But it would be nice to have that option for users to adjust based on how fast they want the workflow to run, since it's inherently slow. Again, considering....

** It can be manually changed by changing the value here (in seconds)

time.sleep(.5)

 

Anyway, the point was to at least have this out there. Plus with the Selenium package, you can automate filling in forms on a certain webpage if you have the data. However, I just like languages and translations, hence this tool! 

 

As always, suggestions and comments are welcome :)

 

Note*** I hope you all like my image, I was scared of copyright issues, and I put a lot of sweat, blood, and tears into making this in paint.

Alteryx Partner

@nick612haylund Not exactly what you requested, but...with this version when meeting the criteria it now write to the output "Info: Terminator (1): Record count minumum met. Processing gate opened.", and if the minimum is not met, once all records are received it will write to the output "Info: Terminator (1): Record count insufficient for processing. I'll be back."

Alteryx Certified Partner
Hahaha love it @jwalder !!!!
Alteryx Certified Partner
Alteryx Certified Partner

Awesome, @jwalder!

Sr. Community Content Manager
Sr. Community Content Manager

Congratulations to Nick - his Glassdoor Company Scraper won the most votes! Full results...

 

Name Tool Description Stars
@nick612haylund

Glassdoor Company Scraper

GO TO POST | DOWNLOAD

Scrape reviews and interviews from Glassdoor.com 44
@jwalder

Terminator

GO TO POST | DOWNLOAD

Prevent a process from executing until a minimum amount of input records are present 29
@tlarsen7572

Regex Extract

GO TO POST | DOWNLOAD

Think of it like the Regex Parse tool, but instead of parsing into columns, each match parses into a new record 12
@Nate1

VADER Sentiment

GO TO POST | DOWNLOAD

Score a text field into positive, negative, and neutral scores from the words and phrase in it 10
@tlarsen7572

Field Sorter

GO TO POST | DOWNLOAD

Re-order your fields in various ways 10
@elatt

DataRobot Tools

GO TO POST | DOWNLOAD

Upload data to the DataRobot machine learning platform and score data using models generated by DataRobot 9
@jdunkerley79

Omnibus Grouped Record ID

GO TO POST | DOWNLOAD

Record ID with grouping 7

 

We also had several Alteryx associates get in on the share-fest...

 

Name Tool Description
@SophiaF

Mimesis Data Generator

GO TO POST | DOWNLOAD

Generate dummy data for testing purposes
@PaulN

GeoJSON

GO TO POST | DOWNLOAD

Generate spatial objects from GeoJSON
@NeilR

Word Cloud

GO TO POST | DOWNLOAD

Create word clouds from text
@SydneyF

K-Means Clustering

GO TO POST | DOWNLOAD

K-Means clustering implemented with Scikit Learn
@MichaelF

Translate

GO TO POST | DOWNLOAD

Translate text by automating Chrome browser clicks with the Selenium Python package

 

Thanks to all the participants - I hope you continue to build and share!

 

And to all you voters and spectators - I hope these tools prove useful and serve as examples to create your own tools.

Alteryx Partner

Congrats @nick612haylund!