def file_import(request, repo_base, repo, file_name): username = request.user.get_username() delimiter = str(request.GET['delimiter']) if delimiter == '': delimiter = str(request.GET['other_delimiter']) header = False if request.GET['has_header'] == 'true': header = True quote_character = request.GET['quote_character'] if quote_character == '': quote_character = request.GET['other_quote_character'] DataHubManager.import_file(username=username, repo_base=repo_base, repo=repo, table=table, file_name=file_name, delimiter=delimiter, header=header, quote_character=quote_character) return HttpResponseRedirect(reverse('browser-repo', args=(repo_base, repo)))
def file_import(request, repo_base, repo, file_name): username = request.user.get_username() delimiter = str(request.GET['delimiter']) if delimiter == '': delimiter = str(request.GET['other_delimiter']) header = False if request.GET['has_header'] == 'true': header = True quote_character = request.GET['quote_character'] if quote_character == '': quote_character = request.GET['other_quote_character'] DataHubManager.import_file( username=username, repo_base=repo_base, repo=repo, table=table, file_name=file_name, delimiter=delimiter, header=header, quote_character=quote_character) return HttpResponseRedirect( reverse('browser-repo', args=(repo_base, repo)))
def file_import(request, repo_base, repo): try: login = get_login(request) res = DataHubManager.has_repo_privilege(login, repo_base, repo, 'CREATE') if not (res and res['tuples'][0][0]): raise Exception('Access denied. Missing required privileges.') file_name = request.GET['file'] delimiter = str(request.GET['delimiter']) if delimiter == '': delimiter = str(request.GET['other_delimiter']) header = True if request.GET['has_header'] == "true" else False quote_character = request.GET['quote_character'] if quote_character == '': quote_character = request.GET['other_quote_character'] delimiter = delimiter.decode('string_escape') repo_dir = '/user_data/%s/%s' %(repo_base, repo) file_path = '%s/%s' %(repo_dir, file_name) table_name, _ = os.path.splitext(file_name) table_name = clean_str(table_name, 'table') dh_table_name = '%s.%s.%s' %(repo_base, repo, table_name) f = codecs.open(file_path, 'r', 'ISO-8859-1') data = csv.reader(f, delimiter=delimiter) cells = data.next() columns = [clean_str(str(i), 'col') for i in range(0, len(cells))] if header: columns = map(lambda x: clean_str(x, 'col'), cells) columns = rename_duplicates(columns) query = 'CREATE TABLE %s (%s text' % (dh_table_name, columns[0]) for i in range(1, len(columns)): query += ', %s %s' %(columns[i], 'text') query += ')' manager = DataHubManager(user=repo_base) manager.execute_sql(query=query) manager.import_file( repo_base=repo_base, table_name=dh_table_name, file_path=file_path, delimiter=delimiter, header=header, quote_character=quote_character) return HttpResponseRedirect('/browse/%s/%s' %(repo_base, repo)) except Exception, e: return HttpResponse( json.dumps( {'error': str(e)}), mimetype="application/json")
def file_import(request, repo_base, repo, file_name): try: login = get_login(request) res = DataHubManager.has_repo_privilege(login, repo_base, repo, 'CREATE') if not (res and res['tuples'][0][0]): raise Exception('Access denied. Missing required privileges.') delimiter = str(request.GET['delimiter']) if delimiter == '': delimiter = str(request.GET['other_delimiter']) header = True if request.GET['has_header'] == "true" else False quote_character = request.GET['quote_character'] if quote_character == '': quote_character = request.GET['other_quote_character'] delimiter = delimiter.decode('string_escape') repo_dir = '/user_data/%s/%s' %(repo_base, repo) file_path = '%s/%s' %(repo_dir, file_name) table_name, _ = os.path.splitext(file_name) table_name = clean_str(table_name, 'table') dh_table_name = '%s.%s.%s' %(repo_base, repo, table_name) f = codecs.open(file_path, 'r', 'ISO-8859-1') data = csv.reader(f, delimiter=delimiter) cells = data.next() columns = [clean_str(str(i), 'col') for i in range(0, len(cells))] if header: columns = map(lambda x: clean_str(x, 'col'), cells) columns = rename_duplicates(columns) query = 'CREATE TABLE %s (%s text' % (dh_table_name, columns[0]) for i in range(1, len(columns)): query += ', %s %s' %(columns[i], 'text') query += ')' manager = DataHubManager(user=repo_base) manager.execute_sql(query=query) manager.import_file( repo_base=repo_base, table_name=dh_table_name, file_path=file_path, delimiter=delimiter, header=header, quote_character=quote_character) return HttpResponseRedirect('/browse/%s/%s' %(repo_base, repo)) except Exception, e: return HttpResponse( json.dumps( {'error': str(e)}), mimetype="application/json")
def create_table_from_file(self, repo, table, file_name, delimiter, quote_character, has_header): DataHubManager.import_file( username=self.username, repo_base=self.repo_base, repo=repo, table=table, file_name=file_name, delimiter=delimiter, header=has_header, quote_character=quote_character)