Exemple #1
0
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)))
Exemple #2
0
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)))
Exemple #3
0
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")
Exemple #4
0
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")
Exemple #5
0
 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)