# HG changeset patch
# User bernhardlutz
# Date 1399068996 14400
# Node ID 80bf0039c0dce0da58603726263d2b510e64b8d9
# Parent  3c1e862e8cd68fe471633da361a704dcbf58e99f
Uploaded
diff -r 3c1e862e8cd6 -r 80bf0039c0dc readfile.py
--- a/readfile.py	Fri May 02 05:40:28 2014 -0400
+++ b/readfile.py	Fri May 02 18:16:36 2014 -0400
@@ -17,7 +17,16 @@
     else:
         return connection.read().rstrip()
         
-def store_result(url, outfile):
+def store_result_get(url, outfile):
     data=getresult(url)
     outfile.write(data)
     outfile.close()
+
+def store_result_post(url, post, outfile):
+    data = urllib.urlencode(post)
+    headers={"Content-Type" : "application/x-www-form-urlencoded"}
+    req = urllib2.Request(url, data, headers)
+    response = urllib2.urlopen(req)
+    the_page = response.read()
+    outfile.write(the_page)
+    outfile.close()
diff -r 3c1e862e8cd6 -r 80bf0039c0dc rest_tool.xml
--- a/rest_tool.xml	Fri May 02 05:40:28 2014 -0400
+++ b/rest_tool.xml	Fri May 02 18:16:36 2014 -0400
@@ -68,7 +68,7 @@
                         --id-type-ff $choose_action.input_type.namespace_id.field_or_file.field_or_file_select
                         --id-value $choose_action.input_type.namespace_id.field_or_file.id_value
                     #elif $choose_action.input_type.namespace_id.namespace_id_select == 'target':
-                        --id-value $choose_action.input_type.namespace_id.target_select
+                        --id-value $choose_action.input_type.namespace_id.target_select"/"$choose_action.input_type.namespace_id.target_value
                     #elif $choose_action.input_type.namespace_id.namespace_id_select == 'type':
                         --id-value $choose_action.input_type.namespace_id.type_select
                     #elif $choose_action.input_type.namespace_id.namespace_id_select == 'activity':
@@ -81,6 +81,10 @@
                         --operation-value $choose_action.input_type.operation_assay.operation_assay_select.property_assay
                     #elif $choose_action.input_type.operation_assay.operation_assay_select == 'target':
                         --operation-value $choose_action.input_type.operation_assay.operation_assay_select.target_assay
+                    #elif $choose_action.input_type.operation_assay.operation_assay_select == 'xrefs':
+                        --operation-value $choose_action.input_type.operation_assay.xref_operation
+                    #elif $choose_action.input_type.operation_assay.operation_assay_select == 'doseresponse':
+                        --sid-filter $choose_action.input_type.operation_assay.doseresponse_sids
                     #elif $choose_action.input_type.operation_assay.operation_assay_select == 'aids' or $choose_action.input_type.operation_assay.operation_assay_select == 'cids' or $choose_action.input_type.operation_assay.operation_assay_select == 'sids':
                         --ids-operation-type $choose_action.input_type.operation_assay.ids_type_assay
                     #end if
@@ -97,7 +101,7 @@
                     #if $choose_action.input_type.operation_compound.operation_compound_select == 'property':
                         --operation-value $choose_action.input_type.operation_compound.property_compound
                     #elif $choose_action.input_type.operation_compound.operation_compound_select == 'xrefs':
-                        --operation-value $choose_action.input_type.operation_compound.xref_compound
+                        --operation-value $choose_action.input_type.operation_compound.xref_operation
                     #elif $choose_action.input_type.operation_compound.operation_compound_select == 'aids' or $choose_action.input_type.operation_compound.operation_compound_select == 'cids' or $choose_action.input_type.operation_compound.operation_compound_select == 'sids':
                         --ids-operation-type $choose_action.input_type.operation_compound.ids_type_compound
                     #end if
@@ -114,7 +118,7 @@
                      #if $choose_action.input_type.operation_substance.operation_substance_select == 'property':
                         --operation-value $choose_action.input_type.operation_substance.operation_substance_select.property_substance
                     #elif $choose_action.input_type.operation_substance.operation_substance_select == 'xref':
-                        --operation-value $choose_action.input_type.operation_substance.xref_substance
+                        --operation-value $choose_action.input_type.operation_substance.xref_operation
                     #elif $choose_action.input_type.operation_substance.operation_substance_select == 'aids' or $choose_action.input_type.operation_substance.operation_substance_select == 'cids' or $choose_action.input_type.operation_substance.operation_substance_select == 'sids':
                         --ids-operation-type $choose_action.input_type.operation_substance.ids_type_substance
                     #end if
@@ -188,9 +192,78 @@
         
     
     
-        
+        
+             
+                
+                
+                
+                
+                
+                
+                
+                
+                
+            
+        
     
     
+        
+            
+            
+            
+            
+            
+            
+            
+        
+        
+            
+            
+            
+            
+            
+            
+            
+        
+        
+        
+            
+            
+            
+            
+            
+            
+            
+        
+        
+            
+            
+            
+            
+            
+            
+            
+        
     
     
 **What it does**
diff -r 3c1e862e8cd6 -r 80bf0039c0dc rest_tool_advanced.py
--- a/rest_tool_advanced.py	Fri May 02 05:40:28 2014 -0400
+++ b/rest_tool_advanced.py	Fri May 02 18:16:36 2014 -0400
@@ -7,11 +7,13 @@
 
 #dicitionary for the output format
 
