Difference between revisions of "Statistical Algorithms Importer: Python Project FAQ"
From Gcube Wiki
(→How to use the input and output file parameters) |
(→StorageHub) |
||
Line 150: | Line 150: | ||
:[[File:StorageHubFacilityPython.zip|StorageHubFacilityPython.zip]] | :[[File:StorageHubFacilityPython.zip|StorageHubFacilityPython.zip]] | ||
− | :View the demo: | + | :View the demo in DataMiner: |
:[https://services.d4science.org/group/rprototypinglab/data-miner?OperatorId=org.gcube.dataanalysis.wps.statisticalmanager.synchserver.mappedclasses.transducerers.STORAGEHUBFACILITYPYTHON StorageHub Facility Python] | :[https://services.d4science.org/group/rprototypinglab/data-miner?OperatorId=org.gcube.dataanalysis.wps.statisticalmanager.synchserver.mappedclasses.transducerers.STORAGEHUBFACILITYPYTHON StorageHub Facility Python] | ||
[[Category:Statistical Algorithms Importer]] | [[Category:Statistical Algorithms Importer]] |
Revision as of 15:00, 22 November 2018
F.A.Q. of Statistical Algorithms Importer (SAI), here are common mistakes we have found in Python Project.
How to use the input and output file parameters
- For example we consider Phonebook algorithm:
- DataMiner show the Phonebook algorithm in this way:
- Python script code in sample:
# # author Giancarlo Panichi # # Phonebook # import sys import string def print_numbers(numbers): print "Telephone Numbers:" for x in numbers.keys(): value="Name: "+x+" Number: "+numbers[x] print value, def lookup_number(numbers,name): if numbers.has_key(name): return "For "+name+" the number is "+numbers[name] else: return "For "+name+" was not found" def load_numbers(numbers,filename): with open(filename,"r") as f: for in_line in f: [name,number] = string.split(in_line,",") numbers[name] = number def save_result(result,filename): with open(filename,"w") as f: f.write(result) phonebookFile=sys.argv[1] name=sys.argv[2] phone_list = {} load_numbers(phone_list,phonebookFile) print_numbers(phone_list) number=lookup_number(phone_list,name) print number save_result(number,"result.txt")
- phonebook.csv:
Giancarlo,0123456789 Gianpaolo,9876541234 Paolo,1231410414
- phonebook result with Giancarlo:
For Giancarlo the number is 0123456789
- Phonebook code:
Matplotlib
Matplotlib require the $DISPLAY environment variable which means a running X server. DataMiner service do not allow a running X server session. So your code must be modified:
# # author Giancarlo Panichi # # Write file image.png # import matplotlib as mpl mpl.use('Agg') import matplotlib.pyplot as plt import numpy as np .... plt.imshow(image) plt.savefig('image.png')
Urllib
On DataMiner services is installed Urllib3, see:
# # author Giancarlo Panichi # # Request Url # import urllib3 http = urllib3.PoolManager() r = http.request('GET', 'http://httpbin.org/robots.txt') print(r.status) print(r.data)
StorageHub
- StorageHub is the service for accessing to the user's workspace. Below we show the StorageHubFacilityPython algorithm, it exhibits the interactions with StorageHub through its Rest API:
- Indicates the I/O parameters:
- Indicates the python version:
- Indicates the main code python:
- DataMiner result:
- This algorithm shows 5 types of interactions with StorageHub:
- Get Root Info
- Get Item Info (requires an itemId as argument1)
- Get Root Children
- Get Item Children (requires an itemId as argument1)
- Item Download (requires an itemId as argument1)
- Python source code of StorageHubFacilityPython:
- File:StorageHubFacilityPython.zip
- View the demo in DataMiner:
- StorageHub Facility Python