@@ -0,0 +1,1483 @@
+import synapseclient%0Afrom synapseclient import Project, File%0Aimport synapseclient.utils as utils%0Afrom datetime import datetime%0Aimport filecmp%0Aimport os, traceback%0Aimport argparse%0Aimport random%0Afrom synapseclient.utils import MB, GB%0A%0A%0Asyn = None%0A%0A%0Adef setup(module):%0A    print '%5Cn'%0A    print '~' * 60%0A    print os.path.basename(__file__)%0A    print '~' * 60%0A    module.syn = synapseclient.Synapse()%0A    module.syn.login()%0A%0A%0A%0A%0Adef test_upload_speed(uploadSize=60 + 777771, threadCount=5):%0A    import time%0A    fh = None%0A    filepath = utils.make_bogus_binary_file(uploadSize*MB)%0A    print 'Made bogus file: ', filepath%0A    try:%0A        t0 = time.time()%0A        fh = syn._chunkedUploadFile(filepath, threadCount=threadCount)%0A        dt =  time.time()-t0%0A    finally:%0A        try:%0A            os.remove(filepath)%0A        except Exception:%0A            print traceback.format_exc()%0A        if fh:%0A            syn._deleteFileHandle(fh)%0A    return dt%0A%0A%0A%0Adef main():%0A    import pandas as pd%0A    import numpy as np%0A    global syn%0A    syn = synapseclient.Synapse()%0A    syn.login(silent=True)%0A    sizes = %5B1,5,10,100,500,1000%5D%0A    threads =  %5B1,2,4,6,8,16%5D%0A%0A    results = pd.DataFrame(np.zeros((len(sizes), len(threads))), columns=threads, index=sizes)%0A    results.index.aname = 'Size (Mb)'%0A    for size in sizes:%0A        for thread in threads:%0A            results.ix%5Bsize,thread%5D = test_upload_speed(size, thread)%0A            print results%0A        print %0A%0A%0Aif __name__ == %22__main__%22:%0A    main()%0A%0A

Add upload benchmarking.