changeset 4:fe92a529ed01 draft

Uploaded
author iuc
date Wed, 15 Feb 2017 15:05:57 -0500
parents aa09fd78ba59
children 8bb32fd5b175
files data_manager/data_manager_plant_tribes_scaffolds_download.py
diffstat 1 files changed, 15 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/data_manager/data_manager_plant_tribes_scaffolds_download.py	Wed Feb 15 11:22:16 2017 -0500
+++ b/data_manager/data_manager_plant_tribes_scaffolds_download.py	Wed Feb 15 15:05:57 2017 -0500
@@ -41,10 +41,10 @@
     fh.extractall(work_directory)
 
 
-def move_files(work_directory, target_directory):
+def move_files(source_directory, target_directory):
     # Move the files into defined output directory.
-    for filename in os.listdir(work_directory):
-        shutil.move(os.path.join(work_directory, filename), target_directory)
+    for filename in os.listdir(source_directory):
+        shutil.move(os.path.join(source_directory, filename), target_directory)
 
 
 def url_download(url, work_directory):
@@ -71,7 +71,7 @@
     return file_path
 
 
-def download(target_file_path, web_url, config_web_url, description, data_table_names=DEFAULT_DATA_TABLE_NAMES):
+def download(target_directory, web_url, config_web_url, description, data_table_names=DEFAULT_DATA_TABLE_NAMES):
     data_manager_dict = {}
     data_table_entry = {}
     # Download the scaffolds data.
@@ -80,8 +80,7 @@
     file_path = url_download(web_url, work_directory)
     extract_archive(file_path, work_directory)
     os.remove(file_path)
-    # Move the scaffolds data files into defined output directory.
-    target_directory = make_directory(target_file_path)
+    # Move the scaffolds data files into the defined output directory.
     move_files(work_directory, target_directory)
     remove_directory(work_directory)
     # Populate the data_manager_dict with the scaffolds data entry.
@@ -92,24 +91,20 @@
         data_table_entry['name'] = entry_name
         data_table_entry['path'] = full_path
         data_table_entry['description'] = description
+        # Populate the data_manager_dict.
+        for data_table_name in data_table_names:
+            data_manager_dict = add_data_table_entry(data_manager_dict, data_table_name, data_table_entry)
     # Download the default configuration files.
     work_directory = os.path.abspath(os.path.join(os.getcwd(), 'configs'))
     make_directory(work_directory)
     file_path = url_download(config_web_url, work_directory)
     extract_archive(file_path, work_directory)
     os.remove(file_path)
-    shutil.rmtree(target_directory)
-    # Move the scaffolds data files into defined output directory.
-    target_directory = make_directory(target_file_path)
-    move_files(work_directory, target_directory)
+    # Move the default configuration files into the defined output directory.
+    source_configs_directory = os.path.join(work_directory, entry_name)
+    target_configs_directory = os.path.join(target_directory, entry_name)
+    move_files(source_configs_directory, target_configs_directory)
     remove_directory(work_directory)
-    # Populate the data_manager_dict with the default configs entry.
-    for file_path in os.listdir(target_directory):
-        full_path = os.path.abspath(os.path.join(target_directory, file_path))
-        data_table_entry['config_path'] = full_path
-    # Populate the data_man ager_dict.
-    for data_table_name in data_table_names:
-        data_manager_dict = add_data_table_entry(data_manager_dict, data_table_name, data_table_entry)
     return data_manager_dict
 
 
@@ -125,8 +120,8 @@
 # Some magic happens with tools of type "manage_data" in that the output
 # file contains some JSON data that allows us to define the target directory.
 params = json.loads(open(args.out_file).read())
-target_file_path = params['output_data'][0]['extra_files_path']
-
+target_directory = params['output_data'][0]['extra_files_path']
+make_directory(target_directory)
 
 if args.description is None:
     description = ''
@@ -134,7 +129,7 @@
     description = args.description.strip()
 
 # Get the scaffolds data.
-data_manager_dict = download(target_file_path, args.web_url, args.config_web_url, description)
+data_manager_dict = download(target_directory, args.web_url, args.config_web_url, description)
 # Write the JSON output dataset.
 fh = open(args.out_file, 'wb')
 fh.write(json.dumps(data_manager_dict))