Skip to main content

Tool for creating nanowire tools with the flask structure.

Project description

This library is designed to allow a python developer to easily create a nanowire plugin using the flask APIs structure.

The function you mount for image plugins, using the function mount_Image_function must have the arguments img and variables if you want initialise a model or other variables when the sever starts you may make the function to be mounted into a function of a class which is initiated with the function mount_Image_function. You should expect img to be a PIL RGB image object and variables to be a dictionary containing the variables sent to the plugin in the curl request.

The function for mounting a text based plugin is similar however it is called mount_text_function and expects the arguments text (a string) and variables.

The curl requests for images may be formatted 2 ways. The first involves sending the image as a file attached to the curl request. For example:

curl -F "image=@./1.jpg" -XPOST http://0.0.0.0:5000/model/predict?threshold=0.5

alternatively the file may be sent as a link using a dictionary eg.

curl -X POST -H "Content-Type:application/json" -d '{"contentUrl":"http://127.0.0.1:8000/1.jpg", "threshold":0.5}' http://0.0.0.0:5000/model/predict

The currently supported image formats are:

  • jpg

  • png

  • bmp

  • tif

  • ppm

The curl request for text is similar to that used for images except that it may take either raw text or a file containing raw text. You may either post a document containing the raw text using the command

curl -F "doc=@./doc1.txt" -XPOST http://0.0.0.0:5000/model/predict?deactivate_ngrams=True

or the raw text can be sent using:

curl -X POST -H "Content-Type:application/json" -d '{"text":"Example text about whichever subject you're interested in", "deactivate_ngrams"="True"}' http://0.0.0.0:5000/model/predict

The library may also accept CSV objects using command like

curl -F "csv=@./example.csv" -XPOST http://0.0.0.0:5000/model/predict?ignore_col=text

a xlsx file may be sent in the same way:

curl -F "xlsx=@./example.xlsx" -XPOST 'http://0.0.0.0:5000/model/predict?ignore_col=text&customStops=horse,course&indexCol=uuid'

alternatively a link to a csv or xlsx file may be sent such as:

curl -X POST -H "Content-Type:application/json" -d '{"contentUrl":"http://localhost:8000/example.csv", "ignore_col":"dates"}' http://0.0.0.0:5000/model/predict

The library may also accept JSON objects using commands such as

curl -X POST -H "Content-Type:application/json" -d '{"inputJSON": {"this":"is", "an":"example"}, "variables":{"customStops":["horse", "course"]}' http://0.0.0.0:5000/model/predict

alternatively a JSON file may be sent from a server

curl -X POST -H "Content-Type:application/json" -d '{"contentUrl":"http://localhost:8000/example.json"}' http://0.0.0.0:5000/model/predict

an old version of this command would accept:

curl -X POST -H "Content-Type:application/json" -d '{"this":"is", "an":"example"}' http://0.0.0.0:5000/model/predict

however this is deprecated and will no longer be accepted in future versions of this library.

This library will eventually be expanded to be able to handle video, sound and arbitrary files however for now it is limited to text, images, csv files and json files.

The API you create will also return maximum memory usage (in MB), maximum cpu usage (in %) and time taken (in seconds) when processing a given API call.

Notes for advanced users

image_tools.mount_Image_function

Parameters

  • function :- The function to be mounted on the API. The function must take img and variables as arguments when processing images. The function must return a dictionary.

  • host optional:- default is ‘0.0.0.0’. Set the IP address to host the API on.

  • port optional:- default 5000. Set the port to host the API on.

  • path optional:- default ‘/model/predict’. Set the path for the API.

text_tools.mount_text_function

Parameters * function :- The function to be mounted on the API. The function must take text and variables as arguments when processing text. The function must return a dictionary. * host optional:- default is ‘0.0.0.0’. Set the IP address to host the API on. * port optional:- default 5000. Set the port to host the API on. * path optional:- default ‘/model/predict’. Set the path for the API.

csv_tools.mount_csv_function

Parameters * function :- The function to be mounted on the API. The function must take df (a pandas dataframe) and variables (a dictionary) as arguments when processing a csv. The function must return a dictionary. * host optional:- default is ‘0.0.0.0’. Set the IP address to host the API on. * port optional:- default 5000. Set the port to host the API on. * path optional:- default ‘/model/predict’. Set the path for the API.

json_tools.mount_json_function

Parameters * function :- The function to be mounted on the API. The function must take inputJSON as an argument. The function must return a dictionary. * host optional:- default is ‘0.0.0.0’. Set the IP address to host the API on. * port optional:- default 5000. Set the port to host the API on. * path optional:- default ‘/model/predict’. Set the path for the API.

Notes on debug mode

In order to activate debug mode the environmental variable PYTHON_DEBUG must be set to true.

Debug mode will mean that any errors encountered whilst running the function will also give a full traceback of the error in the returned JSON.

Notes on taskID

If the post contains taskID as an argument the taskID given will also be returned in the output JSON.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nanowire_flask-0.0.135.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nanowire_flask-0.0.135-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file nanowire_flask-0.0.135.tar.gz.

File metadata

  • Download URL: nanowire_flask-0.0.135.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15+

File hashes

Hashes for nanowire_flask-0.0.135.tar.gz
Algorithm Hash digest
SHA256 da17288b69942167cd748b942b4fd938ea1bd1e4619333178b2e8d4bb80bff5b
MD5 543690b9f363980a867d31eccd03a197
BLAKE2b-256 c6ff2f3ca1408aafce39ed565d759241e14b70738c8f7c73f44d961b74943e77

See more details on using hashes here.

File details

Details for the file nanowire_flask-0.0.135-py3-none-any.whl.

File metadata

  • Download URL: nanowire_flask-0.0.135-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15+

File hashes

Hashes for nanowire_flask-0.0.135-py3-none-any.whl
Algorithm Hash digest
SHA256 a014f6c29cea98aca480f9a4e677647a221b5b6063cc4632b5cf8df67d345480
MD5 53c6c0b1eb37dd1c4565efc51e693edd
BLAKE2b-256 130819f0e3b30c07a91c1160606739bdae2196a3c9935d775d897b73bf33e4fd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page