Skip to content

unmand-systems/unmand-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unmand Python Library

Version

The Unmand Python library provides convenient access to the Unmand APIs from applications written in the Python language.

For more help, see our docs.

Requirements

Python 3+

Installation

Install the package with:

pip install unmand

Example Usage

from unmand import Extraction, ExfilAPI

token = 'TOP-SECRET-EXAMPLE-TOKEN'
document_path = 'Sample.pdf'

exfil = ExfilAPI(token)
with open(document_path, 'rb') as file_data:
    extraction = exfil.queue(file_data)
    print(extraction)
    if extraction.status != "FAILED":
        exfil.poll(extraction=extraction)
        if extraction.status == 'FINISHED':
            print(extraction.result)

ExfilAPI and Extraction

The main class is ExfilAPI. Instantiate this with your token argument. Use the optional argument test to direct your queries to the test API instead of the production API. For example:

exfil_test = ExfilAPI(token, test=True) # This aims at the test API
exfil = ExfilAPI(token) # This aims at the production API

Submit a extraction by attaching the binary file data from your system to the queue method of ExfilAPI. This will return an instance of the Extraction class.

extraction = exfil.queue(file_data)

At any time, you can get the status of the extraction:

print(extraction) # or
print(extraction.status)

Once a extraction is queued, call the poll method of the ExfilAPI class to be updated when the extraction is finished. Use the optional argument suppress_output to stop updates printing to screen.

exfil.poll(extraction=extraction)  # or
exfil.poll(extraction=extraction, suppress_output=True)

Once finished, the results of the extraction are saved as a dictionary under the result attribute.

print(extraction.result)

Swarm Tasks

There is a SwarmAPI class so that swarm tasks can be uploaded for display in the UI. An example usage is shown below. Be careful, the token for a Swarm project will be different.

swarm = SwarmAPI(token, test=True)

start_time = datetime.utcnow()
finish_time = datetime.utcnow()
response_details = {'Some data': 1, 'Some other data': 2, "an array": [1,2,3,4]}
status = 'SUCCESS' # or 'FAILURE'

task = Task('UniqueTestId', start_time, finish_time , status, 'PROD', 'Short Response', response_details , "First Identifier", "Second Identifier", "Third Identifier")
swarm.upload_swarm_task(task)