-dict_output={"cids" :"txt", "aids" : "txt", "sids" : "txt", "description": "xml", "summary" : "xml", "record" : "csv", "classification": "xml", "targets" : "txt", "xrefs" : "txt", "synonyms" : "txt", "property": "csv" }
+dict_output={"cids" :"txt", "aids" : "txt", "sids" : "txt", "description": "xml", "summary" : "xml", "record" : "csv", "classification": "xml", "targets" : "txt", "xrefs" : "txt", "synonyms" : "txt", "property": "csv", "doseresponse" : "csv" }
 
 #alles andere ist xml
 check_for_id_type=["cids", "aids", "sids"]
 
+post_id_types=["inchi", "sdf", "smiles"]
+
 id_dict={"compound": "cid", "assay": "aid", "substance" : "sid" }
 
 def getListString(args):
@@ -19,31 +21,43 @@
         #build comma list
         list_string=",".join(getListFromFile(open(args.id_value,"r")))
     else:
-        list_string=args.id_value
+        print (args.id_value)
+        list_string=args.id_value.strip().replace("__cr____cn__", ",")
     return list_string
 
-
+    
 def main(args):
-
     url="http://pubchem.ncbi.nlm.nih.gov/rest/pug/"+args.type+"/"
     url+=args.id_type+"/"
-    if args.id_type ==id_dict[args.type]:
-        url+=getListString(args)+"/"
-    else:
-        url+=args.id_value+"/"
+    # check if we are post then skip this part otherwise put the ids in the url
+    if not args.id_type in post_id_types:
+        if args.id_type ==id_dict[args.type]:
+            url+=getListString(args)+"/"
+        else:
+            url+=args.id_value+"/"
+
     url+=args.operation+"/"
     if args.operation == "target" or args.operation == "property" or args.operation == "xrefs":
         url+=args.operation_value+"/"
     
-    url+=dict_output[args.operation]
-    if args.operation in check_for_id_type:
-            url+="?"+args.operation+"_type="+args.ids_operation_type
+    if args.operation == "xrefs":
+        if "," in args.operation_value:
+            url+="xml"
+        else:
+            url+="txt"
+    else:
+        url+=dict_output[args.operation]
+    if args.operation in check_for_id_type and args.id_type not in post_id_types:
+            url+="?%s_type=%s" % (args.operation, args.ids_operation_type)
     print(url)
-    readfile.store_result(url, args.outfile)
-    
-    
-    
-    
+    if args.id_type in post_id_types:
+        postfile=open(args.id_value,"r")
+        post_value=postfile.read()
+        post_dict={args.id_type : post_value}
+        print(post_dict)
+        readfile.store_result_post(url, post_dict, args.outfile)
+    else:
+        readfile.store_result_get(url, args.outfile)
 if __name__ == "__main__":
     parser = argparse.ArgumentParser()
     parser.add_argument('--type', type=str, required=True,
diff -r 3c1e862e8cd6 -r 80bf0039c0dc rest_tool_macro_advanced.xml
--- a/rest_tool_macro_advanced.xml	Fri May 02 05:40:28 2014 -0400
+++ b/rest_tool_macro_advanced.xml	Fri May 02 18:16:36 2014 -0400
@@ -33,6 +33,8 @@
                             
                             
                         
+                        
+
                     
                     
                     
diff -r 3c1e862e8cd6 -r 80bf0039c0dc rest_tool_macros.xml
--- a/rest_tool_macros.xml	Fri May 02 05:40:28 2014 -0400
+++ b/rest_tool_macros.xml	Fri May 02 18:16:36 2014 -0400
@@ -155,7 +155,7 @@
                                 
                             
                             
-                                
+                                
                                     
                                 
                             
@@ -184,11 +184,17 @@
                                 
                                 
                                 
+                                
                                 
                                 
                             
                             
-                                
+                                
+                                    
+                                
+                            
+                            
+                                
                             
 
                             
@@ -226,7 +232,7 @@
                             
 
                             
-                                
+                                
                                     
                                 
                             
diff -r 3c1e862e8cd6 -r 80bf0039c0dc rest_tool_search.py
--- a/rest_tool_search.py	Fri May 02 05:40:28 2014 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-#!/usr/bin/env python
-
-import sys, os
-import argparse
-import readfile
-
-def main(args):
-    #search for acitivity or target
-    url="http://pubchem.ncbi.nlm.nih.gov/rest/pug/"+args.type+"/name/"+args.name
-    if args.type == "assay":
-        url+="/aids"
-    elif args.type == "compound":
-        url+="/cids"
-    else:
-        url+="/sids"
-    url+="/txt"
-    #print("url: "+url)
-    data=readfile.getresult(url)
-    args.outfile.write(data)
-    args.outfile.close()
-    
-    
-if __name__ == "__main__":
-    parser = argparse.ArgumentParser()
-    parser.add_argument('--name', type=str, required=True,
-        help="Enter the name")
-    parser.add_argument('--type', type=str, required=True,
-        help="What you want to search for")
-    parser.add_argument('--outfile', type=argparse.FileType('w'), required=True,
-        help="Specify output file")
-    if len(sys.argv) < 2:
-        print "Too few arguments..."
-        parser.print_help()
-        exit(1)
-    args = parser.parse_args()
-    main( args )
diff -r 3c1e862e8cd6 -r 80bf0039c0dc test-data/empty-file
diff -r 3c1e862e8cd6 -r 80bf0039c0dc test-data/postfile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/postfile	Fri May 02 18:16:36 2014 -0400
@@ -0,0 +1,2 @@
+InChI=1S/C3H8/c1-3-2/h3H2,1-2H3
+
diff -r 3c1e862e8cd6 -r 80bf0039c0dc tool_dependencies.xml
--- a/tool_dependencies.xml	Fri May 02 05:40:28 2014 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-
-    
-        $REPOSITORY_INSTALL_DIR
-    
-