Example #1
0
 def prepare_argument_path(
         self, argument_noun, raw_arguments, draft_folder, default_path):
     data_type = get_data_type(argument_noun)
     # If client sent direct content (x_table_csv), save it
     for file_format in data_type.formats:
         raw_argument_name = '%s_%s' % (argument_noun, file_format)
         if raw_argument_name not in raw_arguments:
             continue
         source_text = raw_arguments[raw_argument_name]
         target_name = '%s.%s' % (argument_noun, file_format)
         return copy_text(join(draft_folder, target_name), source_text)
     # Raise KeyError if client did not specify noun (x_table)
     v = raw_arguments[argument_noun]
     # If client sent multipart content, save it
     if hasattr(v, 'file'):
         target_name = argument_noun + get_file_extension(v.filename)
         return copy_file(join(draft_folder, target_name), v.file)
     # If client sent empty content, use default
     if v == '':
         if not default_path:
             raise KeyError
         target_name = argument_noun + get_file_extension(default_path)
         return link_path(join(draft_folder, target_name), default_path)
     # If client sent a relative path (x_table=11/x/y.csv), find it
     if '/' in v:
         source_path = self.get_file_path(*parse_result_relative_path(v))
         target_name = argument_noun + get_file_extension(source_path)
         return link_path(join(draft_folder, target_name), source_path)
     # If client sent an upload id (x_table=x), find it
     upload = get_upload(self, upload_id=v)
     source_path = join(upload.folder, data_type.get_file_name())
     target_name = argument_noun + get_file_extension(source_path)
     target_path = move_path(join(draft_folder, target_name), source_path)
     remove_safely(upload.folder)
     return target_path
 def run(self, args):
     settings = get_appsettings(args.configuration_path)
     if args.restart and 'data.folder' in settings:
         remove_safely(settings['data.folder'])
     for key, value in settings.items():
         if key.endswith('.folder'):
             make_folder(value)
Example #3
0
 def prepare_argument_path(self, argument_noun, raw_arguments, draft_folder,
                           default_path):
     data_type = get_data_type(argument_noun)
     # If client sent direct content (x_table_csv), save it
     for file_format in data_type.formats:
         raw_argument_name = '%s_%s' % (argument_noun, file_format)
         if raw_argument_name not in raw_arguments:
             continue
         source_text = raw_arguments[raw_argument_name]
         target_name = '%s.%s' % (argument_noun, file_format)
         return copy_text(join(draft_folder, target_name), source_text)
     # Raise KeyError if client did not specify noun (x_table)
     v = raw_arguments[argument_noun]
     # If client sent multipart content, save it
     if hasattr(v, 'file'):
         target_name = argument_noun + get_file_extension(v.filename)
         return copy_file(join(draft_folder, target_name), v.file)
     # If client sent empty content, use default
     if v == '':
         if not default_path:
             raise KeyError
         target_name = argument_noun + get_file_extension(default_path)
         return link_path(join(draft_folder, target_name), default_path)
     # If client sent a relative path (x_table=11/x/y.csv), find it
     if '/' in v:
         source_path = self.get_file_path(*parse_result_relative_path(v))
         target_name = argument_noun + get_file_extension(source_path)
         return link_path(join(draft_folder, target_name), source_path)
     # If client sent an upload id (x_table=x), find it
     upload = get_upload(self, upload_id=v)
     source_path = realpath(join(upload.folder, data_type.get_file_name()))
     target_name = argument_noun + get_file_extension(source_path)
     target_path = move_path(join(draft_folder, target_name), source_path)
     remove_safely(upload.folder)
     return target_path
Example #4
0
 def prepare_arguments(self, tool_definition, raw_arguments):
     draft_folder = make_unique_folder(join(
         self.data_folder, 'drafts', Result._plural), length=16)
     try:
         result_arguments = self.collect_arguments(
             tool_definition, raw_arguments, draft_folder)
     except DataParseError as e:
         raise HTTPBadRequest(e.message_by_name)
     result = self.spawn_result()
     result.arguments = self.migrate_arguments(
         result_arguments, result.get_source_folder(self.data_folder))
     remove_safely(draft_folder)
     return result
Example #5
0
 def prepare_arguments(self, tool_definition, raw_arguments):
     draft_folder = make_unique_folder(join(self.data_folder, 'drafts',
                                            Result._plural),
                                       length=16)
     try:
         result_arguments = self.collect_arguments(tool_definition,
                                                   raw_arguments,
                                                   draft_folder)
     except DataParseError as e:
         raise HTTPBadRequest(e.message_by_name)
     result = self.spawn_result()
     result.arguments = corral_arguments(
         result.get_source_folder(self.data_folder), result_arguments,
         move_path)
     remove_safely(draft_folder)
     return result
Example #6
0
def data_folder(tmpdir):
    data_folder = str(tmpdir)
    yield data_folder
    remove_safely(data_folder)
Example #7
0
def wash_total_folder(target_folder):
    drafts_folder = join(target_folder, 'drafts')
    remove_safely(drafts_folder)
    remove_safely(drafts_folder + '.prj')